C++課程設計---實驗室設備管理系統(tǒng)_第1頁
C++課程設計---實驗室設備管理系統(tǒng)_第2頁
C++課程設計---實驗室設備管理系統(tǒng)_第3頁
C++課程設計---實驗室設備管理系統(tǒng)_第4頁
C++課程設計---實驗室設備管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1課程設計的目的22 課程設計名稱及內(nèi)容 23任務要求 24課程設計報告內(nèi)容 31.1 流程圖顯示 31.2 程序?qū)崿F(xiàn)思路 65 程序演小 96 總結 14參考文獻 14附錄(源代碼) 15實驗室設備管理系統(tǒng)1、課程設計目的將理論教學中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結構、數(shù)據(jù)結 構作一比較和總結,結合設計題目進行綜合性應用,對所學知識達到融會貫通的程度。通 過課程設計,學生在下述各方面的能力應該得到鍛煉:(1)進一步鞏固、加深學生所學專業(yè)課程C+程序設計語言的基本理論知識,理 論聯(lián)系實際,進一步培養(yǎng)學生綜合分析問題,解決問題的能力。(2)全面考核學生所掌握的基本理論知識及其

2、實際業(yè)務能力,從而達到提高學生素 質(zhì)的最終目的。(3)利用所學知識,開發(fā)小型應用系統(tǒng),掌握運用 C+語言編寫調(diào)試應用系統(tǒng)程序, 訓練獨立開發(fā)應用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。(4)對于給定的設計題目,如何進行分析,理清思路,并給出相應的數(shù)學模型。(5)掌握結構化程序設計方法,熟悉面向?qū)ο蟪绦蛟O計方法。(6)熟練掌握C+語言的基本語法,靈活運用各種數(shù)據(jù)類型。(7)進一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。2、課程設計名稱及內(nèi)容課程設計名稱:實驗室設備管理系統(tǒng)設計內(nèi)容:編寫一個簡單的實驗室設備管理程序,幫助管理實驗室設備信息。要求具有設 備信息管理的功能。其中包括設備信息的錄入、刪除、查詢和修

3、改等功能。還應包括對實 驗室信息管理的功能。其中包括對實驗室信息的錄入、刪除、修改和查詢等功能。3、任務和要求運用面向?qū)ο蟮某绦蛟O計方法,要求選擇動態(tài)數(shù)組類模板或鏈表類模板,任務中要運 用I/O流對象對文件進行讀寫操作。本題程序應提供的基本管理功能有:1)添加:即增加一條信息到設備信息中,或增加一條信息到實驗室信息中;2)顯示:即在屏幕上顯示所有設備或?qū)嶒炇倚畔ⅲ?)存儲:即將設備信息和實驗室信息分別保存在文件中;4)裝入:即將文件中的信息讀入程序;5)查詢:可根據(jù)設備名稱查找具體情況,若找到,顯示在屏幕上;6)修改:可修改設備信息,或?qū)嶒炇倚畔⑦M行修改4、課程設計報告內(nèi)容4.1 流程圖顯示

4、31將新的設備信息插入鏈表刪除節(jié)點操作的算法流程圖輸入要刪除的設備的編號idv4.2 程序?qū)崿F(xiàn)思路定義一個結點類,用于存放實驗室設備的各種信息;定義一個Link類,把數(shù)據(jù)以鏈表的形式存儲,鏈表的每個結點為一個Node對象;定義一個Shebei類,用于包裝Link類及菜單操作;定義Link類和Shebei類的成員函數(shù),實現(xiàn)要求的各種功能;Link 類:class Link/Link 類,把數(shù)據(jù)以鏈表的形式存儲,鏈表的每個結點為一個Node對象private:Node *head; /鏈表的頭指針,為Node對象類型的指針public :Link();/構造函數(shù),初始化變量bool linkIsE

