銷售管理系統(tǒng)設(shè)計_第1頁
銷售管理系統(tǒng)設(shè)計_第2頁
銷售管理系統(tǒng)設(shè)計_第3頁
銷售管理系統(tǒng)設(shè)計_第4頁
銷售管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課程設(shè)計報告課程:C語言程序設(shè)計學(xué)號:姓名:曹葦班級:2010級計算機應(yīng)用??瓢嘟處煟毫智贂r間:2011.6.72011.6.24計算機科學(xué)與技術(shù)系設(shè)計名稱:銷售管理系統(tǒng)設(shè)計日期: 2011年 06 月 31 日1. 設(shè)計內(nèi)容:某公司有四個銷售員(編號:1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號:1-5)。每個銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容:1)銷售員的代號,2)產(chǎn)品的代號,3)這種產(chǎn)品的當(dāng)天的銷售額。每位銷售員每天上繳1張便條。設(shè)計目的與要求設(shè)計目標(biāo)1通過本課程設(shè)計,培養(yǎng)上機動手能力,使學(xué)生鞏固C語言程序設(shè)計課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計的

2、基本方法,強化上機動手能力,闖過編程關(guān);2為后續(xù)各門計算機課程的學(xué)習(xí)打下堅實基礎(chǔ)。設(shè)計要求試設(shè)計一個便條管理系統(tǒng),使之能提供以下功能:1、便條信息錄入功能(便條信息用文件保存)輸入2、收集到了上個月的所有便條后,讀取銷售情況1)計算每個人每種產(chǎn)品的銷售額。2)按銷售額對銷售員進行排序,輸出排序結(jié)果(銷售員代號)3)統(tǒng)計每種產(chǎn)品的總銷售額,對這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號和銷售額)(可選項) 設(shè)計環(huán)境或器材、原理與說明設(shè)計環(huán)境:C+中文器材:電腦,C+程序設(shè)計說明:本設(shè)計主要應(yīng)用C程序設(shè)計中的結(jié)構(gòu)體、鏈表、文件等知識點。可參考本教材或者包含上述內(nèi)容的任何教材。銷售管理系

3、統(tǒng)設(shè)計一、前提概述 (一) 編寫目標(biāo)1通過本課程設(shè)計,培養(yǎng)上機動手能力,使學(xué)生鞏固C語言程序設(shè)計課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計的基本方法,強化上機動手能力,闖過編程關(guān);2為后續(xù)各門計算機課程的學(xué)習(xí)打下堅實基礎(chǔ)。(二) 課程設(shè)計需求概述和需求說明:1需求概述:某公司有四個銷售員(編號:A,B,C,D),負(fù)責(zé)銷售五種產(chǎn)品(編號:1-5)。每個銷售員都將當(dāng)天出售的產(chǎn)品寫一張便條交上來。每張便條包含內(nèi)容:1)銷售員的代號;2)每種產(chǎn)品的代號和銷售量;假設(shè),收集到了上個月的所有便條,編寫一個處理系統(tǒng),讀取上個月的銷售情況(自己設(shè)定),進行如下處理:1)計算上個月每個人每種產(chǎn)品的銷售

4、量。2)按銷售量對銷售員進行排序,輸出排序結(jié)果(銷售員代號)3)統(tǒng)計每種產(chǎn)品的總銷售量,對這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號和銷售量)4)輸出統(tǒng)計報表 2需求說明:1)源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀。2)必須使用結(jié)構(gòu)體和文件等數(shù)據(jù)結(jié)構(gòu)。3)程序的運行結(jié)果要求使用文件作備份。4)至少輸出一份報表,鼓勵自行增加新功能。二、總體設(shè)計程序設(shè)計組成框圖1.        程序流程圖三、 程序流程1、功能函數(shù)f1()函數(shù)的功能: 計算上個月每個人每種產(chǎn)品的銷售額 函數(shù)的入口: 從main()的swi

5、tch()開關(guān)結(jié)構(gòu)中進入,即choice的值為1時進入該函數(shù),打開.dat數(shù)據(jù)文件,然后提示用戶通過鍵盤對該月的員工銷售情況進行數(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ù)的功能: 按銷售額對銷售員

