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

下載本文檔

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

文檔簡介

1、1 設(shè)計內(nèi)容和要求1.1 管理系統(tǒng)的發(fā)展及現(xiàn)狀管理信息系統(tǒng)是現(xiàn)代信息管理工作不可缺少的一部分,是適應(yīng)現(xiàn)代高科技信息管理尺度的要求、推動信息管理走向科學(xué)化、規(guī)范化的必要條件。只有信息管理規(guī)范了,才能給人們提供更好的生活環(huán)境及便利的生活空間。管理信息系統(tǒng)是一個能進(jìn)行管理信息的收集、傳遞、加工、保存、維護(hù)和使用的系統(tǒng)。管理信息系統(tǒng)功能包括:信息收集、信息存儲、問題處理及信息輸出、信息管理。現(xiàn)代社會、社會化趨勢的擴(kuò)大和社會產(chǎn)品需求使企業(yè)在生產(chǎn)經(jīng)營活動中涉及的內(nèi)外部信息積聚膨脹,隨著科學(xué)技術(shù)突飛猛進(jìn)和生產(chǎn)迅速發(fā)展,使人類知識量增長速度不斷加快,信息量的增加,外部環(huán)境變化的變快,人工已無法勝任。如何收集足

2、夠的信息資源,強有力的信息并加以利用,積極的開發(fā)和及時利用信息爆炸有效的信息資源,已成為現(xiàn)代社會的難題。因此必須有一個系統(tǒng)來對這些數(shù)據(jù)進(jìn)行管理。1.2需求分析1.2.1背景食品店銷售管理系統(tǒng)銷售員的代號A.B.C.D產(chǎn)品的代號:面包bread、蛋糕cate、餅干pie、牛奶milk 飲料drink1.2.2內(nèi)容及要求1)強化學(xué)習(xí)C語言中有關(guān)鏈表及外部文件的內(nèi)容,獨立設(shè)計一個銷售管理系統(tǒng)。某公司有四個銷售員(編號:1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號:1-5)。每個銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容:a.銷售員的代號b.產(chǎn)品的代號c.這種產(chǎn)品的當(dāng)天的銷售額2)每位銷售員

3、每天可能上繳0-5張便條。假設(shè),收集到了上個月的所有便條,編寫一個處理系統(tǒng),讀取上個月的銷售情況(自己設(shè)定),進(jìn)行如下處理。a.計算上個月每個人每種產(chǎn)品的銷售額。b.按銷售額對銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號)c.統(tǒng)計每種產(chǎn)品的總銷售額,對這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號和銷售額)d.輸出統(tǒng)計報表2 總體設(shè)計思路2.1系統(tǒng)功能簡介1)輸入銷售員的銷售信息并將其保存在文件中2)從文件中讀取銷售員的銷售信息3)計算每個人每種產(chǎn)品的銷售額4)按銷售額對銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號)5)統(tǒng)計每種產(chǎn)品的總銷售額,對這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出

4、產(chǎn)品的代號和銷售額)6)輸出統(tǒng)計報表2.2總體設(shè)計在本軟件中,主要運用函數(shù)調(diào)用來實現(xiàn)對食品銷售的記錄和管理。本軟件實現(xiàn)了銷售信息的記錄功能(包括每個銷售員每種產(chǎn)品的銷售情況)、銷售信息查詢功能(按銷售員查詢、按銷售總量查詢等)和銷售信息儲存功能,以及輸出統(tǒng)計報表的功能,和從文件中讀取數(shù)據(jù)功能等,從而達(dá)到對食品銷售情況的管理。23總體程序模塊圖按銷售額對銷售員按銷售額對銷售員進(jìn)行排序產(chǎn)品銷售額產(chǎn)品銷售額讀入數(shù)據(jù)讀入數(shù)據(jù)保存Main()函數(shù)輸入輸入查詢銷售情況清單查詢銷售情況天數(shù)及銷售員銷售情況輸出統(tǒng)計表 輸出統(tǒng)計表 退出退出圖2.1總體程序模塊2.4總體設(shè)計流程圖開始開始YMenu_select