5、mpty();/判斷鏈表是否為空void linkInsert(Node *newnode);/向鏈表中插入新的結點bool linkDelete(int nid);/從鏈表中刪除的結點void linkClear();/清空鏈表中數(shù)據(jù)void linkView();/查看鏈表中數(shù)據(jù)Node* linkFind(int nid);/在鏈表中查找id為nid結點,返回指向該結點的指針Node* getHead();/ 獲取頭指針 ;Shebei 類:class Shebeiprivate:Link clink;/Link 對象成員bool k;/記錄數(shù)據(jù)是否被修改public:Shebei();

6、void ShebeiClear();void ShebeiInsert();void ShebeiDelete();void ShebeiFind();void ShebeiModify();void ShebeiView();void ShebeiLoad();void ShebeiSave();void Exit();/ 退出程序void showMenu();/顯示菜單void showTip();/顯示操作提示void doMenu(char n);/執(zhí)行相應菜單項功能;然后就是各個函數(shù)的具體定義。菜單選擇功能的實現(xiàn),使用switch語句;菜單選擇函數(shù)的定義:void Shebei:

7、showMenu()cout<<"tt*"<<endi;cout<<"tt*實驗室設備管理系統(tǒng)*"<<endl;cout<<"tt*"<<endl;cout<<"tt*1-清空:清除所有設備信息*"<<endl;cout<<"tt*"<<endl;cout<<"tt*2-添加:增加一個設備到設備信息中*"<<endl;cout<

8、<"tt*"<<endl;cout<<"tt*3-刪除:刪除指定設備數(shù)據(jù)cout<<"tt*"<<endl;cout<<"tt*4-查找:根據(jù)設備數(shù)據(jù)查找設備信息*"<<endl;cout<<"tt*"<<endl;cout<<"tt*5-修改:修改指定設備信息*"<<endl;cout<<"tt*"<<endl;co

9、ut<<"tt*6-顯?。涸谄聊簧巷@小所有設備的信息*"<<endl;cout<<"tt*"<<endl;cout<<"tt*7-存儲:將設備信息保存在一個義件中*"<<endl;cout<<"tt*"<<endl;cout<<"tt*0-退出:安全的退出本系統(tǒng)*"<<endl;*”*"<<endl;void Shebei:showTip() cout&l

10、t;<endl;cout<<"*操作完成*”<<endl;cout<<"*”<<endl;cout<<" 請選擇:"void Shebei:doMenu(char n)switch(n)case '1':ShebeiClear();break;case '2':ShebeiInsert();break;case '3':ShebeiDelete();break;case '4':ShebeiFind();break;case

11、'5':ShebeiModify();break;case '6':ShebeiView();break;case '7':ShebeiSave(); break;case '0':Exit();break;default:cout<<"輸入錯誤!"5、程序演小5.1 、進入系統(tǒng)5.2 添加設備信息人購買r :-.?<口 -刪除刪除設備數(shù)據(jù)4一查找:根據(jù)設備數(shù)據(jù)查找設備信息5-修改:修改i旨定設備信息"-退出:安全的退出本系統(tǒng),胞室二 shiijanshil 間t 2010-01-0

12、1 12 四Hy utan:34tal期:2003-01-015.3 刪除指定設備信息'C:LI se rsmint - sDeskto pDebu 賣幫室設備管用至統(tǒng).exe"實驗室設備管理系統(tǒng)1一清空:清除所有設備信息2添加:增加一個設備到設備信息中3刪除:刪除指定設備數(shù)據(jù)4查找:根據(jù)設備數(shù)據(jù)查找設備信息5一修改修改指定設備信息6顯示:在屏幕上顯示所有設備的信息7存儲:將設備信息保存在一個文件中 修一退出:安全的退出本系統(tǒng)hhmmhhhhhhhhhhhhhhhhhh檐逅i;5.4 根據(jù)設備數(shù)據(jù)查找設備信息:MiMX請選擇5一修改:修改指定設備信息6顯示:在屏幕上顯示所有設

