




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、hubei university of automotive technologyc語言程序設計課程設計報告課設題目: 汽車零部件質檢管理程序 專 業: 電氣工程及其自動化 班 級: t1323-8 姓 名: 陳名 成 績: 完成日期: 2014年6月22日2014年6月29日 指導教師: 吳老師 目 錄c語言程序設計0課程設計報告01.課程設計目的32.需求分析3 2.1要求3 2.2任務描述3 2.3運行環境4 2.4開發工具43.總體設計4 3.1系統流設計4 3.2系統模塊設計54.詳細設計5 4.1數據結構設計5 4.2模塊接口設計6 4.3以下是幾個主要模塊的流程圖75.運行結果1
2、3 5.1歡迎界面13 5.2題目介紹界面14 5.3主菜單界面15 5.4顯示所有質檢信息16 5.5據編號查詢質檢信息17 5.6據生產者查詢質檢信息18 5.7據編號修改質檢信息19 5.8據編號刪除質檢信息20 5.9退出程序界面216.問題與不足22 (1)需求分析中存在的問題和分析22 (2)概要信息中存在的問題和分析22 (3)詳細設計中存在的問題和分析22 (4)調試和測試中存在的問題和分析227.建議228.編程體會229.程序源代碼2310.參考文獻4511.用戶使用手冊451.課程設計目的1) 通過課程設計,加強了自己分析程序的能力。2) 通過課程設計,加深了對c語言中重
3、要知識的理解和運用,如結構體,指針,鏈表,文件,函數調用等。3) 通過課程設計,培養自己對編程的興趣,有助于以后開發出能投入到生活應用中的軟件。2.需求分析2.1 要求1) 代碼規范,注釋清晰。2) 學會利用數組,結構體,指針,鏈表進行相關操作。3) 功能函數劃分清晰,符合題目要求,且有詳細的功能描述。4) 每個重要的功能模塊有相應的流程圖及函數。5) 界面友好,凡需要輸入信息時,都有提示信息,使得輸入的信息符合格式與要求。6) 程序正確無誤,不出現語法型、邏輯型錯誤。7) 掌握編寫、調試和測試c語言程序的基本技巧,充分理解結構化程序設計的基本方法。8) c語言課程設計報告的內容反應實際設計過
4、程,且符合格式要求,必須保證為個人原創。2.2 任務描述 此程序以大汽院為背景,汽院學子今后多為汽車公司工作,我們知道汽車的生產是一個浩大的工程,各個環節都容不得任何瑕疵,尤其是零部件的檢測環節,畢竟千里之堤,潰于蟻穴,所以設計一個質檢管理程序是很有必要的。零部件的質檢信息包括質檢編號、零部件名稱、生產者、生產部門、質檢結果(合格/不合格)、質量問題(設計缺陷/裝配質量/加工質量)、質檢員、質檢日期。該程序提供以下功能:1) 系統以菜單方式工作(用鍵盤輸入數字來選擇功能);2) 質檢信息錄入功能:質檢信息從磁盤文件讀入;3) 查詢功能:可以根據質檢編號或生產者查詢質檢信息;4) 修改功能:根據
5、質檢編號修改其它項的質檢信息。5) 刪除功能:根據質檢編號刪除其它項的質檢信息。 2.3運行環境1)windows7系統2)vc+6.0編譯環境2.4開發工具c語言3.總體設計3.1系統流設計本系統的功能模塊如下圖所示,主要有以下模塊:歡迎菜單 題目介紹主菜單退出保存質檢信息顯示所有質檢信息據編號刪除質檢信息據編號修改質檢信息據編號查詢據生產者查詢查詢質檢信息導入文件信息 3.2系統模塊設計1) 系統歡迎界面:構造函數void welcome_menu(),實現歡迎使用質檢程序的顯示。2) 題目介紹界面:構造函數void list_menu(),實現題目介紹的顯示。3) 主菜單:構造函數int
6、 menu(),實現系統主菜單的顯示。4) 質檢信息的錄入:構造函數void loadrec(),實現對質檢信息的錄入。5) 查詢質檢信息:構造函數void searchrec1()和void searchrec2()分別實現據編號與據生產者查詢質檢信息。6) 修改質檢信息:構造函數void modifyrec(),實現據編號修改質檢信息的功能。7) 刪除質檢信息:構造函數void deleterec(),實現據編號刪除質檢信息的功能。8) 顯示所有質檢信息:構造函數void listrec(),實現顯示所有質檢信息的功能。9) 保存質檢信息:構造函數void writeinfo(),實現對質
7、檢信息的保存。4.詳細設計4.1數據結構設計根據系統要求,系統中需要保存的數據信息,其結構如下:數據項名稱數據項系統表示數據類型數據長度備注質檢編號p1-id字符串20零部件名稱p1-name1字符串20生產者p1-name2字符串20生產部門p1-place字符串20質檢結果p1-result字符串20質檢問題p1-problem字符串50質檢員p1-name3字符串20質檢日期p1-date字符串20此程序采用鏈表建立質檢信息,為此,先聲明一個類型為struct part的結構體,其成員為質檢信息。然后通過對指針、鏈表、文件等數據結構的操作,實現對零部件質檢信息的錄入,查詢,修改,刪除,顯
8、示,保存等一系列操作。其中,結構體定義如下:struct partchar id20; /*質檢編號*/char name120; /*零部件名稱*/char name220; /*生產者*/char place20; /*生產部門*/char result20; /*質檢結果*/char problem50; /*質檢問題*/char name320; /*質檢員*/ char date20; /*質檢日期*/ struct part *next;4.2模塊接口設計1) 所有函數模塊聲明如下:void welcome_menu(); /*歡迎菜單*/void list_menu(); /*c
9、語言課設題目菜單*/ void goodbye_menu(); /*告別頁面*/int menu(); /*主菜單*/ void loadrec(); /*從磁盤文件導入質檢信息到內存*/void searchrec1(); /*指定編號,查詢質檢信息*/void searchrec2(); /*指定生產者,查詢質檢信息*/void modifyrec(); /*指定編號,修改質檢信息*/void deleterec(); /*指定編號,刪除質檢信息*/ void listrec(); /*顯示所有質檢信息*/void writeinfo(); /*保存質檢信息*/void exit0();
10、/*退出*/2) 并定義一個全局變量以及結構體指針:結構體指針: struct part *head=null,*p1,*p2,*p3;保存質檢信息標志的全局變量: intwriteinfo_flag=0;3) 主要模塊的實現系統以主函數int main()為入口,首先調用void welcome_menu()函數,顯示系統歡迎界面。然后調用void list_menu()函數,顯示題目介紹界面。然后進入主菜單,系統接收用戶輸入的選擇,調用相應的函數,進入到下一級菜單進行相關工作。4.3 以下是幾個主要模塊的流程圖:1) 文件讀入質檢信息:打印主菜單返回主菜單界面輸出文件內容選擇相應函數導入文
11、件信息 2) 主菜單函數:打印主菜單 接收用戶選項 是否合法 否 是否為0 是退出系統調用相應函數 否 是 3) 顯示所有質檢信息函數:顯示所有質檢信息 判斷是否合法輸入菜單選擇 否 是按任意鍵返回主菜單 4) 查詢質檢信息函數:備注:查詢有兩種,指定質檢編號和指定生產者,下面僅列出據編號顯示質檢信息的框圖,另一種與此類似。顯示質檢信息 判斷是否合法輸入質檢編號 否 是按任意鍵返回主菜單 5) 修改質檢信息函數:輸入質檢編號 否判斷是否合法 是零部件名稱的修改按任意鍵返回主菜單 質檢日期的修改質檢員的修改質檢問題的修改質檢結果的修改生產部門的修改生產者的修改 6) 刪除質檢信息函數:是否正確輸
12、入質檢編號 否 按任意鍵返回主菜單指定質檢編號的質檢信息刪除 是7) 保存質檢信息:0判斷全局變量writenflag的值1否判斷是否有質檢信息是按任意鍵返回主菜單將質檢信息寫入文件信息保存完畢關閉文件判斷文件路徑是否正確是否數據庫中是沒有質檢信息數據庫中質檢信息無法保存5.運行結果5.1歡迎界面:5.2題目介紹界面: 5.3主菜單界面:5.4顯示所有質檢信息5.5據編號查詢質檢信息5.6據生產者查詢質檢信息5.7據編號修改質檢信息5.8據編號刪除質檢信息5.9退出程序界面 6問題與不足(1) 需求分析中存在的問題和分析題目中沒有說明是否需要新建零部件質檢信息,因此程序設計中沒有新建函數,若有
13、,程序會更加完美。也沒有增加一些統計功能,使得程序功能的多樣性顯得不足。(2) 概要信息中存在的問題和分析質檢信息文件中的信息設計的較為簡略,顯得比較粗糙。(3) 詳細設計中存在的問題和分析沒有添加時間,背景顏色等等函數,使得程序顯得單調。(4) 調試和測試中存在的問題和分析 調試時出現過一個很費解的問題,很隱蔽,我原本用#define len 5,結構體里卻共有100多字節的字符串,因此一讀文件就崩潰。后來將#define len 5改為#define len sizeof(struct part)后,問題就得以解決了。 7.建議課程設計涉及范圍應該更廣,可以增加:食堂飲食管理系統等。另外,
14、應將課設題目盡可能早的分發給學生,這樣有利于做出更好的程序,也便于學生期末復習。8.編程體會經歷了編c語言課程設計后,我弄懂了在前段時間沒弄懂的問題,如指針,結構體,鏈表等。自己的編程能力得到了很大的提高。也知道了一些編程的小技巧,如學會使用sizeof計算字節數,以保證與結構體內的字節數匹配。 9.程序源代碼: /*程序中用到的頭文件及預處理命令宏定義*/#include #include #include #include #include #include #define len sizeof(struct part) /*一共5個零部件*/*零件質檢信息結構體定義*/struct pa
15、rtchar id20; /*質檢編號*/char name120; /*零部件名稱*/char name220; /*生產者*/char place20; /*生產部門*/char result20; /*質檢結果*/char problem50; /*質檢問題*/char name320; /*質檢員*/ char date20; /*質檢日期*/ struct part *next;/*函數聲明*/void welcome_menu(); /*歡迎菜單*/void list_menu(); /*c語言課設題目菜單*/ void goodbye_menu(); /*告別頁面*/int me
16、nu(); /*主菜單*/ void loadrec(); /*從磁盤文件導入質檢信息到內存*/void searchrec1(); /*指定編號,查詢質檢信息*/void searchrec2(); /*指定生產者,查詢質檢信息*/void modifyrec(); /*指定編號,修改質檢信息*/void deleterec(); /*指定編號,刪除質檢信息*/ void listrec(); /*顯示所有質檢信息*/void writeinfo(); /*保存質檢信息*/void exit0(); /*退出*/*鏈表操作所用結構體指針*/struct part *head=null,*p1
17、,*p2,*p3;/*定義結構體指針head 為頭指針p1 為輸入數據緩存空間指針p2 為尾指針*/*質檢信息保存標志全局變量*/intwriteinfo_flag=0;/*主函數*/int main() welcome_menu(); list_menu(); for(;)switch(menu()case 1: system(cls); loadrec();break;case 2: system(cls); searchrec1();break; case 3: system(cls); searchrec2();break;case 4: system(cls); modifyrec(
18、);break; case 5: system(cls); deleterec();break;case 6: system(cls); listrec();break;case 7: system(cls); writeinfo();break;case 0: system(cls); exit0();return 0;default :getchar();printf(n 選擇錯誤,請正確輸入你的選擇(05),:n);printf(n 按任意鍵返回.n);getchar();getchar();system(cls);/*清屏*/ goodbye_menu();return 0; /*歡迎
19、菜單*/void welcome_menu()printf(nnnnntn);printf(t 歡迎使用汽車零部件質檢管理程序 n);printf(t n); printf(t 指導老師:吳老師 n); printf(t n);printf(t 作者個人信息: n); printf(t n); printf(t 姓名:陳名 n); printf(t 班級:t1323-8 n);printf(t 學號:20130230840 n);printf(t 短號:69018 n);printf(t 長號n); printf(t qq號:1164398424 n); printf
20、(t n); printf(t 完成時間:2014/6/29 n);printf(t n); printf(t 注:您有任何想法都可以通過以上方式與作者 n);printf(t 取得聯系,切記:非誠勿擾! n);printf(t n);printf(t n);printf(t n);printf(t n);printf(tn);system(pause);fflush(stdin);system(cls);/*課設題目菜單*/void list_menu()printf(nnnnntn);printf(t n);printf(t 課設題目: 汽車零部件質檢管理程序 n); printf(t 功
21、能要求: (1)能從鍵盤輸入質檢信息 n); printf(t (2)指定質檢編號,顯示質檢信息 n); printf(t (3)指定生產者,顯示質檢信息 n); printf(t (4)指定質檢編號,修改質檢信息 n); printf(t (5)指定質檢編號,刪除質檢信息 n); printf(t 題目要求: (1)按照分析,設計,編碼,調試,測試的軟件過程完成n);printf(t 這個應用程序 n);printf(t (2)質檢信息包括:質檢編號,零部件名稱,生產者,n);printf(t 生產部門,檢結果(合格/不合格),質量問題(設計n);printf(t 缺陷/裝配質量/加工質量)
22、,質檢員,質檢日期 n); printf(t (3)為各項操作功能設計一個菜單,應用程序運行先n);printf(t 顯示這個菜單,然后用戶通過菜單項選擇希望進n);printf(t 行的操作項目 n);printf(t 輸入要求: (1)應用程序運行后在屏幕上顯示一個菜單。用戶可n);printf(t 以根據需求,選定相應的操作項目。進入每個操n);printf(t 作后,根據應用程序的提示信息,從鍵盤輸入相n);printf(t 應的信息。程序根據用戶輸入的信息完成相應的n);printf(t 處理,實現要求的功能 n); printf(t (2)能對輸入的數據進行簡單的校驗,例如,質檢日
23、n);printf(t 期必須是一個合法的日期格式,質檢編號是唯一n);printf(t 的(一個質檢編號對應一次質檢的質檢信息) n);printf(t 輸出要求: (1)應用程序運行后,要在屏幕上顯示一個菜單。 n); printf(t (2)要求用戶輸入數據時,給出清晰、明確的提示信n);printf(t 息,包括輸入的數據內容、格式及結束方式等。n); printf(t (3)在程序完成處理后,要清楚地給出程序的處理結n);printf(t 果。例如,在給定質檢編號刪除質檢信息時,如n);printf(t 果該質檢信息不存在,要提示沒能刪除,如果刪n);printf(t 除成功要提示刪
24、除成功。 n); printf(t n); printf(t 實現要求: (1)在程序中使用鏈表存儲質檢信息。 n);printf(t (2)采用模塊化程序設計的方法,將程序中的各項功n);printf(t 能用函數實現。 n);printf(t 提示: (1)使用結構體表示質檢信息,一個結點保存一條質n);printf(t 檢信息。 n);printf(t 擴展功能: (1)提供一些統計功能。例如統計生產者質檢不合n);printf(t 格的次數,統計各種質量問題出現次數。 n);printf(t (2)質檢信息從文件讀入。 n); printf(t (3)將質檢信息保存到文件中。 n);
25、printf(t n); printf(t n);printf(tn);system(pause);fflush(stdin);system(cls);/*主菜單*/int menu()int c;printf(tt*菜單*n);printf(ttt1.導入文件信息n);printf(ttt2.據編號查詢質檢信息n);printf(ttt3.據生產者查詢質檢信息n);printf(ttt4.據編號修改質檢信息n);printf(ttt5.據編號刪除質檢信息n);printf(ttt6.顯示所有質檢信息n);printf(ttt7.保存質檢信息n);printf(ttt0.退出(任何情況下按ct
26、rl+c 退出程序)n);printf(n 輸入你的選擇(07):n);scanf(%d,&c);return c; /*從磁盤文件導入質檢信息到內存*/void loadrec()file *fp;int n=0;if(fp=fopen(e:message.txt,r)=null)/*打開文件*/printf(文件不存在或無法打開!n);return;head=p1=(struct part *)malloc(len);/*開辟一個新單元*/p1-next =null;while(!feof(fp)n+;fscanf(fp,%s%s%s%s%s%s%s%s, p1-id,p1-name1,p
27、1-name2,p1-place,p1-result,p1-problem,p1-name3,p1-date);p2=(struct part *)malloc(len);/*開辟一個新單元*/p1-next =p2;p3=p1;p1=p2;p1-next =null;free(p2);p3-next=null;printf(n %d項信息輸入完畢,按任意鍵返回.n,n);getchar(); system(cls);/*清屏*/writeinfo_flag=0;/*設置保存記錄標志*/if( fclose(fp) )/* 關閉文件 */ printf( can not close the f
28、ile!n ); exit(0); /*據編號查詢質檢信息*/void searchrec1()char id20;p1=head;if(p1=null) printf(nn質檢信息數據庫為空! n); printf(n 按任意鍵返回.n);getch();system(cls);/*清屏*/return ;printf(nn 請輸入質檢編號以便查證(輸入01到05間的編號):n);scanf(%s,id);while(p1!=null)if(strcmp(p1-id,id )=0)printf(t該零部件質檢信息如下:nt 質檢編號:);printf(%sn,p1-id );printf(t
29、 零部件名稱:);printf(%sn,p1-name1 );printf(t 生產者:);printf(%sn,p1-name2 );printf(t 生產部門:);printf(%sn,p1-place );printf(t 質檢結果:);printf(%sn,p1-result );printf(t 質量問題:);printf(%sn,p1-problem);printf(t 質檢員:);printf(%sn,p1-name3 );printf(t 質檢日期:);printf(%sn,p1-date );break;else p1=p1-next ;if(p1=null) printf(
30、nn找不到該質檢信息!n); printf(n 按任意鍵返回.n);getch();system(cls);/*清屏*/*據生產者查詢質檢信息*/void searchrec2()char name220;p1=head;if(p1=null) printf(nn質檢信息數據庫為空! n); printf(n 按任意鍵返回.n);getch();system(cls);/*清屏*/return ;printf(nn 請輸入生產者以便查證(輸入陳久紅,鄧錕鵬,楊昆,康偉,拓棟):n);scanf(%s,name2);while(p1!=null)if(strcmp(p1-name2,name2
31、)=0)printf(t該零部件質檢信息如下:nt 生產者:);printf(%sn,p1-name2 );printf(t 零部件名稱:);printf(%sn,p1-name1 );printf(t 質檢編號:);printf(%sn,p1-id );printf(t 生產部門:);printf(%sn,p1-place );printf(t 質檢結果:);printf(%sn,p1-result );printf(t 質量問題:);printf(%sn,p1-problem);printf(t 質檢員:);printf(%sn,p1-name3 );printf(t 質檢日期:);pri
32、ntf(%sn,p1-date );break;else p1=p1-next ;if(p1=null) printf(nn找不到該質檢信息!n); printf(n 按任意鍵返回.n);getch();system(cls);/*清屏*/*據編號修改質檢信息*/void modifyrec()char id20;if(head=null) getchar();printf(n 質檢信息數據庫為空,不能修改,按任意鍵將返回:n);getchar();system(cls);/*清屏*/return;p1=head;printf(nn請輸入要修改記錄的質檢編號(輸入01到05間的編號):n);s
33、canf(%s,id);while(strcmp(id,p1-id )!=0&p1-next!=0)p1=p1-next ;if(strcmp(id,p1-id )=0)strcpy(p1-id,id);printf(nn 請輸入該零部件名稱:n);scanf(%s,p1-name1);printf(nn 請輸入生產者:n);scanf(%s,p1-name2);printf(nn 請輸入生產部門:n);scanf(%s,p1-place);printf(nn 請輸入質檢結果(合格/不合格):n); scanf(%s,p1-result);printf(nn 請輸入質檢問題(設計缺陷/裝配質量
34、/加工質量):n); scanf(%s,p1-problem);printf(nn 請輸入質檢員:n);scanf(%s,p1-name3);printf(nn 請輸入質檢日期:n);scanf(%s,p1-date);printf(n1項信息修改完畢,);else printf(nn找不到該質檢信息!);getchar();printf(按任意鍵將返回:n);getchar();system(cls);/*清屏*/writeinfo_flag=1;/*清除保存記錄標志*/return;/*據編號刪除質檢信息*/void deleterec()char id20;if(head=null) getchar();printf(n 質檢信息數據庫為空,不能刪除,按任意鍵將返回:n);getchar();system(cls);/*清屏*/return;p1=head;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路旅客運輸服務鐵路客運服務質量保證與補救課件
- 生活用品租賃協議
- 鐵路市場營銷市場細分的原則課件
- 河池脫硫塔防腐施工方案
- 中國主要旅游線路
- 大學生職業規劃大賽《光電信息科學與工程專業》生涯發展展示
- 分銷商合同框架協議
- 江西工程職業學院《影視傳媒法律法規》2023-2024學年第二學期期末試卷
- 湘潭理工學院《建筑結構抗震》2023-2024學年第二學期期末試卷
- 天津仁愛學院《發電廠電氣設備及運行》2023-2024學年第二學期期末試卷
- 防爆電氣工程施工方案
- (高清版)DBJ52∕T 017-2014 回彈法檢測山砂混凝土抗壓強度技術規程
- 教師資格考試小學美術面試試題與參考答案(2024年)
- 2023年北京市公務員招考考試真題
- 2024九省聯考適應性考試【貴州省】物理答案及答案解析
- 勞動合同換簽主體協議書范文
- 【N市某公寓樓建筑電氣與智能化系統工程設計(論文)18000字】
- 風電基礎施工方案
- 2024年職業病防治考試題庫附答案(版)
- 六年級升學講座模板
- 工程項目后評價與經驗總結考核試卷
評論
0/150
提交評論