音像店出租管理系統(tǒng)_第1頁
音像店出租管理系統(tǒng)_第2頁
音像店出租管理系統(tǒng)_第3頁
音像店出租管理系統(tǒng)_第4頁
音像店出租管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、中國農(nóng)業(yè)大學(xué) C+課程設(shè)計(jì)報(bào)告 (20102011 學(xué)年春季學(xué)期)題 目:音像出租店管理系統(tǒng)學(xué)生姓名:學(xué) 號(hào):專業(yè)班級(jí):指導(dǎo)教師: 康麗 設(shè)計(jì)時(shí)間:2011-06-30目錄系統(tǒng)設(shè)計(jì)目標(biāo)及意義、功能介紹-3系統(tǒng)的詳細(xì)設(shè)計(jì)思路-3系統(tǒng)流程圖、類關(guān)系UML圖、主要運(yùn)行界面圖、運(yùn)行結(jié)果圖-3系統(tǒng)設(shè)計(jì)、開發(fā)過程中遇到的問題-11課程設(shè)計(jì)心得體會(huì)-11源程序-11一、 系統(tǒng)設(shè)計(jì)目標(biāo)及意義、功能介紹本題目要實(shí)現(xiàn)一個(gè)音像出租店管理系統(tǒng),音像出租店一般要管理大量音像資料,傳統(tǒng)的手工記錄方式在查詢和統(tǒng)計(jì)時(shí)煩瑣、單調(diào)、工作量大;本系統(tǒng)可以提高音像出租店的管理工作效率。功能:(1)租借音像光盤。(2)歸還音像光盤。(

2、3)音像光盤管理、維護(hù):引進(jìn)新光盤、刪除光盤、按編號(hào)查詢光盤的詳細(xì)信息、修改光盤信息、輸出被租借光盤信息、輸出所有光盤列表等。(4)顧客管理、維護(hù):新增顧客、更改顧客信息、按編號(hào)檢索顧客信息、查詢顧客租借光盤數(shù)量、刪除顧客信息、輸出顧客列表等。(5)系統(tǒng)界面采用菜單形式。二、 系統(tǒng)的詳細(xì)設(shè)計(jì)思路1、音像光盤類類屬性包括光盤的編號(hào)、名稱、是否借出、發(fā)行公司等,實(shí)現(xiàn)對光盤的信息描述。類成員函數(shù)包括提取光盤名稱、提取光盤編號(hào)、設(shè)置光盤名稱、增加新光盤、刪除光盤、修改光盤信息、租借光盤、歸還光盤、顯示光盤信息等。2、音像光盤庫類采用鏈表和文件保存所有光盤信息,以實(shí)現(xiàn)對光盤的入庫、租借、修改、查找、刪除

3、等操作。類屬性包括指向光盤類對象的指針、光盤類對象數(shù)組。類成員函數(shù)包括構(gòu)造函數(shù)(從文件中讀出所有光盤信息)、析構(gòu)函數(shù)(把所有光盤信息寫入文件)、光盤庫中引進(jìn)新光盤、刪除指定光盤、刪除全部光盤、按編號(hào)查詢光盤的詳細(xì)信息、輸出所有光盤列表。3、顧客類類屬性包括顧客的編號(hào)、姓名、所借光盤編號(hào)、手機(jī)號(hào)、租借日期、歸還日期、租費(fèi)、過期罰款(過期1 天,罰款1 角)等,實(shí)現(xiàn)對顧客的信息描述。類成員函數(shù)包括提取顧客姓名、提取顧客編號(hào)、設(shè)置顧客姓名、添加新顧客、刪除顧客信息、修改顧客信息、顧客租借光盤、顧客歸還光盤、顯示顧客信息等。4、顧客庫類采用鏈表和文件保存所有顧客信息,以實(shí)現(xiàn)對顧客的增加、檢索、刪除、輸

