

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、推南呼紅厚院C程序設計課程設計報告(2015-2016 學年度 第一學期)題目 :實驗室設備管理系統學 生 姓 名 :宋波學號15082101201508210120班級 :1515 計科 3 3 班指 導 老 師 :鄧明日期 :20162016 年 4 4 月 9 9 日淮南師范學院計算機學院2016 年 4 月 9 日11課程設計名稱及內容 . 21.1 程序設計組成框圖. 22 任務要求. 33 課程設計報告內容 . 33.1 流程圖顯示. 33.2 程序實現思路. 64 程序演示. 95總結. 136源代碼. 14實驗室設備管理系統1、課程設計名稱及內容課程設計名稱:實驗室設備管理系統
2、 設計內容:編寫一個簡單的實驗室設備管理程序,幫助管理實驗室設備信息。要求具有 設備信息管理的功能。其中包括設備信息的錄入、刪除、查2詢和修改等功能。還應包括對 實驗室信息管理的功能。其中包括對實驗室信息的錄入、刪除、修改和查詢等功能程序設計組成框圖2、任務和要求運用面向對象的程序設計方法,要求選擇動態數組類模板或鏈表類模板,任務中要 運用I/O 流對象對文件進行讀寫操作。本題程序應提供的基本管理功能有:1) 添加:即增加一條信息到設備信息中,或增加一條信息到實驗室信息中;2) 顯示:即在屏幕上顯示所有設備或實驗室信息;3) 存儲:即將設備信息和實驗室信息分別保存在文件中;4) 裝入:即將文件
3、中的信息讀入程序;5) 查詢:可根據設備名稱查找具體情況,若找到,顯示在屏幕上;6) 修改:可修改設備信息,或對實驗室信息進行修改。33、課程設計報告內容3.1 流程圖顯示4將新的設備信息插入鏈表5刪除節點操作的算法流程圖63.2 程序實現思路定義一個結點類,用于存放實驗室設備的各種信息;定義一個 Link 類,把數據以鏈表的形式存儲,鏈表的每個結點為一個Node 對象;定義一個 Shebei 類,用于包裝 Link 類及菜單操作; 定義 Link 類和 Shebei 類的成員函數,實現要求的各種功能;Link 類:class Link/Link類,把數據以鏈表的形式存儲,鏈表的每個結點為一個
4、Node 對象private:Node *head; / 鏈表的頭指針,為 Node 對象類型的指針public :Link();/ 構造函數,初始化變量bool linkIsEmpty();/判斷鏈表是否為空void linkInsert(Node *newnode);/向鏈表中插入新的結點bool linkDelete(int nid);/從鏈表中刪除的結點void linkClear();/清空鏈表中數據void linkView();/ 查看鏈表中數據Node* linkFind(int nid);/在鏈表中查找 id 為 nid 結點,返回指向該結點的指針Node* getHead(
5、);/ 獲取頭指針;Shebei 類:class Shebeiprivate:Link clink;/Link對象成員bool k;/ 記錄數據是否被修改public:Shebei();void ShebeiClear();void ShebeiInsert();7void ShebeiDelete();void ShebeiFind();void ShebeiModify();void ShebeiView();void ShebeiLoad();void ShebeiSave();void Exit();/ 退出程序void showMenu();/ 顯示菜單void showTip();
6、/ 顯示操作提示void doMenu(char n);/ 執行相應菜單項功能 ;然后就是各個函數的具體定義。菜單選擇功能的實現 , 使用 switch 語句; 菜單選擇函數的定義:void Shebei:showMenu()couttt*實驗室設備管理系統 *endl;couttt*endl;couttt*1-清空:清除所有設備信息*endl;couttt*endl;couttt*2-添加:增加一個設備到設備信息中*endl;couttt*endl;couttt*3-刪除:刪除指定設備數據*endl;couttt*endl;couttt*4-查找:根據設備數據查找設備信息*endl;cout
7、tt*endl;couttt*5-修改:修改指定設備信息*endl;couttt*endl;couttt*6-顯示:在屏幕上顯示所有設備的信息*endl;couttt*endl;couttt*7-存儲:將設備信息保存在一個文件中*endl;couttt*endl;couttt*0-退出:安全的退出本系統*endl;8couttt*、endl;couttt*、endl;9cout 請選擇: voidShebei:doMenu(char n)switch(n)case 1:ShebeiClear();break;case 2:ShebeiInsert();break;case 3:ShebeiDe
8、lete();break;case 4:ShebeiFind();break;case 5:ShebeiModify();break;case 6:ShebeiView();break;case 7:ShebeiSave();break;case 0:void Shebei:showTip()coutendl;CC d*操作完成*、endl;cout*選擇 0 7 繼續*、endl;10Exit();break;default:COUtVV 輸入錯誤!;4、程序演示4.1、進入系統114.2 添加設備信息4.3 刪除指定設備信息* C:Use rsm i nt- 5Deskto pDebu g
9、供螢室設苗管建磊焼.exe實驗室設備管理系統1一清空:清除所有設備信息2添加:増加一個設備到設備信息中M刪除:刪除指定設備數據4查找:根據設備數據查找設備信息5修改修改I修改指定設備信息修改指定設備信息石一顯示: 在屏幕上顯示所有設備的信息 ?存儲:將設備信息保存在一個文件中也一退出:安全的退出本系統)000000000000000000000000000000000000i is h i= 20111-01一O1二jLMuan- Sti-rt j_ 11=1999-01-0丄 壽命-unknow s34ker?:辛設諾潔肩1呆存在一T文件中*. MTF.在旦爲上且亦所有設備的信息弓一倏改匚修
10、改指定設奮呂息選擇格 * 直辜存屋二丄2吒小丄T /-J1999-01-B丄吏JH丸nfi unknow査星:54kMMMM MMMMMMMMMMMM MMMMMMMMIMMMM MMMMMMMMMMMM MMMMKMMMMMMHI M :M*C:U?ir5im i nt -sOeslktopDE! bsjgXStlSSi&fe iSffirfeSt-e-Ke齊養設備編號=1回毗 島稱HMEZL:3hehei2設備編號:1BB3=taulngf y touylnsrH室=shivnslilS:2Ol-Bl-03t亍亡hS啊低賓畀轉卿腎瑪胃腎科啊楓髯畀瑪陳乂晉50 -誕世綾X134.7
11、將設備信息存儲在文本中匸*C:Userm i nt - 5.DesktopD e bugl妻諾宰設苗営理尋兢e畑實臉室設備菅理系統根據設備數據查找設備信息安全的退岀本系統保存碼功!5、總結經過一個星期的 C 語言程序設計,讓我明白到了 C 語言這門課的重要性,C 語言作 為一門電腦學的基礎課,是我們必須掌握的順電腦飛速發展的今天,掌握電腦的應用是如 今每一位大學生所必須掌握的,掌握電腦有對各人來說有我種好處,學習電腦是一種本領, 也是一種生存的技能,而 C 語言做為程序的基礎,掌握它更是我們這些大學生所必須掌 握的。經過這次程序設計,讓我認識到了 C 語言的運用是相當廣泛的,才拿到題目的時候,
12、 我真的不知道該怎么辦,但隨著慢慢的設計,思路也總算有了,這樣才能繼續進行下去, 這時我才真正認識到了 C 語言的功能原來是那么的多。一個復雜的實驗室設備管理系統, 經過 500-600行的代碼就可以完完全全的達到,這是讓我非常驚訝的,但相對,如今的 C 語言也是非常難的,這學期學到的一些內容,都是C 語言的重點,但學下來以后感覺還是很難所以必須先打好基礎,基礎好了,學什么都會容易很多。這次的程序設計讓我重新認識到了 C 語言,這是一門非常重要的科目,我們必須付 出很多倍的努力學習它,才能熟練地掌握它。清空:清除所有設備信息2添加:増加一個設備到設備信息中3一刪除:刪除指定設備數橢-修改:t-
13、顯不:修改指定設備信息在屏幕上顯示所有設備的信息7存儲:將設備信息保存在一個文件中2乍 *乂; 1釜賓賓翼 f M| 賓gif f貝 貝貝 E 耳 E1/ a -r -fefif -rT貝 E 貝 IB. E E 貝 r I請選提:1004 shebei shebei2 shiyanshi4 2001-01-01 125Qyuan 54tai 1999-01-01 34k呂1003 tDuyingyi touyLngyil shiyanshiE 20010H)3 lOOOyuan 12tai 199971-01 54kg14源代碼#include #include #include #incl
14、ude #includeusing namespace std;class Node / 結點類,用于存放客戶的各種信息public:Node(long id=000,stringnsuoshushiyanshi=unknow,string nbuytime=unknow,string nprice=unknow,string namount=unknow, stringnshengchanriqi=unkown,string nshiyongshouming=unknow,string nweight=unknow );/ 構造函數,初始化;class Link /Link 類,把數據以鏈表
15、的形式存儲,鏈表的每個結點為一個 Node 對象private:Node *head; /鏈表的頭指針,為 Node 對象類型的指針public :Link();/ 構造函數,初始化變量long id;string name;string type;string suoshushiyanshi;string buytime;string price;string amount;string shengchanriqi;string shiyongshouming;string weight;Node *next;/實驗設備編號/名稱/設備類型/實驗設備所屬實驗室/購買時間/價格/庫存量/生產日
16、期/使用壽命/重量/指向下一結點的指針nname=noname,string ntype=unkown,string15bool linkIsEmpty();/ 判斷鏈表是否為空void linkInsert(Node *newnode);/ 向鏈表中插入新的結點bool linkDelete(int nid);/ 從鏈表中刪除的結點void linkClear();/ 清空鏈表中數據void linkView();/ 查看鏈表中數據Node* linkFind(int nid);/ 在鏈表中查找 id 為 nid 結點,返回指向該結點的指針Node* getHead();/獲取頭指針;Nod
17、e:Node(long nid, string nname, string ntype,string nsuoshushiyanshi, stringnbuytime,string nprice,string namount, string nshengchanriqi, stringnshiyongshouming,string nweight)id=nid;name=nname;type=ntype;suoshushiyanshi=nsuoshushiyanshi;buytime=nbuytime;price=nprice;amount=namount;shengchanriqi=nshe
18、ngchanriqi; shiyongshouming=nshiyongshouming;weight=nweight;next=NULL;Link:Link()/構造函數,初始化鏈表為空head=NULL;bool Link:linkIsEmpty()/判斷鏈表是否為空,空則返回 truereturn(head=NULL);共同設計void Link:linkInsert(Node *newnode) / 按 id 值從小到大的順序,插入新的結點Node *p1;if(!head)鏈表為空的情況16head=newnode;else if(head-id)(newnode-id) /插入到第
19、一個結點的情況newnode-next=head;head=newnode;else /插入到第二個及以后情況p1=head;while(1)if(!(p1-next)p1-next=newnode; break;else if(p1-next)-idnewnode-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)
20、 / 刪除的為第一個結點的情況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() / 清空鏈表head=NULL;17Node* Link:linkFind(int nid) / 查找 id 值為 nid 的結點,返回該結點的指針Node *p=head;/沒找到符合條件的結點的話,返回的指針值為 NULLwhi
21、le(p)if(p-id=nid)break;18elsep=p-next;return p;void Link:linkView() / 顯示鏈表數據Node *p=head;while(p)cout 實驗設備編號 :idendl;cout名稱:n amee ndl;cout類型:typee ndl;coutvv所屬實驗室:suoshushiyanshivvendl;coutvv購買時間:buytimevendl;coutvv價格:pricee ndl;coutvv庫存量:amountendl;coutvv生產日期:shengchanriqivvendl;coutvv使用壽命:vvp-shi
22、yongshoumingvvendl;coutvv重量:vvp-weightnext;Node* Link:getHead()return head;/類 Shebe,用于包裝 Link 類及菜單操作class Shebeiprivate:Link clink;/Link 對象成員bool k;/ 記錄數據是否被修改 public:coutvv*、vvendl;19Shebei();void ShebeiClear();void ShebeiInsert();void ShebeiDelete();void ShebeiFind();void ShebeiModify();void Shebe
23、iView();void ShebeiLoad();void ShebeiSave();void Exit();/ 退出程序void showMe nu(); 顯示菜單void showTip();顯示操作提示void doMe nu (char n);執行相應菜單項功能 ;Shebei:Shebei()Li nk();調用成員對象的構造函數ShebeiLoad();從文件中讀取數據,創建鏈表 k=false;設置數據被修改void Shebei:ShebeiClear() /清空設備記錄clink.linkClear();coutvv成功清空設備信息記錄! p-id;coutvv請輸入名稱:
24、; cinp-name;coutvv請輸入類型:;cinp-type;coutvv請輸入所屬實驗室:; cinp-suoshushiyanshi;coutvv請輸入購買時間:; cinp-buytime;coutvv請輸入價格:;cinp-price;coutvv請輸入庫存量:; cinp-amount;coutvv請輸入生產日期:;cinp-shengchanriqi;coutvv請輸入設備重量:;cinp-weight;if(!clink.linkFind(p-id) / 判斷設備信息是否存在clink.linkInsert(p); k=true;elsecoutvv設備編號為vvp-id
25、vv的的設備已存在,插入失敗!void Shebei:ShebeiDelete() /刪除設備記錄long i;if(clink.linkIsEmpty()/ 鏈表為空的情況 coutvv沒有設備記錄!vvendl;elsecoutvv請輸入設備編號: cini; if(clink.linkDelete(i)cout 成功刪除編號為 i 的實驗記錄! endl;k=true;elsevvendl;- 由陳磊設計21cout 沒有找到編號為 i 的設備! endl;void Shebei:ShebeiFind() /查找某編號的設備記錄long n;Node *p;if(clink.linkIs
26、Empty()/ 鏈表為空的情況cout 沒有設備記錄! n;p=clink.linkFind(n);/ 獲得找到的結點的指針 if(p) / 指針值不為NULL 時cout實驗設備編號:vvp-idvendl;cout名稱:n amee ndl;cout類型:typesuoshushiyanshivvendl;coutvv購買時間:vvp-buytimevendl;coutvv價格:priceamountvvendl;coutvv生產日期:vvp-shengchanriqivvendl;coutvv使用壽命:vvp-shiyongshoumingvvendl; coutvv重量:vvp-we
27、ightve ndl;else/指針值為 NULL 時22coutvv沒有找到編號為*的設備記錄! endl;void Shebei:ShebeiModify() /修改某編號的設備信息long n;Node *p;if(clink.linkIsEmpty()/ 鏈表為空的情況cout沒有設備記錄! n;p=clink.linkFind(n);/ 獲得找到的結點的指針if(p) / 指針值不為 NULL 時coutvv實驗設備編號:vvp-idn amevve ndl;coutvv類型:vvp-typevve ndl;coutvv所屬實驗室:vvp-suoshushiyanshivvendl;
28、coutvv購買時間:vvp-buytimevvendl;coutvv價格:vvp-pricevve ndl;coutvv庫存量:vvp-amountvvendl;coutvv生產日期:vvp-shengchanriqivvendl;coutvv使用壽命:vvp-shiyongshoumingvvendl;coutvv重量:vvp-weightvve ndl;coutvv請輸入新的設備信息vvendl;coutvv請輸入設備編號:;cinp-id;coutvv請輸入名稱:;cinp-name;coutvv請輸入類型:;cinp-type;coutvv請輸入所屬實驗室:;cinp-suoshus
29、hiyanshi;23coutp-buytime; coutp-price; coutp-amount; coutp-shengchanriqi; coutp-weight;else/指針值為 NULL 時coutvv沒有找到編號為n的設備記錄! endl;- 由邊 飛設計 void Shebei:ShebeiView() /顯示所有設備的記錄if(clink.linkIsEmpty()cout沒有設備記錄! nid) / 讀取客戶,直到讀空24p=new Node();p-id=nid;infilep-name ;/讀取名稱infilep-type ; infilep-suoshushiyanshi ; infilep-buytime ;infilep-price ; infilep-amount ; infilep-shengchanriqi ;infilep-weight ;clink.linkInsert(p);infile.close(); / 關閉文件void Shebei:ShebeiSave() /將/ 數據保存到文件Node *p=clink.getHead();ofstream outfile(data.txt);if(!outfile
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辯論賽總結發言稿
- 2025農業流轉土地承包經營合同模板(全新)示例
- 2025房產買賣合同樣本手冊
- 幼兒教師考試試題及答案
- 2025建筑工程合同補充協議書
- 2025標準住宅商品房買賣合同書范本
- 2024-2025學年高中英語Module3ForeignFoodSectionⅤWriting-描述一次尷尬的經歷教案含解析外研版選修8
- 新課改瘦專用2025版高考物理一輪復習第五章第3節機械能守恒定律及其應用學案含解析
- 2025版高三化學一輪復習第三章第四節用途廣泛的金屬材料及開發利用金屬礦物課時訓練含解析新人教版
- 2025歌手音樂節演出合同
- 高填深挖路基穩定性監控觀測方案
- 初始污染菌檢測原始記錄
- 安全標準化現場評審所需資料清單(共14頁)
- 罪犯教育-身份意識和改造心態教育
- 胃腸減壓技術操作流程.
- 鏈家房屋買賣合同范本(共10篇)
- 工序能耗計算方法及等級指標
- 鋸齒形板式熱水冷卻器的設計3.
- 藥店組織機構圖及部門設置說明
- DSP課程設計--基于IIR的語音信號濾波
- 危大工程驗收表-
評論
0/150
提交評論