




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、語(yǔ)言程序設(shè)計(jì)報(bào)告姓名: 班級(jí):學(xué)號(hào):指導(dǎo)教師: 課題: 目 錄1 設(shè)計(jì)目標(biāo).21.1 管理系統(tǒng)概述.21.2 主要功能.22 程序原代碼43 詳細(xì)設(shè)計(jì)104 程序運(yùn)行情況125 結(jié)束語(yǔ)186參考文獻(xiàn)19一、設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)C語(yǔ)言程序(銷(xiāo)售管理系統(tǒng)),具體要求:某公司有四個(gè)銷(xiāo)售員(編號(hào):1-4),負(fù)責(zé)銷(xiāo)售五種產(chǎn)品(編號(hào)1-5)。每個(gè)銷(xiāo)售員都將當(dāng)天出售的每種產(chǎn)品各寫(xiě)一張便條交上來(lái)。每張便條包含內(nèi)容:1. 銷(xiāo)售員的代號(hào) 2產(chǎn)品的代號(hào) 3這種產(chǎn)品當(dāng)天的銷(xiāo)售額 每位銷(xiāo)售員每天的可能上交0-5張便條。假設(shè),收集到了上個(gè)月的所有便條,編寫(xiě)一個(gè)處理系統(tǒng),讀取上個(gè)月的銷(xiāo)售情況,進(jìn)行如下處理: 1.2 主要功能:
2、 1、 計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額。2、 按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果(銷(xiāo)售員代號(hào))3、 統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,對(duì)這些產(chǎn)品按從高到底的順序輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷(xiāo)售額)4、 輸出統(tǒng)計(jì)報(bào)表二 程序原代碼#include #include #include #include #define Z 5#define R 4 typedef struct int shangpinZ; data;void menu() system(cls);printf(nn);printf(t 主菜單n);printf(t 1.計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額 n);printf(t 2.
3、按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果 n);printf(t 3.統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,輸出排序結(jié)果 n);printf(t 4.輸出統(tǒng)計(jì)報(bào)表 n);printf(t 5.結(jié)束操作 n);printf(t n);void f1(data *x) FILE *fp;char fname10,hitkey;int j,t; int i,k,s; system(cls);printf(您想計(jì)算哪個(gè)月?n);printf(請(qǐng)輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,wb)=NULL) printf(不能打開(kāi)文件!n);
4、exit(0);for(j=0;jR;j+) for(t=0;tshangpint=0;printf(請(qǐng)輸入:n職工編號(hào)產(chǎn)品編號(hào)銷(xiāo)售數(shù)量n); for(j=0;hitkey!=27;j+)scanf(%d%d%d,&i,&k,&s);if(iR|iZ|kshangpink-1=(x+i-1)-shangpink-1+s; printf(繼續(xù)輸入請(qǐng)按回車(chē),結(jié)束輸入請(qǐng)按escn);printf(n);hitkey=getch();for (;hitkey!=13&hitkey!=27;)hitkey=getch();for(j=0;jR;j+)if(fwrite(x+j),sizeof(data)
5、,1,fp)!=1) printf(write error!n);fclose(fp); printf(nnnnnnttt保存成功,按任意鍵返回主菜單!); getch();void f2(data *x) FILE *fp;char fname10;int i,k,j,t,bianhaoR=0,z;system(cls);printf(你要哪個(gè)月的?n);printf(請(qǐng)輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開(kāi)文件!n);exit(0);for(i=0;iR;i+) i
6、f(fread(x+i,sizeof(data),1,fp)!=1)printf(讀入信息出錯(cuò)!); for(i=0;iR;) bianhaoi=i+;printf(請(qǐng)輸入按何種產(chǎn)品排序n);scanf(%d,&k);k=k-1; for(i=0;iR;i+) t=i;for(j=i+1;jshangpinkshangpink) t=j;if(t!=i)z=bianhaoi;bianhaoi=bianhaot;bianhaot=z;printf(ttt按%d產(chǎn)品對(duì)銷(xiāo)售員排序?yàn)?n,k+1);printf(n);for(i=0;iR;i+)printf(ttt第%d名是: 員工%dn,i+1,b
7、ianhaoi+1);printf(nnnttt按任意鍵返回上一主菜單!);getch();fclose(fp);void f3(data *x) FILE *fp;char fname10;int i,j,sumZ=0,bianhaoZ=0,z,t,k; system(cls);printf(您想計(jì)算哪個(gè)月的?n);printf(請(qǐng)輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開(kāi)文件!n);exit(0);for(i=0;iR;i+) if(fread(x+i,sizeof(d
8、ata),1,fp)!=1)printf(讀入信息出錯(cuò)!);for(i=0;iZ;i+) for(j=0;jshangpini;for(i=0;iZ;) bianhaoi=i+;for(i=0;iZ;i+)printf(%3d,bianhaoi); for(i=0;iZ;i+) t=i;for(j=i+1;jZ;j+) if(sumtsumj) t=j;if(t!=i)k=sumi;sumi=sumt;sumt=k;z=bianhaoi;bianhaoi=bianhaot;bianhaot=z;printf(輸出產(chǎn)品排序n);printf(產(chǎn)品編號(hào) 數(shù)量n);printf(n);for(i=0
9、;iZ;i+)printf( 產(chǎn)品%-7d%-1dn,bianhaoi+1,sumi);printf(nnnttt按任意鍵返回主菜單!);getch();fclose(fp);void f4(data *x) FILE *fp;char fname10; int i,j,sumZ+1=0; system(cls);printf(您想計(jì)算哪個(gè)月?n);printf(請(qǐng)輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開(kāi)文件!n);exit(0); for(i=0;iR;i+) if(f
10、read(x+i,sizeof(data),1,fp)!=1)printf(讀入信息出錯(cuò)!); for(i=0;iZ;i+) for(j=0;jshangpini; for(i=0;iZ;i+) sumZ=sumZ+sumi;printf(n);printf(輸出統(tǒng)計(jì)報(bào)表如下:n); printf(銷(xiāo)售員代號(hào) 產(chǎn)品代號(hào) 銷(xiāo)售之和n);for(i=0;iR;i+)for(j=0;jshangpinj);printf(n);for(i=0;iZ;i+)if(i=0) printf(產(chǎn)品%d之和 %-10d 總和 %-10dn,i+1,sumi,sumZ);else printf(產(chǎn)品%d之和 %-
11、10dn,i+1,sumi);printf(nnnttt按任意鍵返回主菜單!);getch(); void main()int i,choice;data sxyR; printf(nnnnnntn);printf(t-歡迎進(jìn)入商品銷(xiāo)售系統(tǒng)!-n);printf(tn);printf(nnnnnnttt按任意鍵進(jìn)入主菜單!); getch();for(i=0;i+)system(cls); menu(); printf(你想做什么?n);printf(請(qǐng)選擇:); scanf(%d,&choice);if(choice=5) system(cls);printf(nnnnnntnn);prin
12、tf(t-謝謝使用商品銷(xiāo)售系統(tǒng)!-nn);printf(tnn);printf(nnnnnnttt按任意鍵退出!(.); getch();break; else switch(choice) case 1 : f1(sxy); break; case 2 : f2(sxy); break; case 3 : f3(sxy); break; case 4 : f4(sxy); break; 三、詳細(xì)設(shè)計(jì)1、功能函數(shù)f1()函數(shù)的功能:計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額 函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choice的值為1時(shí)進(jìn)入該函數(shù),打開(kāi).dat數(shù)據(jù)文件,然后提示用戶(hù)
13、通過(guò)鍵盤(pán)對(duì)該月的員工銷(xiāo)售情況進(jìn)行數(shù)據(jù)的讀入。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口: 當(dāng)程序執(zhí)行提示語(yǔ)“printf(繼續(xù)輸入請(qǐng)按回車(chē),結(jié)束輸入請(qǐng)按escn);”的時(shí)候,對(duì)用戶(hù)的操作進(jìn)行提示,如果用戶(hù)選擇了按“ESC”鍵,則用戶(hù)選擇了結(jié)束數(shù)據(jù)的錄入,將結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。2 功能函數(shù)f2()函數(shù)的功能: 按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果。 函數(shù)的入口:程序從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為2時(shí),開(kāi)始
14、進(jìn)入該函數(shù),進(jìn)入函數(shù)后,首先用“fopen()”打開(kāi)文件,然后利用“fread()”讀取二進(jìn)制數(shù)據(jù),最終利用選擇排序法,按銷(xiāo)售員的所選產(chǎn)品的總銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口: 當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。3 功能函數(shù)f3() 函數(shù)的功能:統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,輸出排序結(jié)果 函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為3的時(shí)侯
15、,進(jìn)入該函數(shù),開(kāi)始讀取數(shù)據(jù)對(duì)用戶(hù)進(jìn)行提示,然后統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額。將計(jì)算后的總銷(xiāo)售額進(jìn)行排序,最終把排序的結(jié)果用printf()標(biāo)準(zhǔn)輸出函數(shù),將結(jié)果輸出在屏幕上。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。4 功能函數(shù)f4() 函數(shù)的功能:輸出統(tǒng)計(jì)報(bào)表 函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為3時(shí),進(jìn)入該函數(shù),然后通過(guò)fope
16、n()函數(shù)。即:“if(fp=fopen(fname,rb)=NULL)” 打開(kāi)文件。進(jìn)入數(shù)據(jù)的處理。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口: 開(kāi)始時(shí)讀取數(shù)據(jù)后,統(tǒng)計(jì)報(bào)表已經(jīng)輸出到屏幕上時(shí),然后利用而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。5、功能函數(shù)主菜單 menu()函數(shù)的功能: 主要作用是提示用戶(hù)操作,體現(xiàn)模塊化思想,主要是顯示出菜單讓用戶(hù)選擇要進(jìn)行的任務(wù)。函數(shù)的入口:從主函數(shù)main()中的system(cls); /*清屏命令*/menu(); /*菜單函數(shù)提示
17、用戶(hù)怎樣選擇*/進(jìn)入函數(shù),這是直接被主函數(shù)main()調(diào)用的。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口: 執(zhí)行完所有的printf()函數(shù)后自動(dòng)退出該函數(shù)。6、功能函數(shù)主函數(shù) main()函數(shù)的功能: 用于聯(lián)系各個(gè)功能函數(shù)模塊,以及退出程序時(shí)的退出畫(huà)面提示。函數(shù)的入口:整個(gè)程序是從主函數(shù)開(kāi)始的。函數(shù)的出口:當(dāng)從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為5時(shí)通過(guò)break;跳出for循環(huán),然后退出main()函數(shù),即:退出整個(gè)程序。函數(shù)調(diào)用關(guān)系:該函數(shù)不被其它函數(shù)調(diào)用四 程序運(yùn)行情況1 主界面顯示2.計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額對(duì)信息
18、進(jìn)行輸入3.按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果4.統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,輸出排序結(jié)果5.輸出統(tǒng)計(jì)報(bào)表6.結(jié)束程序五 調(diào)試與測(cè)試在調(diào)試過(guò)程中,我們遇到諸多小問(wèn)題,但都在我們共同討論后解決了。1、問(wèn)題: 標(biāo)點(diǎn)符號(hào)在輸入的時(shí)候,使用的是中文輸入法,這種錯(cuò)誤一般都難以發(fā)現(xiàn),讓修改的時(shí)候找不到目標(biāo)。解決方法: 用“替換”。如果程序中的error很多,不管error是什么,先將標(biāo)點(diǎn)替換成英文的標(biāo)點(diǎn)。2 問(wèn)題: 調(diào)試時(shí),有的時(shí)候編譯后沒(méi)什么問(wèn)題,就是在點(diǎn)擊連接link時(shí)出現(xiàn)了錯(cuò)誤。而且,這種錯(cuò)誤讓我們不知道怎么修改。但是我們的程序的確正確。解決方法: 將源程序保存(save),然后關(guān)掉Microsoft Visual C+ 6.0,重新啟動(dòng)Microsoft Visual C+ 6.0,五、分析及結(jié)論實(shí)踐心得經(jīng)過(guò)C語(yǔ)言課程設(shè)計(jì)實(shí)踐學(xué)習(xí),使我對(duì)c語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解,板通過(guò)實(shí)踐,我也發(fā)現(xiàn)我的好多不足之處,首先是在程序輸入上還不夠熟練,經(jīng)常按錯(cuò)字母,通過(guò)學(xué)習(xí)也有所改進(jìn);再有對(duì)c語(yǔ)言的一些標(biāo)準(zhǔn)庫(kù)函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)c語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過(guò)實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。熟練地掌握了C語(yǔ)言的基本知識(shí):數(shù)據(jù)類(lèi)型(整形、實(shí)型、字符型、指針、數(shù)組、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽修廠(chǎng)轉(zhuǎn)向系統(tǒng)間隙檢測(cè)與調(diào)整制度
- 年會(huì)新員工發(fā)言稿15篇
- 汽修廠(chǎng)社保繳納信息核查登記制度
- 遼寧阜新圖書(shū)館招聘試題帶答案分析2024年
- 高溫作業(yè)違規(guī)行為查處工作實(shí)務(wù)
- 緩解高溫作業(yè)壓力的方法
- 超星美學(xué)考試試題及答案
- 福建龍巖圖書(shū)館招聘試題帶答案分析2024年
- 十二歲生日致辭
- 高溫作業(yè)與水資源保護(hù)
- 放射職業(yè)衛(wèi)生培訓(xùn)課件
- 中學(xué)論文推選管理制度
- 普外科學(xué)科核心知識(shí)體系
- 小學(xué)數(shù)學(xué)教學(xué)中如何培養(yǎng)學(xué)生數(shù)感
- 數(shù)學(xué) 2024-2025學(xué)年人教版(2024)七年級(jí)數(shù)學(xué)下冊(cè)期末考試測(cè)試卷
- 貴州省貴陽(yáng)市部分學(xué)校2024-2025學(xué)年高二下冊(cè)期末聯(lián)考數(shù)學(xué)試卷(附答案)
- 2025至2030中國(guó)二手車(chē)市場(chǎng)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 親子消防演練活動(dòng)方案
- 地理●廣東卷丨2024年廣東省普通高中學(xué)業(yè)水平選擇性考試地理試卷及答案
- 《機(jī)床電氣與PLC控制技術(shù)》課件 2 S7-1200PLC數(shù)據(jù)的存儲(chǔ)及訪(fǎng)問(wèn)
評(píng)論
0/150
提交評(píng)論