4、出等操作。類屬性包括指向顧客類對象的指針、顧客類對象數(shù)組。類成員函數(shù)包括構(gòu)造函數(shù)(從文件中讀出所有顧客信息)、析構(gòu)函數(shù)(把顧客信息寫入文件)、顧客庫中增加新顧客、按編號(hào)檢索顧客信息、刪除指定顧客、輸出所有顧客清單等。三、 系統(tǒng)流程圖、類關(guān)系UML圖、主要運(yùn)行界面圖、運(yùn)行結(jié)果圖主函數(shù)流程圖:開始創(chuàng)建管理對象顯示操作菜單根據(jù)輸入執(zhí)行不同操作租借歸還光盤維護(hù)顧客維護(hù)離開其它函數(shù)流程圖:從文件中加載顧客信息RDatabase:RDatabase結(jié)束關(guān)閉文件插入顧客記錄指針文件讀取失敗或文件結(jié)束打開顧客數(shù)據(jù)文件開始YN將顧客信息寫入文件RDatabase:RDatabase()結(jié)束關(guān)閉文件寫入顧客信息顧

5、客記錄加1是否有此顧客?打開一個(gè)輸出文件開始NY從文件中加載光盤信息BDatabase:BDatabase結(jié)束關(guān)閉文件插入CD記錄指針文件讀取失敗或文件結(jié)束打開CD數(shù)據(jù)文件開始YN將CD信息寫入文件BDatabase:BDatabase()結(jié)束關(guān)閉文件寫入CD信息CD記錄加1是否有此CD?打開一個(gè)輸出文件開始NYUML圖Customer-tag:int-no:int-day1:int-day2:int-x:int-fee:int-money:int-name10:char-number11:char-btime20:char-rtime20:char-borcdMaxbor:int+Custo

6、mer()+*getname():char+*getbtime():char+*getrtime():char+getx():int+gettag():int+getday1():int+getday2():int+*getnumber():char+getfee():int+getmoney():int+getno():int+setname(na:char):void+setbtime(bt:char):void+setrtime(rt:char):void+setnumber(num:char):void+delcd():void+addcustomer(n:int,*na:char,*

7、num:char,*bt:char,*rt:char,x:int,day1:int,day2:int):void+borrowcd(cdid:int):void+retcd(cdid:int):int+disp():voidRDatabase-top:int-Customer readMaxr+RDatabase()+clear():void+addcustomer(n:int,*na:char,*num:char,*bt:char,*rt:char,x:int,day1:int,day2:int):int+Customer *query(customerid:int)+disp():void

8、+RDatabase()+customerdata():void+RDatabase:customerdata():voidCD-tag:int-no:int-name20:char-company50:char-onshelf:int+CD()+*getname():char+*getcompany():char+getno():int+gettag():int+setname(na:char):void+setcompany(com:char)void+delcd():void+addcd(n:int,*na:char,*com:char):void+borrowcd():int+retc

9、d():void+disp():voidBDatabase-top:int-CD cdMaxb+BDatabase()+clear():void+addcd(n:int,*na:char,*com:char):int+CD *query(cdid:int)+BDatabase()+cddata():void+disp():void+BDatabase:cddata():void主要運(yùn)行界面圖:運(yùn)行結(jié)果圖:四、 系統(tǒng)設(shè)計(jì)、開發(fā)過程中遇到的問題由于接觸C+只有一個(gè)學(xué)期,學(xué)的并不扎實(shí),設(shè)計(jì)過程中有對教材案例某些語句不理解、基礎(chǔ)知識(shí)不能熟練應(yīng)用等問題。1、 顧客類中的租費(fèi)問題:由于前面定義時(shí)依據(jù)課本案

10、例將租借日期和歸還日期設(shè)為字符型數(shù)組,計(jì)算租費(fèi)時(shí)沒辦法加減,只能再設(shè)置一個(gè)變量由外界輸入,再進(jìn)行計(jì)算。2、 對鏈表的應(yīng)用問題:對鏈表不熟悉,經(jīng)過對課本、實(shí)驗(yàn)教程等資源的臨時(shí)研究勉強(qiáng)編好使用。五、 課程設(shè)計(jì)心得體會(huì)通過這次課程設(shè)計(jì),清楚的認(rèn)識(shí)到自己的不足之處,也意識(shí)到C+是需要付出很大努力才能學(xué)好的。C+課程設(shè)計(jì)是教學(xué)實(shí)踐環(huán)節(jié)的一個(gè)重要階段, 是將課程內(nèi)容與實(shí)際問題相聯(lián)接的關(guān)鍵步驟。通過課程設(shè)計(jì),可以深入領(lǐng)會(huì)教材的抽象內(nèi)容,鞏固已學(xué)習(xí)的C+語法知識(shí),拓寬知識(shí)面,能夠提高獨(dú)立分析問題、解決問題的能力,提高綜合編程水平。在課程設(shè)計(jì)的過程中,除了對教材的學(xué)習(xí)以外,還與同學(xué)進(jìn)行了討論,并上網(wǎng)搜了很多資料

