南京師範大學
《物件導向程式設計》課程設計報告
姓名: 湯雲學號: 06080511
學院: 電腦科學與技術學院
題目超市收銀機
指導教師於泠
2023年9月21日
一. 課程設計內容及要求
設計內容:1 顯示超市庫存商品資訊 2 顯示購物流程提示資訊 3 實現購物過程,反覆輸入所購各種商品的索引和購買數量,直到商品索引號輸入「-1」結束購物流程 4 實現收銀,根據顧客所交現金,自動找零,並顯示和儲存購物清單 5 要求超市庫存商品資訊儲存在goods.txt中,購物清單儲存在檔案buy.
txt中,系統應具有友好的使用者見面
二. 系統環境
硬體環境:p4處理器,ddr記憶體
軟體環境:windows xp
開發平台:microsoft visual c++ 6.0
三. 設計思想
根據系統功能要求,首先設計收銀機系統類和商品資訊類。處理收銀機的類主要完成工作人員和顧客的登陸,以及登入後所要做的事,商品資訊類又分為單個商品資訊類和所有商品資訊類。單個商品資訊類主要處理商品的索引號,名稱,單價和數量。
所有商品資訊類主要處理商品的搜尋,修改,刪除等工作。
還需要設計乙個顧客類和工作人員類。工作人員類分為單個工作人員類和所有工作人員類。單個工作人員類用來描述工作人員資訊及他們對商品進行的改動與操作,所有工作人員類用來處理工作人員的改動。
顧客類又分為單個顧客資訊類和所有顧客資訊類。單個顧客資訊類用來描述購物流程,所有顧客資訊類用來描述顧客資訊的改動等。
四. 程式結構
1.類的設計
根據上述的設計思想,設計了「supermarket」類,」good」類,」goods」類,」customer」類,」customers」類,」worker」類和」workers」類這七個類。
資料成員:
goods gs;
consumers cs;
workers ws;//所有商品類物件,顧客類物件和工作人員類物件
函式成員:
supermarket(char gf,char cf,char wf);//初始化
~supermarket();//析構
void choice();//選擇登入方式
void choice(int n);//工作人員對庫存的操作
void shopping();//清單
void search();//查詢商品
void insert();//新增商品
void delete();//刪除商品
void setprice();//設定**
login();//顧客登陸
login(int n);//工作人員登陸
void output(charf
資料成員:
goodname//商品名稱
index//商品索引號
number//商品數量
price//商品**
函式成員:
good();
~good();//析構
good(int index,string goodname,double price,int number);//構造商品
good(const good & g); //拷貝構造商品
int getindex(); //獲取商品索引號
string getname();//獲取商品名稱
double getprice();//獲取商品單價
int getnumber();//獲取商品數目
void setprice(int price);//修改單價
void setnumber(int num); //設定數目
good operator=(const good & g);//「=」操作符過載
friend ostream & operator<<(ostream &o,good &g);//"<<"操作符過載
friend istream & operator>>(istream &i,good &g);
資料成員:
vg:商品向量
成員函式:
goods();預設構造
~goods();//析構
void add(good &g); //插入
goods(const goods & gs);// 拷貝構造
goods operator=(const goods & gs);
int search(int index);//查詢
int search(string name);//查詢
bool delete(int index);//刪除
bool delete(string name);//刪除
void sort();//排序
bool setprice(int index,int price);//設定**
good getgood(int index);//得到商品向量
vector & getallgoods();
friend goods operator-(goods &gs,goods &g);//過載運算子-
friend ostream & operator<<(ostream &o,goods &gs);過載運算子<<
friend istream & operator>>(istream &i,goods &gs); //過載運算子》
資料成員:
basket//goods的物件,所買的東西
count//所付金額
id//顧客代號
key//顧客密碼
成員函式:
consumer();//預設建構函式
~consumer();//析構
int getid();
int getkey();
double getcount();
goods getbasket();
seletegood(goods &store);//選擇商品
addgoods(goods &gs);
double bill(double cash);//餘額
friend ostream & operator<<(ostream &o,consumer &c);//過載<<
friend istream & operator>>(istream &i,consumer &c);//過載》
成員資料:
vc//顧客向量
成員函式:
void add(consumer & c);//插入
int search(int id);//查詢
void combine();//分類彙總
friend ostream & operator<<(ostream &o,consumers &cs);過載<<
friend istream & operator>>(istream &i,consumers &cs);過載》
成員資料:
id,key,name
成員函式:
worker();//預設建構函式
~worker();//析構
worker(string name,int id,int key);//拷貝建構函式
int getid();//代號
int getkey();密碼
friend ostream & operator<<(ostream &o,worker &w);//過載運算子<<
friend istream & operator>>(istream &i,worker &w);//過載運算子》
成員資料:
vw //工作人員向量
成員函式:
workers();//預設建構函式
~workers();//析構
add(worker &w);//增加工作人員
int search(int id);//查詢
friend ostream & operator<<(ostream &o,workers &ws);//過載運算子<<
friend istream & operator>>(istream &i,workers &ws);//過載運算子》
2.主程式設計
五. 問題及解決方案
1.本題總結
本題共設了七個類:supermarket類,worker類,workers類,good類,goods類,customer類和chstomers類,主要進行銷售和庫存改動。
2.本題提高
本題只是簡單地模擬乙個收銀機的執行流程,可以在本題的基礎上對其做一定的修改:
(1) 對於超市收銀機,應該還有會員優惠政策程式;
(2) 應該有更好的介面。
六. 測試案例
1.選擇登入方式
2.工作人員登陸
3.消費者登陸
七. 收穫與體會
通過一周的課程設計,我明白了寫程式一定要有乙個縝密的思路,由點及面,一步一步,腳踏實地,還要有紮實的基本功。不斷的除錯程式,在錯誤中吸取經驗,使程式更加健全。
八. 參考文獻
[1]錢能.c++程式設計教程(第二版).北京:清華大學出版社,2006.
[2]bjarne stroustrup. the c++ programming language. 北京:高等教育出版社,2001.
超市收銀機操作流程
管理後台 1 輸入商品基本資訊儲存並對其進行編碼。2 輸入供貨商資料位址 號碼盡量詳細。3 採購訂貨單輸入商品名稱 採購貨物數量然後儲存審核。4 驗收入庫單,驗收商品數量正確點右上角單據進行商品入庫。5 採購退貨單,點右上角單據輸入退貨的數量點儲存審核。收銀前台 1 掃瞄槍掃完商品條碼按d鍵輸入現金...
收銀機操作流程
pos收銀機的操作規程 一 開啟收銀機 1 開啟收銀機 1 開啟收銀機的步驟 1 開啟電源。檢查開關接觸等情況,確認無誤後開啟電源開關,並檢查其工作指示音是否正常。不間斷電源 ups 用於在市電故障時繼續提供電源,以保護裝置及資料不受毀損,市電故障時,ups將持續鳴叫以示警告。2 開啟顯示器和微型票...
收銀機保養和簡易維護方法
收銀機每天不停工作,為了保障收銀機的正常工作,降低故障的發生率,規範收銀操作,現對收銀機常見的故障以及簡易維護保養方法介紹如下 收銀機的保養 收銀機對環境的要求比較高,我們必須保障收銀台的乾淨整潔,要求如下 1.每日早班收銀員必須用微濕的布將機身 顯示器外殼 鍵盤擦乾淨。2.顯示器螢幕是液晶屏,不用...