中南大學(xué)c++課程設(shè)計_第1頁
中南大學(xué)c++課程設(shè)計_第2頁
中南大學(xué)c++課程設(shè)計_第3頁
中南大學(xué)c++課程設(shè)計_第4頁
中南大學(xué)c++課程設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-作者xxxx-日期xxxx中南大學(xué)c+課程設(shè)計【精品文檔】中 南 大 學(xué)高級程序設(shè)計實(shí)踐(C+)課程設(shè)計報告設(shè)計題目 : 教學(xué)設(shè)備管理系統(tǒng)指導(dǎo)老師 : 設(shè)計者 : 專業(yè)班級 : 時間日期 : 目 錄一 課題的基本要求和內(nèi)容二 程序功能簡介三 主體內(nèi)容:1 設(shè)計分析2 程序結(jié)構(gòu)3 相關(guān)源程序4 操作方法5 制作模塊6試驗(yàn)結(jié)果7設(shè)計體會8 參考文獻(xiàn)一 基本內(nèi)容和要求(一)基本要求本設(shè)計采用教師指導(dǎo)、學(xué)生自學(xué)和獨(dú)立編程操作方式,先由學(xué)生查閱與本設(shè)計有關(guān)的書籍和資料,利用設(shè)計環(huán)境與開發(fā)工具,在兩周時間內(nèi),完成課程設(shè)計內(nèi)容中的一個管理系統(tǒng),具體要求如下:1、 獨(dú)立思考:獨(dú)立完成課程設(shè)計中各任務(wù)的設(shè)計和

2、調(diào)試。2、 上機(jī)準(zhǔn)備:每次上機(jī)前,要事先編制好準(zhǔn)備調(diào)試的程序,認(rèn)真想好調(diào)試步驟和有關(guān)環(huán)境的設(shè)置方法,準(zhǔn)備好有關(guān)的文件。3、 數(shù)據(jù)管理:管理系統(tǒng)中的數(shù)據(jù)可用數(shù)據(jù)庫(如Access數(shù)據(jù)庫)的形式保存,也可用普通文件(文本文件或二進(jìn)制文件)的形式保存。4、 程序要求:界面美觀、可操作性強(qiáng)、穩(wěn)定性好。(二)基本內(nèi)容: 教學(xué)設(shè)備管理系統(tǒng)為方便管理學(xué)校教學(xué)設(shè)備,編寫一個教學(xué)設(shè)備管理系統(tǒng)軟件。系統(tǒng)記錄必須包括設(shè)備編號、設(shè)備名稱、生產(chǎn)廠家、購置日期、臺數(shù)、單價、及備注等。二 程序功能簡介(1) 添加:增加一臺設(shè)備的記錄到管理系統(tǒng)中。(2) 查詢:可以根據(jù)設(shè)備編號查找某臺設(shè)備的相關(guān)信息,若找到則顯示其信息。(3

3、) 修改:在管理系統(tǒng)中修改一臺設(shè)備的記錄。(4) 保存:將所有教學(xué)設(shè)備信息保存在一個文件中(數(shù)據(jù)庫文件或普通的文本文件)。(5) 讀?。簭奈募凶x取已保存了數(shù)據(jù)。(6) 刪除:從管理系統(tǒng)中刪除一條記錄。(7) 恢復(fù):能恢復(fù)被刪除的記錄。(8) 統(tǒng)計:(A)統(tǒng)計每頁合計臺數(shù)及金額;(B)累計設(shè)備的總臺數(shù)及總金額;(C)統(tǒng)計單價在:200元以下、200800元之間和800元以上的設(shè)備總臺數(shù)及總金額。(D)以表格形式打印教學(xué)設(shè)備明細(xì)表。(9) 其他:可以根據(jù)自己的思路設(shè)計其他功能。三 主體內(nèi)容1 設(shè)計分析 根據(jù)問題描述和要求,系統(tǒng)要求能夠添加設(shè)備,按設(shè)備編號查詢,修改,保存,讀取,刪除,恢復(fù)設(shè)備的信

4、息。系統(tǒng)既然具有“數(shù)據(jù)存盤”功能,設(shè)備數(shù)據(jù)可以保存到磁盤文件,那么也就意味著今后可以從磁盤文件讀出人員數(shù)據(jù),所以系統(tǒng)增加了“人員數(shù)據(jù)裝入”模塊,以方便用戶使用,避免數(shù)據(jù)重新錄入。考慮到系統(tǒng)實(shí)現(xiàn)簡捷,人員數(shù)據(jù)文件采用文本文件,人員數(shù)據(jù)文件名.使用面向?qū)ο蟮某绦蛟O(shè)計思想進(jìn)行分析,整個系統(tǒng)涉及兩個類的信息和操作,設(shè)備和購置日期。所以系統(tǒng)主要涉及兩個大類:設(shè)備類Equipment,日期Date。系統(tǒng)的主體框架就是設(shè)備類,考慮系統(tǒng)操作的設(shè)備信息的數(shù)量具有不確定性,所以考慮使用鏈表保存,處理設(shè)備信息。設(shè)備類包含所以設(shè)備信息的一個不帶頭結(jié)點(diǎn)的鏈表,可以對設(shè)備信息進(jìn)行增,刪,改,查詢,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,