5、()=1NYLength=enter(rec); Menu_select()=2Break;NYSalor(rec,length);Break;Menu_select()=3 NYList1(rec,length);Break;MenuMenuselect()=4 +4NMenuselect()=5Menuselect()=5List2(rec,length);berakList2(rec,length);berakNMwnuselt()=6 ;Mwnuselt()=6;YAA(rec,length)break;List3(rec,length);breakList3(rec,length);

6、breakMenu_selec_()=7Menu_selec_()=7NSave(rc,length);Break=7Save(rc,length);BreakYMenu select()=8Menu select()=8lNMenu_select=9Length=load(rec)breakMenu_select=9Length=load(rec)breakY;YEExit(0);圖2.2總體設(shè)計流程3 系統(tǒng)功能模塊設(shè)計31Main()主函數(shù)模塊主函數(shù)是程序入口,采用模塊化設(shè)計。首先在主程序中打印出主菜單界面,將會顯示出八個功能函數(shù),作為進(jìn)入系統(tǒng)操作的一種方式,選擇相應(yīng)的代號便會進(jìn)入相應(yīng)的功

7、能操作,當(dāng)選擇“000”時便會退出操作。圖31 主菜單界面32 enter( )輸入清單函數(shù)模塊本函數(shù)先通過system(“cls”)函數(shù)將主菜單界面清除;然后根據(jù)定義的清單天數(shù)輸入銷售員代號及各產(chǎn)品的銷售量,并通過for函數(shù)將輸入的內(nèi)容存入結(jié)構(gòu)體數(shù)組中,然后退出該模塊。圖32輸入清單函數(shù)模塊圖3.3輸入清單函數(shù)流程33保存模塊該模塊調(diào)用fopen函數(shù)將其保存在文件中。如果函數(shù)帶回一個空指針,則不能打開該文件,退出;保存成功后就會關(guān)閉文件,并顯示保存成功。然后按任意鍵便會繼續(xù)運行程序。圖34保存數(shù)據(jù)界面圖3.5保存函數(shù)流程34讀入數(shù)據(jù)模塊該模塊采用指針函數(shù)*fp,用fscanf對文件中的數(shù)據(jù)進(jìn)

8、行調(diào)用,此時屏幕會顯示“恭喜您已成功從文件中讀出數(shù)據(jù)”,然后便可運用文件中的數(shù)據(jù)進(jìn)行下面的操作。圖36讀入數(shù)據(jù)界面圖37讀入數(shù)據(jù)流程35 查詢銷售員銷售額模塊該模塊采用數(shù)組函數(shù)實現(xiàn)對銷售員銷售情況的調(diào)用,采用if條件函數(shù)可直接輸出查詢情況,只需輸入銷售員代號即可。圖38查詢銷售員銷售額界面 圖39查詢銷售員銷售額流程36排序模塊此部分用void list1( )函數(shù),首先定義兩個數(shù)組,然后利用for結(jié)構(gòu)實現(xiàn)函數(shù)體的循環(huán),用for的條件函數(shù)實現(xiàn)銷售員銷售額的排序。圖310排序界面 圖311排序流程37統(tǒng)計表模塊定義兩個數(shù)組,通過對數(shù)組附初值實現(xiàn)對每一種產(chǎn)品銷售額的求和以及產(chǎn)品的排序。圖312統(tǒng)計

9、表界 圖313統(tǒng)計表流程4 程序調(diào)試及分析1)開始時不能從文件中讀取數(shù)據(jù),每次輸入的數(shù)據(jù)只能在本次函數(shù)調(diào)用中使用,下次仍需重新輸入,問題出在沒有對附地址欄即fscanf(fp,%10d%7d%7d%7d%7d%7d,,ti.a1,ti.a2,ti.a3,ti.a4,&i.a5,修改后加入地址欄便能從文件中直接讀入數(shù)據(jù)。2)在Main( )函數(shù)中開始少一個case結(jié)構(gòu),導(dǎo)致在void list2 函數(shù)中“getch”未定義,加入case 5:a(rec,length);break;后便能正常運行。3)在清單輸入模塊中,開始只能輸入一天的銷售記錄,原因是少了循環(huán)的程序編譯,添加for

