版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 一、 設(shè)計目的2</b></p><p><b> 二、設(shè)計內(nèi)容2</b></p><p><b> 三、設(shè)計要求2</b></p><p><b> 四、設(shè)計過
2、程3</b></p><p> 1、面向?qū)ο蠓治?</p><p> 2、數(shù)據(jù)結(jié)構(gòu)分析7</p><p> 3、 系統(tǒng)執(zhí)行流程8</p><p> 五、 程序運行結(jié)果11</p><p> 六、 設(shè)計總結(jié)17</p><p><b> 參考文獻17
3、</b></p><p><b> 附錄18</b></p><p><b> 圖書銷售管理系統(tǒng)</b></p><p><b> 設(shè)計目的</b></p><p> 本圖書銷售管理系統(tǒng),主要用于小型的書店,進行簡單的圖書的管理,為了能夠更好的管理書店的銷
4、售的情況和庫存的情況書店銷售管理系統(tǒng)主要的功能有:</p><p> (1)圖書入庫管理:維護入庫圖書信息,圖書編號、書名、價格等,自動計算庫存。</p><p> ?。?)圖書查詢統(tǒng)計:可以根據(jù)圖書分類、出版社、書名、作者等條件查詢圖書的詳細信息。</p><p> ?。?)銷售管理:銷售過的圖書都記錄在銷售列表中,方便統(tǒng)計收入。圖書銷售后,要記錄圖書庫存,按每
5、天統(tǒng)計銷售額、每個月或季度生成報表,并生成暢銷書單。</p><p><b> 二、設(shè)計內(nèi)容</b></p><p> (1) 圖書信息包括書名、書號、作者、出版社、單價、庫存數(shù)量、進價、售價、利潤;</p><p> (2)用戶登錄界面設(shè)計</p><p> (3)信息維護:包括子模塊有增加圖書信息、刪除圖書信
6、息、修改圖書信息</p><p> (4 ) 查詢功能:可按書名查詢、作者查詢、或出版社查詢</p><p> (5) 排序功能:能實現(xiàn)按圖書銷售利潤進行排序的功</p><p><b> 三、設(shè)計要求</b></p><p> (1) 只能使用C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀</p>
7、<p> ?。?) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p> ?。?) 學(xué)生可自動增加新功能模塊(視情況可另外加分)</p><p> ?。?) 寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔</p><p><b> 四、設(shè)計過程</b></p><p><b> 1、
8、面向?qū)ο蠓治?</b></p><p><b> ?。?)對象模型設(shè)計</b></p><p><b> ?。?)各個類設(shè)計</b></p><p> 系統(tǒng)中說明了4個類,每個類的詳細設(shè)計如下:</p><p><b> 1.Book類</b></p>
9、;<p> class book{ //book基類</p><p> protected:</p><p> string name;//名稱</p><p> float price; //價格</p><p> int num; //編號</p><p> int kucun,xcl,
10、salel; //庫存,現(xiàn)存量,銷售量</p><p><b> public:</b></p><p> int getnum(){</p><p> return num;} //編號接口函數(shù)</p><p> string getname(){//名稱接口函數(shù)</p><p> r
11、eturn name;}</p><p> float getprice(){return price;} //價格接口函數(shù)</p><p> int getkucun(){return kucun;} //庫存量接口函數(shù)</p><p> int getxcl(){return xcl;} //現(xiàn)存量接口函數(shù)</p><p> in
12、t getsalel(){return salel;} //銷售量接口函數(shù)</p><p> virtual void input()=0; //輸入虛函數(shù)</p><p> virtual void output()=0; //輸出虛函數(shù)</p><p> 說明:Book類是一個基類,用于定義圖書基本的信息。例如:其中string getname()是一個
13、接口函數(shù),能獲得圖書的姓名。</p><p> 2.Yule(娛樂類)</p><p> class yule:public book{//娛樂的派生類</p><p><b> public:</b></p><p> void input(){//輸入</p><p> cin>
14、;>name;</p><p> cin>>num; </p><p> cin>>price;</p><p> cin>>kucun;</p><p> cin>>salel;</p><p><b> cin>>xcl;<
15、/b></p><p><b> }</b></p><p> void output(){//輸出</p><p> cout<<"Yule:"<<endl;</p><p> cout<<name<<" "<&
16、lt;num<<" "<<price<<" "<<kucun<<" "<<salel<<" "<<xcl<<endl;</p><p><b> }</b></p><p> v
17、oid compute(){//計算售出剩余函數(shù)</p><p> int counts;</p><p> cout<<"輸入售出的圖書的本數(shù)"<<endl;</p><p> cin>>counts;</p><p> cout<<"售后剩余:"
18、;<<endl;</p><p> kucun=kucun-counts;//計算庫存量</p><p> salel=salel+counts;//計算銷售量</p><p> xcl=xcl-counts;//計算剩余量</p><p> 說明: yule類用于定義娛樂圖書的信息,它是Book類的公有派生類。其中:&l
19、t;/p><p> Compute()是一個計算售出圖書數(shù)量和剩余的函數(shù),input()和 output()函數(shù)是對圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。</p><p> study(學(xué)習(xí)類圖書)</p><p> class study:public book{//學(xué)習(xí)類</p><p><b> publi
20、c:</b></p><p> void input(){</p><p> cin>>name;</p><p> cin>>num; </p><p> cin>>price;</p><p> cin>>kucun;</p>&
21、lt;p> cin>>salel;</p><p><b> cin>>xcl;</b></p><p><b> }</b></p><p> void output(){</p><p> cout<<"Learn:"<
22、;<endl;</p><p> cout<<name<<" "<<num<<" "<<price<<" "<<kucun<<" "<<salel<<" "<<xcl<&
23、lt;endl;</p><p><b> }</b></p><p> void compute1(){</p><p> int counts;</p><p> cout<<"輸入售出的圖書的本數(shù)"<<endl;</p><p> cin
24、>>counts;</p><p> cout<<"售后剩余:"<<endl;</p><p> kucun=kucun-counts;</p><p> salel=salel+counts;</p><p> xcl=xcl-counts;</p><p&
25、gt; study類用于定義學(xué)習(xí)類圖書的信息,它是Book類的公有派生類。其中:</p><p> Compute1()是一個計算售出圖書數(shù)量和剩余的函數(shù),input()和 output()函數(shù)是對圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。</p><p> operate(功能類)</p><p> typedef vector<yule
26、> STRVEC;//定義stl模版的容器</p><p> typedef vector<study> STRVEC1;</p><p> class operate{ //定義功能類 </p><p> STRVEC strvec;</p><p> STRVEC1 strvec1
27、;</p><p><b> public:</b></p><p> void search_yulenum(int m)//娛樂類圖書按編號查找</p><p> void search_yulename(string s)//查找娛樂類圖書按名稱</p><p> void del_yulenum(int
28、n)//刪除娛樂類圖書按編號</p><p> void del_yulename(string p)//按圖書名稱刪除</p><p> void add_study()//添加學(xué)習(xí)類圖書的基本信息</p><p> void add_yule()//添加娛樂類圖書的基本信息</p><p> void search_studynu
29、m(int m)//查找學(xué)習(xí)類圖書的編號</p><p> void search_studyname(string s)//查找學(xué)習(xí)類圖書的名稱</p><p> void xiugai_yule(int m)//修改娛樂類圖書的剩余量</p><p> void xiugai_study(int m)//修改學(xué)習(xí)類圖書的剩余量</p><
30、;p> void del_studynum(int n)//刪除售完圖書</p><p> void del_studyname(string p) //按名稱刪除圖書</p><p> void show_yule()//顯示娛樂類圖書</p><p> void show_study()//顯示學(xué)習(xí)類圖書</p><p>
31、 void saleamounts()//計算銷售額</p><p> void changxiao1()//娛樂類圖書暢銷</p><p> void changxiao()//學(xué)習(xí)類圖書暢銷</p><p> void save()//娛樂類入庫單</p><p> void save1()//學(xué)習(xí)類入庫單</p>
32、<p> void load()//讀取娛樂類文件</p><p> void load1()//讀取學(xué)習(xí)類文件</p><p> void Menu()//應(yīng)用菜單</p><p> 說明:operate類用來實現(xiàn)圖書管理系統(tǒng)的功能,它是用來查找、添加、刪除圖書的信息的基本點的信息,對系統(tǒng)進行維護,生成入庫單、暢銷書和一天的銷售額。</p&
33、gt;<p><b> 2、數(shù)據(jù)結(jié)構(gòu)分析</b></p><p> 書店銷售管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):</p><p><b> 系統(tǒng)執(zhí)行流程</b></p><p> (1)主頁面流程圖如圖(1)</p><p> 圖(1)主頁面流程圖</p><p>&
34、lt;b> (2)顧客登陸</b></p><p><b> 簡述:</b></p><p> 用戶在圖書銷售系統(tǒng)里顧客登陸并查詢圖書內(nèi)容。</p><p><b> 基本流程:</b></p><p> 1 顧客:在圖書銷售系統(tǒng)畫面,選擇顧客登陸,顯示圖書基本信息,按
35、提示內(nèi)容進行查找</p><p> 2 查詢:顧客在圖書銷售系統(tǒng)中能查詢圖書的信息;</p><p> 3 顯示:顧客能在顧客界面能看到最近的圖書;</p><p><b> 4 結(jié)束。</b></p><p><b> 流程圖如圖(2)</b></p><p>
36、 圖(2)顧客登錄流程圖</p><p><b> ?。?)收銀員登陸</b></p><p><b> 簡述:</b></p><p> 收銀員在圖書銷售系統(tǒng)里能看到圖書信息并能修改出售圖書的數(shù)量。</p><p><b> 基本流程:</b></p>
37、<p> 1 收銀員:在圖書銷售系統(tǒng)畫面,選擇收銀員登陸,輸入密碼,進入收銀員界面。</p><p> 2 修改:收銀員在圖書銷售系統(tǒng)中能修改圖書的售出情況;</p><p> 3 顯示:收銀員能在顧客界面能看到最近錄入的圖書;</p><p><b> 4 結(jié)束。</b></p><p>&l
38、t;b> 流程圖如圖(3)</b></p><p> 圖(3)收銀員登錄流程圖</p><p><b> 管理員登陸</b></p><p><b> 簡述:</b></p><p> 管理員在圖書銷售系統(tǒng)填加、刪除和查找圖書信息,并能顯示銷售額。</p>
39、<p><b> 基本流程:</b></p><p> 1 管理員:在圖書銷售系統(tǒng)畫面,選擇管理員登陸,輸入密碼,進入收銀員界面。</p><p> 2 添加: 管理員在圖書銷售系統(tǒng)中能填加圖書的基本情況;</p><p> 3 刪除: 管理員在圖書銷售系統(tǒng)中能刪除圖書的基本信息;</p><p&
40、gt; 4 查找: 管理員在圖書銷售系統(tǒng)中能查找圖書的基本信息。</p><p> 5 銷售額:管理員在圖書銷售系統(tǒng)中能看到銷售額的輸出</p><p> 6 暢銷書:管理員在圖書銷售系統(tǒng)中能查詢暢銷書</p><p><b> 7 結(jié)束</b></p><p><b> 流程圖如圖(4)&
41、lt;/b></p><p> 圖(4)管理員登錄流程圖</p><p><b> 程序運行結(jié)果</b></p><p><b> 管理員登錄</b></p><p> 在書店開始售書之前先由管理員添加書籍內(nèi)容,在管理員將需要添加的書籍添加完畢后顧客還有收銀員才能執(zhí)行自己相應(yīng)的功能。選
42、擇管理員功能會進入登陸界面;密碼輸入正確方能進入使用,錯誤則會返回輸入密碼界面,直到密碼正確,進入使用界面。</p><p> 按1添加娛樂類的圖書及相關(guān)內(nèi)容</p><p> 添加成功后好可以繼續(xù)按1添加娛樂類書籍相關(guān)內(nèi)容,也可按5繼續(xù)添加學(xué)習(xí)類的圖書</p><p> 添加完畢后可返回主菜單(11選項)</p><p><b&
43、gt; 收銀員登錄</b></p><p> 在主界面按2可進入收銀員的登錄界面,同管理員一樣,收銀員也一樣需要輸入密碼,密碼對方可進入修改界面,在這里收銀員可以對圖書的銷售情況進行修改,以便以后對圖書銷售情況便于管理</p><p> 輸入圖書編號(娛樂類/學(xué)習(xí)類)并且輸入將要售出的本數(shù),系統(tǒng)將會顯示圖書(娛樂類/學(xué)習(xí)類)的售后情況</p><p&g
44、t; 顧客登錄(張海東負責(zé))</p><p> 在主界面選擇1可以進入顧客的使用界面,在這里顧客可以看到所以書籍(娛樂類和學(xué)習(xí)類),并可以按照編號或者圖書名稱查詢相應(yīng)圖書的詳細內(nèi)容</p><p> 到此顧客使用功能結(jié)束。</p><p> 當(dāng)然管理員也有對圖書查詢的功能,對圖書的銷售情況時時了解</p><p><b>
45、 娛樂類圖書查詢:</b></p><p><b> 學(xué)習(xí)類圖書查詢:</b></p><p><b> 銷售額顯示</b></p><p> 在一段時間后書籍可能售完,這樣管理員需要將此類書籍刪除,以免誤導(dǎo)顧客,在圖書刪除后,顧客在查詢系統(tǒng)中將不會再查詢到相關(guān)的內(nèi)容</p><p&g
46、t;<b> 娛樂類圖書刪除</b></p><p><b> 學(xué)習(xí)類圖書刪除</b></p><p> 管理員在執(zhí)行完所有的步驟后可以選擇回到住界面,也可以選擇退出系統(tǒng)</p><p><b> 回到主界面選擇:</b></p><p><b> 退出系統(tǒng)
47、選擇:</b></p><p><b> 設(shè)計總結(jié)</b></p><p> ?。?)完成本課題花了很長的時間,真正體會了作為一個程序員的辛苦,并且必須具備細心、耐心的品質(zhì),想要完成一項出色的項目,必須精益求精,反復(fù)操作與實踐。</p><p> ?。?)在做了本課程設(shè)計以后,我對C++的了解更深了,很多知識得到了鞏固,一些不懂的
48、知識也漸漸明了!這其中主要是對指針的使用收獲很多,在指針使用的過程中,對指針的指向以及對各函數(shù)中指針的賦值會影響到整個程序的運行;還有就是對文件的輸入輸出流了解得更透徹了,知道了打開一個文件后必須還要對其關(guān)閉,否則程序無法運行,對各種文件的輸入輸出控制符都能基本融會貫通。 </p><p> ?。?)雖然本課題已完成,可是還是存在一些問題,比如說界面還不夠好看,為了用戶用得舒服,界面是很重要的。</p>
49、;<p><b> 參考文獻</b></p><p> 鄭莉等編著.《C++語言程序設(shè)計》.清華大學(xué)出版社 </p><p> 鄭莉等編著.《C++語言程序設(shè)計習(xí)題與實驗指導(dǎo)》.清華大學(xué)出版社 </p><p> 張基溫編著.《C++程序設(shè)計基礎(chǔ)例題與習(xí)題》.高等
50、教育出版社 </p><p> 黃明等編著.《面向?qū)ο蟪绦蛟O(shè)計習(xí)題詳解》.機械工業(yè)出版社 </p><p><b> 附錄 </b></p><p><b> 源代碼:</b></p><p> #include <iostream> </p>
51、<p> #include <iomanip> </p><p> #include <string> </p><p> #include <fstream></p><p> using namespace std; </p><p> const int Maxr=100;<
52、/p><p> const int Maxb=100;</p><p> const int Maxbor=5;</p><p> class Reader </p><p><b> { </b></p><p><b> private: </b></p>
53、;<p><b> int tag; </b></p><p><b> int no; </b></p><p> char name[10];</p><p> int borbook[Maxbor]; </p><p><b> public: </b&
54、gt;</p><p> Reader() {} </p><p> char *getname() {return name;} </p><p> int gettag() {return tag;} </p><p> int getno() {return no;} </p><p> void s
55、etname(char na[]) </p><p><b> { </b></p><p> strcpy(name,na); </p><p><b> } </b></p><p> void delbook(){ tag=1; }</p><p> void
56、 addreader(int n,char *na)</p><p><b> { </b></p><p><b> tag=0; </b></p><p><b> no=n; </b></p><p> strcpy(name,na); </p>&
57、lt;p> for(int i=0;i<Maxbor;i++) </p><p> borbook[i]=0; </p><p><b> } </b></p><p> void borrowbook(int bookid)</p><p><b> { </b></p
58、><p> for(int i=0;i<Maxbor;i++) </p><p><b> { </b></p><p> if (borbook[i]==0) </p><p><b> { </b></p><p> borbook[i]=bookid; &l
59、t;/p><p><b> return; </b></p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> int retbook(int b
60、ookid)</p><p><b> { </b></p><p> for(int i=0;i<Maxbor;i++) </p><p><b> { </b></p><p> if(borbook[i]==bookid) </p><p><b&g
61、t; { </b></p><p> borbook[i]=0; </p><p> return 1; </p><p><b> } </b></p><p><b> } </b></p><p> return 0; </p>&
62、lt;p><b> } </b></p><p> void disp()</p><p><b> { </b></p><p> cout << setw(5) << no <<setw(10) << name<<"借書編號:[&quo
63、t;; </p><p> for(int i=0;i<Maxbor;i++) </p><p> if(borbook[i]!=0) </p><p> cout << borbook[i] << "|"; </p><p> cout << "]"&
64、lt;<endl; </p><p><b> } </b></p><p><b> }; </b></p><p> class RDatabase </p><p><b> { </b></p><p><b> pri
65、vate: </b></p><p><b> int top; </b></p><p> Reader read[Maxr];</p><p><b> public: </b></p><p> RDatabase() </p><p><b&
66、gt; { </b></p><p> Reader s; </p><p><b> top=-1; </b></p><p> fstream file("reader.txt",ios::in); </p><p> while (1) </p><p&
67、gt;<b> { </b></p><p> file.read((char *)&s,sizeof(s)); </p><p> if (!file)break; </p><p><b> top++; </b></p><p> read[top]=s; </p>
68、;<p><b> } </b></p><p> file.close(); </p><p><b> } </b></p><p> void clear()</p><p><b> { </b></p><p><
69、b> top=-1; </b></p><p><b> } </b></p><p> int addreader(int n,char *na)</p><p><b> { </b></p><p> Reader *p=query(n); </p>
70、<p> if (p==NULL) </p><p><b> { </b></p><p><b> top++; </b></p><p> read[top].addreader(n,na); </p><p> return 1; </p><p>
71、;<b> } </b></p><p> return 0; </p><p><b> } </b></p><p> Reader *query(int readerid)</p><p><b> { </b></p><p> fo
72、r (int i=0;i<=top;i++) </p><p> if (read[i].getno()==readerid && </p><p> read[i].gettag()==0) </p><p><b> { </b></p><p> return &read[i]
73、; </p><p><b> } </b></p><p> return NULL; </p><p><b> } </b></p><p> void disp() </p><p><b> { </b></p><
74、;p> for (int i=0;i<=top;i++) </p><p> read[i].disp(); </p><p><b> } </b></p><p> void readerdata();</p><p> ~RDatabase()</p><p><
75、b> { </b></p><p> fstream file("reader.txt",ios::out); </p><p> for (int i=0;i<=top;i++) </p><p> if (read[i].gettag()==0) </p><p> file.writ
76、e((char *)&read[i],sizeof(read[i])); </p><p> file.close(); </p><p><b> } </b></p><p><b> }; </b></p><p> void RDatabase::readerdata() &
77、lt;/p><p><b> { </b></p><p> char choice; </p><p> char rname[20]; </p><p> int readerid; </p><p> Reader *r; </p><p> while (c
78、hoice!='0') </p><p><b> { </b></p><p> cout <<"******歡迎使用圖書銷售管理系統(tǒng)終極版******”<<endl; </p><p> cin >> choice; </p><p> switc
79、h (choice) </p><p><b> { </b></p><p> case '1': </p><p> cout << "******操作菜單******:"; </p><p> cin >> readerid; </p>
80、<p> cout << "******收銀員******"; </p><p> cin >> rname; </p><p> addreader (readerid,rname); </p><p><b> break; </b></p><p>
81、 case '2': </p><p> cout << "******管理員******:"; </p><p> cin >> readerid; </p><p> r=query(readerid); </p><p> if (r==NULL) </p>
82、;<p><b> { </b></p><p> cout << " ******顧客****** "<<endl; </p><p><b> break; </b></p><p><b> } </b></p>&
83、lt;p> cout << "輸入新的姓名:"; </p><p> cin >> rname; </p><p> r->setname(rname); </p><p><b> break; </b></p><p> case '3'
84、;: </p><p> cout << " 輸入圖書編號:"; </p><p> cin >> readerid; </p><p> r=query(readerid); </p><p> if (r==NULL) </p><p><b> {
85、</b></p><p> cout <<" 該圖書不存在" << endl; </p><p><b> break; </b></p><p><b> } </b></p><p> r->delbook(); </p
86、><p><b> break; </b></p><p> case '4': </p><p> cout << "讀入圖書編號:"; </p><p> cin >> readerid; </p><p> r=query(r
87、eaderid); </p><p> if (r==NULL) </p><p><b> { </b></p><p> cout <<"該圖書不存在"<< endl; </p><p><b> break; </b></p>
88、<p><b> } </b></p><p> r->disp(); </p><p><b> break; </b></p><p> case '5': </p><p><b> disp(); </b></p>
89、<p><b> break; </b></p><p> case '6': </p><p><b> clear(); </b></p><p><b> break; </b></p><p> default:cout<&l
90、t;"輸入錯誤,請從新輸入:";break; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> class Book </p><p>
91、<b> { </b></p><p><b> private: </b></p><p><b> int tag;</b></p><p><b> int no;</b></p><p> char name[20];</p>
92、<p> int onshelf; </p><p><b> public: </b></p><p><b> Book(){} </b></p><p> char *getname() { return name; }</p><p> int getno(){ re
93、turn no; }</p><p> int gettag(){ return tag; }</p><p> void setname(char na[]) </p><p><b> { </b></p><p> strcpy(name,na); </p><p><b>
94、; } </b></p><p> void delbook(){ tag=1;} </p><p> void addbook(int n,char *na)</p><p><b> { </b></p><p><b> tag=0; </b></p>&l
95、t;p><b> no=n; </b></p><p> strcpy(name,na); </p><p> onshelf=1; </p><p><b> } </b></p><p> int borrowbook()</p><p><b>
96、; { </b></p><p> if (onshelf==1) </p><p><b> { </b></p><p> onshelf=0; </p><p> return 1; </p><p><b> } </b></p>
97、<p> return 0; </p><p><b> } </b></p><p> void retbook()</p><p><b> { </b></p><p> onshelf=1; </p><p><b> } </
98、b></p><p> void disp()</p><p><b> { </b></p><p> cout << setw(6) << no << setw(18) << name << setw(10) </p><p> <<
99、;(onshelf==1? "缺貨") <<endl; </p><p><b> } </b></p><p><b> }; </b></p><p> class BDatabase </p><p><b> { </b><
100、/p><p><b> private: </b></p><p> int top; </p><p> Book book[Maxb]; </p><p><b> public: </b></p><p> BDatabase()</p><
101、p><b> { </b></p><p><b> Book b; </b></p><p><b> top=-1; </b></p><p> fstream file("book.txt",ios::in); </p><p> wh
102、ile (1) </p><p><b> { </b></p><p> file.read((char *)&b,sizeof(b)); </p><p> if (!file) break; </p><p><b> top++; </b></p><p&
103、gt; book[top]=b; </p><p><b> } </b></p><p> file.close(); </p><p><b> } </b></p><p> void clear()</p><p><b> { </b&g
104、t;</p><p><b> top=-1; </b></p><p><b> } </b></p><p> int addbook(int n,char *na)</p><p><b> { </b></p><p> Book *p
105、=query(n); </p><p> if (NULL==p) </p><p><b> { </b></p><p><b> top++; </b></p><p> book[top].addbook(n,na); </p><p> return 1;
106、 </p><p><b> } </b></p><p> return 0; </p><p><b> } </b></p><p> Book *query(int bookid)</p><p><b> { </b></p&g
107、t;<p> for (int i=0;i<=top;i++) </p><p> if (book[i].getno()==bookid &&book[i].gettag()==0) </p><p><b> { </b></p><p> return &book[i]; </p&
108、gt;<p><b> } </b></p><p> return NULL; </p><p><b> } </b></p><p> void bookdata();</p><p> void disp() </p><p><b>
109、; { </b></p><p> for (int i=0;i<=top;i++) </p><p> if (book[i].gettag()==0) </p><p> book[i].disp(); </p><p><b> } </b></p><p>
110、~BDatabase()</p><p><b> { </b></p><p> fstream file("book.txt",ios::out); </p><p> for (int i=0;i<=top;i++) </p><p> if (book[i].gettag()==
111、0) </p><p> file.write((char *)&book[i],sizeof(book[i])); </p><p> file.close(); </p><p><b> } </b></p><p><b> }; </b></p><p&
112、gt; void BDatabase::bookdata() </p><p><b> { </b></p><p> char choice; </p><p> char bname[40]; </p><p> int bookid; </p><p><b> Bo
113、ok *b; </b></p><p> while (choice!='0') </p><p><b> { </b></p><p> cout <<"\n\n\n\t\t\t圖 書 維 護 "<<endl<<endl; </p>&l
114、t;p> cin >> choice; </p><p> switch (choice) </p><p><b> { </b></p><p> case '1': </p><p> cout << "輸入圖書編號:"<<en
115、dl; </p><p> cin >> bookid; </p><p> cout << "輸入圖書書名:"<<endl; </p><p> cin >> bname; </p><p> addbook(bookid,bname); </p>&
116、lt;p><b> break; </b></p><p> case '2': </p><p> cout << "輸入圖書編號:"<<endl; </p><p> cin >> bookid; </p><p> b=quer
117、y(bookid); </p><p> if (b==NULL) </p><p><b> { </b></p><p> cout << " 該圖書缺貨 "<<endl; </p><p><b> break; </b></p>
118、<p><b> } </b></p><p> cout << "輸入新的書名:"<<endl; </p><p> cin >> bname; </p><p> b->setname(bname); </p><p><b&g
119、t; break; </b></p><p> case '3': </p><p> cout <<" 讀入圖書編號:"<<endl; </p><p> cin >> bookid; </p><p> b=query(bookid); <
120、/p><p> if (b==NULL) </p><p><b> { </b></p><p> cout <<" 該圖書缺貨" << endl; </p><p><b> break; </b></p><p><
121、b> } </b></p><p> b->delbook(); </p><p><b> break; </b></p><p> case '4': </p><p> cout << " 讀入圖書編號:"<<endl;
122、</p><p> cin >> bookid; </p><p> b=query(bookid); </p><p> if (b==NULL) </p><p><b> { </b></p><p> cout <<" 該圖書不存在"&
123、lt;< endl; </p><p><b> break; </b></p><p><b> } </b></p><p> b->disp(); </p><p><b> break; </b></p><p> case
124、 '5': </p><p><b> disp(); </b></p><p><b> break; </b></p><p> case '6': </p><p><b> clear(); </b></p><
125、;p><b> break; </b></p><p> default:cout<<"輸入錯誤,請從新輸入:"; </p><p><b> } </b></p><p><b> } </b></p><p><b>
126、 } </b></p><p> void main() </p><p><b> { </b></p><p> char choice; </p><p> int bookid,readerid; </p><p> RDatabase ReaderDB; <
127、/p><p> Reader *r; </p><p> BDatabase BookDB; </p><p><b> Book *b; </b></p><p> while(choice!='0') </p><p><b> { </b><
128、/p><p> cout <<endl<<endl<<"\t\t\t 圖 書 銷售管 理 系 統(tǒng)\n\n\n"; </p><p> cin >> choice; </p><p> switch (choice) </p><p><b> { </b&
129、gt;</p><p> case '1': </p><p> cout <<" 買書 圖書編號:"; </p><p> cin >>readerid; </p><p> cout <<" 圖書編號: "; </p><
130、;p> cin >>bookid; </p><p> r=ReaderDB.query(readerid);</p><p> if (NULL==r) </p><p><b> { </b></p><p> cout <<" 不存在該圖書,不能買書"&l
131、t;< endl; </p><p><b> break; </b></p><p><b> } </b></p><p> b=BookDB.query(bookid); </p><p> if (b==NULL) </p><p><b>
132、 { </b></p><p> cout <<" 不存在該圖書,不能買書"<< endl; </p><p><b> break; </b></p><p><b> } </b></p><p> if (b->borrow
133、book()==0) </p><p><b> { </b></p><p> cout << " 該圖書已售完,不能買書"<< endl; </p><p><b> break; </b></p><p><b> } </b
134、></p><p> r->borrowbook(b->getno()); </p><p><b> break; </b></p><p> case '2': </p><p> cout<<"買書\n 圖書編號:"; </p>
135、<p> cin >>readerid; </p><p> cout << " 圖書編號:"; </p><p> cin >>bookid; </p><p> r=ReaderDB.query(readerid); </p><p> if (r==NULL)
136、 </p><p><b> { </b></p><p> cout <<" 不存在該圖書,不能買書" << endl; </p><p><b> break; </b></p><p><b> } </b></p
137、><p> b=BookDB.query(bookid); </p><p> if (b==NULL) </p><p><b> { </b></p><p> cout <<" 不存在該圖書,不能買書" <<endl; </p><p><
138、;b> break; </b></p><p><b> } </b></p><p> b->retbook(); </p><p> r->retbook(b->getno()); </p><p><b> break; </b></p>
139、;<p> case '3': </p><p> BookDB.bookdata(); </p><p><b> break; </b></p><p> case '4': </p><p> ReaderDB.readerdata(); </p>
140、<p><b> break; </b></p><p> default:cout<<"輸入錯誤,請從新輸入:"; </p><p><b> } </b></p><p><b> } </b></p><p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計--圖書管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計
- c++圖書管理系統(tǒng)課程設(shè)計
- c++圖書管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--圖書-讀者管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計圖書管理系統(tǒng)
- c++課程設(shè)計報告-圖書管理系統(tǒng)
- c&c++課程設(shè)計-圖書管理系統(tǒng)
- c++課程設(shè)計--圖書管理系統(tǒng)的設(shè)計
- c++課程設(shè)計報告--小型圖書管理系統(tǒng)
- c++課程設(shè)計——圖書信息管理系統(tǒng)
- c++課程設(shè)計圖書管理
- c++課程設(shè)計圖書管理系統(tǒng) (2)
- c++課程設(shè)計——商品房銷售管理系統(tǒng)
- c++圖書館管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
- c++課程設(shè)計報告書---圖書管理系統(tǒng)
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
評論
0/150
提交評論