5、數(shù)據(jù)裝入等操作的相關(guān)模塊(Add,Delete,Modify,Find,Save,Recover,Read,Statistic)作為成員函數(shù)。2 程序結(jié)構(gòu)統(tǒng)計設(shè)備信息恢復(fù)設(shè)備信息刪除設(shè)備信息讀取設(shè)備信息保存設(shè)備信息修改設(shè)備信息查找設(shè)備信息添加設(shè)備信息教學(xué)設(shè)備管理系統(tǒng)系統(tǒng)功能模塊3 相關(guān)源程序#include #include #include #include using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y = 0 , int m = 0 , int d = 0);Date &

6、 operator = (Date &a);void foutput(ofstream &fout);void output();void alloutput();void Date:alloutput()coutyear:month:dayt;void Date:foutput(ofstream &fout)foutyear month dayendl;Date:Date(int y,int m,int d)year = y;month = m;day = d;Date & Date:operator = (Date &a)year = ;month = ;day = ;return *th

7、is;void Date:output()coutyear年month月day日endl;class Equipmentprivate:int num; /設(shè)備編號char name20; /設(shè)備名稱char factory30; /生產(chǎn)廠家Date date; /購置日期int amount; /臺數(shù)double prrice; /單價char notes101; /備注public:Equipment(int num_ = 0 , char *name_ = NULL ,int amount_ = 0, double prrice_ = 0);Equipment & operator =

8、(Equipment &a)num = a.num;strcpy();strcpy();date = ;return *this;void give(char *factory_ , Date date_ , char *notes);void output();void alloutput();int getNum();int getAmount();double getPrrice();void setNum();void setName();void setFactory();void setDate();void setAmount();void setPrrice();void se

9、tNotes();void foutput(ofstream &fout);void Equipment:alloutput()coutnumtnametfactoryt;();couttamounttprricetnotesendl;void Equipment:give(char *factory_ , Date date_ , char *notes_)strcpy(factory,factory_);date = date_;strcpy(notes,notes_);Equipment:Equipment(int num_, char *name_,int amount_, doubl

10、e prrice_)num = num_;strcpy(name,name_);amount = amount_;prrice = prrice_;strcpy(factory,未設(shè)置);strcpy(notes,無);void Equipment:output()cout1.設(shè)備編號:numendl;cout2.設(shè)備名稱:nameendl;cout3.生產(chǎn)廠家:factoryendl;cout4.購置日期:; ();cout5.臺數(shù):amountendl;cout6.單價:prriceendl;cout7.備注:notesendl;int Equipment:getNum()return n

11、um;int Equipment:getAmount()return amount;double Equipment:getPrrice()return prrice;void Equipment:setNum()coutnum;void Equipment:setName()coutname;void Equipment:setFactory()coutfactory;void Equipment:setDate()int y,m,d;coutymd;Date a(y,m,d);date = a;void Equipment:setAmount()coutamount;void Equipm

12、ent:setPrrice()coutprrice;void Equipment:setNotes()coutnotes;void Equipment:foutput(ofstream &fout)foutnumendl;foutnameendl;foutfactoryendl;(fout);foutamountendl;foutprriceendl;foutnotesendl;class Listprivate:int n,capacity;Equipment *elem;public:List();List();bool add(); /添加bool find(); /查詢void mod

13、ify(); /修改bool Save(); / 設(shè)備保存bool Read(); /讀取void Delete(); /刪除設(shè)備記錄void Recover(); /恢復(fù)被刪除的記錄void Statistic(); /統(tǒng)計;List:List()n = 0;capacity = 1000;elem = new Equipment *capacity;for(int i = 0 ; i capacity ; i+) elemi = NULL;List:List()for (int i = 0 ; i n ; i+)delete elemi;elemi = NULL;if(elem) dele

14、te elem;elem = NULL;bool List:add()if(n capacity)int num_;char name_20;int amount_;double prrice_;coutnum_;coutname_;coutamount_;coutprrice_;elemn = new Equipment(num_,name_,amount_,prrice_);n+;return true;return false;bool List:find()int num_;coutnum_;for(int i = 0 ; i getNum()cout查找成功!設(shè)備信息如下:outpu

15、t();return true;cout查找失??!無此設(shè)備信息。 0)int i,num_;bool ok = false;cout現(xiàn)有的設(shè)備編號如下:endl;for (i = 0 ; i n ; i+)coutgetNum() ;coutendl;coutnum_;for (i = 0 ; i getNum()=num_)ok = true;int choice = 1;do system(cls);elemi-output();cout8.退出修改。endl; coutchoice;if(choice 8) cout輸入錯誤,請重新輸入!setNum();break;case 2:ele