10、(j=0;jnum;j+)和for(i=0;i4;i+)后便能由外界定義輸入清單的天數(shù)。4)在求銷售產(chǎn)品總和的模塊中,忽略了將最后結(jié)果返回sum,雖不影響程序的運行,但這也是程序的不完善之處。5 總結(jié)及體會在做課程設(shè)計以前,我對銷售管理信息系統(tǒng)的理解只是停留在理論和知識的水平上,并沒有認(rèn)真的去操作實踐。只是所謂的“紙上談兵”而已,缺乏實際的操作技術(shù),缺乏對所學(xué)知識的融會貫通。通過這次課程設(shè)計,我通過自學(xué)、在同學(xué)們的幫助下完成了食品店銷售管理系統(tǒng)的設(shè)計與開發(fā)。在課程設(shè)計的整個過程中我遇到了很多的問題,但我都在慢慢地學(xué)習(xí)過程中一點一點地克服了。同時我發(fā)現(xiàn)真正學(xué)好、學(xué)懂一門新的語言是有難度,值得慶幸

11、的是,在此期間指導(dǎo)老師給了我很大的幫助和鼓勵。使我通過這次課程設(shè)計,同時又學(xué)習(xí)了很多在平??荚囘^程中學(xué)習(xí)不到的知識和自己動手的能力。在邊自學(xué)邊設(shè)計的過程中,我查閱了很多的資料,請教了不少的同學(xué)和老師。在剛開始編程的時候還是不能得心應(yīng)手。在一次又一次的修改過程中不斷地進(jìn)步和提高,但是還是有些功能我無法把它用到我的程序中來,真有點遺憾,同時由于這次時間比較緊,無法更深入地去鉆研這門課程。這次課程設(shè)計是我本學(xué)期所學(xué)知識的綜合應(yīng)用,使我對一學(xué)期所學(xué)的內(nèi)容有了更加深刻的認(rèn)識,使得所學(xué)的知識得到融會貫通,得到了以前學(xué)習(xí)任何一門課都沒有的提高與進(jìn)步,對我來說是一次很好的鍛煉,這不僅把以前所學(xué)的知識再重溫習(xí)一

12、遍,而且又學(xué)會了一門新的語言??傊?,通過本次課程設(shè)計,我最終完成了食品店銷售管理系統(tǒng)的課程設(shè)計。在做本課程的過程中,我不僅更加深刻的體會了VC這門語言,還對結(jié)構(gòu)體數(shù)組有了比較熟練的了解,更重要的是學(xué)到了很多編程思想。我會在以后的學(xué)習(xí)中去更加熟練的掌握C語言。致謝在以前,自己在上課時沒有很好的聽課,下來后也沒有很好的去實踐操作。致使自己的編程水平與同學(xué)們相差很遠(yuǎn)。通過此次實踐,在老師和同學(xué)的幫助下,我的編程能力有了一定的提高。雖然沒有達(dá)到理想中的效果,但較我自身而言,已經(jīng)有了較大的進(jìn)步。其實學(xué)習(xí)也能體現(xiàn)出團(tuán)結(jié)的力量,如果班上的同學(xué)都只顧自己學(xué)習(xí),同學(xué)之間遇見什么問題也不互相討論,只靠只身的力量去

13、解決學(xué)習(xí)中遇到的問題在很多的時候都是很難實現(xiàn)的。在此次課程設(shè)計中,同學(xué)們讓我再次體會到了團(tuán)結(jié)的力量,在此我感謝同學(xué)們對我的幫助。在以前,老師給我的感覺都總是高高在上,然而在這次課程設(shè)計時。指導(dǎo)老師的行動徹底讓我改變了對老師的成見。在課程設(shè)計的過程中,我遇到了許多很淺顯的問題,在詢問老師時,他們是那樣的認(rèn)真講解,遇到實在不懂得問題,他們會手把手的說教,直到我們弄懂為止。在此我感謝老師對我們孜孜不倦的教誨。最后,我再次向幫助我的老師和同學(xué)致上最真摯的謝意。感謝他們對我的幫助!同時在以后的學(xué)習(xí)當(dāng)中,我會加倍的努力,繼續(xù)發(fā)揚同學(xué)們的這種互幫互助的精神!參考文獻(xiàn)1譚浩強等.C語言程序設(shè)計教程.北京:高等

