C語言課程設計______銷售管理系統_第1頁
C語言課程設計______銷售管理系統_第2頁
C語言課程設計______銷售管理系統_第3頁
C語言課程設計______銷售管理系統_第4頁
C語言課程設計______銷售管理系統_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、語言程序設計報告姓名: 班級:學號:指導教師: 課題: 目 錄1 設計目標.21.1 管理系統概述.21.2 主要功能.22 程序原代碼43 詳細設計104 程序運行情況125 結束語186參考文獻19一、設計目標設計一個C語言程序(銷售管理系統),具體要求:某公司有四個銷售員(編號:1-4),負責銷售五種產品(編號1-5)。每個銷售員都將當天出售的每種產品各寫一張便條交上來。每張便條包含內容:1. 銷售員的代號 2產品的代號 3這種產品當天的銷售額 每位銷售員每天的可能上交0-5張便條。假設,收集到了上個月的所有便條,編寫一個處理系統,讀取上個月的銷售情況,進行如下處理: 1.2 主要功能:

2、 1、 計算上個月每個人每種產品的銷售額。2、 按銷售額對銷售員進行排序,輸出排序結果(銷售員代號)3、 統計每種產品的總銷售額,對這些產品按從高到底的順序輸出排序結果(需輸出產品的代號和銷售額)4、 輸出統計報表二 程序原代碼#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.計算上個月每個人每種產品的銷售額 n);printf(t 2.

