




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計說明書學 院、系:專 業:學 生 姓 名:學 號:設 計 題 目:設備管理系統 起 迄 日 期:指 導 教 師:日期: 2017年5月12日1 設計目的 提高程序設計能力,檢驗課堂教學內容,掌握程序設計的基本方法和調試技能。通過課程實訓,加深對結構化程序設計思想的理解,能對系統功能進行分析,并設計合理的模塊化結構;進一步掌握C語言中的重要數據結構;掌握并熟練運用指針,鏈表,結構體和文件等結構;提高程序開發哪里,能運用合理的控制流編寫清晰高效的程序;培養C語言只是運用與自學能力,加強程序分析能力。2 任務概述功能:設備管理系統應包含各種設備的全部信息,每臺設備為一條記錄(同一時間同一部
2、門購買的若干臺相同設備可作為1條記錄),包括設備號、設備名稱、領用人、所屬部門、數量、購買時間、價格等。能夠顯示和統計各種設備的信息。 分步實施:1、初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數; 2、完成最低要求:建立一個文件,包含一個部門10臺設備的信息,能對文件進行補充、修訂、刪除,能統計所有設備的總價值。 3、進一步要求:完成設備按種類、按所屬部門進行統計。3 模塊劃分 系統可設計為:實驗設備信息寫入模塊實驗設備信息輸出模塊 .實驗設備信息查詢模塊實驗設備信息添加模塊實驗設備信息刪除模塊實驗設備信息查詢模塊實驗設備信息
3、統計模塊結構體成員包括設備號, 設備名稱, 設備領用人, 設備所屬部門 ,設備數量 ,設備購買時間, 設備價格 。4 主要函數說明及其N-S圖設備管理系統實驗設備信息統計模塊實驗設備信息添加模塊實驗設備信息查詢模塊 實驗設備信息刪除模塊進入菜單功能選擇實驗設備信息查詢模塊實驗設備信息輸出模塊實驗設備信息寫入模塊 4.1 主函數流程圖 輸入數字numberT number=1 Fchec() T number=2 F add() T number=3 Fdel() T number=4 Falt() T number=5 Fcount() T n
4、umber=0 F 退出系統 4.2 N-S圖 開始4.3查詢記錄按要求查看記錄 圖4.3 結束 開始4.4讀入/寫入文件定義文件指針F判斷文件是否可存在?創建一個文件 T 圖4.4 寫入數據 關閉文件 結束4.5添加數據 開始按要求輸入信息 完成一條記錄的添加 圖4.5 F是否繼續輸入? T 結束 開始4.6刪除數據 輸入設備ID號 進行刪除操作 圖4.6 結束4.7修改數據 開始 輸入要修改的ID號 圖4.7 按要求修改數據 結束 開始4.8統計數據 選擇統計方式 圖4.8 顯示統計結果 結束5 程序運行數據及其結果 圖5.1 進入界面 圖5.2菜單&功能選擇圖5.3 添加數據 圖
5、5.4 查看數據 圖5.5 刪除數據 圖5.6 修改數據 圖5.7 統計數據6 課程設計心得經歷了大一上半學期C語言課程,C語言筆試,C語言機試的“洗禮”,讓我對C語言的有了進一步的認識,深深認識到自己學習的還不夠,平時敲的代碼也太少,作為一名軟件工程的學生,感到深深的愧疚,對不起老師,對不起父母,更對不起自己,同時為自己將來畢業后的命運感到一份擔憂。在大一下學期C語言實訓中,不僅有網上已有成果的借鑒與分析,以及向同學的請教,還有相關資料的查閱,既加深了自身能力的認知與對自己不足的體會,也優化了和同學的關系,真可謂一舉兩得。同時還得出一個結論:親身下河知深淺,親口嘗梨知酸甜!作為一名軟件工程的
6、學生,平時在電腦跟前敲代碼的過程是必需的,誰也躲不了,一份努力,一份收獲,同時,學習語言需要細密又嚴謹的思維,良好的操作習慣,這樣才有可能在編程的道路上百尺竿頭更進一步!也希望各位老師、身邊的同學監督,更需要自己的積極自省。期待三年后一個成熟優秀的自己!附錄:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void menu(); /功能選擇void add(); /添加信息void del(); /刪除信息void alt(); /修改信息voi
7、d chec(); /查看信息void count(); /統計信息void read(); /讀取文件void write(); /寫入文件struct array char ano20,aname20,aowner20,aapartment20,aamount20,atime20,aprice20; int del; /判斷是否刪除,值為0為未刪除,1為已刪除 a20;int No,sum;int main() system("mode con cols=145 lines=35"); puts("nnnnnnnnnnnnn <<<<&
8、lt;<歡迎使用設備管理系統!>>>>>>"); getchar(); read(); /實現文件讀進內存 menu(); /實現功能選擇 write(); /實現信息寫入文件 return 0;void menu()system("cls");int a; puts("nnnnnn<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&
9、lt;<<<<<<<<<<<<<請選擇需要的功能:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10、>>>>>>>>>>>>>>>"); puts(" 1.查看設備信息n 2.添加設備信息n 3.刪除設備信息n 4.修改設備信息n 5.統計設備信息n 0.退出系統"); printf("tt請選擇你的功能(選擇05) bb");scanf("%d",&a); switch (a) case 0:return; case 1:chec();break; case 2:add();break;case 3:del();break;
11、 case 4:alt();break;case 5:count();break;default:printf("信息有誤!請檢查后重新輸入n"); void read() No=0; FILE *fp=fopen("D:infor.txt","r+"); /讀寫功能 if(fp=NULL)fp=fopen("D:infor.txt","w+"); /若沒有則創建一個txt fclose(fp); int i; for(i=0;!feof(fp);i+) fread(&ai,sizeof
12、(struct array),1,fp); /一次讀取一個 No+;No=No-1; fclose(fp);void write() int i; FILE *fp=fopen("D:infor.txt","w+"); for (i=0;i<No;i+) if (!ai.del) fwrite(&ai,sizeof(struct array),1,fp); fclose(fp);void chec()int i;printf(" 設備號 設備名稱 領用人 所屬部門 數量 購買時間 價格n");for(i=0;i<N
13、o;i+)if(ai.del=0)printf("%8s%20s%20s%20s%20s%20s%20sn",ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);getchar();getchar();menu();void add()char s;printf("請輸入要添加的設備號:n");scanf("%s",aNo.ano);printf("請輸入要添加的設備名稱:n");scanf("%s",aN
14、o.aname);printf("請輸入要添加的設備領用人:n"); scanf("%s",aNo.aowner);printf("請輸入要添加的設備的所屬部門:n"); scanf("%s",aNo.aapartment);printf("請輸入要添加的設備數量:n"); scanf("%s",aNo.aamount);printf("請輸入要添加的設備購買時間:n");scanf("%s",aNo.atime);printf(&qu
15、ot;請輸入要添加的設備價格:n");scanf("%s",aNo.aprice);aNo.del=0;No+=1;printf("請問是否繼續添加?(Y/N)(不區分大小寫)n");while (1)getchar();gets(&s);if (s='Y'|s='N'|s='y'|s='n')break;elseputs("信息有誤!請檢查后重新輸入n");puts("按任意鍵重新輸入!");getchar();getchar();
16、getchar(); if(s='Y'|s='y')add();else if(s='N'|s='n')system("cls");menu();void del()char ch20,s;int i;printf("請輸入要刪除的設備編號:(0鍵返回菜單欄)n");printf(" 設備號 設備名稱 領用人 所屬部門 數量 購買時間 價格n");for(i=0;i<No;i+)if(ai.del=0)printf("%4d%20s%20s%20s%20s
17、%20s%20s%20sn",i+1,ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=No)break;else if(i=0)return;else puts("信息有誤!請檢查后重新輸入n");ai-1.del=1;printf("是否繼續刪除?(Y/N)(不區分大小寫)n");while (1)get
18、char();gets(&s);if (s='Y'|s='N'|s='y'|s='n')break;else puts("信息有誤!請檢查后重新輸入n");if(s='Y'|s='y')del();else if(s='N'|s='n')system("cls");menu(); void alt()char s,ch20;int i,j;printf("請輸入修改的設備的編號:n");printf(
19、" 設備號 設備名稱 領用人 所屬部門 數量 購買時間 價格n");for(i=0;i<No;i+)printf("%4d%20s%20s%20s%20s%20s%20s%20sn",i+1,ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=No)break;else if(i=0)return;else put
20、s("信息有誤!請檢查后重新輸入n");if(ai-1.del=1)printf("該設備已被刪除!n");return;printf("請輸入您要修改的內容的編號:n1.設備號n2.設備名稱n3.領用人n4.所屬部門n5.數量n6.購買時間n7.價格n0.返回菜單欄n");while (1)scanf("%s",ch);j=atoi(ch);if (j>=1 && j<=7)break;else if(i=0)return;else puts("信息有誤!請檢查后重新輸入n&
21、quot;);printf("請輸入要修改的信息:n");switch (j) case 1:scanf("%s",ai-1.ano);break; case 2:scanf("%s",ai-1.aname);break; case 3:scanf("%s",ai-1.aowner);break; case 4:scanf("%s",ai-1.aapartment);break; case 5:scanf("%s",ai-1.aamount);break;case 6:sca
22、nf("%s",ai-1.atime);break;case 7:scanf("%s",ai-1.aprice);break; printf("是否繼續修改?(Y/N)(不區分大小寫)n");while (1)getchar(); /獲取回車 gets(&s); /獲取s if (s='Y'|s='N'|s='y'|s='n')break;else puts("信息有誤!請檢查后重新輸入n");if(s='Y'|s='y
23、')alt();else if(s='N'|s='n')system("cls");menu();void count()char ch20,temp20,s;int i,j,n;sum=0;printf("請選擇統計方式:n1.所有設備的總價值。n2.設備所屬部門。n3.設備種類。n0.返回菜單欄n");while (1)scanf("%s",ch);j=atoi(ch);if (j>=1 && j<=3)break;else if(j=0)return;else
24、puts("信息有誤!請檢查后重新輸入n");switch (j) case 1:for(i=0;i<No;i+)if(ai.del=0)sum=atoi(ai.aprice)*atoi(ai.aamount)+sum;printf("當前設備的總價值為%d。n",sum);break; case 2:printf("設備所屬部門統計結果為:n 所屬部門 數量 總價值n");for(i=0;i<No;i+)sum=0;n=0;strcpy(temp,ai.aapartment); /將可變的數組ai 復制到temp數組中
25、for(j=0;j<No;j+)if(strcmp(temp,aj.aapartment)=0&&i>j)break;else if(strcmp(temp,aj.aapartment)=0&&i<j&&aj.del=0)sum=sum+atoi(aj.aamount)*atoi(aj.aprice);n=n+atoi(aj.aamount);if(strcmp(temp,aj.aapartment)=0&&i>j)continue;if(ai.del=0)sum=sum+atoi(ai.aamount)*atoi(ai.aprice);n=n+atoi(ai.aamount);if(sum=0)continu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫療集團資產管理辦法
- 熱紅外遙感勘探-洞察及研究
- 音樂傳播視角下高職學生合唱藝術審美能力培養策略研究
- 全員安全生產責任制清單模板
- 關于安全生產會議的法律規定
- 安全生產管理制度匯編格式
- 不同基屬混合加氫重油的催化裂化與裂解性能研究
- 2025現行生態環境保護相關法律法規
- 2025生產安全事故風險辨識、評估報告
- 翻譯版權政策研究-洞察及研究
- 社會單位消防安全風險自查評估報告表模板
- 健康體檢醫療服務 投標方案(技術方案)
- 外科護理學課程說課課件
- 同學聚會輕音樂
- 事業單位檔案個人自傳范文三篇
- 煙草制品購銷員(四級)職業技能鑒定-理-論-知-識-試-卷
- 生產現場變化點管理行動指南
- 模擬電子技術基礎知到章節答案智慧樹2023年蘭州石化職業技術大學
- GA/T 1310-2016法庭科學筆跡鑒定意見規范
- 2023年本科招生考試
- 新入職護士培訓考試試題及答案
評論
0/150
提交評論