13、備的信息均稱:daKn" 類型:dayinjil 所屬二驗室;shiya”hi2 購買時間:2眄1-砧-g1 彳介格:12時Hy udn 岸荏箝7B“i 隹產(chǎn)白矍:2 win 1;=壽命:unknn” 考量;W3kg-0退出:安全的退出本系統(tǒng)輸入要查找設備的編號:10砒'C:U5ersnnint - s ,Des ktopD e bug*實裝室設備皆珪至三三e xe5.5 修改設備信息5.6顯示所有設備信息JJWWWMMMMWWr=shebe i2室:shiyanshi4 I2001-01-01 M X HMM力,玲:L25Hyuain 庫荏量:54tai 生產(chǎn)日要:1小-1

14、-01 用壽命:unkrwu 量:34用壽命;unkrww量:54kgwM W WT C:U5er5mi nt - 5 De5 lctopD e bug%實棄室i殳省管洋至游-cke 'J Jr T- V里5修改修改指定設備信息”-顯示:在屏幕上顯示所有設備的信息 ?一存儲:將設備信息保存在一個文件中 目一退出:安全的退出本系統(tǒng)實典曾備編號豈斷4 名稱whchei設備編號4。的:toLii/ingi:touyingyil 室:whiyac窖hi2 :2001-01-03 I0juanVf > :12tal5.7將設備信息存儲在文本中" C ;Uier5inn int-s

15、Des ktopD e hugl 空舊室 i殳智管密州權 rawrM-實驗室設備管理系統(tǒng)-清空:清除所有謾備信息保存人功!* 1*安My HMM XM XXX MUM:請選擇:曜-N-M*z添加:摺加T設備到設備信息中 3刪除:刪除指定設備數(shù)據(jù)4一查找,根據(jù)設備數(shù)據(jù)查找設備信息5修改:修改指定設備信息6顯示:在屏幕上顯示所有設備的信息”-存儲:將設普信息保存在一個文件中H退出:安全的退出本系統(tǒng)AMElfHXXXiKJtMMM*HEieXieKiMMSMiKKMM 疑美XXHEiWitKM:利疑箕XXXiMiMMiafiCKM 黃美英XXKWEMSMMWM文件舊 扁瑁且 格式4Q 直看功 幫動出

16、)1004 shebei shebei2 shiyanshi4 2001-01-01 1250yuan 54tai 1999-01-01 1003 tduyingyi tguyingyil shiyainshiS 200101-03 lOOOyuan 12tai 1999-01-01 54ks6、總結經(jīng)過一個星期的C+程序設計,讓我明白到了 C+這門課的重要性,C+作為一門電 腦學的基礎課,是我們必須掌握的順電腦飛速發(fā)展的今天,掌握電腦的應用是如今每一位 大學生所必須掌握的,掌握電腦有對各人來說有我種好處,學習電腦是一種本領,也是一 種生存的技能,而C+做為電腦的基礎,掌握它更是我們這些大學生

17、所必須掌握的。經(jīng)過這次程序設計,讓我認識到了 C+的運用是相當廣泛的,才拿到題目的時候,我 真的不知道該怎么辦,但隨著慢慢的設計,思路也總算有了,這樣才能繼續(xù)進行下去,這 時我才真正認識到了 C+的功能原來是那么的多。一個復雜的實驗室設備管理系統(tǒng),經(jīng) 過500-600行的代碼就可以完完全全的達到,這是讓我非常驚訝的,但相對,如今的 C+ 也是非常難的,這學期學到的一些內(nèi)容,都是 C+的重點,但學下來以后感覺還是很難所 以必須先打好基礎,基礎好了,學什么都會容易很多。C+,這是一門非常重要的科目,我們必須付出很這次的程序設計讓我重新認識到了 多倍的努力學習它,才能熟練地掌握它參考資料1 .鄭莉