3、按銷售額對銷售員進行排序,輸出排序結果 n);printf(t 3.統計每種產品的總銷售額,輸出排序結果 n);printf(t 4.輸出統計報表 n);printf(t 5.結束操作 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職工編號產品編號銷售數量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ù)輸入請按回車,結束輸入請按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(請輸入按何種產品排序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產品對銷售員排序為: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(輸出產品排序n);printf(產品編號 數量n);printf(n);for(i=0

9、;iZ;i+)printf( 產品%-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(輸出統計報表如下:n); printf(銷售員代號 產品代號 銷售之和n);for(i=0;iR;i+)for(j=0;jshangpinj);printf(n);for(i=0;iZ;i+)if(i=0) printf(產品%d之和 %-10d 總和 %-10dn,i+1,sumi,sumZ);else printf(產品%d之和 %-

11、10dn,i+1,sumi);printf(nnnttt按任意鍵返回主菜單!);getch(); void main()int i,choice;data sxyR; printf(nnnnnntn);printf(t-歡迎進入商品銷售系統!-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-謝謝使用商品銷售系統!-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; 三、詳細設計1、功能函數f1()函數的功能:計算上個月每個人每種產品的銷售額 函數的入口:從main()的switch()開關結構中進入,即choice的值為1時進入該函數,打開.dat數據文件,然后提示用戶

13、通過鍵盤對該月的員工銷售情況進行數據的讀入。函數調用關系:被主函數調用。由switch()開關結構中進入,并在文中無返回值的空值void函數。函數的出口: 當程序執(zhí)行提示語“printf(繼續(xù)輸入請按回車,結束輸入請按escn);”的時候,對用戶的操作進行提示,如果用戶選擇了按“ESC”鍵,則用戶選擇了結束數據的錄入,將結束該函數,而執(zhí)行主函數main()中“break;”跳出switch()開關函數,繼續(xù)執(zhí)行for循環(huán)結構。2 功能函數f2()函數的功能: 按銷售額對銷售員進行排序,輸出排序結果。 函數的入口:程序從main()的switch()開關結構中進入,即choise的值為2時,開始

14、進入該函數,進入函數后,首先用“fopen()”打開文件,然后利用“fread()”讀取二進制數據,最終利用選擇排序法,按銷售員的所選產品的總銷售額對銷售員進行排序。函數調用關系:被主函數調用。由switch()開關結構中進入,并在文中無返回值的空值void函數。函數的出口: 當輸出排序結果用printf()標準輸出到屏幕上,然后結束該函數,而執(zhí)行主函數main()中“break;”跳出switch()開關函數,繼續(xù)執(zhí)行for循環(huán)結構。3 功能函數f3() 函數的功能:統計每種產品的總銷售額,輸出排序結果 函數的入口:從main()的switch()開關結構中進入,即choise的值為3的時侯

15、,進入該函數,開始讀取數據對用戶進行提示,然后統計每種產品的總銷售額。將計算后的總銷售額進行排序,最終把排序的結果用printf()標準輸出函數,將結果輸出在屏幕上。函數調用關系:被主函數調用。由switch()開關結構中進入,并在文中無返回值的空值void函數。函數的出口:當輸出排序結果用printf()標準輸出到屏幕上,然后結束該函數,而執(zhí)行主函數main()中“break;”跳出switch()開關函數,繼續(xù)執(zhí)行for循環(huán)結構。4 功能函數f4() 函數的功能:輸出統計報表 函數的入口:從main()的switch()開關結構中進入,即choise的值為3時,進入該函數,然后通過fope

16、n()函數。即:“if(fp=fopen(fname,rb)=NULL)” 打開文件。進入數據的處理。函數調用關系:被主函數調用。由switch()開關結構中進入,并在文中無返回值的空值void函數。函數的出口: 開始時讀取數據后,統計報表已經輸出到屏幕上時,然后利用而執(zhí)行主函數main()中“break;”跳出switch()開關函數,繼續(xù)執(zhí)行for循環(huán)結構。5、功能函數主菜單 menu()函數的功能: 主要作用是提示用戶操作,體現模塊化思想,主要是顯示出菜單讓用戶選擇要進行的任務。函數的入口:從主函數main()中的system(cls); /*清屏命令*/menu(); /*菜單函數提示

17、用戶怎樣選擇*/進入函數,這是直接被主函數main()調用的。函數調用關系:被主函數調用。并在文中無返回值的空值void函數。函數的出口: 執(zhí)行完所有的printf()函數后自動退出該函數。6、功能函數主函數 main()函數的功能: 用于聯系各個功能函數模塊,以及退出程序時的退出畫面提示。函數的入口:整個程序是從主函數開始的。函數的出口:當從main()的switch()開關結構中進入,即choise的值為5時通過break;跳出for循環(huán),然后退出main()函數,即:退出整個程序。函數調用關系:該函數不被其它函數調用四 程序運行情況1 主界面顯示2.計算上個月每個人每種產品的銷售額對信息

18、進行輸入3.按銷售額對銷售員進行排序,輸出排序結果4.統計每種產品的總銷售額,輸出排序結果5.輸出統計報表6.結束程序五 調試與測試在調試過程中,我們遇到諸多小問題,但都在我們共同討論后解決了。1、問題: 標點符號在輸入的時候,使用的是中文輸入法,這種錯誤一般都難以發(fā)現,讓修改的時候找不到目標。解決方法: 用“替換”。如果程序中的error很多,不管error是什么,先將標點替換成英文的標點。2 問題: 調試時,有的時候編譯后沒什么問題,就是在點擊連接link時出現了錯誤。而且,這種錯誤讓我們不知道怎么修改。但是我們的程序的確正確。解決方法: 將源程序保存(save),然后關掉Microsoft Visual C+ 6.0,重新啟動Microsoft Visual C+ 6.0,五、分析及結論實踐心得經過C語言課程設計實踐學習,使我對c語言有了更進一步的認識和了解,板通過實踐,我也發(fā)現我的好多不足之處,首先是在程序輸入上還不夠熟練,經常按錯字母,通過學習也有所改進;再有對c語言的一些標準庫函數不太了解,還有對函數調用的正確使用不夠熟悉,還有對c語言中經常出現的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。熟練地掌握了C語言的基本知識:數據類型(整形、實型、字符型、指針、數組、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論