C語言-試驗室設(shè)備管理系統(tǒng)_第1頁
C語言-試驗室設(shè)備管理系統(tǒng)_第2頁
C語言-試驗室設(shè)備管理系統(tǒng)_第3頁
C語言-試驗室設(shè)備管理系統(tǒng)_第4頁
C語言-試驗室設(shè)備管理系統(tǒng)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計報告1課程設(shè)計題目:實驗室設(shè)備管理里系統(tǒng)實驗設(shè)備信息包括:設(shè)備編號、設(shè)備種類(如:微機(jī)打印機(jī)掃描儀等等)、設(shè)備名稱、設(shè)備價格、設(shè)備購入日期、是否報廢、報廢日期等。試設(shè)計一實驗設(shè)備信息管理系 統(tǒng),使之能提供以下功能:(1)能夠完成對設(shè)備的錄入和修改(2)對設(shè)備進(jìn)行分類統(tǒng)計(3)設(shè)備的查詢2需求分析實驗室設(shè)備信息用文件存儲,提供文件的輸入輸出操作;要能夠完成設(shè)備的錄入 和修改,需要提供設(shè)備添加和修改操作;實現(xiàn)對設(shè)備進(jìn)行分類統(tǒng)計,需要提供排序操作; 實現(xiàn)對設(shè)備查詢需要提供查找操作,設(shè)備的查詢可根據(jù)設(shè)備編號設(shè)備種類設(shè)備購入日期 正常設(shè)備(未報廢的)等多種方式查詢;另外還要根據(jù)鍵盤式選擇菜

2、單以實現(xiàn)功能選擇。3總體設(shè)計與模塊的劃分整個系統(tǒng)可設(shè)計為實驗設(shè)備信息輸入模塊實驗設(shè)備信息添加模塊實驗設(shè)備信息修 改模塊實驗設(shè)備分類統(tǒng)計模塊和實驗設(shè)備查詢模塊。設(shè)備甯理系統(tǒng)設(shè)入設(shè)備信改設(shè)備信詢設(shè)備信計設(shè)備信廢 設(shè) 備 信主函數(shù)流程圖:AIN+甲n-調(diào)用.功能橫, 結(jié),4建立實驗設(shè)備信息結(jié)構(gòu)體結(jié)構(gòu)體成員包括設(shè)備編號設(shè)備名稱部門編號部門名稱設(shè)備價格設(shè)備購買時間是否 報廢報廢日期。5應(yīng)用程序功能詳細(xì)說明程序運行后進(jìn)入管理系統(tǒng),顯示目錄:錄入設(shè)備信息,修改設(shè)備信息,查詢設(shè)備 信息,統(tǒng)計設(shè)備信息,報廢設(shè)備信息,退出錄入設(shè)備信息系統(tǒng)提示用戶在原有的基礎(chǔ)上錄入新的設(shè)備信息。流程圖如下:(1)修改記錄系統(tǒng)要求用