6、進行排序,輸出排序結(jié)果。 函數(shù)的入口: 程序從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choice的值為2時,開始進入該函數(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)計

7、每種產(chǎn)品的總銷售額,輸出排序結(jié)果 函數(shù)的入口: 從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choice的值為3的時侯,進入該函數(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)。函數(shù)的出口:當(dāng)輸出排序結(jié)果用print

8、f()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。圖-寫入銷售數(shù)據(jù)界面1、功能函數(shù)f4()函數(shù)的功能: 輸出統(tǒng)計報表 函數(shù)的入口: 從main()的switch()開關(guān)結(jié)構(gòu)中進入,即choice的值為4時,進入該函數(shù),然后通過fopen()函數(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)輸出到屏幕

9、上時,然后利用而執(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ù)提示用戶怎樣選擇*/進入函數(shù),這是直接被主函數(shù)main()調(diào)用的。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。并在文中無返回值的空值void函數(shù)。函數(shù)的出口: 執(zhí)行完所有的printf()函數(shù)后自動退出該函數(shù)。6、功能函數(shù)主函數(shù) ma

10、in()軟件進入提示頁面函數(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)用四、實驗結(jié)果輸入一月份各個銷售員的銷售信息:執(zhí)行程序結(jié)果,一月份按產(chǎn)品1銷售量對銷售員進行排序,輸出排序結(jié)果如下:統(tǒng)計每種產(chǎn)品的總銷售量,對這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果如下:輸出統(tǒng)計報表如下:五、設(shè)計體會經(jīng)過C語言課程設(shè)計實踐學(xué)習(xí),使我對c語言有了更進一步

11、的認(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ù)組、結(jié)構(gòu)等);運算類型(算術(shù)運算、邏輯運算、自增自減運算、賦值運算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等。進一步掌握各種函數(shù)的應(yīng)用,以及文件的讀寫操作等。我認(rèn)為要學(xué)好c語言程序這門課程,不僅要認(rèn)真閱讀課本知

12、識,更重要的是要通過上機實踐才能增強和鞏固我的知識。只有這樣我們才能成為合格的計算機人材。六、   源程序清單1)      /*計算上個月每個人每種產(chǎn)品的銷售量。2)      按銷售量對銷售員進行排序,輸出排序結(jié)果(銷售員代號)3)      統(tǒng)計每種產(chǎn)品的總銷售量,按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品代號,銷售量)4)      輸出統(tǒng)計報表*/1) &#

13、160;  #include <stdio.h>2)    #include <string.h>3)    #include <conio.h>4)    #include <stdlib.h>5)    #define Z 56)    #define R 4 /*定義宏常量便于程序的一般化*/ /*R表示銷售員個數(shù)*/7)    typedef stru

14、ct /*縮短結(jié)構(gòu)體變量名*/8)    int shangpinZ;/*定義結(jié)構(gòu)體便于信息的存儲和讀寫,辨別*/ 9)    data;/*R是表示商品的種類,最后一個為該銷售員商品總和*/10)      void menu() 11)      system("cls");/*清屏命令*/12)        printf

15、("nn");13)         printf("t 主菜單n");14)        printf("t 1.計算上個月每個人每種產(chǎn)品的銷售量 n");15)       printf("t 2.按銷售量對銷售員進行排序,輸出排序結(jié)果 n");16)  

16、0;     printf("t 3.統(tǒng)計每種產(chǎn)品的總銷售量,輸出排序結(jié)果 n");17)       printf("t 4.輸出統(tǒng)計報表 n");18)        printf("t 5.結(jié)束操作 n");19)       printf("t n");20) 

17、             21)              void f1(data *x) /*計算上個月每個人每種產(chǎn)品的銷售量*/22)              FILE *fp;23)  &#

18、160;           char fname10,hitkey;24)              int j,t; /*用于控制循環(huán)*/25)              int i,k,s; /*用于定義職工序號,產(chǎn)品序號,產(chǎn)品數(shù)量*

19、/26)              system("cls");/*清屏命令*/27)              printf("您想計算哪個月?n");28)           

20、0;  printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息寫入*/29)              scanf("%s",fname);30)              strcat(fname,".dat");31)  &

