第一種類:商品的類,父類是個抽象類;
第二種類:折扣的類,父類也是個抽象類
類圖如下;
用繼承抽象類實現多型,用多型來實現工廠模式; 使用反射機制來實現構造例項的多型和工廠模式; 工廠模式可以增加系統的可擴充套件性; 使用dictionary中的list集合來減少**量;
倉庫類using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
//本程式的優點,當增加貨物型別的時候,不需要修改區域性**,只需要呼叫addshelf增加乙個貨架;新增貨物的時候根據貨物名新增物件;而在新增貨物的時候使用到了反射機制;
namespace _33_超市收銀系統
///
/// 刪除乙個貨架;
///
///要刪除的貨架名
///成功則值為成功刪除,失敗是返回失敗原因包括貨架還有貨物的失敗和不存在該貨架的失敗
/// 表明是否成功刪除
public bool delshelf(string name,out string reason)
else
}else
}///
/// 向貨架中新增count個protype型別的貨物;
///
///貨物型別,通過這個字串的反射找到物件的建構函式,實現工廠模式
///需要新增的貨物數量
///貨物的**
///
public bool addproducts(string protype,int count,double price)
string str = "_33_超市收銀系統."+protype;
for (int i = 0; i < count; i++)
return true;
}///
/// 從倉庫中取出一些商品;
///
///要取出的商品的型別
///需要去除的量
///實際去除的量
/// 返回去除的商品陣列
public productfather delproducts(string protype,int reqcount,out int getcount)
for (int i = 0; i < reqcount; i++)
pros[i] = list[protype][0];
list[protype].removeat(0);
}getcount = reqcount;
return pros;
}///
/// 獲取倉庫中的商品資訊
///
/// 返回格式化字串陣列,乙個商品乙個字串,可以在外面通過相同的協議進行解析
public string getinfo()
return info;}}
}商品類
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace _33_超市收銀系統
public string name
public string id
public productfather(double price,string name,string id)}}
超市收銀系統
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 16超市收銀系統 list 0 儲存acer電腦 list...
( PF)連鎖超市收銀系統總結
前言 好久沒寫部落格了,如今做完了乙個收銀系統,靜下心來做乙個簡單的總結。雖然收銀系統各種各樣,到處都有,開源的也不少,但是自己親手做了一遍以後也收穫頗豐。相比其他收銀軟體,功能上沒什麼創新,主要在於客戶要求介面美觀友好,故此用wpf開發客戶端,採用mvvmlight框架。服務端使用的是阿里雲伺服器...
電腦模擬收銀機 模擬超市收銀系統
課程設計任務書 學年第學期 一 課程設計題目 模擬超市收銀系統 例子 二 課程設計內容 使用文字命令列介面模擬超市收銀系統 由收銀員輸入顧客的會員卡卡號 若有卡 所購商品的貨號等。從資料庫 或檔案 中取出有關 資訊,再把這些資訊返回給收銀台。同時把該收 銀台的銷售總量和有關種類商品的剩餘量以及該持卡...