語言課程設(shè)計(jì)報(bào)告模板_第1頁
語言課程設(shè)計(jì)報(bào)告模板_第2頁
語言課程設(shè)計(jì)報(bào)告模板_第3頁
語言課程設(shè)計(jì)報(bào)告模板_第4頁
語言課程設(shè)計(jì)報(bào)告模板_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言課程設(shè)計(jì)課程名稱C語言課程設(shè)計(jì)教師姓名 樊媛媛本科生姓名 王云娜本科生學(xué)號 本科生專業(yè) 機(jī)械設(shè)計(jì)制造及其自動(dòng)化所在院系 機(jī)械與電子信息學(xué)院 類別 : 本科生 日期 : 2012年6月6號 課程設(shè)計(jì)評語對課程論文的評語:平時(shí)成績:課程論文成績:總 成 績:評閱人簽名:注:1、無評閱人簽名成績無效;2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;3、如有平時(shí)成績,必須在上面評分表中標(biāo)出,并計(jì)算入總成績。 目 錄課程設(shè)計(jì)評語2目 錄31課程論文題目42程序設(shè)計(jì)思路43功能模塊圖54數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)55算法設(shè)計(jì)66程序代碼137程序運(yùn)行結(jié)果228編程中遇到的困難及解決方法259總結(jié)心得及良好建議2610

2、致謝26 1. 程論文題目:實(shí)驗(yàn)設(shè)備管理系統(tǒng)設(shè)計(jì)【要求】實(shí)驗(yàn)設(shè)備信息包括:設(shè)備編號,設(shè)備種類(如:微機(jī)、打印機(jī)、掃描儀等等),設(shè)備名稱,設(shè)備價(jià)格,設(shè)備購入日期,是否報(bào)廢,報(bào)廢日期等。試設(shè)計(jì)一實(shí)驗(yàn)設(shè)備信息管理系統(tǒng),使之能提供以下功能: (1)能夠完成對設(shè)備的錄入和修改。 (2)對設(shè)備進(jìn)行分類統(tǒng)計(jì)。 (3)設(shè)備的查詢?!咎崾尽啃枨蠓治觯簩?shí)驗(yàn)室設(shè)備信息用文件存儲,提供文件的輸入輸出操作;要能夠完成設(shè)備的錄入和修改,需要提供設(shè)備添加和修改操作;實(shí)現(xiàn)對設(shè)備進(jìn)行分類統(tǒng)計(jì),需要提供排序操作;實(shí)現(xiàn)對設(shè)備的插敘需要提供查找操作,設(shè)備的查詢可根據(jù)設(shè)備編號、設(shè)備種類、設(shè)備名稱、設(shè)備購入日期、正常設(shè)備(未報(bào)廢的)等多

3、種方式查詢;另外還要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。2 程序設(shè)計(jì)思路根據(jù)需求分析,可將系統(tǒng)的設(shè)計(jì)分為四個(gè)模塊:輸入模塊,修改模塊,統(tǒng)計(jì)模塊,查詢模塊;實(shí)驗(yàn)室設(shè)備信息用文件存儲,提供文件的輸入輸出;建立實(shí)驗(yàn)設(shè)備信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括:設(shè)備編號,設(shè)備種類,設(shè)備名稱,設(shè)備價(jià)格,設(shè)備購入日期,是否報(bào)廢,報(bào)廢日期。 (1)主函數(shù)設(shè)計(jì)主函數(shù)提供輸入,處理,輸出部分的函數(shù)調(diào)用,其中各功能模塊用菜單方式選擇,即主函數(shù)里顯示一系列功能選項(xiàng),判斷后,是否調(diào)用個(gè)功能模塊用了switch()選擇功能。 (2)各功能模塊設(shè)計(jì) 輸入模塊:定義了文件型指針變量,打開文件輸入用戶要輸入設(shè)備的個(gè)數(shù),輸入設(shè)備的各項(xiàng)詳細(xì)信息

4、,將輸入的信息存儲到文件的中;用到fopen(文件名,使用文件方式);fclose(文件指針);fprintf(文件指針,格式字符串,輸出列表)。修改模塊:輸入要修改的設(shè)備編號,是否找到該設(shè)備資料,如果找到記錄,調(diào)用修改函數(shù),對該設(shè)備的信息進(jìn)行修改;如果沒有找到,返回主菜單。在尋找的過程中用了字符串的比較strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0。 如果字符串1字符串2,則函數(shù)值為一個(gè)正整數(shù)。 如果字符串10)。還用到feof()若到文件末尾,函數(shù)值為“真”。 統(tǒng)計(jì)模塊:打開文件,并對文件中的設(shè)備信息進(jìn)行統(tǒng)計(jì)計(jì)算類型數(shù)目,總價(jià)格,平均價(jià)格;此程序中將char類型轉(zhuǎn)