16、mi-setName();break;case 3:elemi-setFactory();break;case 4:elemi-setDate();break;case 5:elemi-setAmount();break;case 6:elemi-setPrrice();break;case 7:elemi-setNotes();break;case 8:break; while (choice != 8);if(!ok) cout您的輸入有誤!endl;else cout現(xiàn)無任何設(shè)備!endl;bool List:Save()ofstream fout;(save.txt);(0); /清楚

17、txt文檔的數(shù)據(jù)(-1,ios:end); /在txt文檔中光標(biāo)退格if()cout找不到文件,保存失??!endl;return false;elsefor(int i = 0 ; i foutput(fout);cout保存成功!endl;();return true;bool List:Read()int size;ifstream fin;(save.txt);streampos pos = ();(0,ios:end);size = ();(pos);if()cout找不到文件,讀取失?。um_;finname_;finfactory_;finymd;if(fin.eof() bre

18、ak;Date date_(y,m,d);finamount_;finprrice_;finnotes_;elemn = new Equipment(num_,name_,amount_,prrice_);elemn-give(factory_,date_,notes_);n+;cout讀取成功! 0)int i,num_;bool ok = false;cout現(xiàn)有的設(shè)備編號如下:endl;for (i = 0 ; i n ; i+)coutgetNum() ;coutendl;coutnum_;for (i = 0 ; i getNum()=num_)ok = true;system(cl

19、s);elemi-output();cout您確定要刪除此設(shè)備? (Y or N)str;if(str != Y & str != N)coutfoutput(fout);();if(i = n-1) delete elemi;elemi = NULL;else Equipment *tem;tem = elemi;elemi = elemn-1;elemn-1 = tem;delete elemn-1;elemn-1 = NULL;n-;cout刪除成功!endl;else cout刪除失??!endl;if(!ok) cout您的輸入有誤!endl;else cout現(xiàn)無任何設(shè)備!endl;

20、void List:Recover()int size;ifstream fin;(recover.txt);streampos pos = ();(0,ios:end);size = ();(pos);if()cout找不到文件,恢復(fù)失??!num_;finname_;finfactory_;finymd;if(fin.eof() break;Date date_(y,m,d);finamount_;finprrice_;finnotes_;elemn = new Equipment(num_,name_,amount_,prrice_);elemn-give(factory_,date_,n

21、otes_);n+;cout恢復(fù)成功!endl;();ofstream fout;(recover.txt);(0);(-1,ios:end);();void List:Statistic()system(cls);int i,j,n_200 = 0,n200_800 = 0,n800_ = 0;double p_200 = 0,p200_800 = 0,p800_ = 0;Equipment *tem;for(i = 0 ; i n ; i+)for(j = 0 ; j getPrrice() elemj+1-getPrrice()tem = elemj;elemj = elemj+1;el

22、emj+1 = tem;cout編號t名稱t廠家t日期tt數(shù)量t單價t備注endl;for (i = 0 ; i getPrrice() getAmount();p_200 += elemi-getAmount()*elemi-getPrrice();else if(elemi-getPrrice() getAmount();p200_800 += elemi-getAmount()*elemi-getPrrice();else n800_ += elemi-getAmount();p800_ += elemi-getAmount()*elemi-getPrrice();elemi-allou

23、tput();coutendl;cout單價在:200元以下的設(shè)備總臺數(shù)及總金額為:tn_200ttp_200endl;cout單價在:200800元的設(shè)備總臺數(shù)及總金額為:tn200_800ttp200_800endl;cout單價在:800元以上的設(shè)備總臺數(shù)及總金額為:tn800_ttp800_endl;cout累計所有設(shè)備的總臺數(shù)及總金額為:ttn_200+n200_800+n800_ttp_200+p200_800+p800_endl;int main()List list;int n = 0;int choice = 1;system(color 1C);do couttttt教學(xué)設(shè)備管理系統(tǒng)endl;couttt=endl;couttt#tt 1.添加設(shè)備內(nèi)容。tt#endl;couttt#tt 2.查找設(shè)備內(nèi)容。tt#endl;couttt#tt 3.修改設(shè)備內(nèi)容。tt#endl;couttt#tt 4.保存設(shè)備記錄。tt#endl;couttt#tt 5.讀取設(shè)備記錄。tt#en

溫馨提示

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

評論

0/150

提交評論