21、#160;           if(fp=fopen(fname,"wb")=NULL) /*打開文件*/32)              printf("不能打開文件!n");33)            

22、  exit(0);/* 正常exit(0);結(jié)束程序*/34)              35)              for(j=0;j<R;j+) /*對商品數(shù)量清零*/36)           

23、60;  for(t=0;t<Z;t+)37)              (x+j)->shangpint=0;38)              printf("請輸入:n職工編號產(chǎn)品編號銷售數(shù)量n"); /*提示用戶寫入信息的格式*/39)    

24、0;         for(j=0;hitkey!=27;j+)40)              scanf("%d%d%d",&i,&k,&s);41)              if(i>R|i<0

25、|k>Z|k<0) 42)              printf("信息錯誤!n"); /*提示語,避免輸入信息出錯*/43)              continue;44)          

26、0;   45)              else46)              (x+i-1)->shangpink-1=(x+i-1)->shangpink-1+s; /*統(tǒng)計各個人的各種產(chǎn)品的數(shù)量,-1為了和數(shù)組中的序號相匹配*/47)     &

27、#160;        printf("繼續(xù)輸入請按回車,結(jié)束輸入請按escn");48)              printf("n");49)              hitkey=getch();50) &#

28、160;            for (;hitkey!=13&&hitkey!=27;)51)              hitkey=getch();52)              53) 

29、60;            for(j=0;j<R;j+)54)        if(fwrite(x+j),sizeof(data),1,fp)!=1)/*把信息寫入文件中便有以后調(diào)用*/55)              printf("write error

30、!n");56)              fclose(fp); /*關(guān)閉文件避免信息遺漏*/57)              printf("nnnnnnttt保存成功,按任意鍵返回主菜單!");58)        

31、0;     getch();59)              60)              void f2(data *x) /*按銷售量對銷售員進行排序,輸出排序結(jié)果*/61)         

32、0;    FILE *fp;62)              char fname10;63)              int i,k,j,t,bianhao =0,z;64)           

33、;   system("cls");/*清屏命令*/65)              printf("你要哪個月的?n");66)              printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/67) 

34、             scanf("%s",fname);68)              strcat(fname,".dat");69)              if(f

35、p=fopen(fname,"rb")=NULL) /*打開文件*/70)              printf("不能打開文件!n");71)              exit(0);72)        

36、0;     73)              for(i=0;i<R;i+) /*讀出信息*/74)              if(fread(x+i,sizeof(data),1,fp)!=1)75)       &#

37、160;      printf("讀入信息出錯!"); /*讀入信息提示*/76)              for(i=0;i<R;) /*用于存儲職工編號*/77)              bianhaoi=i+;78)   

38、           printf("請輸入按何種產(chǎn)品排序n");79)              scanf("%d",&k);80)              k=k-1; /*便于與結(jié)構(gòu)

39、體中的數(shù)組值對應(yīng)*/81)              for(i=0;i<R;i+) /*按K種產(chǎn)品對銷售員排序,選擇法排序*/82)              t=i;83)             

40、for(j=i+1;j<R;j+)84)              if(x+bianhaot)->shangpink<(x+bianhaoj)->shangpink)/*調(diào)用職工各自對應(yīng)的結(jié)構(gòu)體內(nèi)的產(chǎn)品數(shù)量*/ t=j;85)              if(t!=i)86)   &

41、#160;          z=bianhaoi;87)              bianhaoi=bianhaot;88)              bianhaot=z;89)     

42、60;        90)              91)              printf("ttt按%d產(chǎn)品對銷售員排序為:n",k+1);92)       

43、60;      printf("n");93)              for(i=0;i<R;i+)94)              printf("ttt第%d名是:員工%dn",i+1,bianhaoi+1);95) 

44、60;            printf("nnnttt按任意鍵返回上一主菜單!");96)              getch();97)              fclose(fp);/*關(guān)閉讀入的文

45、件*/98)              99)              void f3(data *x) /*統(tǒng)計每種產(chǎn)品的總銷售量,輸出排序結(jié)果*/100)          FILE *fp;101)   

