




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、合肥學(xué)院計算機(jī)科學(xué)與技術(shù)系課程設(shè)計報告20102011學(xué)年第二學(xué)期課程 C+課程設(shè)計課程設(shè)計名稱 測試儀器管理系統(tǒng)學(xué)生姓名丁凡 學(xué)號1004012031 專業(yè)班級計本2班 指導(dǎo)教師 張貫虹 華姍姍2011年6月目 錄1 課程設(shè)計的目的22 課程設(shè)計名稱及內(nèi)容23 任務(wù)要求24 課程設(shè)計報告內(nèi)容34.1流程圖顯示34.2程序?qū)崿F(xiàn)思路65 程序演示106 總結(jié)14參考文獻(xiàn) 14附錄(源代碼)14測試儀器管理系統(tǒng)一、 課程設(shè)計目的將理論教學(xué)中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計題目進(jìn)行綜合性應(yīng)用,對所學(xué)知識達(dá)到融會貫通的程度。通過課程設(shè)計,學(xué)生在下
2、述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程C+程序設(shè)計語言的基本理論知識,理論聯(lián)系實際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。 (2)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 (3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C+語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握結(jié)構(gòu)化程序設(shè)計方法,熟悉面向?qū)ο蟪绦蛟O(shè)計方法。(6)熟練掌握C+語言的基本語法,靈活運用各種數(shù)據(jù)類型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修
3、改程序。二、 課程設(shè)計名稱及內(nèi)容設(shè)計內(nèi)容:課程設(shè)計名稱:測試儀器管理系統(tǒng)設(shè)計內(nèi)容:編寫一個簡單的測試儀器管理程序,幫助管理儀器使用信息。要求具有儀器信息管理的功能。儀器信息管理包括儀器基本信息的錄入、刪除和修改等功能。三、任務(wù)和要求運用面向?qū)ο蟮某绦蛟O(shè)計方法,要求選擇動態(tài)數(shù)組類模板或鏈表類模板,任務(wù)中要運用I/O流對象對文件進(jìn)行讀寫操作。本題程序應(yīng)提供的基本管理功能有:1) 添加:即增加一臺儀器到儀器信息中;2) 顯示:即在屏幕上顯示所有儀器的信息。3) 存儲:即將儀器信息保存在一個文件中。4) 裝入:即將文件中的信息讀入程序。5) 查詢:可根據(jù)儀器名稱查找儀器信息。若找到,顯示在屏幕上。6)
4、 修改:可修改儀器信息。測試數(shù)據(jù)程序應(yīng)輸入不少于10種儀器的信息, 每種儀器可以有多臺。三、 課程設(shè)計報告內(nèi)容head=NULL輸入儀器信息linkIsEmpty()p->next=NULLhead=NULLnewnode =pnewnode ->next=pnewnode =p輸入新儀器信息返回頭指針headNYYN3.1 流程圖顯示將新的設(shè)備信息插入鏈表鏈表為空head=NULLheadnewnode =p1newnode ->next=NULLp1->next=p->nextp->next=p1輸入信息返回頭指針newnodeYN刪除節(jié)點操作的算法流程
5、圖輸入要刪除的儀器的編號id鏈表是否為空head=NULL判斷要刪除的是否為頭結(jié)點head->id=nidhead=head->p p->next=(p->next)->nextp->next!=NULLp->id=nidreturn NULLpt2=headhead=head->nextfree(pt2)p=p->next;p->next=(p->next)->next; return true返回頭指針headYNYNYNYN3.2 程序?qū)崿F(xiàn)思路定義一個儀器類,用于存放實驗室設(shè)備的各種信息;定義一個Link類,把數(shù)據(jù)以
6、鏈表的形式存儲,鏈表的每個結(jié)點為一個Instrument對象;定義一個Shebei類,用于包裝Link類及菜單操作;定義Link類和Shebei類的成員函數(shù),實現(xiàn)要求的各種功能;Link類:class Link/Link類,把數(shù)據(jù)以鏈表的形式存儲,鏈表的每個結(jié)點為一個Instrument為對象private: Instrument *head; /鏈表的頭指針,為Instrument對象類型的指針public : Link();/構(gòu)造函數(shù),初始化變量 bool linkIsEmpty();/判斷鏈表是否為空 void linkInsert(Instrument *newinstrument);
7、/向鏈表中插入新的結(jié)點 bool linkDelete(int nid);/從鏈表中刪除的結(jié)點 void linkClear();/清空鏈表中數(shù)據(jù) void linkView();/查看鏈表中數(shù)據(jù) Instrument* linkFind(int nid);/在鏈表中查找id為nid結(jié)點,返回指向該結(jié)點的指針 Instrument* getHead();/獲取頭指針;Shebei類:class Shebeiprivate: Link clink;/Link對象成員 bool k;/記錄數(shù)據(jù)是否被修改public: Shebei(); void ShebeiClear(); void Shebe
8、iInsert(); void ShebeiDelete(); void ShebeiFind();void ShebeiModify(); void ShebeiView(); void ShebeiLoad(); void ShebeiSave(); void Exit();/退出程序 void showMenu();/顯示菜單 void showTip();/顯示操作提示 void doMenu(char n);/執(zhí)行相應(yīng)菜單項功能;然后就是各個函數(shù)的具體定義。菜單選擇功能的實現(xiàn),使用switch語句;菜單選擇函數(shù)的定義:void Shebei:showMenu() cout<&l
9、t;" *"<<endl;cout<<" *"<<endl; cout<<" * 測試儀器管理系統(tǒng) *"<<endl; cout<<" *"<<endl; cout<<" *"<<endl; cout<<" * 1添加:即增加一臺儀器到儀器信息中 *"<<endl; cout<<" * *"<<endl
10、; cout<<" * 2顯示:即在屏幕上顯示所有儀器的信息 *"<<endl; cout<<" * *"<<endl; cout<<" * 3存儲:即將儀器信息保存在一個文件中 *"<<endl; cout<<" * *"<<endl; cout<<" * 4刪除:即將屏幕上的儀器信息刪除 *"<<endl; cout<<" * *"<&
11、lt;endl;cout<<" * 5查詢:可根據(jù)儀器編號查找儀器信息 *"<<endl; cout<<" * *"<<endl; cout<<" * 6修改:可修改儀器信息 *"<<endl; cout<<" * *"<<endl; cout<<" * 0退出:安全的退出本系統(tǒng) *"<<endl; cout<<" *"<<endl;
12、cout<<"tt*"<<endl;void Shebei:showTip() cout<<endl; cout<<"*操作完成*"<<endl; cout<<"*選擇06 繼續(xù)*"<<endl; cout<<"請選擇:"void Shebei:doMenu(char n) switch(n) case '1': ShebeiInsert(); break; case '2': Shebe
13、iView(); break;case '3': ShebeiSave();break; case '4': ShebeiDelete(); break;case '5': ShebeiFind(); break; case '6': ShebeiModify(); break; case '0': Exit(); break; default: cout<<"輸入錯誤!" 程序演示:主板模塊:1、 添加一個儀器:2、顯示儀器內(nèi)容3、 存儲添加儀器:4刪除儀器內(nèi)容:5查詢儀器內(nèi)容:6
14、、修改儀器內(nèi)容:7、安全退出:總結(jié):計算機(jī)科學(xué)技術(shù)的發(fā)展,不僅極大地促進(jìn)了整個科學(xué)技術(shù)的發(fā)展,而且明顯地加快了經(jīng)濟(jì)信息化和社會信息化的進(jìn)程。因此,計算機(jī)教育在全國備受重視,計算機(jī)知識與能力已成為21世紀(jì)人才素質(zhì)的基本要素之一。信息時代的發(fā)展,影響著世界的每一個角落。每個人的生活和工作幾乎都與計算機(jī)密切相關(guān)。在速度越來越快的計算機(jī)硬件和日益更新的軟件背后,網(wǎng)絡(luò)作為中樞神經(jīng)把我們聯(lián)系在一起。也正是因為網(wǎng)絡(luò)的出現(xiàn)與發(fā)展,使Internet為主要標(biāo)志的網(wǎng)絡(luò)技術(shù)構(gòu)成了我們現(xiàn)代文化的重要組成部分,聯(lián)系上億人的Internet將我們帶入了一個新的網(wǎng)絡(luò)時代。機(jī)遇就在眼前,挑戰(zhàn)同樣存在。優(yōu)勝劣汰是不可抗拒的自然
15、法則,欲保持領(lǐng)先的地位,持之以恒的學(xué)習(xí)是惟一途徑。計算機(jī)技術(shù)發(fā)展如此迅猛,計算機(jī)應(yīng)用如此廣泛,需要學(xué)習(xí)的東西愈來愈多,而我們的總學(xué)時是有限的。一般來說,計算機(jī)課程學(xué)習(xí)可以分為兩部分:一部分是理論課程學(xué)習(xí),一部分是上機(jī)應(yīng)用實習(xí)。根據(jù)我們專業(yè)的性質(zhì)和要求,則應(yīng)側(cè)重于上機(jī)操作運用。為此,學(xué)校特意在寒假最后一星期安排了五天的上機(jī)實習(xí)。上機(jī)過程中,大家都用心去編程,在編程的過程中,屢屢出現(xiàn)錯誤,但是還是將其一一改正過來,經(jīng)過老師的細(xì)心教導(dǎo),終于完成了程序,大家都感到非常開心。在這一周的學(xué)習(xí)中,大家學(xué)會了很多,也更清楚的了解到了學(xué)習(xí)c+的重要性,我們應(yīng)該要花費大量的時間努力去學(xué)習(xí)它!參考文獻(xiàn):1鄭莉 等編
16、著C+語言程序設(shè)計(第三版)北京:清華大學(xué)出版社2鄭莉 等編著C+語言程序設(shè)計(第三版)學(xué)生用書北京: 清華大學(xué)出版社3李春葆 等編著C+程序設(shè)計學(xué)習(xí)與上機(jī)實驗指導(dǎo) 北京:清華大學(xué)出版社4范輝 等編著Visual C+6.0程序設(shè)計簡明教程 高等教育出版社5李龍澍C+程序設(shè)計實訓(xùn)教程北京:清華大學(xué)出版社 6洪國勝 等編著 C+ Builder程序設(shè)計輕松上手北京:清華大學(xué)出版社7嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版。8胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計指導(dǎo)北京:清華大學(xué)出版社,1999年 第1版。附錄(源代碼):#include<iostream>#in
17、clude<cstdlib>#include<string>#include <fstream>#include<sstream>#include<iomanip>using namespace std;class Instrument /儀器類public: string tag; /名稱long id; /編號bool fun; /性能bool use; /使用狀態(tài)string user; /使用者 Instrument *next; /指向下一儀器的指針 Instrument(string ntag="unknow&q
18、uot;,long id=000,bool fun=0,bool use=0,string nuser="unknow");/構(gòu)造函數(shù),初始化變量;class Link /Link類,把數(shù)據(jù)以鏈表的形式存儲,鏈表的每個結(jié)點為一個Instrument對象private: Instrument *head; /鏈表的頭指針,為Instrument對象類型的指針public : Link(); /構(gòu)造函數(shù),初始化變量 bool linkIsEmpty(); /判斷鏈表是否為空 void linkInsert(Instrument *newInstrument); /向鏈表中插入新
19、的儀器 bool linkDelete(int nid); /從鏈表中刪除的儀器 void linkClear(); /清空鏈表中數(shù)據(jù) void linkView(); /查看鏈表中數(shù)據(jù) Instrument* linkFind(int nid); /在鏈表中查找id為nid儀器,返回指向該儀器的指針 Instrument* getHead(); /獲取頭指針;Instrument:Instrument(string ntag,long nid,bool nfun,bool nuse,string nuser) tag=ntag;id=nid;fun=nfun;use=nuse;user=nu
20、ser; next=NULL;Link:Link() /構(gòu)造函數(shù),初始化鏈表為空 head=NULL;bool Link:linkIsEmpty() /判斷鏈表是否為空,空則返回true return(head=NULL);void Link:linkInsert(Instrument *newinstrument) /按id值從小到大的順序,插入新的結(jié)點 Instrument *p1; if(!head)/鏈表為空的情況 head=newinstrument; else if(head->id)>(newinstrument->id) /插入到第一個儀器的情況 newins
21、trument->next=head; head=newinstrument; else /插入到第二個及以后情況 p1=head; while(1) if(!(p1->next) p1->next=newinstrument; break; else if(p1->next)->id>newinstrument->id) newinstrument->next=p1->next; p1->next=newinstrument; break; p1=p1->next; bool Link:linkDelete(int nid)
22、/刪除儀器,成功則返回true Instrument *p; if(head=NULL)/鏈表為空的情況 return false; if(head->id=nid) /刪除的為第一個儀器的情況 head=head->next; return true; p=head; while(p->next) /刪除的為第二個及以后儀器的情況 if(p->next)->id=nid) p->next=(p->next)->next; return true; p=p->next; return false;void Link:linkClear()
23、/清空鏈表 head=NULL;Instrument* Link:linkFind(int nid) /查找id值為nid的儀器,返回該儀器的指針 Instrument *p=head; /沒找到符合條件的儀器的話,返回的指針值為NULL while(p) if(p->id=nid) break; else p=p->next; return p;void Link:linkView() /顯示鏈表數(shù)據(jù) Instrument *p=head; cout<<setw(4)<<"儀器名稱"<<setw(4)<<&quo
24、t;儀器編號"<<setw(4)<<"儀器性能"<<setw(4)<<"使用狀況"<<setw(4)<<"使用者"<<endl; while(p) cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id<<setw(4)<<p->fun<<setw(4)<<p->
25、use<<setw(4)<<p->user<<endl; p=p->next; Instrument* Link:getHead() return head;/類Car,用于包裝Link類及菜單操作class Peopleprivate: Link clink;/Link對象成員 bool k;/記錄數(shù)據(jù)是否被修改public: People(); void peopleClear(); void peopleInsert(); void peopleDelete(); void peopleFind();void peopleModify();
26、 void peopleView(); void peopleLoad(); void peopleSave(); void Exit();/退出程序 void showMenu();/顯示菜單 void showTip();/顯示操作提示 void doMenu(char n);/執(zhí)行相應(yīng)菜單項功能;People:People() Link();/調(diào)用成員對象的構(gòu)造函數(shù) peopleLoad();/從文件中讀取數(shù)據(jù),創(chuàng)建鏈表 k=false;/設(shè)置數(shù)據(jù)被修改void People:peopleInsert() /插入客戶記錄 Instrument *p=new Instrument(); c
27、out<<"請輸入儀器名稱:" cin>>p->tag; cout<<"請輸入儀器編號:" cin>>p->id; cout<<"請輸入儀器性能:" cin>>p->fun;cout<<"請輸入儀器使用狀態(tài):" cin>>p->use; cout<<"請輸入儀器使用者:" cin>>p->user; if(!clink.linkFind(p->
28、;id) /判斷客戶信息是否存在 clink.linkInsert(p); k=true; else cout<<"儀器的名稱為"<<p->tag<<"的的儀器已存在,插入失?。?quot;<<endl;void People:peopleDelete() /刪除儀器記錄 long i; if(clink.linkIsEmpty()/鏈表為空的情況 cout<<"沒有客戶記錄!"<<endl; else cout<<"請輸入儀器名稱:"
29、 cin>>i; if(clink.linkDelete(i) cout<<"成功刪除儀器為"<<i<<"的儀器記錄!"<<endl; k=true; else cout<<"沒有找到名稱為"<<i<<"的儀器!"<<endl; void People:peopleFind() /查找某名稱的儀器記錄 long n; Instrument *p; if(clink.linkIsEmpty()/鏈表為空的情況
30、cout<<"沒有儀器記錄!"<<endl; else cout<<"請輸入要查找儀器編號:" cin>>n; p=clink.linkFind(n);/獲得找到的結(jié)點的指針 if(p) /指針值不為NULL時 cout<<setw(4)<<"儀器名稱"<<setw(4)<<"儀器編號"<<setw(4)<<"儀器性能"<<setw(4)<<"
31、使用狀況"<<setw(4)<<"使用者"<<endl; cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id<<setw(4)<<p->fun<<setw(4)<<p->use<<setw(4)<<p->user<<endl; else/指針值為NULL時 cout<<"沒有找到名稱
32、為"<<n<<"的儀器記錄!"<<endl; void People:peopleModify() /修改某名稱的儀器信息 long n; Instrument *p; if(clink.linkIsEmpty()/鏈表為空的情況 cout<<"沒有儀器記錄!"<<endl; else cout<<"請輸入要修改儀器的編號:" cin>>n; p=clink.linkFind(n);/獲得找到的儀器的指針 if(p) /指針值不為NULL時
33、cout<<setw(4)<<"儀器名稱"<<setw(4)<<"儀器編號"<<setw(4)<<"儀器性能"<<setw(4)<<"使用狀況"<<setw(4)<<"使用者"<<endl; cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id
34、<<setw(4)<<p->fun<<setw(4)<<p->use<<setw(4)<<p->user<<endl; cout<<"請輸入儀器名稱:" cin>>p->tag; cout<<"請輸入儀器編號:" cin>>p->id; cout<<"請輸入儀器性能:" cin>>p->fun; cout<<"請輸入儀器使用
35、狀態(tài):" cin>>p->use; cout<<"請輸入儀器使用者:" cin>>p->user; else/指針值為NULL時 cout<<"沒有找到名稱為"<<n<<"的儀器記錄!"<<endl; void People:peopleView() /顯示所有儀器的記錄 if(clink.linkIsEmpty() cout<<"沒有儀器記錄!"<<endl; else clink.l
36、inkView();void People:peopleLoad() /從文件中讀入數(shù)據(jù),創(chuàng)建鏈表 Instrument *p; long nid; ifstream infile("data.txt"); if(!infile) cerr<<"錯誤:數(shù)據(jù)文件不能打開!n" else while(infile>>nid) /讀取儀器,直到讀空 p=new Instrument(); infile>>p->tag>>" "/讀取名稱p->id=nid; infile>&g
37、t;p->fun>>" " infile>>p->use>>" " infile>>p->user>>" " clink.linkInsert(p); infile.close(); /關(guān)閉文件void People:peopleSave() /將數(shù)據(jù)保存到文件 Instrument *p=clink.getHead(); ofstream outfile("data.txt"); if(!outfile) cerr<<&qu
38、ot;錯誤:數(shù)據(jù)文件不能打開!n" else while(p) outfile<<p->tag<<' '<<p->id<<" "<<p->fun<<" "<<p->use<<" "<<p->user<<endl; p=p->next; k=false; cout<<"保存成功!"<<endl; void Peop
39、le:Exit() char s='Y' if(k) /判斷數(shù)據(jù)是否修改 cout<<"數(shù)據(jù)已經(jīng)改變,是否保存?(y/n):" cin>>s; if(s='y'|s='Y') peopleSave(); cout<<"已安全退出," system("pause"); exit(0);void People:showMenu() cout<<" *"<<endl;cout<<" *"<<endl; cout<<" * 測試儀器管理系統(tǒng) *"<<endl; cout<<" *"<<endl; cout<<" *"<<endl; cout<<" * 1添加:即增加一臺儀器到儀器信息中 *"<<endl; cout<<" * *"<<endl; cout<<&q
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植物保護(hù)技術(shù)員崗位面試問題及答案
- 遠(yuǎn)程醫(yī)療平臺運維師崗位面試問題及答案
- 環(huán)保油墨應(yīng)用研究-洞察及研究
- 松樹水庫水源管理辦法
- 財政政策傳導(dǎo)效果-洞察及研究
- 團(tuán)隊內(nèi)部培訓(xùn)管理辦法
- 小學(xué)品德教育的目標(biāo)與實現(xiàn)策略
- FDM在碳纖維增強(qiáng)尼龍6復(fù)合材料性能研究中的應(yīng)用
- 國企資金管理辦法講解
- 數(shù)字時代舞蹈教學(xué)變革的理念、場景及實施路徑探索
- 計算機(jī)基礎(chǔ)知識理論競賽題庫與答案(960題)
- 醫(yī)院反恐防暴培訓(xùn)內(nèi)容
- GB/T 44353.1-2024動物源醫(yī)療器械第1部分:風(fēng)險管理應(yīng)用
- 2024年廣州市黃埔軍校紀(jì)念中學(xué)小升初分班考試數(shù)學(xué)模擬試卷附答案解析
- 新人教版五年級數(shù)學(xué)下冊期末試卷
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
- 2025屆甘肅省天水市秦州區(qū)天水一中高一下數(shù)學(xué)期末達(dá)標(biāo)檢測試題含解析
- 互聯(lián)網(wǎng)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年上海第二工業(yè)大學(xué)
- 重癥專科護(hù)士進(jìn)修匯報課件
- 孕產(chǎn)婦兒童健康管理服務(wù)規(guī)范
- 機(jī)關(guān)大院保安服務(wù)
評論
0/150
提交評論