《C++程序設(shè)計》課程設(shè)計報告-媒體庫管理系統(tǒng)設(shè)計__第1頁
《C++程序設(shè)計》課程設(shè)計報告-媒體庫管理系統(tǒng)設(shè)計__第2頁
《C++程序設(shè)計》課程設(shè)計報告-媒體庫管理系統(tǒng)設(shè)計__第3頁
《C++程序設(shè)計》課程設(shè)計報告-媒體庫管理系統(tǒng)設(shè)計__第4頁
《C++程序設(shè)計》課程設(shè)計報告-媒體庫管理系統(tǒng)設(shè)計__第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C課程設(shè)計報告C+程序設(shè)計課程設(shè)計報告題 目: 媒體庫管理系統(tǒng)設(shè)計 姓 名: 學(xué) 號: 專業(yè)班級: 計科14 甲 指導(dǎo)老師: 2014 年 7 月 1 日浙江工商大學(xué)杭州商學(xué)院目 錄1課題目標02程序具體實現(xiàn)原理12.1 總體方案12.1.1開發(fā)平臺12.1.2基本原理12.2 程序各個功能說明12.2.1 程序結(jié)構(gòu)12.2.2 程序各主要功能的實現(xiàn)23 課程設(shè)計調(diào)試與測試報告84 課程設(shè)計總結(jié)8附件 程序清單(源程序)91 課題目標程序基本功能:(1)添加物品:主要完成圖書館三類物品信息的添加,要求編號唯一。當添加了重復(fù)的編號時,則提示數(shù)據(jù)添加重復(fù)并取消添加;當物品庫已滿,則提示不能再添加新

2、的數(shù)據(jù)。(2)查詢物品可按照三種方式來查詢物品,分別為:按標題查詢:輸入標題,輸出所查詢的信息,若不存在該記錄,則提示“該標題不存在!”;按編號查詢:輸入編號,輸出所查詢的信息,若不存在該記錄,則提示“該編號不存在!”;按類別查詢:輸入類別,輸出所查詢的信息,若不存在記錄,則提示“該類別沒有物品!”;(3)顯示物品庫:輸出當前物品庫中所有物品信息,每條記錄占據(jù)一行。(4)編輯物品:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意編號的唯一性。(5)刪除物品:主要完成圖書館物品信息的刪除。如果當前物品庫為空,則提示“物品庫為空!”,并返回操作;否則,輸入要刪除的編號,根據(jù)編號刪除該物品的記錄,如果

3、該編號不在物品庫中,則提示“該編號不存在”。(6)統(tǒng)計信息輸出當前物品庫中總物品數(shù),以及按物品類別,統(tǒng)計出當前物品中各類別的物品數(shù)并顯示。(7)物品存盤:將當前程序中的物品信息存入文件中。(8)讀出物品:從文件中將物品信息讀入程序。2 程序具體實現(xiàn)原理2.1 總體方案(1) 程序采用雙向鏈表數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。(2) 用類來實現(xiàn)數(shù)據(jù)的封裝。(3) 使用文件的輸入輸出流實現(xiàn)對記錄的保存與讀取。2.1.1開發(fā)平臺操作系統(tǒng):Win7 開發(fā)軟件:Mirosoft Visual C+ 6.02.1.2基本原理密碼系統(tǒng)登陸菜單管理員菜單其他人員菜單退出信息刪除信息顯示信息查詢信息添加信息查詢退出2.2 程序各個

4、功能說明2.2.1 程序結(jié)構(gòu)1.類設(shè)計 基類:Tushuguan 數(shù)據(jù)成員: 作者、編號、標題、評級、類別編號 成員函數(shù):display() 輸入姓名、編號、標題、評級、類別編號 class Tushuguan public: char name256; /作者int num; /編號char biaoti256; /標題char pingji256; /評級 int x; /類別編號void display()cout<<"作者:"cin>>name; cout<<"編號:"cin>>num; cout&

5、lt;<"標題:"cin>>biaoti; cout<<"評級:"cin>>pingji; cout<<"類別編號(1.圖書,2.視頻光盤,3.圖畫): "cin>>x; ; 派生類:Tushu Shipinguangpan Tuhua Tushu 數(shù)據(jù)成員:出版社 ISBN號 頁數(shù) 成員函數(shù):display1() 調(diào)用基類的display()函數(shù)和輸入課時 Teacher(int s=800) /基本工資賦值 class Tushu:public Tushuguan

6、public: char cbs256; /出版社 int hm; / ISBN號 int yeshu; /頁數(shù)void display1()cout<<"請輸入圖書的" Tushuguan:display();cout<<"請輸入圖書的出版社: "cin>>cbs; cout<<"請輸入圖書的ISBN號: "cin>>hm; cout<<"請輸入圖書的頁數(shù): "cin>>yeshu; ; Shipinguangpan 數(shù)據(jù)成員:名