46、0;      char fname10;102)          int i,j,sumZ=0,bianhaoZ=0,z,t,k;103)          system("cls");/*清屏命令*/104)          printf("

47、您想計算哪個月的?n");105)          printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/106)          scanf("%s",fname);107)          strcat(fname,".dat&q

48、uot;);108)          if(fp=fopen(fname,"rb")=NULL) /*打開文件*/109)          printf("不能打開文件!n");110)          exit(0);111)    

49、0;     112)          for(i=0;i<R;i+) /*讀出信息*/113)          if(fread(x+i,sizeof(data),1,fp)!=1)114)          printf("讀入信息出錯!");115)&#

50、160;         for(i=0;i<Z;i+) /*對各種商品求和*/116)          for(j=0;j<R;j+)117)          sumi=sumi+(x+j)->shangpini;118)        

51、;  for(i=0;i<Z;) /*用于存儲商品編號*/119)          bianhaoi=i+;120)          for(i=0;i<Z;i+)121)          printf("%3d",bianhaoi);122)   &

52、#160;      for(i=0;i<Z;i+) /*對產(chǎn)品從高到低排序,選擇法排序*/123)          t=i;124)          for(j=i+1;j<Z;j+) /*產(chǎn)品變化時,產(chǎn)品編號也隨之變化,便于輸出*/125)         

53、if(sumt<sumj) 126)          t=j;127)          if(t!=i)128)          k=sumi;129)          sumi=sumt;130)  &#

54、160;       sumt=k;131)          z=bianhaoi;132)          bianhaoi=bianhaot;133)          bianhaot=z;134)     &

55、#160;    135)          136)          printf("輸出產(chǎn)品排序n");137)          printf("產(chǎn)品編號 數(shù)量n");138)      &#

56、160;   printf("n");139)          for(i=0;i<Z;i+)140)          printf(" 產(chǎn)品%-7d%-1dn",bianhaoi+1,sumi);141)          printf("nnnt

57、tt按任意鍵返回主菜單!");142)          getch();143)          fclose(fp);/*關(guān)閉讀入的文件*/144)          145)          void f4(data *

58、x) /*輸出統(tǒng)計報表*/146)          FILE *fp;147)          char fname10;148)          int i,j,sumZ+1=0;149)          system("

59、;cls");/*清屏命令*/150)          printf("您想計算哪個月?n");151)          printf("請輸入月份:"); /*實為輸入一個文件名,這樣可以進行各個月份的信息讀入*/152)          scanf("%s&q

60、uot;,fname);153)          strcat(fname,".dat");154)          if(fp=fopen(fname,"rb")=NULL) /*打開文件*/155)          printf("不能打開文件!n");156

61、)          exit(0);157)          158)          for(i=0;i<R;i+) /*讀出信息*/159)          if(fread(x+i,sizeof(data),1,fp)!

62、=1)160)          printf("讀入信息出錯!");161)          for(i=0;i<Z;i+) /*對各種商品求和*/162)          for(j=0;j<R;j+)163)      

63、0;   sumi=sumi+(x+j)->shangpini;164)          for(i=0;i<Z;i+) /*求商品總和*/165)          sumZ=sumZ+sumi;166)          printf("n");167) 

64、60;        printf("輸出統(tǒng)計報表如下:n"); /*按要求輸出統(tǒng)計表*/168)          printf("銷售員代號 產(chǎn)品代號 銷售之和n");169)          for(i=0;i<R;i+)170)     

65、60;    for(j=0;j<Z;j+)171)          printf(" 員工%-8d產(chǎn)品%-6d數(shù)量%-10dn",i+1,j+1,(x+i)->shangpinj);172)          printf("n");173)       

66、0;  for(i=0;i<Z;i+)174)          if(i=0) 175)          printf("產(chǎn)品%d之和%-10d 總和 %-10dn",i+1,sumi,sumZ);176)          else 177)    

67、;      printf("產(chǎn)品%d之和 %-10dn",i+1,sumi);178)          179)          printf("nnnttt按任意鍵返回主菜單!");180)          getch();181

68、)          182)          void main()183)          int i,choice;184)          data sxy ; /*R表示職工的個數(shù),前面的宏常量*/185)          printf("nnnnnntn");186)          print

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論