版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、語言程序設(shè)計報告姓名: 班級:學(xué)號:指導(dǎo)教師: 課題: 目 錄1 設(shè)計目標(biāo).21.1 管理系統(tǒng)概述.21.2 主要功能.22 程序原代碼43 詳細(xì)設(shè)計104 程序運行情況125 結(jié)束語186參考文獻(xiàn)19一、設(shè)計目標(biāo)設(shè)計一個C語言程序(銷售管理系統(tǒng)),具體要求:某公司有四個銷售員(編號:1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號1-5)。每個銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容:1. 銷售員的代號 2產(chǎn)品的代號 3這種產(chǎn)品當(dāng)天的銷售額 每位銷售員每天的可能上交0-5張便條。假設(shè),收集到了上個月的所有便條,編寫一個處理系統(tǒng),讀取上個月的銷售情況,進行如下處理: 1.2 主要功能:
2、 1、 計算上個月每個人每種產(chǎn)品的銷售額。2、 按銷售額對銷售員進行排序,輸出排序結(jié)果(銷售員代號)3、 統(tǒng)計每種產(chǎn)品的總銷售額,對這些產(chǎn)品按從高到底的順序輸出排序結(jié)果(需輸出產(chǎn)品的代號和銷售額)4、 輸出統(tǒng)計報表二 程序原代碼#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.計算上個月每個人每種產(chǎn)品的銷售額 n);printf(t 2.
3、按銷售額對銷售員進行排序,輸出排序結(jié)果 n);printf(t 3.統(tǒng)計每種產(chǎn)品的總銷售額,輸出排序結(jié)果 n);printf(t 4.輸出統(tǒng)計報表 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(您想計算哪個月?n);printf(請輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,wb)=NULL) printf(不能打開文件!n);
4、exit(0);for(j=0;jR;j+) for(t=0;tshangpint=0;printf(請輸入:n職工編號產(chǎn)品編號銷售數(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ù)輸入請按回車,結(jié)束輸入請按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(你要哪個月的?n);printf(請輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開文件!n);exit(0);for(i=0;iR;i+) i
6、f(fread(x+i,sizeof(data),1,fp)!=1)printf(讀入信息出錯!); for(i=0;iR;) bianhaoi=i+;printf(請輸入按何種產(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)品對銷售員排序為: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(您想計算哪個月的?n);printf(請輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開文件!n);exit(0);for(i=0;iR;i+) if(fread(x+i,sizeof(d
8、ata),1,fp)!=1)printf(讀入信息出錯!);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)品編號 數(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(您想計算哪個月?n);printf(請輸入月份:); scanf(%s,fname);strcat(fname,.dat);if(fp=fopen(fname,rb)=NULL) printf(不能打開文件!n);exit(0); for(i=0;iR;i+) if(f
10、read(x+i,sizeof(data),1,fp)!=1)printf(讀入信息出錯!); for(i=0;iZ;i+) for(j=0;jshangpini; for(i=0;iZ;i+) sumZ=sumZ+sumi;printf(n);printf(輸出統(tǒng)計報表如下:n); printf(銷售員代號 產(chǎn)品代號 銷售之和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-歡迎進入商品銷售系統(tǒng)!-n);printf(tn);printf(nnnnnnttt按任意鍵進入主菜單!); getch();for(i=0;i+)system(cls); menu(); printf(你想做什么?n);printf(請選擇:); scanf(%d,&choice);if(choice=5) system(cls);printf(nnnnnntnn);prin
12、tf(t-謝謝使用商品銷售系統(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è)計1、功能函數(shù)f1()函數(shù)的功能:計算上個月每個人每種產(chǎn)品的銷售額 函數(shù)的入口:從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choice的值為1時進入該函數(shù),打開.dat數(shù)據(jù)文件,然后提示用戶
13、通過鍵盤對該月的員工銷售情況進行數(shù)據(jù)的讀入。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開關(guān)結(jié)構(gòu)中進入,并在文中無返回值的空值void函數(shù)。函數(shù)的出口: 當(dāng)程序執(zhí)行提示語“printf(繼續(xù)輸入請按回車,結(jié)束輸入請按escn);”的時候,對用戶的操作進行提示,如果用戶選擇了按“ESC”鍵,則用戶選擇了結(jié)束數(shù)據(jù)的錄入,將結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。2 功能函數(shù)f2()函數(shù)的功能: 按銷售額對銷售員進行排序,輸出排序結(jié)果。 函數(shù)的入口:程序從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choise的值為2時,開始
14、進入該函數(shù),進入函數(shù)后,首先用“fopen()”打開文件,然后利用“fread()”讀取二進制數(shù)據(jù),最終利用選擇排序法,按銷售員的所選產(chǎn)品的總銷售額對銷售員進行排序。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開關(guān)結(jié)構(gòu)中進入,并在文中無返回值的空值void函數(shù)。函數(shù)的出口: 當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。3 功能函數(shù)f3() 函數(shù)的功能:統(tǒng)計每種產(chǎn)品的總銷售額,輸出排序結(jié)果 函數(shù)的入口:從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choise的值為3的時侯
15、,進入該函數(shù),開始讀取數(shù)據(jù)對用戶進行提示,然后統(tǒng)計每種產(chǎn)品的總銷售額。將計算后的總銷售額進行排序,最終把排序的結(jié)果用printf()標(biāo)準(zhǔn)輸出函數(shù),將結(jié)果輸出在屏幕上。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開關(guān)結(jié)構(gòu)中進入,并在文中無返回值的空值void函數(shù)。函數(shù)的出口:當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。4 功能函數(shù)f4() 函數(shù)的功能:輸出統(tǒng)計報表 函數(shù)的入口:從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choise的值為3時,進入該函數(shù),然后通過fope
16、n()函數(shù)。即:“if(fp=fopen(fname,rb)=NULL)” 打開文件。進入數(shù)據(jù)的處理。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開關(guān)結(jié)構(gòu)中進入,并在文中無返回值的空值void函數(shù)。函數(shù)的出口: 開始時讀取數(shù)據(jù)后,統(tǒng)計報表已經(jīng)輸出到屏幕上時,然后利用而執(zhí)行主函數(shù)main()中“break;”跳出switch()開關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。5、功能函數(shù)主菜單 menu()函數(shù)的功能: 主要作用是提示用戶操作,體現(xiàn)模塊化思想,主要是顯示出菜單讓用戶選擇要進行的任務(wù)。函數(shù)的入口:從主函數(shù)main()中的system(cls); /*清屏命令*/menu(); /*菜單函數(shù)提示
17、用戶怎樣選擇*/進入函數(shù),這是直接被主函數(shù)main()調(diào)用的。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。并在文中無返回值的空值void函數(shù)。函數(shù)的出口: 執(zhí)行完所有的printf()函數(shù)后自動退出該函數(shù)。6、功能函數(shù)主函數(shù) main()函數(shù)的功能: 用于聯(lián)系各個功能函數(shù)模塊,以及退出程序時的退出畫面提示。函數(shù)的入口:整個程序是從主函數(shù)開始的。函數(shù)的出口:當(dāng)從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choise的值為5時通過break;跳出for循環(huán),然后退出main()函數(shù),即:退出整個程序。函數(shù)調(diào)用關(guān)系:該函數(shù)不被其它函數(shù)調(diào)用四 程序運行情況1 主界面顯示2.計算上個月每個人每種產(chǎn)品的銷售額對信息
18、進行輸入3.按銷售額對銷售員進行排序,輸出排序結(jié)果4.統(tǒng)計每種產(chǎn)品的總銷售額,輸出排序結(jié)果5.輸出統(tǒng)計報表6.結(jié)束程序五 調(diào)試與測試在調(diào)試過程中,我們遇到諸多小問題,但都在我們共同討論后解決了。1、問題: 標(biāo)點符號在輸入的時候,使用的是中文輸入法,這種錯誤一般都難以發(fā)現(xiàn),讓修改的時候找不到目標(biāo)。解決方法: 用“替換”。如果程序中的error很多,不管error是什么,先將標(biāo)點替換成英文的標(biāo)點。2 問題: 調(diào)試時,有的時候編譯后沒什么問題,就是在點擊連接link時出現(xiàn)了錯誤。而且,這種錯誤讓我們不知道怎么修改。但是我們的程序的確正確。解決方法: 將源程序保存(save),然后關(guān)掉Microsoft Visual C+ 6.0,重新啟動Microsoft Visual C+ 6.0,五、分析及結(jié)論實踐心得經(jīng)過C語言課程設(shè)計實踐學(xué)習(xí),使我對c語言有了更進一步的認(rèn)識和了解,板通過實踐,我也發(fā)現(xiàn)我的好多不足之處,首先是在程序輸入上還不夠熟練,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進;再有對c語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對c語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認(rèn)識有所提高。熟練地掌握了C語言的基本知識:數(shù)據(jù)類型(整形、實型、字符型、指針、數(shù)組、
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年巴中市中西醫(yī)結(jié)合醫(yī)院公開招聘員額管理專業(yè)技術(shù)人員15人備考題庫及參考答案詳解1套
- 2026年國投健康產(chǎn)業(yè)發(fā)展(成都)有限公司招聘備考題庫及答案詳解參考
- 2026年東京城林區(qū)人民醫(yī)院急診科醫(yī)生招聘備考題庫及參考答案詳解1套
- 2026年中煤陜西能源化工集團有限公司面向社會公開招聘備考題庫附答案詳解
- 2026年上塘中學(xué)非在編和產(chǎn)假頂崗教師招聘備考題庫及1套參考答案詳解
- 2026年企業(yè)叉車操作人員安全合同培訓(xùn)方案
- 裝載機司機培訓(xùn)考試題及答案
- 2026年高級電工證考試試題含答案
- 2025年小學(xué)綜合素質(zhì)模擬試卷及答案解析
- 道路工程施工方案與技術(shù)措施(路基、路面及擋土墻)
- 富順縣職教中心教學(xué)樓BC棟二職中遷建工程施工組織
- GB/T 24139-2009PVC涂覆織物防水布規(guī)范
- 2023年醫(yī)務(wù)科工作計劃-1
- 西湖龍井茶的等級標(biāo)準(zhǔn)
- 地基與基礎(chǔ)分項工程質(zhì)量驗收記錄
- 一文多用作文課公開課課件
- CNC機加工作業(yè)指導(dǎo)書
- 水運工程施工課程設(shè)計指導(dǎo)書
- 驚恐障礙診治課件
- 中國藥典無菌、微生物限度和細(xì)菌內(nèi)毒素檢查方法學(xué)驗證內(nèi)容詳解
- 古詩之解讀與吟誦
評論
0/150
提交評論