版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 2013—2014學(xué)年第一學(xué)期</p><p><b> 實(shí)踐教學(xué)</b></p><p> 課程名稱:面向?qū)ο笳n程設(shè)計(jì)(A)</p><p> 指導(dǎo)教師: </p><p> 專(zhuān)業(yè)班級(jí):2012級(jí)網(wǎng)絡(luò)工程 2班</p><p> 教學(xué)部門(mén):計(jì)算機(jī)學(xué)院<
2、;/p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 2013 ~2014 學(xué)年第 1 學(xué)期</p><p><b> 一、課程設(shè)計(jì)題目</b></p><p><b> 模擬超市收銀系統(tǒng)</b></p><p> 二、課程設(shè)計(jì)內(nèi)容
3、(含技術(shù)指標(biāo))</p><p><b> 【問(wèn)題描述】</b></p><p> 使用文本命令行界面模擬超市收銀系統(tǒng)</p><p> 由收銀員輸入顧客的會(huì)員卡卡號(hào)(若有卡)、所購(gòu)商品的貨號(hào)等。從數(shù)據(jù)庫(kù)(或文件)中取出有關(guān)價(jià)格信息,再把這些信息返回給收銀臺(tái)。同時(shí)把該收銀臺(tái)的銷(xiāo)售總量和有關(guān)種類(lèi)商品的剩余量以及該持卡顧客的消費(fèi)情況交數(shù)據(jù)庫(kù)(或
4、文件)存儲(chǔ)以供查詢。</p><p> 另外,對(duì)沒(méi)有卡的消費(fèi)情況不記錄該顧客的消費(fèi)情況等個(gè)人信息。如果一個(gè)未持卡顧客一次性購(gòu)物滿200元,可為其發(fā)放一張會(huì)員卡,以后在該商場(chǎng)購(gòu)物可獲得9折優(yōu)惠。</p><p><b> 【任務(wù)要求】 </b></p><p> 要求:建立會(huì)員賬戶類(lèi)、商品信息類(lèi)、文件讀寫(xiě)類(lèi)、界面顯示類(lèi)等以及各相關(guān)接口類(lèi)
5、。</p><p><b> 三、進(jìn)度安排</b></p><p> 1.初步設(shè)計(jì):寫(xiě)出初步設(shè)計(jì)思路,進(jìn)行修改完善,并進(jìn)行初步設(shè)計(jì)。</p><p> 2.詳細(xì)設(shè)計(jì):根據(jù)確定的設(shè)計(jì)思想,進(jìn)一步完善初步設(shè)計(jì)內(nèi)容,按要求編寫(xiě)出數(shù)據(jù)結(jié)構(gòu)類(lèi)型定義、各算法程序、主函數(shù)。編譯分析調(diào)試錯(cuò)誤。</p><p> 3.測(cè)試分析:設(shè)
6、計(jì)幾組數(shù)據(jù)進(jìn)行測(cè)試分析,查找存在的設(shè)計(jì)缺陷,完善程序。</p><p> 4.報(bào)告撰寫(xiě):根據(jù)上面設(shè)計(jì)過(guò)程和結(jié)果,按照要求寫(xiě)出設(shè)計(jì)報(bào)告。</p><p> 5.答辯考核驗(yàn)收:教師按組(人)檢查驗(yàn)收,并提出相關(guān)問(wèn)題,以便檢驗(yàn)設(shè)計(jì)完成情況。</p><p><b> 四、基本要求</b></p><p> 1.在設(shè)計(jì)時(shí)
7、,要嚴(yán)格按照題意要求獨(dú)立進(jìn)行設(shè)計(jì),不能隨意更改。若確因條件所限,必須要改變課題要求時(shí),應(yīng)在征得指導(dǎo)教師同意的前提下進(jìn)行。 </p><p> 2.在設(shè)計(jì)完成后,應(yīng)當(dāng)場(chǎng)運(yùn)行和答辯,由指導(dǎo)教師驗(yàn)收,只有在驗(yàn)收合格后才能算設(shè)計(jì)部分的結(jié)束。 </p><p> 3.設(shè)計(jì)結(jié)束后要寫(xiě)出課程設(shè)計(jì)報(bào)告,以作為整個(gè)課程設(shè)計(jì)評(píng)分的書(shū)面依據(jù)和存檔材料。設(shè)計(jì)報(bào)告以規(guī)定格式的電子文檔書(shū)寫(xiě)、打印并裝訂,報(bào)告格式嚴(yán)
8、格按照模板要求撰寫(xiě),排版及圖、表要清楚、工整。</p><p> 從總體來(lái)說(shuō),所設(shè)計(jì)的程序應(yīng)該全部符合要求,問(wèn)題模型、求解算法以及存儲(chǔ)結(jié)構(gòu)清晰;具有友好、清晰的界面;設(shè)計(jì)要包括所需要的輔助程序,如必要的數(shù)據(jù)輸入、輸出、顯示和錯(cuò)誤檢測(cè)功能;操作使用要簡(jiǎn)便;程序的整體結(jié)構(gòu)及局部結(jié)構(gòu)要合理;設(shè)計(jì)報(bào)告要符合規(guī)范。 </p><p> 課程負(fù)責(zé)人簽名: </p>
9、<p> 2013年 11 月13 日</p><p> 選題三:模擬超市收銀系統(tǒng)</p><p><b> 摘要</b></p><p> 模擬超市收銀系統(tǒng): </p><p> 隨著計(jì)算機(jī)的發(fā)展,計(jì)算機(jī)技術(shù)已經(jīng)融入到社會(huì)生活的各個(gè)角落,把人們從以前繁瑣的手工操作中解放出來(lái),從而使信息的管理大
10、大簡(jiǎn)便起來(lái)。超市日常有大量的數(shù)據(jù)需要進(jìn)行處</p><p> 理,包括收銀員收銀時(shí)輸入的消費(fèi)者購(gòu)買(mǎi)信息、管理員輸入的入庫(kù)商品信息、管理員輸入的人員信息、日常銷(xiāo)售額的統(tǒng)計(jì)等等。面對(duì)如此大的信息量,就需要有相應(yīng)的計(jì)算機(jī)管理系統(tǒng)</p><p> 來(lái)提高工作的效率和系統(tǒng)管理的安全性。通過(guò)這樣的系統(tǒng),超市就可以由收銀員方便的在收</p><p> 銀柜臺(tái)進(jìn)行銷(xiāo)售額的錄
11、入,管理員也可以方便地進(jìn)行管理,從而減小手工操作的工作量,</p><p> 本設(shè)計(jì)就是為了模擬超市的收銀系統(tǒng)。</p><p><b> 關(guān)鍵字:</b></p><p> ?。保好嫦?qū)ο?;超市收銀系統(tǒng);文件操作</p><p> 2:類(lèi)的實(shí)現(xiàn), 入庫(kù)實(shí)現(xiàn), 顯示所有記錄, 結(jié)算的實(shí)現(xiàn),查查詢商品信息, 銷(xiāo)售實(shí)現(xiàn)
12、,查看指令,主函數(shù)實(shí)現(xiàn)。</p><p><b> 目 錄</b></p><p> 封面………………………………………………………… 1</p><p> 說(shuō)明書(shū)……………………………………………………… 2</p><p> 任務(wù)書(shū)……………………………………………………… 4</p>&l
13、t;p> 成績(jī)?cè)u(píng)定表………………………………………………… 5</p><p> 摘要………………………………………………………… 6</p><p> 關(guān)鍵詞……………………………………………………… 6</p><p> 目錄………………………………………………………… 7</p><p> 正文…………………………………
14、……………………… 8</p><p> 1 前言……………………………………………………… 8</p><p> 2 概要設(shè)計(jì)………………………………………………… 9</p><p> 3 詳細(xì)設(shè)計(jì)…………………………………………………10</p><p> 3.1文件設(shè)計(jì)……… ……………………………………11</p>
15、;<p> 3.2程序模塊設(shè)計(jì)………………………………………12</p><p> 4軟件測(cè)試…………………………………………………15</p><p> 5參考文獻(xiàn)…………………………………………………17</p><p> 6心得體會(huì)……………………………………………………18</p><p> 7附錄:程序清單…
16、…………………………………………19</p><p> 教師評(píng)語(yǔ)……………………………………………………31</p><p> 答辯記錄表…………………………………………………32</p><p><b> 前言</b></p><p><b> 問(wèn)題的描述</b></p>&
17、lt;p> 使用文本命令行界面模擬超市收銀系統(tǒng)</p><p> 由收銀員輸入顧客的會(huì)員卡卡號(hào)(若有卡)、所購(gòu)商品的貨號(hào)等。從數(shù)據(jù)庫(kù)(或文件)中取出有關(guān)價(jià)格信息,再把這些信息返回給收銀臺(tái)。同時(shí)把該收銀臺(tái)的銷(xiāo)售總量和有關(guān)種類(lèi)商品的剩余量以及該持卡顧客的消費(fèi)情況交數(shù)據(jù)庫(kù)(或文件)存儲(chǔ)以供查詢。</p><p> 另外,對(duì)沒(méi)有卡的消費(fèi)情況不記錄該顧客的消費(fèi)情況等個(gè)人信息。如果一個(gè)未持
18、卡顧客一次性購(gòu)物滿200元,可為其發(fā)放一張會(huì)員卡,以后在該商場(chǎng)購(gòu)物可獲得9折優(yōu)惠。</p><p><b> 內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)模擬超市收銀系統(tǒng)操作的程序,輸入你需要的操作(選擇相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字)程序具體功能有:</p><p> ?。?)顧客結(jié)賬{付款方式:1.會(huì)員結(jié)賬2.普通結(jié)賬}</p>&
19、lt;p><b> ?。?)增加商品</b></p><p><b> ?。?)增加會(huì)員</b></p><p> (4)查詢會(huì)員消費(fèi)記錄</p><p><b> ?。?)退出</b></p><p><b> 1.3模塊化設(shè)計(jì)</b><
20、/p><p> 為實(shí)現(xiàn)系統(tǒng)功能,本程序主要分為五個(gè)模塊。它們分別為:顧客結(jié)賬(內(nèi)含付款方式會(huì)員結(jié)賬,普通結(jié)賬);增加商品;增加會(huì)員;查詢會(huì)員消費(fèi)記錄;退出,這五個(gè)函數(shù)再通過(guò)主函數(shù)調(diào)用分別得以實(shí)現(xiàn)。</p><p> 主函數(shù),首先提供了程序運(yùn)行時(shí)的友好界面,提供客戶選擇的菜單。然后,通過(guò)</p><p> 執(zhí)行多分支選擇語(yǔ)句——switch語(yǔ)句,分別實(shí)現(xiàn)其它各個(gè)函數(shù)
21、的調(diào)用功能。</p><p> 其它各個(gè)函數(shù)的功能分別如下:</p><p> 顧客結(jié)賬:{1.會(huì)員結(jié)賬vip_count() 2.普通結(jié)賬count()} </p><p> 商品入庫(kù):input() </p><p> 增加會(huì)員:CClientele() </p><p> 查詢會(huì)員消費(fèi)記錄:R
22、ec.read_record(); </p><p> 顯示所有商品:all();</p><p> 找零:change();</p><p><b> ?。哺乓O(shè)計(jì)</b></p><p> 2.1 算法要點(diǎn)描述與實(shí)現(xiàn)思想</p><p> 從需求分析的角度來(lái)看,這個(gè)超市管理系統(tǒng)的需求如
23、下所示:</p><p> 該系統(tǒng)的功能主要是模擬超市的收銀的過(guò)程,所以不需要設(shè)計(jì)數(shù)據(jù)庫(kù),當(dāng)進(jìn)入系統(tǒng),就會(huì)顯示倉(cāng)庫(kù)里的所有貨物,當(dāng)管理員輸入貨物編號(hào)(索引號(hào))時(shí),就會(huì)提示你需要買(mǎi)的數(shù)量,輸入完成就會(huì)提示你購(gòu)買(mǎi)成功。再就是付款。</p><p> 根據(jù)系統(tǒng)需求,這個(gè)版本的超市管理系統(tǒng)是一個(gè)簡(jiǎn)單的管理系統(tǒng)。</p><p> 2.2 面向?qū)ο蟪绦蛟O(shè)計(jì)</p&
24、gt;<p> 本程序中,運(yùn)用了多種函數(shù)。首先商品入庫(kù)、加入會(huì)員、顯示主界面、再</p><p> 按數(shù)字輸入進(jìn)行選擇性操作。在主函數(shù)中分別調(diào)用各項(xiàng)的函數(shù)。 3詳細(xì)設(shè)計(jì)</p><p><b> 3.1文件設(shè)計(jì)</b></p><p> 本程序中
25、,運(yùn)用了多種函數(shù)。首先商品入庫(kù)、加入會(huì)員、顯示主界面、再按數(shù)字輸入進(jìn)行選擇性操作。在主函數(shù)中分別調(diào)用各項(xiàng)的函數(shù)。</p><p><b> //商品入庫(kù)</b></p><p> void Product::input(){</p><p> cout<<"編號(hào):";</p><p>
26、;<b> cin>>id;</b></p><p> ifstream infile("Goods.dat",ios::in|ios::binary); //判斷商品是否已存在</p><p> if(!infile){</p><p><b> d_show
27、();</b></p><p><b> exit;</b></p><p><b> }</b></p><p> while(infile){</p><p><b> int n;</b></p><p> infile.re
28、ad((char*)&G1,sizeof(G1));</p><p> n=infile.gcount();</p><p> if(n==sizeof(G1))</p><p> if(G1.id==id){</p><p> cout<<"貨物已存在,請(qǐng)核實(shí)后再輸入!"<<end
29、l;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> infile.close();</p><p> cout<<"商品名:
30、";</p><p> cin>>Goodsname;</p><p> cout<<"單價(jià):";</p><p> cin>>price;</p><p> cout<<"數(shù)量:";</p><p> cin&
31、gt;>number;</p><p> G1.Setdata(id,Goodsname,price,number);</p><p> ofstream outfile("Goods.dat",ios::app|ios::binary);</p><p> if(!outfile){</p><p><
32、b> d_show();</b></p><p><b> exit;</b></p><p><b> }</b></p><p> outfile.write((char*)&G1,sizeof(G1));</p><p> outfile.close();&
33、lt;/p><p><b> b_show();</b></p><p><b> }</b></p><p><b> //增加會(huì)員</b></p><p> void Clientele::CClientele(){
34、 </p><p> cout<<"輸入卡號(hào):";</p><p><b> cin>>num;</b></p><p> ofstream outfile("Clientele.dat",ios::app|ios::binary); //將文件輸出提前
35、定義,為了能創(chuàng)建文件</p><p> if(outfile){</p><p> ifstream infile("Clientele.dat",ios::in|ios::binary); //判斷會(huì)員是否已存在</p><p> if(!infile){</p><p><b> d_show()
36、;</b></p><p><b> exit;</b></p><p><b> }</b></p><p> while(infile){</p><p><b> int n;</b></p><p> infile.read
37、((char*)&C1,sizeof(C1));</p><p> n=infile.gcount();</p><p> if(n==sizeof(C1))</p><p> if(C1.num==num){</p><p> cout<<"該會(huì)員以存在,請(qǐng)核實(shí)后再輸入!"<<en
38、dl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> infile.close();
39、 </p><p><b> }</b></p><p> cout<<"輸入姓名:";</p><p> cin>>name;</p><p> C1.Setdata(num,name);</p><p> outfile.writ
40、e((char*)&C1,sizeof(C1));</p><p> outfile.close();</p><p><b> b_show();</b></p><p><b> }</b></p><p> 3.2程序模塊設(shè)計(jì)</p><p> 本程
41、序執(zhí)行的入口是main函數(shù),在main函數(shù)中首先調(diào)用了界面類(lèi)中的各項(xiàng)操作的函數(shù),在界面類(lèi)中選擇所需要進(jìn)行的操作,在switch語(yǔ)句進(jìn)行界面顯示,實(shí)現(xiàn)超市收銀系統(tǒng)算法的操作</p><p><b> while(1){</b></p><p> show.a_show();</p><p> show.b_show();</p>
42、<p> Goods.all();</p><p> show.b_show();</p><p> cout<<"1.顧客結(jié)賬 2.增加商品 3.增加會(huì)員 \n\n4.查詢會(huì)員消費(fèi)記錄 \t0.退出\n";</p><p> show.b_show();</p><
43、;p> cout<<"請(qǐng)選擇:";</p><p><b> cin>>i;</b></p><p> show.b_show();</p><p> switch (i){</p><p><b> case 1:</b></p&g
44、t;<p> cout<<"付款方式:1.會(huì)員結(jié)賬 2.普通結(jié)賬"<<endl<<"請(qǐng)選擇:";</p><p><b> cin>>n;</b></p><p> show.b_show();</p><p> switch(n
45、){</p><p><b> case 1:</b></p><p> VIP.SClientele();</p><p> Goods.vip_count();</p><p> show.c_show();</p><p><b> break;</b><
46、;/p><p><b> case 2:</b></p><p> Goods.count();</p><p> show.c_show();</p><p><b> break;</b></p><p><b> }</b></p>
47、;<p><b> break;</b></p><p><b> case 2:</b></p><p> Goods.input();</p><p><b> break;</b></p><p><b> case 3:</b&g
48、t;</p><p> VIP.CClientele();</p><p><b> break;</b></p><p><b> case 4:</b></p><p> Rec.read_record();</p><p><b> break;&l
49、t;/b></p><p><b> case 0:</b></p><p><b> return 1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b
50、> return 0;</b></p><p><b> }</b></p><p><b> 4軟件測(cè)試</b></p><p> 4.1調(diào)試過(guò)程中的主要問(wèn)題</p><p> 由于本程序是分界面設(shè)計(jì)的,所以運(yùn)行時(shí)選擇完操作并且執(zhí)行完操作后,又會(huì)繼續(xù)回到主菜單,供用戶
51、繼續(xù)選擇操作并執(zhí)行操作。對(duì)于本程序的調(diào)試運(yùn)行,總體上情況良好。但是,其中也出現(xiàn)了一些小問(wèn)題。我發(fā)現(xiàn)的主要問(wèn)題有:</p><p> 從文件讀取數(shù)據(jù)到vector時(shí),有時(shí)會(huì)產(chǎn)生錯(cuò)誤;以及保存到文件中時(shí),也存在格式上的問(wèn)題。后來(lái)這些問(wèn)題均以通過(guò)探究與測(cè)試中解決。</p><p><b> 4.2 測(cè)試結(jié)果</b></p><p> ?。?)主
52、菜單(如圖)</p><p><b> (2)商品入庫(kù)</b></p><p><b> 增加新會(huì)員</b></p><p><b> ?。?)普通結(jié)賬</b></p><p><b> 會(huì)員結(jié)賬</b></p><p>
53、(6)查詢會(huì)員消費(fèi)記錄(如圖)</p><p><b> 五參考文獻(xiàn)</b></p><p> [1]曹靜C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程。北京:中國(guó)水利出版社,2010</p><p> [2] 陳維興 林小茶,C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)。北京:清華大學(xué)出版社,2004</p><p><b>
54、[3] 百度文庫(kù)</b></p><p><b> 六心得體會(huì)</b></p><p> 在為期幾周的課程設(shè)計(jì)中,我通過(guò)完成本次任務(wù)體會(huì)頗多,學(xué)到很多東西。</p><p> 利用設(shè)計(jì)這次超市管理系統(tǒng)的機(jī)會(huì)使我熟練的掌握了這學(xué)期所學(xué)的c++面向?qū)ο缶幊?,也更加深入理解了超市收銀系統(tǒng)的操作原理和解了文件的用法以及其作用,為日后的
55、如何熟練使用文件打下堅(jiān)實(shí)的基礎(chǔ)。此外,本算法的實(shí)現(xiàn)采用了c++面向?qū)ο缶幊?,使我?duì)基類(lèi)的構(gòu)建,派生類(lèi)的使用,有更深層次的認(rèn)識(shí)。</p><p> 在這次課程設(shè)計(jì)中,我還懂得了程序開(kāi)發(fā)的一些比較重要的步驟,比如需求分析、總體設(shè)計(jì)、程序模塊設(shè)計(jì)(含功能需求、程序代碼設(shè)計(jì)與分析、運(yùn)行結(jié)果)等。總之,通過(guò)這次課程設(shè)計(jì)我們收獲頗豐,相信會(huì)為我以的學(xué)習(xí)和工作帶來(lái)很大的好處。最重要的還是激發(fā)了我對(duì)編程的興趣和熱情,讓我從一個(gè)
56、只懂理論變成了能做一些小型程序,讓我們對(duì)編程更加熱愛(ài)了。</p><p> 這次的課程設(shè)計(jì)經(jīng)過(guò)多次的資料查詢,以及各隊(duì)友的積極參與,使這次的實(shí)踐課進(jìn)行的非常成功,在學(xué)習(xí)的過(guò)程中,同時(shí)也增強(qiáng)了集體的凝聚力。同時(shí)程序設(shè)計(jì)最重要的是要敢于創(chuàng)新,而不應(yīng)該止步于舊知識(shí)的應(yīng)用,唯有不安于現(xiàn)狀,才會(huì)有更大的發(fā)展空間。</p><p><b> 七附錄:程序清單</b></
57、p><p> #include<iostream></p><p> #include<string></p><p> #include<fstream></p><p> using namespace std;</p><p><b> //顯示類(lèi)</b&
58、gt;</p><p> class Show{</p><p><b> public:</b></p><p> void a_show(){</p><p> cout<<"\t******************************************************
59、*********\n";</p><p> cout<<"\t** 歡 迎 來(lái) 到 超 級(jí) 超 市 **\n";</p><p> cout<<"\t****************************************************
60、***********\n";</p><p><b> }</b></p><p> static void b_show(){</p><p> cout<<"------------------------------------------------------\n";</p>
61、;<p><b> }</b></p><p> void c_show(){</p><p> cout<<"\n\t************************歡迎再次光臨!*************************\n\n";</p><p> cout<<&q
62、uot;\t**************************************************************\n\n\n\n";</p><p><b> }</b></p><p> static void d_show(){</p><p> cout<<"open erro
63、r!";</p><p><b> }</b></p><p><b> };</b></p><p><b> //會(huì)員類(lèi)</b></p><p> class Clientele:public Show{</p><p> int
64、 num; //卡號(hào)</p><p> char name[20]; //會(huì)員名</p><p><b> public:</b></p><p> Clientele(){ //初始化</p><p><b> num=0;<
65、;/b></p><p> name[0]=0;</p><p><b> }</b></p><p> Clientele(int numl,char *namel){</p><p> Setdata(numl,namel);</p><p><b> }</b
66、></p><p> ~Clientele(){}</p><p> int Getnum(){return num;}</p><p> char* Getname(){return name;}</p><p> void Setdata(int,char*); //對(duì)Clientele進(jìn)行賦值<
67、/p><p> void ShowClientele(); //顯示會(huì)員信息</p><p> void SClientele(); //搜索會(huì)員</p><p> void CClientele(); //添加會(huì)員</p><p><b&
68、gt; };</b></p><p><b> //產(chǎn)品類(lèi)</b></p><p> class Product:public Show{</p><p><b> public:</b></p><p> void input(); //商品入
69、庫(kù)</p><p> void count(); //普通結(jié)賬</p><p> void vip_count(); //會(huì)員結(jié)賬</p><p> void all(); //顯示所有商品</p><p> void change();
70、 //找零</p><p> void Setdata(int,char*,int,int); //對(duì)Product進(jìn)行賦值</p><p> void Show(int);</p><p> void Showl(){</p><p> cout<<id<<"\t&
71、quot;<<name<<"\t"<<price<<"\t"<<number<<endl;</p><p><b> }</b></p><p> Product(){ //初始化</p><p>&l
72、t;b> id=0;</b></p><p> name[0]=0;</p><p><b> price=0;</b></p><p><b> number=0;</b></p><p><b> }</b></p><p&g
73、t; Product(int idl,char *namel,int pricel,int numberl){</p><p> Setdata(idl,namel,pricel,numberl);</p><p><b> }</b></p><p> ~Product(){}</p><p> int Ge
74、tid(){return id;}</p><p> char* Getname(){return name;}</p><p> int Getprice(){return price;}</p><p> int Getnumber(){return number;}</p><p><b> private:<
75、/b></p><p> int id; //商品編號(hào)</p><p> char name[20]; //商品名</p><p> int price; //單價(jià)</p><p> int number; //數(shù)量&
76、lt;/p><p><b> };</b></p><p> //記錄會(huì)員消費(fèi)記錄類(lèi)</p><p> class record:public Clientele,public Product{</p><p><b> private:</b></p><p> in
77、t num,goodsid,goodsprice,goodsnum;</p><p> char name[20],goodsname[20];</p><p><b> public:</b></p><p><b> record(){</b></p><p><b> num
78、=0;</b></p><p> name[0]=0;</p><p> goodsid=0;</p><p> goodsname[0]=0;</p><p> goodsprice=0;</p><p> goodsnum=0;</p><p><b> }
79、</b></p><p> record(int numl,char*namel,int goodsidl,char*goodsnamel,int goodspricel,int goodsnuml):Clientele(numl,namel),Product(goodsidl,goodsnamel,goodspricel,goodsnuml){</p><p> Setd
80、ata(numl,namel,goodsidl,goodsnamel,goodspricel,goodsnuml);</p><p><b> }</b></p><p> ~record(){}</p><p><b> //賦值</b></p><p> void Setdata(int
81、 numl,char*namel,int goodsidl,char*goodsnamel,int goodspricel,int goodsnuml){</p><p><b> num=numl;</b></p><p> strcpy_s(name,namel);</p><p> goodsid=goodsidl;</p&g
82、t;<p> strcpy_s(goodsname,goodsnamel);</p><p> goodsprice=goodspricel;</p><p> goodsnum=goodsnuml;</p><p><b> }</b></p><p> void viprecord();
83、 //記錄會(huì)員消費(fèi)</p><p> void read_record(); //查詢記錄</p><p> void Show();</p><p><b> };</b></p><p><b> //全局變量<
84、/b></p><p> Clientele C1;</p><p> Product G1;</p><p> record R1;</p><p> int num,i,j,n,id,price,number;</p><p> char name[20],Goodsname[20];</p&
85、gt;<p> //對(duì)Clientele進(jìn)行賦值</p><p> void Clientele::Setdata(int numl,char *namel){</p><p><b> num=numl;</b></p><p> strcpy_s(name,namel);</p><p>&
86、lt;b> }</b></p><p> //Product賦值</p><p> void Product::Setdata(int idl,char *namel,int pricel,int numberl){</p><p><b> id=idl;</b></p><p> strc
87、py_s(name,namel);</p><p> price=pricel;</p><p> number=numberl;</p><p><b> }</b></p><p><b> //查詢會(huì)員信息</b></p><p> void Clientel
88、e::SClientele(){ </p><p> cout<<"輸入卡號(hào):";</p><p> cin>>num;</p><p><b> b_show();</b></p><p> ifstream in
89、file("Clientele.dat",ios::in|ios::binary);</p><p> if(!infile){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }&l
90、t;/b></p><p> while(infile){</p><p><b> int n;</b></p><p> infile.read((char*)&C1,sizeof(C1));</p><p> n=infile.gcount();</p><p> i
91、f(n==sizeof(C1))</p><p> if(C1.num==num){</p><p> C1.ShowClientele();</p><p><b> break;</b></p><p><b> }</b></p><p><b>
92、}</b></p><p> infile.close();</p><p><b> b_show();</b></p><p><b> }</b></p><p><b> //記錄新會(huì)員</b></p><p> void
93、Clientele::CClientele(){ </p><p> cout<<"輸入卡號(hào):";</p><p><b> cin>>num;</b></p><p> ofstream outfile("Clien
94、tele.dat",ios::app|ios::binary); //將文件輸出提前定義,為了能創(chuàng)建文件</p><p> if(outfile){</p><p> ifstream infile("Clientele.dat",ios::in|ios::binary); //判斷會(huì)員是否已存在</p><p> i
95、f(!infile){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }</b></p><p> while(infile){</p><p><b>
96、 int n;</b></p><p> infile.read((char*)&C1,sizeof(C1)); //從文件中讀取C1數(shù)據(jù),長(zhǎng)度為C1</p><p> n=infile.gcount(); //gcount()用來(lái)獲得實(shí)際讀取的字節(jié)數(shù),不出錯(cuò)n是等于C1的長(zhǎng)度</p><p> if(n
97、==sizeof(C1)) //如果n等于C1的長(zhǎng)度,就可以執(zhí)行</p><p> if(C1.num==num){</p><p> cout<<"該會(huì)員以存在,請(qǐng)核實(shí)后再輸入!"<<endl;</p><p><b> return;</b></p>
98、<p><b> }</b></p><p><b> }</b></p><p> infile.close(); </p><p><b> }</b></p>&
99、lt;p> cout<<"輸入姓名:";</p><p> cin>>name;</p><p> C1.Setdata(num,name);</p><p> outfile.write((char*)&C1,sizeof(C1));</p><p> outfile.cl
100、ose();</p><p><b> b_show();</b></p><p><b> }</b></p><p><b> //商品入庫(kù)</b></p><p> void Product::input(){</p><p> cout
101、<<"編號(hào):";</p><p><b> cin>>id;</b></p><p> ifstream infile("Goods.dat",ios::in|ios::binary); //判斷商品是否已存在</p><p> if(!in
102、file){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }</b></p><p> while(infile){</p><p><b> int
103、n;</b></p><p> infile.read((char*)&G1,sizeof(G1));</p><p> n=infile.gcount();</p><p> if(n==sizeof(G1))</p><p> if(G1.id==id){</p><p> cout&
104、lt;<"貨物已存在,請(qǐng)核實(shí)后再輸入!"<<endl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> infile.close();&
105、lt;/p><p> cout<<"商品名:";</p><p> cin>>Goodsname;</p><p> cout<<"單價(jià):";</p><p> cin>>price;</p><p> cout<<
106、;"數(shù)量:";</p><p> cin>>number;</p><p> G1.Setdata(id,Goodsname,price,number);</p><p> ofstream outfile("Goods.dat",ios::app|ios::binary);</p><p
107、> if(!outfile){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }</b></p><p> outfile.write((char*)&G1,sizeof(G
108、1));</p><p> outfile.close();</p><p><b> b_show();</b></p><p><b> }</b></p><p><b> //顯示所有商品</b></p><p> void Produ
109、ct::all(){</p><p> ifstream infile("Goods.dat",ios::in|ios::binary);</p><p> if(!infile){ //如果打開(kāi)文件失敗,則創(chuàng)建文件</p><p> ofstream outfile(&q
110、uot;Goods.dat",ios::binary);</p><p> outfile.close();</p><p><b> }</b></p><p> cout<<"編號(hào)\t"<<"名字\t"<<"單價(jià)\t"<&l
111、t;"數(shù)量\t"<<endl;</p><p> while(infile){</p><p><b> int n;</b></p><p> infile.read((char*)&G1,sizeof(G1));</p><p> n=infile.gcount();&
112、lt;/p><p> if(n==sizeof(G1))</p><p> G1.Showl();</p><p><b> }</b></p><p> infile.close();</p><p><b> }</b></p><p>&l
113、t;b> //普通結(jié)賬</b></p><p> void Product::count(){</p><p> int s=0,S=0,k;</p><p> cout<<"結(jié)束輸入按“0”"<<endl;</p><p><b> do{</b>
114、</p><p> cout<<"商品編號(hào):";</p><p><b> cin>>i;</b></p><p> cout<<"購(gòu)買(mǎi)數(shù)量:";</p><p><b> cin>>j;</b><
115、/p><p><b> b_show();</b></p><p> ifstream infile("Goods.dat",ios::in|ios::binary);</p><p> if(!infile){</p><p><b> d_show();</b></
116、p><p><b> exit;</b></p><p><b> }</b></p><p> while(infile){</p><p><b> int n;</b></p><p> infile.read((char*)&G1,
117、sizeof(G1));</p><p> n=infile.gcount();</p><p> if(n==sizeof(G1))</p><p> if(G1.id==i){</p><p> G1.Show(j);</p><p><b> b_show();</b></p
118、><p> s=G1.price*j; //導(dǎo)入單價(jià)和購(gòu)買(mǎi)數(shù)量,進(jìn)行結(jié)算</p><p><b> S=S+s;</b></p><p><b> break;</b></p><p><b> }</b></p&g
119、t;<p><b> }</b></p><p> infile.close();</p><p> }while(i!=0);</p><p> cout<<"金額:"<<S<<endl;</p><p> cout<<&quo
120、t;收款:";</p><p><b> cin>>k;</b></p><p> cout<<"找零:"<<k-S<<endl;</p><p> if(S>200){ //消費(fèi)超過(guò)200,辦理會(huì)員</
121、p><p> cout<<"消費(fèi)已超過(guò)200,可辦理會(huì)員,“y/n”"<<endl;</p><p><b> char l;</b></p><p><b> cin>>l;</b></p><p><b> if(l='
122、;y')</b></p><p> C1.CClientele();</p><p><b> }</b></p><p><b> b_show();</b></p><p><b> }</b></p><p><b
123、> //會(huì)員結(jié)賬 </b></p><p> void Product::vip_count(){</p><p> int s=0,S=0,k;</p><p> cout<<"結(jié)束輸入按“0”"<<endl;</p><p><b> do{</b&g
124、t;</p><p> cout<<"商品編號(hào):";</p><p><b> cin>>i;</b></p><p> cout<<"購(gòu)買(mǎi)數(shù)量:";</p><p><b> cin>>j;</b>&l
125、t;/p><p> ifstream infile("Goods.dat",ios::in|ios::binary);</p><p> if(!infile){</p><p><b> d_show();</b></p><p><b> exit;</b></p&
126、gt;<p><b> }</b></p><p> while(infile){</p><p><b> int n;</b></p><p> infile.read((char*)&G1,sizeof(G1));</p><p> n=infile.gcoun
127、t();</p><p> if(n==sizeof(G1))</p><p> if(G1.id==i){</p><p> G1.Show(j);</p><p><b> b_show();</b></p><p> s=G1.price*j;
128、 //導(dǎo)入單價(jià)和購(gòu)買(mǎi)數(shù)量,進(jìn)行結(jié)算</p><p><b> S=S+s;</b></p><p> R1.viprecord();</p><p><b> break;</b></p><p><b> }</b></p><p&g
129、t;<b> }</b></p><p> infile.close();</p><p> }while(i!=0);</p><p> cout<<"金額:"<<S<<endl;</p><p> cout<<"會(huì)員價(jià):"
130、;<<S*0.9<<endl;</p><p> cout<<"收款:";</p><p><b> cin>>k;</b></p><p> cout<<"找零:"<<k-(S*0.9)<<endl;</p&
131、gt;<p><b> b_show();</b></p><p><b> }</b></p><p> //將會(huì)員消費(fèi)記錄到文檔record中</p><p> void record::viprecord(){</p><p> ofstream outfile(&qu
132、ot;record.dat",ios::out|ios::app|ios::binary);</p><p> if(!outfile){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }&l
133、t;/b></p><p> Setdata(C1.Getnum(),C1.Getname(),G1.Getid(),G1.Getname(),G1.Getprice(),j);</p><p> outfile.write((char*)&R1,sizeof(R1));</p><p> outfile.close();</p>
134、<p><b> }</b></p><p> //查詢會(huì)員消費(fèi)記錄</p><p> void record::read_record(){</p><p><b> int m;</b></p><p> ifstream infile("record.dat&qu
135、ot;,ios::in|ios::binary);</p><p> if(!infile){</p><p><b> d_show();</b></p><p><b> exit;</b></p><p><b> }</b></p><p&g
136、t; cout<<"輸入查詢會(huì)員號(hào):";</p><p><b> cin>>m;</b></p><p><b> b_show();</b></p><p> while(infile){</p><p><b> int n;&l
137、t;/b></p><p> infile.read((char*)&R1,sizeof(R1));</p><p> n=infile.gcount();</p><p> if(n==sizeof(R1))</p><p> if(R1.num==m){</p><p> R1.Show()
138、;</p><p><b> b_show();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //會(huì)員顯示&
139、lt;/b></p><p> void Clientele::ShowClientele(){</p><p> cout<<"會(huì)員卡號(hào):"<<num<<endl<<"會(huì)員名:"<<name<<endl;</p><p>&
140、lt;b> }</b></p><p><b> //商品顯示</b></p><p> void Product::Show(int j){</p><p> cout<<"編號(hào)\t"<<"名字\t"<<"單價(jià)\t"<
141、;<"余量\t"<<endl<<id<<"\t"<<name<<"\t"<<price<<"\t"<<number-j<<endl;</p><p><b> }</b></p>&l
142、t;p> //顯示會(huì)員消費(fèi)記錄</p><p> void record::Show(){</p><p> cout<<"會(huì)員卡號(hào):"<<num<<endl<<"會(huì)員名:"<<name<<endl<<"商品編號(hào):"<<go
143、odsid<<endl<<"商品名:"<<goodsname<<endl<<"單價(jià):"<<goodsprice<<endl<<"數(shù)量"<<goodsnum<<endl;</p><p><b> }</b><
144、;/p><p><b> //主函數(shù)</b></p><p> int main(){</p><p> Clientele VIP;</p><p> Product Goods;</p><p> record Rec;</p><p> Show show;&
145、lt;/p><p><b> int i,n;</b></p><p><b> while(1){</b></p><p> system("cls");</p><p> show.a_show();</p><p> show.b_show()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市收銀系統(tǒng)課程設(shè)計(jì)
- 超市收銀管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)超市收銀系統(tǒng)
- 課程設(shè)計(jì)---超市收銀管理系統(tǒng)設(shè)計(jì)
- 超市收銀管理系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--超市收銀系統(tǒng)
- 超市收銀程序java課程設(shè)計(jì)
- 面向?qū)ο笤O(shè)計(jì)課程設(shè)計(jì)--- 基于uml的超市進(jìn)貨管理系統(tǒng)設(shè)計(jì)
- j2ee課程設(shè)計(jì)超市收銀系統(tǒng)
- 《面向?qū)ο笳n程設(shè)計(jì)》課程設(shè)計(jì)---媒體管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)—超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--超市收銀管理
- 庫(kù)存管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)---超市收銀管理系統(tǒng)
- 面向?qū)ο笳n程設(shè)計(jì)--模擬科學(xué)計(jì)算器
- 面向?qū)ο笳n程設(shè)計(jì)報(bào)告
- 面向?qū)ο笳n程設(shè)計(jì)--- 工資管理系統(tǒng)
- c++課程設(shè)計(jì)面向?qū)ο笳n程設(shè)計(jì)--銀行管理系統(tǒng)
- 面向?qū)ο笳n程設(shè)計(jì)--長(zhǎng)途客運(yùn)售票管理系統(tǒng)
- 面向?qū)ο蠹夹g(shù)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛘n程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論