版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.C語言課程設計 C語言程序設計課程設計報告課設題目: 銷售信息統(tǒng)計管理系統(tǒng) 班 級: 姓 名: 學 號: 指導教師: 成 績: 2013 年 6 月;C語言課程設計 一、 任務描述本次任務要求完成一個銷售信息管理統(tǒng)計系統(tǒng)。具體內容為:假定某公司有n個銷售員,負責銷售m種產品。每個銷售員將當天銷售的每種產品一張便條的形式提交給公司。每張便條內容包括:(1)銷售員編號;(2)銷售產品代號;(3)產品銷售量;(4)產品銷售金額。本銷售信息管理統(tǒng)計系統(tǒng)是對所收集的便條進行統(tǒng)計。具體要求如下:(一)系統(tǒng)以菜單方式工作,要求界面清晰,便于操作。(二)可以將每張便條輸入,并以結構數組形式保存信息。(三)能
2、夠查看輸入的便條的內容。(四)可以實現業(yè)績查詢功能,包括以下三種查詢方式: 1.查詢本月某個銷售員某種產品的月銷售額 2.查詢某銷售員月總銷售額 3查詢某個銷售員每種產品銷售額(五)統(tǒng)計產品熱銷度,并按從高到低的順序排序加以顯示(六)生成銷售統(tǒng)計報表二、 系統(tǒng)概要設計(一)模塊整體設計圖 銷售信息統(tǒng)計管理系統(tǒng)菜單顯示錄入便條讀出便條查詢業(yè)績熱銷度統(tǒng)計統(tǒng)計報表圖1 模塊調用圖月銷售額查詢月總銷售額查詢產品銷售額查詢 (二)函數功能介紹1.主函數void main() 功能:調用其他各個函數;2.菜單函數 void menu() 功能:構造系統(tǒng)界面;3.錄入函數 void input() 功能:輸
3、入數據并用結構數組保存; 4讀取函數 void output()功能:查看之前錄入的數據,并以表格形式輸出;5 查詢函數由以下四部分構成 (1)查詢函數界面void menu1() 功能:構造查詢界面,并調用其他查詢函數 (2)查詢函數1 void search1() 功能:查詢本月某個銷售員某種產品的月銷售額 (3)查詢函數2 void search2() 功能:查詢某銷售員月總銷售額 (4)查詢函數3 void search3() 功能:查詢某個銷售員每種產品銷售額6. 產品銷售量統(tǒng)計函數array() 功能:統(tǒng)計每種產品銷售量7. 統(tǒng)計函數 void count() 功能:統(tǒng)計每種產品的
4、銷售量,并從高到低輸出;8. 統(tǒng)計報表函數 void form() 功能:以統(tǒng)計報表形式將所有數據顯示出來;三、 系統(tǒng)詳細設計(一)數據結構設計1.本系統(tǒng)采用結構體數組保存所錄入的便條信息,其中,每張便條的結構體如下:struct paper int num; int pnum; int pcount; float money;staffMAX+1;2.定義如下結構體用來將所有產品的銷售額進行統(tǒng)計處理并按序存放,其結構體如下:struct sum int pnum; int pcount; float psale;productMAX+1;3.定義靜態(tài)全局變量note,用以統(tǒng)計輸入的便條數。(
5、二)模塊接口設計: 1. 各函數原型為:main(); /*主函數*/void menu(); /*菜單函數*/void input(); /*錄入函數*/void output(); /*讀取函數*/void menu1(); /*查詢菜單函數*/void search1(); /*查詢月銷售額函數*/void search2(); /*查詢月總銷售額函數*/void search3(); /*查詢產品銷售額函數*/void array(); /*統(tǒng)計產品銷售量函數*/void count(); /*統(tǒng)計產品熱銷售度函數*/void form(); /*生成統(tǒng)計報表函數*/2.系統(tǒng)界面切換的
6、實現每個函數在返回上一個菜單時,均采用switch語句進行選擇,例如:printf(nnWhat do you want to do? 1Return to menu 0Exit system);printf(nnPlease make choices(0-1):);scanf(%d,&ch);switch(ch) case 1:menu();break; case 0:exit(0);break; 在main()函數中用do-while語句實現各函數的循環(huán)調用,以使各功能能夠重復實現,直至用戶退出系統(tǒng)為止(三)盒圖:1.主函數盒圖:圖2 主函數盒圖調用menu()輸入chch之值1input
7、()23450output()menu1()count()form()exit(0)直到ch=02.錄入函數盒圖 輸入員工編號staffi.numstaffi.num=-1跳出循環(huán)體輸入便條上其他信息YNnote+i+退出回到主菜單圖3 錄入函數盒圖01輸出提示信息,輸入ch調用clrscr();i=1打印界面標題和提示信息3. 查詢菜單函數盒圖輸入ch04132退出回到主菜單查詢3查詢2查詢1圖4 查詢菜單函數盒圖4. 查詢功能盒圖(以查詢月銷售額函數為例)i=1輸入snsn=-1NYj=1當j=M跳出循環(huán)suj=0.0j+j=1當j=notestaffj.pnum=pnstaffj.num
8、=snYNsupn=staffj.money+=輸出月銷售額j+i+輸入ch01返回查詢菜單退出圖5 查詢月銷售額函數盒圖5.產品熱銷售度函數盒圖圖6 產品熱銷售度函數盒圖退出返回主菜單01輸入chi+打印producti.pnum和producti.pcount當i=Mi=1i+j+交換productj.count和productj+1.count之值及其位置N若productj.pcountproductj+1.pcountYj=1當j=M-1當i=M-1i=1調用產品銷售額統(tǒng)計函數array();第 23 頁 共 24 頁四、 系統(tǒng)實現(一)菜單界面圖7 菜單界面截圖(二)錄入界面圖8
9、錄入界面截圖(三)輸出界面圖9 輸出界面截圖(四)查詢界面圖10 查詢界面截圖(五)查詢1界面圖11 查詢1界面(六)查詢2界面圖12 查詢2界面截圖(七)查詢3界面圖13 查詢3界面截圖(八)產品熱銷度統(tǒng)計界面圖14 產品熱銷度統(tǒng)計界面截圖(九)銷售統(tǒng)計報表界面圖16 銷售統(tǒng)計報表界面截圖五、 系統(tǒng)調試在調試過程中我遇到的問題以及我的采取措施有:(1) 在我使用中文界面時,便條錄入功能無法實現,即無法將數據存入結構體數組中,因此我采取了英文界面(2) 在做統(tǒng)計時我本想用以下函數來進行統(tǒng)計struct sum int num; int pcountM; float sM; float sum;
10、saleM;void record() int i,j,k; FILE *fp,*fp1; for(i=1;i=N;i+) salei.pcountM+1=0; salei.sM+1=0; salei.su=0; fp=fopen(note,rb); for(i=1;i=note;i+) fread(staff,sizeof(struct paper),1,fp); if(fp=fopen(staff,rb)=NULL) printf(can not open filen); return; for(i=1;i=note;i+) for(j=1;j=N;j+) if(staffi.num=sa
11、lej.num) for(k=1;k=M;k+) if(staffi.pnum=k) salej.pcountk+=staffi.pcount; salej.sk+=staffi.money; salej.su+=staffi.money; fclose(fp); for(i=1;i=note;i+) fwrite(sale,sizeof(struct sum),1,fp1); fclose(fp1);但并沒能調試出來,因此我將它的功能分解,再來進行統(tǒng)計(三)還有許多算法問題,經過耐心的調試和老師的幫助后,這些問題都一一得到了解決六、 系統(tǒng)進一步擴充(1) 未能使用文件保存數據,每次打開后,前
12、面的信息就會丟失,給調試也帶來很大不便。(2) 當用戶輸入的數字不在要選的范圍內時,不能重新輸入,只能關閉系統(tǒng)后再打開。(3) 沒有采用人性化的提示語句來退出功能界面(4) 采用全英文的界面,在國內不能廣泛應用(5) 界面美化程度還有待提高附錄#include #include /*屏幕操作函數*/#define MAX 20#define N 5#define M 5void menu(); /*函數聲明*/void input();void output();void menu1();void search1();void search2();void search3();void arr
13、ay();void count();void form();static int note=0; /*靜態(tài)全局變量note用以統(tǒng)計便條數量*/ struct paper /*結構體數組用于存放便條信息*/ int num; int pnum; int pcount; float money;staffMAX+1;struct sum /*結構體數組用于存放產品信息*/ int pnum; int pcount; float psale;productMAX+1; main() int ch; menu(); do scanf(%d,&ch); switch(ch) case 1: input(
14、);break; case 2: output();break; case 3: menu1();break; case 4: count();break; case 5: form();break; case 0: exit(0); while(ch); getch();void menu() /*菜單函數*/ clrscr(); printf(nttt*Wecolme to Sales Information System*); printf( nnttt 1. Input sales information ); printf( nnttt 2. Look over the inform
15、ation); printf( nnttt 3. Sales inquery ); printf( nnttt 4. Products sell degree statistic); printf( nnttt 5. Sales form ); printf( nnttt 0. Exit system ); printf(nnPlease make choices(0-5):);void input() /*錄入函數*/ int i,ch; float t; clrscr(); printf(nntt*Input sales information*nn); printf(Salesman N
16、umbers( =%d ) Product code( Return to menu 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu();break; case 0:exit(0);break; void output() /*讀取函數*/ int i,ch; clrscr(); printf(nttt*Sales information *nn); printf(Salesman Numbers Product code Productsales Sales n
17、n”); for(i=1;iReturn to menu 0Exit system);printf(nnPlease make choices(0-1):);scanf(%d,&ch);switch(ch) case 1:menu();break; case 0:exit(0);break; void menu1() /*查詢函數界面*/ int ch; clrscr(); printf(nttt*Sales inquery*); printf( nnttt 1. A salesman some product inquiry ); printf( nnttt 2. A salesman mo
18、nthly sales inquery); printf( nnttt 3. A salesman every product sales ); printf( nnttt 4. Return to menu ); printf( nnttt 0. Exit system ); printf(nnPlease make choices(0-3):); scanf(%d,&ch); switch(ch) case 1:search1();break; case 2:search2();break; case 3:search3();break; case 4:menu();break; case
19、 0:exit(0);break; void search1() /*查詢月銷售額函數*/ int i,sn,pn,ch,j; float suMAX+1; clrscr(); printf(nntt* A salesman some product inquiry*nn); printf(nPlease input the salesman number and product code :); printf( nSalesman Numbers( =%d ) Product code( =%d) n,N,M); printf(-1 to quit inquirynn); for(i=1;i
20、+) scanf(%d,&sn); if(sn=-1)break; scanf(%d,&pn); for(j=1;j=M;j+) suj=0.0; for(j=1;jReturn to inqury 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void search2() /*查詢月總銷售額函數*/ int i,sn,ch,j,k=0; float suMAX+1; clrscr(); print
21、f(nntt* A salesman monthly sales inquery*nn); printf(Please input the salesman number :); printf( nnSalesman Numbers( =%d ) ,N); printf(nn-1 to quit inquirynn); for(i=1;i+) for(j=1;j=M;j+) suj=0.0; scanf(%d,&sn); if(sn=-1)break; for(j=1;jReturn to inqury 0Exit system); printf(nnPlease make choices(0
22、-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void search3() /*查詢產品銷售額函數*/ int i,sn,ch,j,k; float psaleMAX+1; clrscr(); printf(nntt* A salesman every product sales*nn); printf(nnPlease input the salesman number :); printf( nnSalesman Numbers( =%d ) ,N); printf(n-1 to q
23、uit inquirynn); for(i=1;i+) for(j=1;j=M;j+) psalej=0.0; scanf(%d,&sn); if(sn=-1)break; for(j=1;j=note;j+) if(staffj.num=sn) for(k=1;k=M;k+) if(staffj.pnum=k) psalek+=staffj.money; printf(Saleman number:%dn,sn); printf(Product codes Product salesn); for(i=1;iReturn to inqury 0Exit system); printf(nnP
24、lease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void array() /*統(tǒng)計產品銷售量函數*/ int i,j; clrscr(); for(i=1;i=M;i+) producti.pnum=i; producti.pcount=0; producti.psale=0.0; for(i=1;i=note;i+) for(j=1;j=M;j+) if(staffi.pnum=productj.pnum) productj.pcount+=sta
25、ffi.pcount; productj.psale+=staffi.money; void count() /*統(tǒng)計產品熱銷售度函數*/ int i,j,k,t,ch; clrscr(); printf(nntt* Products sell degree statistic*nn); array(); for(i=1;i=M-1;i+) for(j=1;j=M-i;j+) if(productj.pcountproductj+1.pcount) t=productj.pcount;productj.pcount=productj+1.pcount;productj+1.pcount=t; k=productj.pnum;productj.pnum=productj+1.pnum;productj+1.pnum=k; printf(tEach product of total
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車企測試面試題目及答案
- 養(yǎng)老院特殊護理制度
- 養(yǎng)老院老人生活設施維修人員考核獎懲制度
- 養(yǎng)老院老人檔案管理制度
- 辦公室值班員職責與要求制度
- 道路旅客運輸安全生產制度
- 焦慮癥自測題目及答案
- 汽車行業(yè)零部件檢測
- 餐飲成本控制與菜單設計技巧
- 輔導培訓機構獎學金制度
- 養(yǎng)老院電氣火災培訓課件
- 中國工商銀行2025年度春季校園招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 對外話語體系構建的敘事話語建構課題申報書
- 中國家庭財富與消費報告2025年第三季度
- 馬年猜猜樂(馬的成語)打印版
- 精神障礙防治責任承諾書(3篇)
- 2025年擔保公司考試題庫(含答案)
- 合肥新鑫人力資源服務有限公司介紹企業(yè)發(fā)展分析報告
- 2025年金融控股公司行業(yè)分析報告及未來發(fā)展趨勢預測
- 質量控制計劃模板全行業(yè)適用
- 實施指南(2025)《HG-T3187-2012矩形塊孔式石墨換熱器》
評論
0/150
提交評論