




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C+湎向?qū)ο蟪绦蛟O計課程設計報告課程名稱 C+面向?qū)ο蟪绦蛟O計課題名稱媒體庫管理系統(tǒng)專 業(yè) 網(wǎng)絡工程班 級551學 號姓 名高慧鵬指導教師2014年12 月22 日、課程設計題目:媒體庫管理系統(tǒng)、目的與要求:1、目的:(1)要求學生達到熟練掌握C+胡言的基本知識和技能;( 2)基本掌握面向?qū)ο蟪绦蛟O計的基本思路和方法;( 3)能夠利用所學的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O計問題。2、基本要求:(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+勺編程思想來完成系統(tǒng)的設計;( 2)要求在設計的過程中,建立清晰的類層次;( 3)在系統(tǒng)中至少要定義四個類,每個類中要有各自的屬性和方法;( 4)在系統(tǒng)的設計中
2、,至少要用到面向?qū)ο蟮囊环N機制。3、創(chuàng)新要求:在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結(jié)果進行修改的功能。、設計方法和基本原理:功能要求:1)添加物品程序主要完成圖書館三類物品信息的添加,要求編號唯一。如果添加了重復編號的物品時,則提示用戶數(shù)據(jù)添加重復并取消添加;如果物品庫已滿,則提示不能再添加新的物2)查詢物品可按照三種方式進行物品的查詢。,按標題查詢:按編號查詢:按類別查詢:如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息。3)顯示物品庫可顯示當前物品庫中所有的物品信息。4)修改物品可根據(jù)查詢結(jié)果對相應的記錄進行修改,修改時注意編號的唯一性。5)刪除物品對已添加的物品信息
3、進行刪除。如果當前物品庫為空,則提示“物品庫為空! ”并返回操作;否則輸入要刪除的編號,根據(jù)編號刪除該物品信息,如果沒有找到該物品信息,則提示“該編號不存在” 。6)統(tǒng)計功能輸出當前物品庫中總物品數(shù),以及按物品類別,統(tǒng)計出當前物品中各類別的物品數(shù)并顯示。7)保存物品將當前系統(tǒng)中物品信息存入文件中。8)讀取物品將保存在文件中的物品信息讀入到當前系統(tǒng)中,以供用戶使用。在完成以上基本功能的基礎上,可自行進行擴展或完善。3、問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:( 1應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;( 2分析系統(tǒng)中的各個實體及它們之間的關(guān)系包括屬性和
4、行為;( 3根據(jù)問題描述,設計系統(tǒng)的類層次;( 4完成類層次中各個類的描述(包括屬性和方法;( 5完成類中各個成員函數(shù)的定義;( 6完成系統(tǒng)的應用模塊;( 7功能調(diào)試;( 8完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書1 .系統(tǒng)需求分析2 .總體設計區(qū)詳細設計及實現(xiàn)4 .系統(tǒng)調(diào)試 425 .結(jié)論 436 .心得體會 431. 系統(tǒng)需求分析1.1 系統(tǒng)設計的目的與意義:圖書館中的資料很多,如果能分類對其資料流通進行管理,將會帶來很多方便,因此需要有一個媒體庫管理系統(tǒng)。1.2 系統(tǒng)功能需求:本系統(tǒng)有四個類:Base類、Book類、CD、Draw類,存儲資料信息、編號、標題、 作者、評級。 Base 為父類,
5、其余三個為子類,每個子類具有自己的特點。1 基礎信息的添加功能程序能夠任意添加圖書、CD視頻光盤、圖畫信息以及各自對應的相關(guān)信息。2修改功能對已添加的記錄(圖書、CD視頻光盤、圖畫信息以及各自對應的相關(guān)信息)進行查 找和修改。3刪除功能對已添加的記錄(圖書、CD視頻光盤、圖畫信息以及各自對應的相關(guān)信息)進行查 找和刪除。如果當前系統(tǒng)中沒有相應的記錄,則提示“記錄為空! ”并返回操作;否則輸入要刪除的編號對該記錄進行刪除,如果沒有找到,則提示相應的記錄不存在。4查詢功能 可根據(jù)資料的編號查詢資料及其內(nèi)容。 可根據(jù)標題查找。 根據(jù)類別查詢?nèi)绻凑业?,給出相應的提示信息,如果找到,則顯示相應的記錄信
6、息。5保存功能將當前系統(tǒng)中各類記錄存入文件中。6讀取功能將保存在文件中的信息讀入到當前系統(tǒng)中,以供用戶使用。2. 總體設計2.1 系統(tǒng)功能分析:系統(tǒng)通過調(diào)用函數(shù)來實現(xiàn)信息錄入、信息修改、信息刪除、信息查詢以及數(shù)據(jù)保存文件等功能。add ()函數(shù)用于添加信息;modify ()函數(shù)用來修改信息;del ()函數(shù)用來修改信息; refer ()函數(shù)用來查詢數(shù)據(jù)信息; read ()函數(shù)用于將文件中的數(shù)據(jù)讀取到內(nèi)存中;save ()函數(shù)用于將內(nèi)存中的信息存入文件內(nèi);主函數(shù) main ()用于調(diào) 用這些函數(shù)。2.2 系統(tǒng)功能模塊劃分與設計:系統(tǒng)定義了 Base基類、Book類、CDt、Draw類這四個
7、類,定義了 add()、modify () 、 del () 、 read () 、 save() 、 refer ()等函數(shù)來實現(xiàn)系統(tǒng)所需功能。2.3 系統(tǒng)功能模塊圖:媒體庫管理系統(tǒng)LibraryH圖畫信息統(tǒng)計圖畫信息查詢圖畫信息刪除圖畫信息修改圖畫信息添加視頻光盤信息統(tǒng)視頻光盤信息查視頻光盤信息刪.視頻光盤信息添然圖書信息添加Base圖 3.1 Base 類void mainmenu();(2)圖書類的設計:virtual void add();Bookvirtual void refer。;圖3.2班級類void Book_manage(); virtual void display()
8、(3) CD類的設計:void Book_menu();void add();圖£D學生類void refer();(4)圖片類的設計void CD_manage();void add();Drawvoid refer();void Draw_manage();圖 3.4 課程類6)各個類的關(guān)系描述:3. 詳細設計及實現(xiàn)3.1 Base 類(抽象類 )的實現(xiàn)class Basepublic:void mainmenu();virtual void add();virtual void refer();virtual void display();virtual void modify
9、();virtual void del();virtual void Info();virtual void save();virtual void read();int No;/ 添加物品/ 查詢物品/ 顯示物品庫/ 修改物品/ 刪除物品/ 統(tǒng)計功能/ 保存物品/ 讀取物品/ 編號/ 標題char headline200;/ 作者/ 評級/ 管理菜單顯示/ 添加物品查詢物品/ 顯示物品庫/ 修改物品/ 刪除物品char write200;char rating200;3.2 班級類的實現(xiàn)Book.hclass Book:public Basepublic:void Book_manage()
10、;void Book_menu();/void add();void refer();/void display();void modify();void del();void Info();/ 統(tǒng)計功能/ 保存物品void save();void read();/ 讀取物品char publisher20;/ 出版社char ISBN_No20;/ISBN號int pages;/ 頁數(shù);Book.cpp#include<iostream.h>#include<fstream.h>#include<string.h>#include"windows
11、.h"/ 暫停頭文件#include"Book.h"const int maxsize_book=100;/ 圖書數(shù)據(jù)最大長度Book b_maxsize_book;int count_book=1;Book b,b1;Base *p1;int i,j,num1,num2;void Book:Book_manage()int flag=1;int k;p1=&b;p1->read();b.Book_menu();loop4: cout<<" 請輸入所要操作的編號:n"cin>>k;while(flag=1)
12、if(k>=0&&k<7)switch(k)/ 菜單選擇case 1:p1->add();break;case 2:p1->refer();break;case 3:p1->display();break;case 4:p1->modify();break;case 5:p1->del();break;case 6:p1->Info();break;case 0:break;elsecout<<" 輸入有誤 , 請重新輸入: n"goto loop4;loop: flag=0;if(flag=0)n
13、2.cout<<"n 請選擇接下來的操作? n1. 返回圖書信息管理菜單返回主菜單. n"cin>>flag; if(flag=1)b.Book_menu();cout<<" 請選擇 n : "cin>>k;else if(flag=2)break;elsen"cout<<" 選擇錯誤,請重新輸入。goto loop;/添加圖書數(shù)據(jù)void Book:add()(cout<<"請輸入要添加數(shù)據(jù)的個數(shù):"<<endl;cin>&
14、gt;num1;for(j=0;j<num1;j+)(cout<<"請輸入圖書編號:"<<endl;cin>>b.No;i=b.No;b_i.No=i;cout<<"請依次輸入數(shù)據(jù)標題、作者、評級(未評級、一般、成人、兒童)、出 版社、ISBN號、頁數(shù):"<<endl;cin>>b_i.headline>>b_i.write>>b_i.rating>>b_i.publisher>>b_i.ISBN_No>>b_i.pa
15、ges;p1->save(););void Book:refer()/查找子菜單(loop1:cout<<""<<endl<<" in "<<endl<<"I "<<endl< <" I 按標題查詢I "<<endl< <"I 按標題查詢I "<<endl< <"I 按標題查詢I "<<endl< <" I
16、 退出子菜單I "<<endl< <"|I "<<endl< <"1"<<endl<<" "<<endl<<endl;cout<<"請輸入你要查詢的方式編號:n"<<endl;cin>>num2;switch(num2)/三種情況用選擇語句case 1:cout<<"請輸入要查找的圖書標題:n"<<endl;cin>>b
17、1.headline;for(j=0;j<maxsize_book;j+)(if(strcmp(b1.headline,b_j.headline)=0)cout<<"圖書編號:"<<b_j.No<<""<<" 標 題 :<<b_j.headline<<" "<<" 作者:"<<b_j.write<<" "<<"評 級 :<<b_j.rati
18、ng<<" 出版社:"<<b_i.publisher<<""<<"ISBN 號:"<<b_j.ISBN_No<<""<<"頁數(shù):"<<""<<b_j.pages<<endl;Sleep(10);break;case 2:(cout<<"請輸入要查找的圖書編號"<<endl;cin>>b1.No;for(
19、j=0;j<maxsize_book;j+)(if(b1.No=b_j.No)cout<<"圖書編號:"<<b_j.No<<""<<" 標 題 :"<<b_j.headline<<" "<<" 作者:"<<b_j.write<<" "<<"評 級 :"<<b_j.rating<<" 出版社:&quo
20、t;<<b_i.publisher<<""<<"ISBN 號:"<<b_j.ISBN_No<<""<<"頁數(shù):"<<"“<<b_j.pages<<endl;Sleep(10);break;case 3: (loop2: cout<<"請輸入要查找的圖書類別(未評級、一般、成人、兒童) "<<endl;cin>>b1.rating;if(b1.r
21、ating="未評級"|" 一般"|"成人"|"兒童")for(j=0;j<maxsize_book;j+)(if(strcmp(b1.rating,b_j.rating)=0)標題:評級:<<"頁數(shù):"<<"cout<<"圖書編號:"<<b_j.No<<""<<<<b_j.headline<<" "<<"
22、; 作者:"<<b_j.write<<" "<<"<<b_j.rating<<"出版社:"<<b_j.publisher<<""<<"ISBN 號:"<<b_j.ISBN_No<<""<<b_j.pages<<endl;Sleep(10);else(cout<<"輸入有誤請重新輸入:n"goto 100
23、P2;break;case 4:break;default:n"cout<<" 選擇錯誤,請重新選擇:goto loop1;break;void Book:display()for(j=1;j<num1+1;j+)"<<endlcout<<"圖書編號:"<<b_j.No<<" "<<"標題:"<<b_j.headline<<" "<<"作者:"<&
24、lt;b_j.write<<""<<" 評 級 :"<<b_j.rating<<" 出 版社:"<<b_j.publisher<<""<<"ISBN 號:"<<b_j.ISBN_No<<""<<" 頁 數(shù) :"<<""<<b_j.pages<<endl;Sleep(10);void
25、Book二modify()int k;cout<<"請輸入要修改的圖書的編號"<<endl;cin>>b1.No;100P3:cout<<endl<<endl;cout<<"n "<<endl<<I "<<endl< <"I 修改標題I "<<endl< <"I 修改作者I "<<endl< <"I 修改評級I "<
26、;<endl< <"I 修改出版社I "<<endl< <"| 修改ISBN號I "<<endl< <"I 修改頁數(shù)I "<<endl< <"返回菜單0I "<<endl<<"<<endl<<" "<<endl<<endl;cout<<endl<<endl;cout<<"請選擇要修
27、改的內(nèi)容的編號:n"cin>>k;if(k>=0&&k<7)switch(k)case 1:char mheadline20;cout<<"請輸入修改后的標題:"<<endl;cin>>mheadline;strcpy(b_b1.No.headline,mheadline);break;case 2:char mwrite20;cout<<" 請輸入修改后的作者: "<<endl;cin>>mwrite;strcpy(b_b1.No.
28、write,mwrite);break;case 3:char mrating20;cout<<" 請輸入修改后的分級: (未評級、 一般、 成人、 兒童) "<<endl;cin>>mrating;strcpy(b_b1.No.rating,mrating);break;case 4:char mpublishe20;cout<<" 請輸入修改后的出版社: "<<endl;cin>>mpublishe;strcpy(b_b1.No.publisher,mpublishe);brea
29、k;case 5:char mISBN_No20;cout<<”請輸入修改后的ISBN號:"<<endl;cin>>mISBN_No;strcpy(b_b1.No.ISBN_No,mISBN_No);break;case 6:int mpages;cout<<" 請輸入修改后的頁數(shù): "<<endl;cin>> mpages;b_b1.No.pages=mpages;break;case 0:break;elsecout<<" 選擇錯誤,請重新輸入: n"got
30、o loop3;void Book:del()cout<<" 請輸入要刪除的圖書的編號"<<endl;cin>>b1.No;for(j=b1.No;j<num1;j+)b_j.No=b_j+1.No;strcpy(b_j.headline,b_j+1.headline);strcpy(b_j.write,b_j+1.write);strcpy(b_j.rating,b_j+1.rating);strcpy(b_j.publisher,b_j+1.publisher);strcpy(b_j.ISBN_No,b_j+1.ISBN_No)
31、;b_j.pages=b_j+1.pages;num1-;void Book:Info():"<<num1<<endl;cout<<" 當前物品庫中總物品數(shù);void Book:save()ofstream out;out.open(" 圖書信息 .txt");out<<num1<<endl;for(int k=1;k<=num1;k+)out<<b_k.No<<<<b_k.headline<<<<b_k.write<<
32、;""<<b_k.rating<<""<<b_k.publisher<<""<<b_k.ISBN_No<<"<<b_k.pages<<endl;out.close();void Book:read()ifstream in;in.open("圖書信息.txt");in>>num1;while(num1>=count_book)in>>b_count_book.No>>b
33、_count_book.headline>>b_count_book.write>>b_ count_book.rating>>b_count_book.publisher>>b_count_book.ISBN_No>>b_c ount_book.pages;count_book+;)in.close();)void Book:Book_menu()(cout<<"nn 歡迎使用媒體庫管理系統(tǒng)"<<endl<<endl;cout<<"nn 圖書信息管理&qu
34、ot;<<endl<<endl;cout<<""<<endl<<"1"<<endl<<<<endl<<"1 添加圖書 <<endl<<"1 查詢圖書 <<endl<<"1 顯示圖書 <<endl<<"1 修改圖書 <<endl<<"1 刪除圖書 <<endl<<"1 統(tǒng)計
35、圖書 <<endl<<"1 退出系統(tǒng)0<<endl<<"11<<endl<<"<<endl<<endl;3.3 CD 類的實現(xiàn)CD.hclass CD:public Basepublic:void CD_manage();/void add();void refer();/void display();void modify();void del();void Info();/void save();/管理子菜單/ 添加物品查詢物品/ 顯示物品庫/ 修改物品/ 刪除物品
36、統(tǒng)計功能保存物品讀取物品void read();/void cd_menu();/ 菜單char name20;/作者名char year20;/出版年份char time20;/播放時長;CD.cpp#include<iostream.h>#include<fstream.h>#include<string.h>#include"windows.h"/ 暫停頭文件#include"CD.h"const int maxsize_video=100;/ 儲存的最大值CD v_maxsize_video;int count
37、_video=1;CD v,v1;Base *p3;int i3,j3,vnum1,vnum2;void CD:CD_manage()/Cd 管理選擇int flag=1;int k;p3=&v;p3->read();v.cd_menu();loop5: cout<<" 請輸入所要操作的編號: "cin>>k;while(flag=1)if(k>=0&&k<7)switch(k)/ 第二菜單選擇case 1:p3->add();break;case 2:p3->refer();break;case
38、 3:p3->display();break;case 4:p3->modify();break;case 5:p3->del();break;case 6:p3->Info();break;case 0:break;elsecout<<" 輸入有誤請重新輸入: n"goto loop5;loop6: flag=0;if(flag=0)n2. 返cout<<"n請選擇接下來的操作:n1. 返回CD言息管理菜單.回主菜單 . n"cin>>flag; if(flag=1)v.cd_menu();c
39、out<<" 請選擇 n : "cin>>k;else if(flag=2)break;elsen"cout<<" 選擇錯誤,請重新輸入:goto loop6;/添力口 CDvoid CD:add()(cout<<"請輸入要添加編號的個數(shù):"<<endl;cin>>vnum1;for(j3=0;j3<vnum1;j3+)(cout<<"請輸入視頻編號:"<<endl;cin>>v.No;i3=v.No;
40、v_i3.No=i3;cout<<”請分別輸入標題、作者、評級(未評級、一般、成人、兒童)、出品人 的姓名、出品年份、視頻時長"<<endl;cin>>v_i3.headline>>v_i3.write>>v_i3.rating>>v_>>v_i3.year>>v_i3.time;Sleep(10);p3->save(););void CD:refer()/CD 查找(loop7:cout<<" "<<endl<<
41、"<<endl<<I "<<endl<<"| | "<<endl<<"| | "<<endl<<"| 按標題查詢按標題查詢按標題查詢 | "<<endl<<退出子菜單 I "<<endl<<"I "<<endl<<"11 "<<endl<<" "<&l
42、t;endl<<endl;cout<<"請輸入你要查詢的方式編號:"<<endl;cin>>vnum2;switch(vnum2)(case 1:(cout<<"請輸入要查找的視頻標題"<<endl;cin>>v1.headline;for(j3=0;j3<maxsize_video;j3+)(if(strcmp(v1.headline,v_j3.headline)=0)cout<<"視頻編號:"<<v_j3.No<
43、<""<<"標題:"<<v_j3.headline<<""<<"作者:"<<v_j3.write<<""<<" 評 級 :"<<v_j3.rating<<" 出品人的姓名:"<<v_<<""<<"出品年份:"<<v_j3.year<<
44、;""<<"視頻時長:"<<""<<v_j3.time<<endl;Sleep(10);break;case 2:(cout<<"請輸入要查找的視頻編號"<<endl;cin>>v1.No;if(v1.No=v_j3.No)cout<<"視頻編號:"<<v_j3.No<<""<<"標題:"<<v_j3.headli
45、ne<<""<<"作者:"<<v_j3.write<<""<<" 評 級 :"<<v_j3.rating<<" 出品人的姓名:"<<v_<<""<<"出品年份:"<<v_j3.year<<""<<"視頻時長:"<<""
46、<<v_j3.time<<endl;Sleep(10);break;case 3:(cout<<"請輸入要查找的視頻類別(未評級、一般、成人、兒童)"<<endl;cin>>v1.rating;for(j3=0;j3<maxsize_video;j3+)for(j3=0;j3<maxsize_video;j3+)if(strcmp(v1.rating,v_j3.rating)=0)cout<<"視頻編號:"<<v_j3.No<<""<<"標題:"&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全評價師(中級)職業(yè)技能鑒定安全檢測案例分析試題
- 2025年文職人員招聘考試公共科目試卷四十三:軍事裝備維護
- 2025年征信數(shù)據(jù)分析挖掘考試題庫:征信數(shù)據(jù)分析挖掘項目評估標準
- 2025年會計職稱考試《初級會計實務》章節(jié)重難點突破實戰(zhàn)案例與解析試題
- 2025年聚碳酸酯(PC)及合金項目立項申請報告
- 2025年鍛造工(高級)職業(yè)技能鑒定真題分析與備考
- 2025年德語TestDaF閱讀真題試卷:德語閱讀能力全面訓練卷
- 2025年對外漢語教師資格證考試課程與教學論試題
- 寵物食品分銷協(xié)議
- 個人工資增長證明書年收入增長證明(5篇)
- 化工倉儲管理系統(tǒng)方案
- 2021-2022學年貴州省黔東南州高一下學期期末文化水平測試數(shù)學試題【含答案】
- 醫(yī)療技術(shù)臨床應用管理信息系統(tǒng)操作手冊
- 北師大版小學數(shù)學四年級下冊《優(yōu)化》同步練習附答案
- (精心整理)初三數(shù)學幾何的動點問題專題練習及答案
- 高血壓腦出血外科治療臨床路徑
- 核電工程施工隱患排查專項培訓課件
- Q_SLB0402-2005 產(chǎn)品鋼印及標記移植
- 勞動者個人職業(yè)健康監(jiān)護檔案(樣板)
- 小學數(shù)學教師業(yè)務能力測試試題
- 空客A320-IPC手冊使用介紹
評論
0/150
提交評論