




版權(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ù)流程圖: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)要求用戶輸入要修改的設(shè)備編號,這時系統(tǒng)會顯示設(shè)備的具體信息, 用戶只需該設(shè)備新的信
3、息按要求輸入即可對信息進(jìn)行修改。流程圖如下:(2) 顯示記錄 無記錄退出,有記錄者按要求輸出。流程圖如下:(3) 統(tǒng)計分類 若有資料可以統(tǒng)計,則按要求分類統(tǒng)計輸出。流程圖如下:(4)查詢記錄若信息為空,則不能查詢。流程圖如下:(6)結(jié)束語通過本次c語言的程序設(shè)計,我不僅提高鞏固了c語言的基礎(chǔ),也初學(xué)習(xí)了編寫一個實用程序的流程,提高了動手操作能力,也提高了對編程的興趣。我相信經(jīng)過努力后,我的編 程能力一定會得到提高。源程序代碼清單:void mai n()Node *equip;FILE *fp;int flag;Node *p,*q;printf(tttt設(shè)備管理系統(tǒng) n);equip=(No
4、de*)malloc(sizeof(Node); equip-n ext=NULL;p=equip;fp=fopen(” 設(shè)備管理系統(tǒng) ”,wb+); q=(Node*)malloc(sizeof(Node);if(fread(q,sizeof(Node),1,fp) /*q- next=NULL;p_n ext=q;p=q;fclose(fp); /* while(1)printf( *prin tf(n1prin tf(n2prin tf(n3prin tf(n4 printf(將文件的內(nèi)容放入接點中*/*關(guān)閉文件*/添加記錄n);修改記錄n);顯示記錄n);統(tǒng)計分類n);“ n5 查詢記
5、錄 n”);將該接點掛入鏈表中*/I目錄 *);提示:已經(jīng)退出系統(tǒng),ByeBye!n);break; 增加記錄*/修改記錄*/prin tf(nO*-EXIT-* n);prin tf(請輸入你要操作的序號scan f(%d, &flag);switch(flag)case 0: prin tf(ncase 1: Add(equip); break; /*case 2: Modify(equip); break;/*case 3: Disp(equip); break;/* case 4: Ton gji(equip); break;/* case 5:chax un( equip);brea
6、k;/* default: printf(n 顯示記錄信息*/統(tǒng)計記錄*/查詢記錄*/提示:輸入錯誤!n); break;Struct shebei char ID10; char name15; char kin d15; char over15; char yes no 10; char time10;char price10;void Add(Node *equip) /* 添加記錄 */Node *p,*r,*s;char id10; /* 先用于輸入ID,也用于判斷是否跳出循環(huán)*/r=equip;s=equip-next; /*使s為第一個有用的結(jié)點*/while(r-next!=N
7、ULL)/*這個循環(huán)的作用是使r為最后一個有用的結(jié)點*/r=r- next; /*將指針置于最末尾*/while(1)printf(提示:輸入0則返回主菜單!n);printf(n請你輸入設(shè)備ID號:);scan f(%s,id);if(strcmp(id,0)=0) break;p=(Node *)malloc(sizeof(Node); /*申請空間 */strcpy(p-data .I D,id);printf(n請輸入設(shè)備名稱:);sca nf(%s,p-data .n ame);printf(n請輸入設(shè)備種類:);scan f(%s,p-data.ki nd);printf(n請輸入
8、報廢日期:);scan f(%s,&p-data.over);prin tf(n請輸入設(shè)備是否報廢:”);sca nf(%s,&p-data.yes no);prin tf(n請輸入設(shè)備購買時間:);scan f(%s,&p-data.time);printf(n請輸入設(shè)備價格:);scan f(%s,&p-data.price);printf(提示:已經(jīng)完成一條記錄的添加。n);p- next=NULL;r-next=p; /*這一步是必需的,將p與先前的鏈表連起來構(gòu)成一條新鏈表*/r=p; /*也是必需的將r又重設(shè)為新鏈的最后一個有用結(jié)點*/void Modify(Node *equip)
9、/* 修改 */Node *p;char find20;if(!equip-n ext)printf(n提示:沒有資料可以修改!n);return;printf(請輸入要修改的設(shè)備ID號:);scan f(%s,fi nd);p=equip-n ext;while(p!=NULL)if(strcmp(p-dataD,fi nd)=0) /*如果找到的話返回的是符合要求*/break;p=p-n ext;if(p) /* 若找到*/int x;while(1)printf(完成修改請輸入0否則輸入任意數(shù)再進(jìn)行修改:”);scan f(%d, &x);if(x=0)break;printf(請輸入
10、新設(shè)備號(原來是 %s ):,p-data.ID);scan f(%s,p-dataD);printf(請輸入新設(shè)備名稱(原來是 %s ):,);sca nf(%s,p-data .n ame);printf(請輸入新設(shè)備設(shè)備種類名稱(原來是%s ):,p-data.kind);scan f(%s,p-data.ki nd);printf(請輸入新設(shè)備報廢日期名稱(原來是%s ):,p-data.over);sca nf(%s,p-data.over);printf(請輸入新設(shè)備是否報廢(原來是%s ):,p-data.yesno);sca nf(%s,p-data.ye
11、s no);printf(請輸入新設(shè)備購買時間(原來是%s ):,p-data.kind);sea nf(%s,p-data.time);printf(請輸入新設(shè)備價格(原來是 %s ):,p-data.priee);sea nf(%s,p-data.price);printf(n提示:該項記錄資料已經(jīng)成功修改!n);else prin tf(n提示:你要修改的信息不存在!n); void Disp(Node *equip)/* 輸出記錄 */Node *p;p=equip-n ext;if(!p)printf(n提示:沒有記錄可以顯示!n);return;printf(tttt顯示結(jié)果 n)
12、;printf(設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n);while(p)prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data .n ame,p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);p=p-n ext;void Tongji(Node *equip)/* 統(tǒng)計 */Node *p;int sel;i nt flag2=0,ha=0; char fin d20;p=equip-n ext;if(!equip-next) /
13、*若鏈表為空 */printf(n提示:沒有資料可以統(tǒng)計分類 !n);return;printf(提示:n=0退出n=1按設(shè)備號統(tǒng)計n=2按設(shè)備名稱統(tǒng)計n);scan f(%d, &sel);if(sel=1)prin tf(n輸入你要統(tǒng)計分類的設(shè)備號:”);scan f(%s,fi nd);while(p)if(strcmp(p-data .1 D,fi nd)=O)flag2+;if(flag2=1 &ha!=flag2) printf(”設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n ”);prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn
14、,p-dataD,p-data .n ame,p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price); ha=flag2;elseif(flag2ha)pri ntf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data.n ame,p-data.k in d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;p=p-n ext;if(flag2)prin tf(n*按設(shè)備號 %s 統(tǒng)計分類的有
15、 %d 條記錄:*、nn”,fin d,flag2);else printf(n 按設(shè)備號%s統(tǒng)計的結(jié)果為 0個nn,find);else if(sel=2)prin tf(n輸入你要統(tǒng)計分類的設(shè)備名稱:”);scan f(%s,fi nd);while(p)if(strcmp(p-data .n ame,fi nd)=0)flag2+;if(flag2=1 &ha!=flag2) printf(”設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n ”);prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data .n ame,
16、p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;elseif(flag2ha)pri ntf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-data.ID,p-data.n ame,p-data.k in d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;p=p-n ext;if(flag2)prin tf(n*按 設(shè) 備 名 稱 %s 統(tǒng)計 的 有 %d 條錄 * nn”,fin
17、d,flag2);else printf(n按設(shè)備名稱%s統(tǒng)計分類的結(jié)果為0個nn,find);else if(sel=0) return;查詢模塊void chaxun(Node *equip)/*查詢 */Node *p;int sel;i nt flag2=0,ha=0; char fin d20;p=equip-n ext;if(!equip-next) /*若鏈表為空 */printf(n提示:資料為空!n);return;printf(提示:n=0 退出n=1按設(shè)備號查詢n=2按設(shè)備名稱查詢nscan f(%d, &sel);if(sel=1)prin tf(n輸入你要查詢的設(shè)備號
18、:);scan f(%s,fi nd);while(p)if(strcmp(p-data .I D,fi nd)=0)flag2+;if(flag2=1 &ha!=flag2) printf(”設(shè)備號碼設(shè)備名稱設(shè)備種類報廢日期是否報廢購買時間價格n ”);prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data .n ame,p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;elseif(flag2ha)pri ntf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data.n ame,p-data.k in d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=fla g2;p=p-n ext;if(flag2)prin tf(n*按 設(shè) 備號%s%d*nn,fi nd,flag2);else print
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJG 878-2025熔體流動速率儀檢定規(guī)程
- LS/T 6144-2023糧油檢驗糧食中鎘的測定膠體金快速定量法
- 2025至2030年中國奧運毛絨玩具數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國臺式真空充氣包裝機(jī)數(shù)據(jù)監(jiān)測研究報告
- 新疆維吾爾自治區(qū)喀什地區(qū)莎車縣2024-2025學(xué)年高二上學(xué)期1月期末考試物理試題(含答案)
- 2024-2025學(xué)年重慶市酉陽縣八年級(上)期末歷史試卷(含答案)
- 2019-2025年消防設(shè)施操作員之消防設(shè)備中級技能考前沖刺模擬試卷B卷含答案
- 2020年中考生物試題(含答案)
- 遺產(chǎn)繼承遺囑代辦合同(2篇)
- 采購與供應(yīng)鏈分包合同(2篇)
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫附帶答案詳解
- 第20課《井岡翠竹》部編版2024-2025七年級語文下冊
- 2025年河南交通職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年湖南科技職業(yè)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 西學(xué)中培訓(xùn)基地結(jié)業(yè)考試試題
- 2025年度政府機(jī)關(guān)勞動合同封面設(shè)計參考2篇
- 中央空調(diào)改造項目施工方案
- 家政服務(wù)中的時間管理與效率提升
- 手術(shù)患者轉(zhuǎn)運交接課件
- 老年骨質(zhì)疏松性疼痛診療與管理中國專家共識(2024版)解讀
- 高中生物選擇性必修1試題
評論
0/150
提交評論