3、戶輸入要修改的設(shè)備編號, 這時系統(tǒng)會顯示設(shè)備 的具體信息,用戶只需該設(shè)備新的信息按要求輸入即可對信息進(jìn)行修改。流程圖 如下:(2)顯示記錄無記錄退出,有記錄者按要求輸出。流程圖如下:開沒有記錄可以顯 有記錄者按要求(3)統(tǒng)計小類若有確Ur以統(tǒng)計,則按要求分類統(tǒng)計輸出。流程圖如下:(4)查詢記錄若信息為空,則不能查詢。流程圖如下:(6)結(jié)束語通過本次c語言的程序設(shè)計,我不僅提高鞏固了 c語言的基礎(chǔ),也初學(xué)習(xí)了編寫 一個實用程序的流程,提高了動手操作能力,也提高了對編程的興趣。我相信經(jīng)過努力 后,我的編程能力一定會得到提高。源程序代碼清單:voidmain()(Node*equip;FILE*fp

4、;intflag;Node*p,*q;printf("tttt 設(shè)備管理系統(tǒng) n");equip=(Node*)malloc(sizeof(Node);equip->next=NULL;p=equip;fp=fopen("設(shè)備管理系統(tǒng)","wb+");將文件的內(nèi)容放入接點中*/q=(Node*)malloc(sizeof(Node);if(fread(q,sizeof(Node),1,fp)/*(q->next=NULL;p->next=q;p=q;/*將該接點掛入鏈表中*/fclose(fp);/* 關(guān)閉文件 */

5、while(1)目錄 *mm、).;(printf("*printf("n1添加記錄 n");printf("n2修改記錄 n");printf("n3顯示記錄 n");printf("n4統(tǒng)計分類 n");printf( "n5 查詢t己錄 n" );printf("n0*-EXIT-*n");printf("請輸入你要操作的序號:");scanf("%d",&flag);switch(flag)提示:已經(jīng)退出系統(tǒng),

6、ByeBye!n");break增加記錄*/修改記錄*/顯示記錄信息*/統(tǒng)計記錄*/查詢記錄*/提示:輸入錯誤!n");break;case0:printf("n>>>>>>>>>> case1:Add(equip);break;/* case2:Modify(equip);break;/* case3:Disp(equip);break;/* case4:Tongji(equip);break;/* case5:chaxun(equip);break;/* default:printf("n&

7、gt;>>>>>>>>> StructshebeicharID10;charname15;charkind15;charover15;charyesno10;chart ime10;charprice10;voidAdd(Node*equip)/* 添加記錄 */Node*p,*r,*s;charid10;/* 先用于輸入ID,也用于判斷是否跳出循環(huán)*/r=equip;s=equip->next;/* 使s為第一個有用的結(jié)點*/while(r->next!=NULL)/*這個循環(huán)的作用是使r為最后一個有用的結(jié)點*/r=r->

8、;next;/*將指針置于最末尾*/while(1) ( printf(">>>>>>>>>> 提示:輸入0則返回主菜單!n"); printf("n 請你輸入設(shè)備ID號:");彳scanf("%s",id);”if(strcmp(id,"0")=0)break; p=(Node*)malloc(sizeof(Node);/* 申請空間 */ strcpy(p->data.ID,id); printf("n請輸入設(shè)備名稱:");s

9、canf("%s",p->);printf("n請輸入設(shè)備種類:");scanf("%s”,p->data.kind);printf("n請輸入報廢日期:");scanf("%s”,&p->data.over);printf("n請輸入設(shè)備是否報廢:");scanf("%s",&p->data.yesno);printf("n請輸入設(shè)備購買時間:");scanf("%s",&am

10、p;p->data.time);printf("n請輸入設(shè)備價格:");scanf("%s”,&p->data.price);printf(">>>>>>>>>>提示:已經(jīng)完成一條記錄的添加。n");p->next=NULL;r->next=p;/*這一步是必需的,將p與先前的鏈表連起來構(gòu)成一條新鏈表*/ r=p;/*也是必'需的.將r又重設(shè)為新鏈的最后一個有用結(jié)點*/)voidModify(Node*equip)/* 修改*/(Node*p;c

11、harfind20;if(!equip->next)(printf("n>>>>>>>>>> 提示:沒有資料可以修改!n");return;)printf("請輸入要修改的設(shè)備ID號:");scanf("%s",find);" p=equip->next;while(p!=NULL)(if(strcmp(p->data.ID,find)=0)/*如果找到的話返回的是符合要求*/break; p=p->next; ) if(p)/*若找到*/野

12、(,intx;while(1)(printf("完成修改請輸入0否則輸入任意數(shù)再進(jìn)行修改:”); scanf("%d",&x);if(x=0)break;printf("請輸入新設(shè)備號(原來是$):"戶-"212.1口);scanf("%s",p->data.ID);printf("請輸入新設(shè)備名稱(原來是s):",p->);scanf("%s",p->);printf("請輸入新設(shè)備設(shè)備種類名稱(原來是

13、%s):",p->data.kind);scanf("%s",p->data.kind);printf("請輸入新設(shè)備報廢日期名稱(原來是%s):",p->data.over);scanf("%s",p->data.over);printf("請輸入新設(shè)備是否報廢(原來是s):",p->data.yesno);scanf("%s",p->data.yesno);printf("請輸入新設(shè)備購買時間(原來是%s):",p->d

14、ata.kind);scanf("%s",p->data.time);printf("請輸入新設(shè)備價格(原來是%s):",p->data.price);scanf("%s",p->data.price);printf("n>>>>>>>>>> 提示:該項記錄資料已經(jīng)成功修改!n");elseprintf("n>>>>>>>>>>提示:你要修改的信息不存在!n"

15、);voidDisp(Node*equip)/* 輸出記錄 */Node*p;p=equip->next;if(!p)printf("n>>>>>>>>>> 提示:沒有記錄可以顯示!n");圖書館管理系統(tǒng)return;)printf("tttt顯示結(jié)果 n");printf("設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n");while(p) ( printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",

16、p->data.ID,p->data.na me,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->next;) ) voidTongji(Node*equip)/*統(tǒng)計*/(Node*p;intsel;intflag2=0,ha=0;charfind20;p=equip->next;if(!equip->next)/*若鏈表為空 */( printf("n>>>>>>>>>&

17、gt; 提示:沒有資料可以統(tǒng)計分類!n"); return;)printf(">>>>>> 提示:n=>0退出n=>1按設(shè)備號統(tǒng)計n=>2按設(shè)備名稱統(tǒng) 計n");scanf("%d",&sel);if(sel=1) ( printf("n輸入你要統(tǒng)計分類的設(shè)備號:");scanf("%s",find);while(p)(if(strcmp(p->data.ID,find)=0)(flag2+;if(flag2=1&&ha!

18、=flag2)printf("設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n");printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.na me,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-

19、10sn",p->d ata.ID,p->,p->data.kind,p->data.over,p->data.yesno,p->data.time,p-> data.price);ha=flag2;p=p->next;if(flag2)printf("n*按設(shè)備 號 s 統(tǒng)計分 類的有 d條記錄:*吊仁力他力田2);elseprintf("n按設(shè)備號s統(tǒng)計的結(jié)果為0個nn",find);elseif(sel=2)printf("n輸入你要統(tǒng)計分類的設(shè)備名稱:");sc

20、anf("%s",find);while(p)(if(strcmp(p->,find)=0)(flag2+; if(flag2=1&&ha!=flag2)printf("設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n");printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.na me,p->data.kind,p->data.over,p->data.yesno,p->da

21、ta.time,p->data.price);ha=flag2;elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->d ata.ID,p->,p->data.kind,p->data.over,p->data.yesno,p->data.time,p-> data.price);ha=flag2;p=p->next;if(flag2)錄:printf("n*nn”,find,flag2);按設(shè)備名稱s統(tǒng)計的有

22、d條記elseprintf("n按設(shè)備名稱s統(tǒng)計分類白結(jié)果為0個nn",find);elseif(sel=0)return;(6)查詢模塊 voidchaxun(Node*equip)/* 查詢*/ ( Node*p;intsel;intflag2=0,ha=0;charfind20;p=equip->next;if(!equip->next)/*若鏈表為空 */(printf("n>>>>>>>>>> 提示:資料為空!n"); return;printf(">>

23、;>>>>> 提示:n=>0退出n=>1按設(shè)備號查詢n=>2按設(shè)備名 稱查詢n");scanf("%d”,&sel);if(sel=1) (printf("n輸入你要查詢的設(shè)備號:");scanf("%s",find);while(p) ( if(strcmp(p->data.ID,find)=0) ( flag2+;if(flag2=1&&ha!=flag2)printf("設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n");p

24、rintf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.na me,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;)elseif(flag2>ha)printf(''n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->d ata.ID,p->,p->data.kind,p->data.over,p->data.yesno,p->data.time,p-> data.price);ha=flag2;p=p->next;if(flag2)printf("n*按

溫馨提示

  • 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

提交評論