14、教育出版社,1997.2譚浩強.C程序設(shè)計.第2版.北京:清華大學(xué)出版社,1999.3郭浩志.C語言程序設(shè)計.北京.北京郵電大學(xué)出版社,2005.4林學(xué)焦.Turbo C2.0用戶手冊.北京.學(xué)苑出版社,1993.5譚浩強、張基溫. C語言程序設(shè)計教程.北京:高等教育出版社,2006.源代碼#include /*輸入輸出函數(shù)*/ #include /*通用應(yīng)用程序函數(shù)*/ #include /*字符串函數(shù)*/ #include /*字符操作函數(shù)*/ typedef struct /*定義結(jié)構(gòu)體變量*/ int name; int a1; int a2; int a3; int a4; int

15、a5; RECODE; int menu_select();/*聲明函數(shù)*/ int enter(RECODE t);/*聲明函數(shù)*/ void salor(RECODE t,int n);/*聲明函數(shù)*/ int sum(RECODE t,int n,int m);/*聲明函數(shù)*/ void list1(RECODE t,int n);/*聲明函數(shù)*/ void list2(RECODE t,int n);/*聲明函數(shù)*/ void list3(RECODE t,int n);/*聲明函數(shù)*/ void save(RECODE t,int n);/*聲明函數(shù)*/ int load(RECOD

16、E t);/*聲明函數(shù)*/ int a(RECODE t,int p)int i,q,w5=0,0,0,0,0;printf(請輸入你查找的人的代號); scanf(%d,&q);for(i=0;i4;i+)=i+1;for(i=0;ip;i+) if(q=)w0=w0+ti.a1;w1=w1+ti.a2;w2=w2+ti.a3;w3=w3+ti.a4;w4=w4+ti.a5; printf(%d的銷售情況bread:%d cake:%d pie:%d milk:%d drink:%dn,q,w0,w1,w2,w3,w4); main()/*主函數(shù)*/ RECODE