11、,經(jīng)過許多次補(bǔ)充修改終于完成,對C+有了系統(tǒng)而全新的認(rèn)識(shí)。六、 源程序:#include #include #include #include /輸入/輸出文件流類#define PRICE 1using namespace std; const int Maxc=100;/顧客最大數(shù)量const int Maxg=100;/光盤最大數(shù)量const int Maxbor=5;/每人最多租五個(gè)class Customer /顧客類 private: int tag;/刪除標(biāo)記:1已刪,0未刪 int no; /編號(hào)int day1;/租借天數(shù)int day2;/過期天數(shù)int x;/租借光盤數(shù)i

12、nt fee;/租借費(fèi)用float money;/過期罰款char name10;/姓名char number11;/手機(jī)號(hào)char btime20;/租借時(shí)間char rtime20;/歸還時(shí)間int borcdMaxbor; /最大租借量public: Customer() char *getname() return name;char *getbtime()return btime; char *getrtime()return rtime;int getx()return x;int gettag() return tag;int getday1()return day1;int g

13、etday2()return day2;char *getnumber()return number;int getfee()return PRICE*x*day1; float getmoney()return 0.1*x*day2; int getno() return no; /獲取顧客信息:姓名、租借日期、歸還日期、手機(jī)號(hào)等void setname(char na) strcpy(name,na); void setbtime(char bt) strcpy(btime,bt); void setrtime(char rt) strcpy(rtime,rt); void setnumb

14、er(char num) strcpy(number,num); void delcd() tag=1; void addcustomer(int n,char *na,char *num,char *bt,char *rt,int x,int day1,int day2)/增加顧客信息 tag=0; no=n;fee=PRICE*x*day1; money=0.1*x*day2;strcpy(name,na);strcpy(number,num);strcpy(btime,bt);strcpy(rtime,rt);for(int i=0;iMaxbor;i+) borcdi=0; void

15、borrowcd(int cdid)/租借操作 for(int i=0;iMaxbor;i+) if (borcdi=0) borcdi=cdid; return; int retcd(int cdid)/歸還操作 for(int i=0;iMaxbor;i+) if(borcdi=cdid) borcdi=0; return 1; return 0; void disp()/輸出顧客信息 cout 顧客編號(hào): no endl;cout 姓名: nameendl;cout手機(jī)號(hào):numberendl;cout租借日期:btimeendl;cout歸還日期:rtimeendl;cout租費(fèi):fe

16、eendl;cout過期罰款:moneyendl; ; class RDatabase /顧客庫類 private: int top; /顧客記錄指針Customer readMaxc;/顧客記錄public: RDatabase() /構(gòu)造函數(shù),將customer.txt讀到customer中 Customer s; top=-1; fstream file(customer.txt,ios:in); /打開一個(gè)輸入文件while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close()