5、化成double型,用到了pc=atof();fscanf(文件指針,格式字符串,輸入列表);同樣也用到了字符串的比較strcmp(字符串1,字符串2),feof()。 查詢模塊:詢問用戶想要選擇的搜索方式,分三種類型查詢(設(shè)備名稱,設(shè)備型號,設(shè)備價(jià)格),再用switch()的選擇功能,每一種類型有用到了feof()控制循環(huán),字符串的比較strcmp(字符串1,字符串2),3. 功能模塊圖 (1) 輸入模塊 輸入用戶要輸入設(shè)備的個(gè)數(shù) 輸入設(shè)備的各項(xiàng)詳細(xì)信息 將輸入的信息存儲到文件的中 (2) 修改模塊輸入要修改的設(shè)備編號是否找到該設(shè)備資料顯示找到的記錄,調(diào)用修改函數(shù)顯示沒有找到對該設(shè)備的信息進(jìn)

6、行修改 返回主菜單返回主菜單yesno (3)統(tǒng)計(jì)模塊打開文件,并對文件中的設(shè)備信息類型進(jìn)行統(tǒng)計(jì)計(jì)算 輸出統(tǒng)計(jì)結(jié)果平均價(jià)格類型數(shù)目總價(jià)格 返回主菜單(4)查詢模塊詢問用戶想要選擇的搜索方式設(shè)備編號設(shè)備種類設(shè)備名稱設(shè)備購入日期是否報(bào)廢yn顯示找到的文件提示沒有找到讓用戶選擇1)返回主菜單2)跳出系統(tǒng)4. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)此程序中用到了 (1)基本類型:1)常量的使用#define N 50, 2)整型(int), 3)字符型(char), 4)浮點(diǎn)型(雙精度double)。 (2)構(gòu)造類型:1)數(shù)組類型 (equipCode10 ,equipType20,equipName20 equipPrice

7、10,equipOver20, equipYesno10, equipTime10 ) 2)結(jié)構(gòu)體類型: struct equip char equipCode10; char equipType20; char equipName20; char equipPrice10; char equipOver20; char equipYesno10; char equipTime10; equN,temp; (3)指針類型:FILE *fp,文件型指針變量,fp是一個(gè)指向FLIE類型結(jié)構(gòu) 的指針變量。5. 算法設(shè)計(jì)實(shí)驗(yàn)設(shè)備管理系統(tǒng) 信息輸入 信息添加 信息修改 信息查詢 信息輸出實(shí)驗(yàn)室設(shè)備信息管

8、理系統(tǒng)設(shè)備信息的鍵入設(shè)備信息的查詢設(shè)備信息的統(tǒng)計(jì)設(shè)備信息的修改設(shè)備信息的添加輸入要修改的信息打開文件類型統(tǒng)計(jì)設(shè)備價(jià)格查詢設(shè)備名稱查詢設(shè)備編號查詢輸入信息設(shè)備的個(gè)數(shù)是否找到 到y(tǒng)n n 沒有找 到調(diào)用修改函數(shù)信息修改是否找到 到輸入各設(shè)備的詳細(xì)信息返回主菜單沒找到n找到y(tǒng)輸出統(tǒng)計(jì)結(jié)果輸入信息設(shè)備的個(gè)數(shù) 用戶選擇1)返回主菜單,2)跳出系統(tǒng)結(jié)束6. 程序代碼#include stdio.h#include#include# define N 50struct equip char equipCode10; char equipType20; char equipName20; char equip

9、Price10; char equipOver20; char equipYesno10; char equipTime10;equN,temp;int enter() /輸入記錄 FILE *fp; int c; printf(*n); printf(Add new equimentn); printf(*n); if(fp=fopen(test.txt,a)=NULL) printf(Can not open file!n); printf(-n); printf(請輸入設(shè)備ID號:n); scanf(%s,temp.equipCode); printf(請輸入設(shè)備類型n); scanf(

10、%s,temp.equipType); printf(請輸入設(shè)備名稱n); scanf(%s,temp.equipName); printf(請輸入設(shè)備價(jià)格n); scanf(%s,temp.equipPrice); printf(請輸入設(shè)備購買日期n); scanf(%s,temp.equipTime); printf(請輸入設(shè)備報(bào)廢日期n); scanf(%s,temp.equipOver); printf(請輸入設(shè)備是否報(bào)廢n); scanf(%s,temp.equipYesno); fprintf(fp,%s %s %s %s %s %s %sn, temp.equipCode, te

11、mp.equipType, temp.equipName, temp.equipPrice, temp.equipTime, temp.equipOver, temp.equipYesno); fclose(fp); printf(n-n); printf(Return to main menu?n); printf(1.YES,Addition Successfuln); printf(2.NO,I want to quit nown); scanf(%d,&c); if(c=1)return(0); if(c=2)return(0); int modifty() /修改記錄 char co