17、 rec600; int length; system(cls); /*清屏*/ for( ; ; ) /*無限循環(huán)*/ switch(menu_select() /*根據(jù)用戶的選擇判斷該調(diào)用哪個功能函數(shù)*/ case 1:length=enter(rec);break; case 2:salor(rec,length);break; case 3:list1(rec,length);break; case 4:list2(rec,length);break; case 5:a(rec,length);break; case 6:list3(rec,length);break; case 7:

18、save(rec,length);break; case 8:length=load(rec);break; case 0:exit(0); int menu_select() /*菜單函數(shù)*/ int n; printf(-食品銷售管理系統(tǒng)-nn); printf(-主菜單-nn); printf( tt001 輸入清單的天數(shù)n); printf( tt002 銷售員月銷售額n); printf( tt003 按銷售額對銷售員排序n); printf( tt004 產(chǎn)品銷售額n); printf( tt005 查詢銷售情況n); printf( tt006 統(tǒng)計表n); printf( tt

19、007 保存n); printf( tt008 直接讀入數(shù)據(jù)n); printf( tt000 退出n); printf(-end-nn); printf( 請選擇序號從000至006: ); scanf(%d,&n); if(0n8) system(cls); /*清屏*/ return n; int enter(RECODE t)/*清單輸入函數(shù)*/ int i,num,j,z=0; system(cls); /*清屏*/ printf(輸入所要寫入的清單的天數(shù):); /*輸入所要寫入的清單的天數(shù)*/ scanf(%d,&num); printf(銷售員代號 bread cake pie

20、milk drinkn); for(j=0;jnum;j+) for(i=0;i4;i+)/*將所輸入的條數(shù)存入結(jié)構(gòu)體數(shù)組中*/ printf(nn-n); scanf(%d%d%d%d%d%d,&,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5); z+; printf(n-nnn); return z; void salor(RECODE t,int n) int i,s; int b1=0,b2=0,b3=0,b4=0,b5=0; printf(輸入所要查看的售貨員的代號(1-4):); scanf(%d,&s); /*輸入所要查看的售貨員的代號*/

21、for(i=0;in;i+) /*對每種產(chǎn)品的銷售額求和*/ if(=s) b1+=ti.a1; b2+=ti.a2; b3+=ti.a3; b4+=ti.a4; b5+=ti.a5; printf(銷售員代號 bread cake pie milk drinkn); printf(-n); printf(%-10d%-10d%-10d%-7d%-7d%-7d,s,b1,b2,b3,b4,b5); printf(n按任意鍵繼續(xù).); getchar(); int sum(RECODE t,int n, int e) int i,sum=0; for(i=0;i=n;i+)/*求銷

22、售產(chǎn)品的總和*/ if(e=) sum+=ti.a1; sum+=ti.a2; sum+=ti.a3; sum+=ti.a4; sum+=ti.a5; return sum; void list1 (RECODE t,int n) int i,j,s; int c4,m4; /*定義兩個數(shù)組*/system(cls); /*清屏*/ for(i=0;i4;i+) mi=i+1; for(i=0;i4;i+) ci=sum(t,n,mi); for(i=0;i4;i+)/*按銷售員的銷售額進(jìn)行排序*/ for(j=i+1;j4;j+) if(cicj) s=mi; mi=mj; m

23、j=s; s=ci; ci=cj; cj=s; printf(銷售員的銷售額(從高至低)n); for(i=0;i4;i+)/*輸出銷售員代號*/ printf(%dn,mi); printf(n按任意鍵繼續(xù).); getchar(); void list2(RECODE t,int n) int i,j,s; int c5,m5; for(i=0;i5;i+)/*產(chǎn)品代號*/ mi=i+1; for(i=0;i5;i+)/*給數(shù)組賦初值*/ ci=0; for(i=0;in;i+)/*分別對每一種產(chǎn)品的銷售額求總和*/ for(j=0;j5;j+) if(mj=ti.a1) cj+=ti.a

24、1; if(mj=ti.a2) cj+=ti.a2; if(mj=ti.a3) cj+=ti.a3; if(mj=ti.a4) cj+=ti.a4; if(mj=ti.a5) cj+=ti.a5; for(i=0;i5;i+)/*按銷售額對產(chǎn)品排序*/ for(j=i+1;j5;j+) if(cicj) s=ci;ci=cj; cj=s; s=mi;mi=mj; mj=s; system(cls); /*清屏*/ printf(產(chǎn)品的代號 n);printf(10 cake 20 bread 30 pie 40 milk 50 drinkn); for(i=0;i5;i+)/*輸出產(chǎn)品的代號和

25、銷售額*/ printf(ntt%-10d%-10dn,mi*10,ci); printf(按任意鍵繼續(xù) .n); getch();system(cls); void list3(RECODE t,int n) int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c4,b14=0,b24=0,b34=0,b44=0,b54=0; system(cls); for(i=0;i4;i+) ci=sum(t,n,i+1);/*求每個人的總銷售額*/ for(i=0;i4;i+) sum0+=ci;/*所有產(chǎn)品的銷售額*/ for(i=0;in

26、;i+)/*求每個人每種產(chǎn)品的總銷售額*/ for(j=0;j4;j+) if(j+1=) b1j+=ti.a1; b2j+=ti.a2; b3j+=ti.a3; b4j+=ti.a4; b5j+=ti.a5; for(i=0;i4;i+)/*每種產(chǎn)品的總銷售額*/ sum1+=b1i; sum2+=b2i; sum3+=b3i; sum4+=b4i; sum5+=b5i; printf(-銷售額清單-nnn); printf( 產(chǎn)品的代號n); printf(-bread cake pie milk drink 總和nn); for(i=0;i4;i+) printf( %-1

27、0d%-10d%-10d%-10d%-10d%-10d%-10dn,i+1,b1i,b2i,b3i,b4i,b5i,ci); printf( 合計 %-10d%-10d%-10d%-10d%-10d%-10d,sum1,sum2,sum3,sum4,sum5,sum0); printf(n 按任意鍵繼續(xù).); getchar(); void save(RECODE t,int n) int i; FILE *fp;/*調(diào)用fopen函數(shù)*/ if(fp=fopen(record.txt,wb)=NULL)/*如果函數(shù)帶回一個空指針值*/ printf(can not open filen);/*不能打開文件*/ exit(1); printf(nSaving filen); fprintf(fp,%d,n

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論