7、字 時長 年份 成員函數(shù):display1() 調(diào)用基類的display()函數(shù) Shiyanyuan(int s=650,int b=150) /基本工資及補助賦值 class Shipinguangpan:public Tushuguan public: char mingzi256; /名字 int year; /年份 int shichang; /時長 void display1()cout<<"請輸入視頻光盤的" Tushuguan:display();cout<<"請輸入視頻光盤出品者的名字: "cin>>

8、mingzi; cout<<"請輸入視頻光盤出品年份: "cin>>year; cout<<"請輸入視頻光盤視頻時長: "cin>>shichang; ; Tuhua 數(shù)據(jù)成員:國籍、長、寬 成員函數(shù):display1() 調(diào)用基類的display()函數(shù)class Tuhua:public Tushuguan public:char guoji256; /國籍 int chang; /長int kuan; /寬void display1() cout<<"請輸入圖畫的" T

9、ushuguan:display();cout<<"請輸入圖畫的出品國籍: "cin>>guoji; cout<<"請輸入圖畫作品的長: "cin>>chang; cout<<"請輸入圖畫作品的寬: "cin>>kuan; ;Tushuguan#name256:chai#num:int #biaoti256; char#pingji256; char#x:int+display() void具體如圖: 基類 Tushu#cbs256;char #hm: int#y

10、eshu:int+display1() voidShipinguangpan#mingzi:char#year: int#shichang:int+display1():voidTuhua#guoji:char#chang:int#kuan:int+display1():void派生類2.2.2 程序各主要功能的實現(xiàn)1.添加函數(shù)void tushutianjia() /圖書添加 int m=3; ofstream outfile("圖書.txt",ios:app); if(outfile.fail() cout<<"open error!"&

11、lt;<endl; exit(1); int b; cout<<"請選擇你要添加圖書的本數(shù):" cin>>b; for(i=0;i<b;i+) int num1; char nam256; ti.display1(); cout<<"請重新輸入圖書的編號"<<endl;cin>>num1;cout<<"請重新輸入圖書的作者"<<endl;cin>>nam;int n=0;for(j=0;j<100;j+) ifstream