12、de10; int i,j; int c; FILE *fp; printf(*n); printf(Modifty for the equimentn); printf(*n); printf(Please input the equipcode for modiftyingn); scanf(%s,code); printf(-n);if(fp=fopen(test.txt,r)=NULL)printf(nCan not open test!n);for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %s %s, equi.equipCode, eq

13、ui.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); if(strcmp(equi.equipCode,code)=0) printf(-n); printf(Input new equipCoden); scanf(%s,equi.equipCode); printf(Input new equiptypen); scanf(%s,equi.equipType); printf(Input new equipnamen); scanf(%s,equi.e

14、quipName); printf(Input equipPricen); scanf(%s,equi.equipPrice); printf(Input new euiptimen); scanf(%s,equi.equipTime); printf(Input new euipovern); scanf(%s,equi.equipOver) printf(Input new euipyesnon); scanf(%s,equi.equipYesno); fclose(fp); j=i;if(fp=fopen(test.txt,w)=NULL)printf(nCan not open tes

15、t!n);for(i=0;ij;i+) printf(nwrite!n); fprintf(fp,%s %s %s %s %s %s %s, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); fclose(fp); printf(n-n); printf(Return to main menu? n); printf(1.YES Modify Successfuln); printf(2.NO, quit nown)

16、; scanf(%d,&c); if(c=1)return(0); if(c=2)return(0);int disp() /統(tǒng)計(jì)記錄 int c; double sum=0; int count=0; double aver=0; char type20; int i; FILE *fp; if(fp=fopen(test.txt,r)=NULL) printf(nWrongn); printf(please input equipType:n); scanf(%s,type); for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %s %s, eq

17、ui.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); printf(nOK!n); printf(%s,%s,%s,%s,%s,%s,%sn, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); if(strcmp(equi.equipType,ty

18、pe)=0) double pc=atof(equi.equipPrice); /char 轉(zhuǎn)換為double count+; sum+=pc; aver=sum/count; fclose(fp); printf(-Statist-Result-); printf(nn這種類型的數(shù)目:%d,count); printf(nn總的價(jià)格 :%lf,sum); printf(nn平均價(jià)格 :%lf,aver); printf(nexit); printf(n-n); printf(Return to main menu?n); printf(1.YES Disp Successful n); pr

19、intf(2.NO,quit now.n); scanf(%d,&c); if(c=1) return(0); if(c=2) return(0);int search() /查詢記錄 char code10; char name20; char price10; int sel; int c; FILE *fp; int i; fp=fopen(test.txt,r); if(fp=NULL) exit(0); printf(please choose the way of search:nn); printf(1.search by equipCodenn); printf(2.searc

20、h by equipName nn); printf(3.search by equipPricenn); printf(0.returnnn); printf(please input number 0-5:); scanf(%d,&sel); if(sel=0) exit(0); switch(sel) case 0:exit(0); break; case 1: printf(please input equipCode:n); scanf(%s,code); for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %s %s, equi.equip

21、Code, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); if(strcmp(equi.equipCode,code)=0) printf(nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesnon); printf( n%s,%s,%s,%s,%s,%s,%sn, equi.equipCode, equi.equipType, equi.equipName, e

22、qui.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); break; case 2: printf(please input equipName:n); scanf(%s,name); for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %s %s, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno);

23、if(strcmp(equi.equipName,code)=0) printf(nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesnon); printf(n%s,%s,%s,%s,%s,%s,%sn, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); break;case 3: printf(please input equipP

24、rice:n); scanf(%d,&price); for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %s %s, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); if(strcmp(price,equi.equipPrice)=0) printf(nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,e

25、uipYesnon); printf(n%s,%s,%s,%s,%s,%s,%sn, equi.equipCode, equi.equipType, equi.equipName, equi.equipPrice, equi.equipTime, equi.equipOver, equi.equipYesno); break; fclose(fp); printf(n-n); printf(Return to main menu? n); printf(1.YES Search Successful n); printf(2.NO, quit nown); scanf(%d,&c); if(c

26、=1) return(0); if(c=2) return(0);void main() int n; int w; do puts(tt*MENU*nn); puts(tt 1.Enter new data); puts(tt 2.Modify data); puts(tt 3.Disp ); puts(tt 4.Search); puts(tt 5.Exit); puts(nntt*n); printf(Choice your number(1-5):); scanf(%d,&n); if(n5) w=1; getchar(); else w=0;switch(n) case 1:enter();break; case 2:modifty();break; case 3:disp();break; case 4:search();break; case 5:exit(0); while(w=0);7.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論