17、; /關(guān)閉customer.txt void clear()/刪除所有顧客信息 top=-1; int addcustomer(int n,char *na,char *num,char *bt,char *rt,int xx,int d1,int d2)/添加顧客時(shí)先查找是否存在 Customer *p=query(n); if (p=NULL) top+; readtop.addcustomer(n,na,num,bt,rt,xx,d1,d2); return 1; return 0; Customer *query(int customerid)/按編號(hào)查找 for (int i=0;i

18、=top;i+) if (readi.getno()=customerid & readi.gettag()=0) return &readi; return NULL; void disp() /輸出所有顧客信息 for (int i=0;i=top;i+) readi.disp(); void customerdata();/顧客庫維護(hù)RDatabase()/析構(gòu)函數(shù),將customer寫到customer.txt文件中 fstream file(customer.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file

19、.write(char *)&readi,sizeof(readi); file.close(); ; void RDatabase:customerdata() char choice; char rname20;char rbtime40;char rrtime40; char rnumber11;int customerid; int rx,rday1,rday2;Customer *r; while (choice!=0) cout nnttt顧 客 維 護(hù)nnntt 1 新 增nntt 2 更 改nntt 3 刪 除nntt 4 查 找nntt 5 顯 示nntt 6 全 刪nntt

20、 0 退 出 choice; switch (choice) case 1: cout customerid; cout rname; cout rnumber; cout rbtime;cout rrtime;cout rday1;cout rday2;cout rx;addcustomer (customerid,rname,rnumber,rbtime,rrtime,rx,rday1,rday2); break; case 2: cout customerid; r=query(customerid); if (r=NULL) cout 該顧客不存在 endl; break; cout

21、rname; r-setname(rname); break; case 3: cout customerid; r=query(customerid); if (r=NULL) cout 該顧客不存在 delcd(); break; case 4: cout customerid; r=query(customerid); if (r=NULL) cout 該顧客不存在disp(); break; case 5: disp(); break; case 6: clear(); break;case 0:cout轉(zhuǎn)到上層目錄;break; default:cout輸入錯(cuò)誤,轉(zhuǎn)到上層目錄;bre

22、ak; class CD/光盤類 private: int tag;/刪除標(biāo)記:1已刪,0未刪int no;/光盤編號(hào)char name20;/光盤名稱char company50;/發(fā)行公司int onshelf; /是否在架 1:在架 0:借出public: CD() char *getname() return name; char *getcompany() return company; int getno() return no; int gettag() return tag; int getonshelf()return onshelf;/獲取光盤信息void setname(

23、char na) /添加名稱 strcpy(name,na); void setcompany(char com) /添加發(fā)行公司 strcpy(company,com); void delcd() tag=1; /刪除光盤void addcd(int n,char *na,char *com)/增加光盤 tag=0; no=n; strcpy(name,na); strcpy(company,com);onshelf=1; int borrowcd()/借盤 if (onshelf=1) onshelf=0; return 1; return 0; void retcd()/還盤 onshe

24、lf=1; void disp()/輸出光盤信息cout 光盤編號(hào): no endl;cout光盤名稱: name endl;cout發(fā)行公司:companyendl; cout租借情況:(onshelf=1? 在架:已借) endl; ; class BDatabase /光盤庫類 private: int top; /光盤記錄指針CD cdMaxg;/光盤記錄public: BDatabase()/構(gòu)造函數(shù),將cd.txt讀到cd中 CD b; top=-1; fstream file(cd.txt,ios:in); while (1) file.read(char *)&b,sizeof

25、(b); if (!file) break; top+; cdtop=b; file.close(); void clear()/全刪光盤信息 top=-1; int addcd(int n,char *na,char *com)/增加光盤 CD *p=query(n); if (NULL=p) top+; cdtop.addcd(n,na,com); return 1; return 0; CD *query(int cdid)/按編號(hào)查找光盤 for (int i=0;i=top;i+) if (cdi.getno()=cdid &cdi.gettag()=0) return &cdi;

26、return NULL; void cddata();/光盤庫維護(hù)void disp() for (int i=0;i=top;i+) if (cdi.gettag()=0) cdi.disp(); void partdisp() for (int i=0;i=top;i+) if (cdi.gettag()=0&cdi.getonshelf()!=1) cdi.disp(); BDatabase()/析構(gòu)函數(shù),將cd寫到cd.txt文件中 fstream file(cd.txt,ios:out); for (int i=0;i=top;i+) if (cdi.gettag()=0) file

27、.write(char *)&cdi,sizeof(cdi); file.close(); ; void BDatabase:cddata() char choice; char bname40; char bcompany100;int cdid; CD *b; while (choice!=0) cout nnnttt光 盤 維 護(hù) endlendl; couttt1 新 增nn tt2 更 改nntt3 刪 除nntt4 查 找nntt5 顯 示nntt6 顯示租借nntt7 全 刪nntt0 退 出 choice; switch (choice) case 1: cout 輸入光盤編號(hào)

28、: cdid; cout 輸入光盤名稱: bname; cout 輸入光盤發(fā)行公司: bcompany; addcd(cdid,bname,bcompany); break; case 2: cout 輸入光盤編號(hào): cdid; b=query(cdid); if (b=NULL) cout 該光盤不存在 endl; break; cout 輸入新的光盤名稱: bname; b-setname(bname); break; case 3: cout 讀入光盤編號(hào): cdid; b=query(cdid); if (b=NULL) cout 該光盤不存在 delcd(); break; case 4: cout 讀入光盤編號(hào): cdid;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論