12、 infile("圖書.txt",ios:in);infile>>tj.num>>;infile.close(); if(tj.num!=num1) n+;break; if(tj.num=num1&&strcmp(,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("視頻光盤.txt",ios:in); infile>>sj.num;infile.close(); if(sj.num=num1) break; else

13、 n+;break; for(j=0;j<100;j+) ifstream infile("圖畫.txt",ios:in); infile>>hj.num; infile.close(); if(hj.num=num1) break; else n+;break; strcpy(,nam) ; ti.num=num1; for(j=0;j<100;j+)ifstream infile("圖書.txt",ios:in); infile>>tj.num; if(tj.num!=0) m=3; else m=2

14、; infile.close(); if(n=m) outfile<<ti.x<<" "<<ti.num<<" "<<<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 "<<ti.yeshu

15、<<endl; else cout<<"數(shù)據(jù)添加重復(fù)。"<<endl; outfile.close(); 2.查詢函數(shù) void biaotichaxun() /標題查詢 int n; char biaot100; cout<<"請輸入你要查詢的標題: "cin>>biaot; for(i=0,n=0;i<100;i+) ifstream infile("圖書.txt",ios:in); infile>>ti.num>>ti.biaoti>

16、>ti.hm>>ti.yeshu; if(ti.num=0) break; if(strcmp(ti.biaoti,biaot)=0) n+; infile>>ti.x>>ti.num>>>>ti.biaoti>>ti.pingji>>ti.cbs>>ti.hm>>ti.yeshu; cout<<ti.x<<" "<<ti.num<<" "<<<&l

17、t;" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" "<<ti.yeshu<<endl; break; infile.close(); if(n=0) cout<<"圖書內(nèi)沒有你要查詢的信息。"<<endl; for(i=0,n=0;i<100;i+) ifs

18、tream infile("視頻光盤.txt",ios:in); infile>>si.num>>si.biaoti>>si.year>>si.shichang; if(si.num=0) break; if(strcmp(si.biaoti,biaot)=0) n+;infile>>si.x>>si.num>>>>si.biaoti>>si.pingji>>si.mingzi>>si.year>>si.shichan

19、g; cout<<si.x<<" "<<si.num<<" "<<<<" "<<si.biaoti<<" "<<si.pingji<<" "<<si.mingzi<<" "<<si.year<<" "<<si.shichang<<endl;infile.

20、close(); break; infile.close();if(n=0)cout<<"視頻光盤內(nèi)沒有你要查詢的信息。"<<endl; for(i=0,n=0;i<100;i+) ifstream infile("圖畫.txt",ios:in);infile>>hi.num>>hi.biaoti>>hi.chang>>hi.kuan;if(hi.num=0) break; if(strcmp(hi.biaoti,biaot)=0) n+;infile>>hi.x&

21、gt;>hi.num>>>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; cout<<hi.x<<" "<<hi.num<<" "<<<<" "<<hi.biaoti<<" "<<hi.pingji<<" "<&

22、lt;hi.guoji<<" "<<hi.chang<<" "<<hi.kuan<<endl;infile.close(); break; if(n=0) cout<<"圖畫沒有你要查詢的信息。"<<endl; 3.顯示函數(shù) void tuhuaxianshi() /圖畫顯示ifstream infile("圖畫.txt",ios:in); for(i=0;i+) infile>>hi.x>>hi.num&g

23、t;>>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; if(ti.num=0) break; else cout<<hi.x<<" "<<hi.num<<" "<<<<" "<<hi.biaoti<<" "<<hi.pingji<<" &

24、quot;<<hi.guoji<<" "<<hi.chang<<" "<<hi.kuan<<endl; cout<<"圖畫顯示完畢!"<<endl; infile.close();4.刪除函數(shù)void tuhuashanchu() /圖畫刪除 ifstream infile("圖畫.txt",ios:in); int bianha; cout<<"請輸入你要刪除圖畫的編號: "cin>

25、;>bianha; for(i=0;i<100;i+) infile>>hi.x>>hi.num>>>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; if(hi.num=0) break; if(hi.num=bianha) for(int j=i;j<100;j+) hj.num=0;strcpy(," ");strcpy(hj.biaoti," ");st

26、rcpy(hj.pingji," ");strcpy(hj.guoji," ") ; hj.x=0;hj.chang=0;hj.kuan=0; infile.close();ofstream outfile("圖畫.txt",ios:out); for(i=0;i<100;i+) if(hi.num!=0) outfile<<hi.x<<hi.num<<" "<<<<" "<<hi.biaoti<&

27、lt;" "<<hi.pingji<<hi.guoji<<hi.chang<<hi.kuan<<endl; outfile.close();void xinxishanchu() /刪除 int c; for(i=0;i+) show4();cin>>c; if(c=4)cout<<"退出刪除成功。"<<endl;break; else switch(c) case 1: tushushachu(); break; case 2: shipinguangpan

28、shanchu();break; case 3: tuhuashanchu();break; default:cout<<"上一次輸入錯誤。"<<endl;break; 5.統(tǒng)計函數(shù)void xinxitongji() /數(shù)據(jù)統(tǒng)計int n=0,k=0,m=0; for(i=0;i<100;i+) ifstream infile("圖畫.txt",ios:in); infile>>ti.x>>ti.num; if(ti.num=0) break; if(ti.x=1) n+ ;infile.close

29、();for(i=0;i<100;i+)ifstream infile("視頻光盤.txt",ios:in); infile>>si.x>>si.num; if(si.num=0) break; if(si.x=2) k+ ; infile.close();for(i=0;i<100;i+) ifstream infile("圖畫.txt",ios:in); infile>>hi.x>>hi.num;if(hi.num=0) break; if(hi.x=3) m+ ; infile.close

30、();cout<<"圖書館有圖書:"<<n<<"本"<<endl;cout<<endl; cout<<"圖書館有視頻光盤:"<<m<<"個"<<endl; cout<<endl; cout<<"圖書館有圖畫"<<k<<"冊"<<endl; 3 課程設(shè)計調(diào)試與測試報告1. 首頁進入媒體管理系統(tǒng)登錄系統(tǒng)2.進入媒體

31、庫管理主菜單2. 可進入添加、查詢、顯示、刪除、統(tǒng)計界面 4 課程設(shè)計總結(jié)(1) 通過本次課程設(shè)計,對本學(xué)期C+課程習(xí)得的知識進行了一次綜合運用,鞏固了所學(xué)。而本次課程設(shè)計與現(xiàn)實聯(lián)系比較緊密,綜合性也比較強,鍛煉了獨立思考并解決問題的能力。課程設(shè)計分為兩個階段,對于處理問題比較有層次性,即逐步深入;而課程要求也對本次試驗有一定的引導(dǎo)作用。完成了本次試驗,對于其他編程項目,不論簡單、復(fù)雜,也比較容易理解、接受、嘗試、解決。(2) 在做了本課程設(shè)計以后,我對C+的了解更深了,很多知識得到了鞏固,一些不懂的知識也漸漸明了!這其中主要是對指針的使用收獲很多,在指針使用的過程中,對指針的指向以及對各函數(shù)

32、中指針的賦值會影響到整個程序的運行;還有就是對文件的輸入輸出流了解得更透徹了,知道了打開一個文件后必須還要對其關(guān)閉,否則程序無法運行,對各種文件的輸入輸出控制符都能基本融會貫通。(3) 雖然本課題已完成,可是還是存在一些問題,比如說界面還不夠好看,為了用戶用得舒服,界面是很重要的。源代碼#include<iostream> #include<fstream.h> #include<stdlib.h> #include<string.h> int i; int j; class Tushuguan public: char name256; int

33、 num; char biaoti256; char pingji256; int x; void display() cout<<"作者:" cin>>name; cout<<"編號:" cin>>num; cout<<"標題:" cin>>biaoti; cout<<"評級:" cin>>pingji; cout<<"類別編號(1.圖書,2.視頻光盤,3.圖畫): " cin>&

34、gt;x; ; class Tushu:public Tushuguan public: char cbs256; int hm; int yeshu; void display1() cout<<"請輸入圖書的" Tushuguan:display(); cout<<"請輸入圖書的出版社: " cin>>cbs; cout<<"請輸入圖書的ISBN號: " cin>>hm; cout<<"請輸入圖書的頁數(shù): " cin>>yesh

35、u; ; class Shipinguangpan:public Tushuguan public: char mingzi256; int year; int shichang; void display1() cout<<"請輸入視頻光盤的" Tushuguan:display(); cout<<"請輸入視頻光盤出品者的名字: " cin>>mingzi; cout<<"請輸入視頻光盤出品年份: " cin>>year; cout<<"請輸入視頻光盤

36、視頻時長: " cin>>shichang; ;class Tuhua:public Tushuguan public: char guoji256; int chang; int kuan; void display1() cout<<"請輸入圖畫的" Tushuguan:display(); cout<<"請輸入圖畫的出品國籍: " cin>>guoji; cout<<"請輸入圖畫作品的長: " cin>>chang; cout<<&qu

37、ot;請輸入圖畫作品的寬: " cin>>kuan; ; Tushu t100; Shipinguangpan s100; Tuhua h100; void show() cout<<"請輸入你要添加的對象 :"<<endl; cout<<"1:圖書"<<endl; cout<<"2:視頻光盤"<<endl; cout<<"3:圖畫"<<endl; cout<<"4:退出添加&

38、quot;<<endl; cout<<"請選擇: " void tushutianjia() /圖書添加 int m=3; ofstream outfile("圖書.txt",ios:app); if(outfile.fail() cout<<"open error!"<<endl; exit(1); int b; cout<<"請選擇你要添加圖書的本數(shù):" cin>>b; for(i=0;i<b;i+) int num1; char n

39、am256; ti.display1(); cout<<"請重新輸入圖書的編號"<<endl;cin>>num1;cout<<"請重新輸入圖書的作者"<<endl;cin>>nam;int n=0;for(j=0;j<100;j+) ifstream infile("圖書.txt",ios:in);infile>>tj.num>>;infile.close(); if(tj.num!=num1) n+;break; if

40、(tj.num=num1&&strcmp(,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("視頻光盤.txt",ios:in); infile>>sj.num;infile.close(); if(sj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("圖畫.txt",ios:in); infile>>hj.num; infile.close(); if

41、(hj.num=num1) break; else n+;break; strcpy(,nam) ; ti.num=num1; for(j=0;j<100;j+)ifstream infile("圖書.txt",ios:in); infile>>tj.num; if(tj.num!=0) m=3; else m=2; infile.close(); if(n=m) outfile<<ti.x<<" "<<ti.num<<" "<<

42、<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 "<<ti.yeshu<<endl; else cout<<"數(shù)據(jù)添加重復(fù)。"<<endl; outfile.close(); void shipinguangpantianjia() /視頻光盤添

43、加 int n,m=3; ofstream outfile("視頻光盤.txt",ios:app); if(outfile.fail() ) cout<<"open error!"<<endl; exit(1); int b; cout<<"請輸入你要添加視頻光盤的個數(shù):"cin>>b; for(i=0,n=0;i<b;i+) int num1=0; char nam256=" " si.display1(); cout<<"請重新輸入視頻

44、光盤的編號"<<endl;cin>>num1; cout<<"請重新輸入視頻光盤的作者"<<endl;cin>>nam; for(j=0;j<100;j+) ifstream infile("視頻光盤.txt",ios:in);infile>>sj.num>>;infile.close(); if(sj.num!=num1) n+;break; if(sj.num=num1&&strcmp(,nam)!=0) b

45、reak; for(j=0;j<100;j+) ifstream infile("圖書.txt",ios:in);infile>>tj.num;infile.close(); if(tj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("圖畫.txt",ios:in); infile>>hj.num; if(hj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream

46、infile("視頻光盤.txt",ios:in);infile>>sj.num; if(sj.num!=0) m=3; else m=2; infile.close(); if(n=m) outfile<<si.x<<" "<<si.num<<" "<<<<" "<<si.biaoti<<" "<<si.pingji<<" "<<si.mingzi<<" "

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論