18、等編著C+語言程序設計(第三版)北京:清華大學出版社2 .鄭莉 等編著C+語言程序設計(第三版)學生用書北京:清華大學出版社3 .李春葆等編著C+程序設計學習與上機實驗指導北京:清華大學出版社4 .范輝 等編著Visual C+6.0程序設計簡明教程 高等教育出版社5 .李龍潮« C+程序設計實訓教程北京:清華大學出版社6 .洪國勝 等編著 C+ Builder程序設計輕松上手北京:清華大學出版社口 .嚴蔚敏等 數(shù)據(jù)結構(c語言版)北京:清華大學出版社,1997年4月第1版8.胡學鋼等數(shù)據(jù)結構算法設計指導北京:清華大學出版社,1999年 第1版。源代碼#include<iost

19、ream> #include<cstdlib> #include<string> #include<fstream> #include<sstream> using namespace std; class Node/結點類, public:long id;string name;string type;string suoshushiyanshi;string buytime;string price;string amount;string shengchanriqi;用于存放客戶的各種信息/實驗設備編號/名稱/設備類型/實驗設備所屬實

20、驗室/購買時間/價格/庫存量/生產(chǎn)日期/使用壽命/重量Node *next;指向下一結點的指針string shiyongshouming; string weight;Node(long id=000,string nname="noname",string ntype="unkown”,string nsuoshushiyanshi="unknow", string nbuytime="unknow”,string nprice="unknow”,string namount="unknow”, string

21、nshengchanriqi="unkown", string nshiyongshouming="unknow”,string nweight="unknow");/構造函數(shù), 初始化變里;class Link/Link類,把數(shù)據(jù)以鏈表的形式存儲,鏈表的每個結點為一個Node對象private:Node *head;/鏈表的頭指針,為Node對象類型的指針public :Link();構造函數(shù),初始化變量bool linkIsEmpty();判斷鏈表是否為空void linkInsert(Node *newnode);/向鏈表中插入新的結點b

22、ool linkDelete(int nid);/從鏈表中刪除的結點void linkClear();清空鏈表中數(shù)據(jù)void linkView();/查看鏈表中數(shù)據(jù)Node* linkFind(int nid);/在鏈表中查找id為nid結點,返回指向該結點的指針 Node* getHead();/iK取頭指針;Node二Node(long nid, string nname, string ntype,string nsuoshushiyanshi, string nbuytime,string nprice,string namount, string nshengchanriqi, st

23、ring nshiyongshouming,string nweight)id=nid;name=nname;type=ntype;suoshushiyanshi=nsuoshushiyanshi;buytime=nbuytime;price=nprice;amount=namount;shengchanriqi=nshengchanriqi;shiyongshouming=nshiyongshouming;weight=nweight;next=NULL;Link:Link()/構造函數(shù),初始化鏈表為空head=NULL;bool Link:linkIsEmpty()/判斷鏈表是否為空,空則

24、返回 truereturn(head=NULL);void Link:linkInsert(Node *newnode) /按id值從小到大的順序,插入新的結點 Node *p1;if(!head)/鏈表為空的情況head=newnode;else if(head->id)>(newnode->id) /插入到第一個結點的情況newnode->next=head;head=newnode;else /隔入到第二個及以后情況p1=head;while(1)if(!(p1->next)p1->next=newnode;break;else if(p1->n

25、ext)->id>newnode->id)newnode->next=p1->next;p1->next=newnode;break;p1=p1->next; bool Link:linkDelete(int nid) 刪除結點,成功則返回 trueNode *p;if(head=NULL)/鏈表為空的情況return false;if(head->id=nid) /刪除的為第個結點的情況 head=head->next;return true;p=head;while(p->next) 刪除的為第二個及以后結點的情況 if(p-&g

26、t;next)->id=nid) p->next=(p->next)->next; return true; p=p->next; return false;void Link:linkClear() / 清空鏈表head=NULL;Node* Link二linkFind(int nid) /查找id值為nid的結點,返回該結點的指針 NULLNode *p=head;/沒找到符合條件的結點的話,返回的指針值為while(p) if(p->id=nid) break;elsep=p->next;return p; void Link:linkView(

27、) / 顯示鏈表數(shù)據(jù) (Node *p=head;while(p) (cout<<”實驗設備編號:"<<p->id<<endl;cout<<"名稱:"<<p->name<<endl;cout<<"類型:"<<p->type<<endl;cout<<"所屬實驗室:"<<p->suoshushiyanshi<<endl;cout<<"購買時間

28、:"<<p->buytime<<endl;cout<<"價格:"<<p->price<<endl;cout<<"庫存量:"<<p->amount<<endl;cout<<"生產(chǎn) 日期:"<<p->shengchanriqi<<endl;cout<<"使用壽命:"<<p->shiyongshouming<<end

29、l;cout<<"重量:"<<p->weight<<endl;cout<<"*”<<endl;p=p->next;Node* Link:getHead()(return head;/類Shebei,用于包裝Link類及菜單操作class Shebei(private:Link clink;/Link 對象成員bool k;/記錄數(shù)據(jù)是否被修改public:Shebei();void ShebeiClear();void ShebeiInsert();void ShebeiDelete();vo

30、id ShebeiFind();void ShebeiModify();void ShebeiView();void ShebeiLoad();void ShebeiSave();void Exit();/ 退出程序void showMenu();/顯示菜單void showTip();/顯示操作提示void doMenu(char n);/執(zhí)行相應菜單項功能;Shebei:Shebei()Link();/調(diào)用成員對象的構造函數(shù)ShebeiLoad();/R文件中讀取數(shù)據(jù),創(chuàng)建鏈表 k=false;/設置數(shù)據(jù)被修改void Shebei:ShebeiClear() /青空設備記錄clink.l

31、inkClear();cout<<"成功清空設備信息記錄!"<<endl;void Shebei:ShebeiInsert() /插入設備記錄Node *p=new Node();H.cout<<"請輸入設備編號 cin>>p->id;cout<<"請輸入名稱:"cin>>p->name;cout<<"請輸入類型:"cin>>p->type;cout<<"請輸入所屬實驗室:"cin

32、>>p->suoshushiyanshi;cout<<"請輸入購買時間:"cin>>p->buytime;cout<<"請輸入價格:"cin>>p->price;cout<<"請輸入庫存量:"cin>>p->amount;cout<<"請輸入生產(chǎn)日期:"cin>>p->shengchanriqi;cout<<"請輸入設備重量:"cin>>

33、;p->weight;if(!clink.linkFind(p->id) /判斷設備信息是否存在clink.linkInsert(p);k=true;elsecout<<"設備編號為"<<p->id<<"的的設備已存在,插入失??! "<<endl; void Shebei:ShebeiDelete() /刪除設備記錄long i;if(clink.linkIsEmpty()/ 鏈表為空的情況cout<<"沒有設備記錄!"<<endl;elseco

34、ut<<"請輸入設備編號H.cin>>i;if(clink.linkDelete(i) (cout<<"成功刪除編號為"<<i<<"的實驗記錄! "<<endl; k=true;)elsecout<<"沒有找到編號為"<<i<<"的設備! "<<endl;)void Shebei二ShebeiFind() /鷹找某編號的設備記錄(long n;Node *p;if(clink.linkI

35、sEmpty()/ 鏈表為空的情況cout<<"沒有設備記錄! "<<endl;else(cout<<"請輸入要查找設備的編號:"cin>>n;p=clink.linkFind(n);/獲得找到的結點的指針if(p) 指針值不為NULL時(cout<<”實驗設備編號:"<<p->id<<endl;cout<<“名稱:"<<p->name<<endl;cout<<“類型:"<&l

36、t;p->type<<endl;cout<<”所屬實驗室:"<<p->suoshushiyanshi<<endl;cout<<“購買時間:"<<p->buytime<<endl;cout<<“價格:"<<p->price<<endl;cout<<“庫存量:"<<p->amount<<endl;cout<<“生產(chǎn) 日期:“<<p->shengc

37、hanriqi<<endl;cout<<“使用壽命:"<<p->shiyongshouming<<endl;cout<<“重量:"<<p->weight<<endl;else游旨針值為NULL時 cout<<"沒有找到編號為"<<n<<"的設備記錄! "<<endl;)void Shebei二ShebeiModify() 修改某編號的設備信息(long n;Node *p;if(clink.l

38、inkIsEmpty()/ 鏈表為空的情況 cout<<"沒有設備記錄! "<<endl;else(cout<<”請輸入要修改設備的編號:"cin>>n;p=clink.linkFind(n);/獲得找到的結點的指針 if(p) 指針值不為NULL時 (cout<<”實驗設備編號:"<<p->id<<endl;cout<<“名稱:"<<p->name<<endl;cout<<“類型:"<

39、<p->type<<endl;cout<<”所屬實驗室:"<<p->suoshushiyanshi<<endl;cout<<“購買時間:"<<p->buytime<<endl;cout<<“價格:"<<p->price<<endl;cout<<“庫存量:"<<p->amount<<endl;cout<<“生產(chǎn) 日期:“<<p->shen

40、gchanriqi<<endl;cout<<“使用壽命:"<<p->shiyongshouming<<endl;cout<<“重量:"<<p->weight<<endl;cout<<"請輸入新的設備信息"<<endl;cout<<"請輸入設備編號:"cin>>p->id;cout<<"請輸入名稱:"cin>>p->name;cout<

41、;<"請輸入類型:"cin>>p->type;cout<<”請輸入所屬實驗室:"cin>>p->suoshushiyanshi;cout<<"請輸入購買時間:"cin>>p->buytime;cout<<"請輸入價格:"cin>>p->price;cout<<"請輸入庫存量:"cin>>p->amount;cout<<"請輸入生產(chǎn)日期:&qu

42、ot;cin>>p->shengchanriqi;cout<<"請輸入設備重量:"cin>>p->weight;else游旨針值為NULL時cout<<"沒有找到編號為"<<n<<"的設備記錄! "<<endl;void Shebei:ShebeiView() /® 示所有設備的記錄if(clink.linkIsEmpty()cout<<"沒有設備記錄! "<<endl;elseclin

43、k.linkView();void Shebei:ShebeiLoad()/A文件中讀入數(shù)據(jù),創(chuàng)建鏈表Node *p;long nid;ifstream infile("data.txt");if(!infile)cerr<<"錯誤:數(shù)據(jù)文件不能打開!n"elsewhile(infile>>nid) /讀取客戶,直到讀空(p=new Node();p->id=nid;infile>>p->name>>" "/讀取名稱infile>>p->type>&g

44、t;" "infile>>p->suoshushiyanshi>>""infile>>p->buytime>>" "infile>>p->price>>" "infile>>p->amount>>" "infile>>p->shengchanriqi>>“"infile>>p->weight>>"

45、"clink.linkInsert(p);infile.close(); /關閉文件void Shebei:ShebeiSave() /等數(shù)據(jù)保存到文件(Node *p=clink.getHead();ofstream outfile("data.txt");if(!outfile)cerr<<"錯誤:數(shù)據(jù)文件不能打開!n"else(while(p)(<<p->suoshushiyanshi“<<p->amount<<”outfile<<p->id<<&q

46、uot; "<<p->name<<" "<<p->type<<”<<" "<<p->buytime<<" "<<p->price<<“<<p->shengchanriqi<<""<<p->weight<<" "<<endl;p=p->next;k=false;cout<&l

47、t;”保存成功! "<<endl;void Shebei:Exit()(char s='Y'if(k) 判斷數(shù)據(jù)是否修改(cout<<"數(shù)據(jù)已經(jīng)改變,是否保存? (y/n):" cin>>s;if(s='y'|s='Y')ShebeiSave();)cout<<"已安全退出,"system("pause");exit(0);) void Shebei:showMenu()cout<<"tt*”<<endl;cout<<"tt*&q

溫馨提示

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

評論

0/150

提交評論