C語言課程設計的報告食品店銷售管理系統(tǒng)_第1頁
C語言課程設計的報告食品店銷售管理系統(tǒng)_第2頁
C語言課程設計的報告食品店銷售管理系統(tǒng)_第3頁
C語言課程設計的報告食品店銷售管理系統(tǒng)_第4頁
C語言課程設計的報告食品店銷售管理系統(tǒng)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

5、nu_select()=2 break;nysalor(rec,length); break;menu_select()=3 nylist1(rec,length); break;menuselect()=4 +4nmenuselect()=5list2(rec,length);berakynmwnuselt()=6 ; ya(rec,length)break; ;list3(rec,length);breakmenu_selec_()=7 nsave(rc,length);break=7ymenu select()=8 lnmenu_select=9length=load(rec)break

6、 ;y ; yexit(0);圖2.2總體設計流程3 系統(tǒng)功能模塊設計31 main( )主函數(shù)模塊主函數(shù)是程序入口,采用模塊化設計。首先在主程序中打印出主菜單界面,將會顯示出八個功能函數(shù),作為進入系統(tǒ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)用fo

7、pen函數(shù)將其保存在文件中。如果函數(shù)帶回一個空指針,則不能打開該文件,退出;保存成功后就會關閉文件,并顯示保存成功。然后按任意鍵便會繼續(xù)運行程序。 圖34保存數(shù)據(jù)界面 圖3.5保存函數(shù)流程34讀入數(shù)據(jù)模塊該模塊采用指針函數(shù)*fp,用fscanf對文件中的數(shù)據(jù)進行調(diào)用,此時屏幕會顯示“恭喜您已成功從文件中讀出數(shù)據(jù)”,然后便可運用文件中的數(shù)據(jù)進行下面的操作。 圖36讀入數(shù)據(jù)界面 圖37讀入數(shù)據(jù)流程35 查詢銷售員銷售額模塊該模塊采用數(shù)組函數(shù)實現(xiàn)對銷售員銷售情況的調(diào)用,采用if條件函數(shù)可直接輸出查詢情況,只需輸入銷售員代號即可。圖38查詢銷售員銷售額界面 圖39查詢銷售員銷售額流程36排序模塊此部分

8、用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)計表界 圖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,修改后加入地址欄便能從文件中直接讀入

9、數(shù)據(jù)。2)在main( )函數(shù)中開始少一個case結(jié)構(gòu),導致在void list2 函數(shù)中“getch”未定義,加入case 5:a(rec,length);break;后便能正常運行。3)在清單輸入模塊中,開始只能輸入一天的銷售記錄,原因是少了循環(huán)的程序編譯,添加for(j=0;jnum;j+)和for(i=0;i4;i+)后便能由外界定義輸入清單的天數(shù)。4)在求銷售產(chǎn)品總和的模塊中,忽略了將最后結(jié)果返回sum,雖不影響程序的運行,但這也是程序的不完善之處。5 總結(jié)及體會在做課程設計以前,我對銷售管理信息系統(tǒng)的理解只是停留在理論和知識的水平上,并沒有認真的去操作實踐。只是所謂的“紙上談兵”而

10、已,缺乏實際的操作技術,缺乏對所學知識的融會貫通。通過這次課程設計,我通過自學、在同學們的幫助下完成了食品店銷售管理系統(tǒng)的設計與開發(fā)。在課程設計的整個過程中我遇到了很多的問題,但我都在慢慢地學習過程中一點一點地克服了。同時我發(fā)現(xiàn)真正學好、學懂一門新的語言是有難度,值得慶幸的是,在此期間指導老師給了我很大的幫助和鼓勵。使我通過這次課程設計,同時又學習了很多在平??荚囘^程中學習不到的知識和自己動手的能力。在邊自學邊設計的過程中,我查閱了很多的資料,請教了不少的同學和老師。在剛開始編程的時候還是不能得心應手。在一次又一次的修改過程中不斷地進步和提高,但是還是有些功能我無法把它用到我的程序中來,真有點

11、遺憾,同時由于這次時間比較緊,無法更深入地去鉆研這門課程。這次課程設計是我本學期所學知識的綜合應用,使我對一學期所學的內(nèi)容有了更加深刻的認識,使得所學的知識得到融會貫通,得到了以前學習任何一門課都沒有的提高與進步,對我來說是一次很好的鍛煉,這不僅把以前所學的知識再重溫習一遍,而且又學會了一門新的語言。 總之,通過本次課程設計,我最終完成了食品店銷售管理系統(tǒng)的課程設計。在做本課程的過程中,我不僅更加深刻的體會了vc這門語言,還對結(jié)構(gòu)體數(shù)組有了比較熟練的了解,更重要的是學到了很多編程思想。我會在以后的學習中去更加熟練的掌握c語言。致謝在以前,自己在上課時沒有很好的聽課,下來后也沒有很好的去實踐操作

12、。致使自己的編程水平與同學們相差很遠。通過此次實踐,在老師和同學的幫助下,我的編程能力有了一定的提高。雖然沒有達到理想中的效果,但較我自身而言,已經(jīng)有了較大的進步。其實學習也能體現(xiàn)出團結(jié)的力量,如果班上的同學都只顧自己學習,同學之間遇見什么問題也不互相討論,只靠只身的力量去解決學習中遇到的問題在很多的時候都是很難實現(xiàn)的。在此次課程設計中,同學們讓我再次體會到了團結(jié)的力量,在此我感謝同學們對我的幫助。在以前,老師給我的感覺都總是高高在上,然而在這次課程設計時。指導老師的行動徹底讓我改變了對老師的成見。在課程設計的過程中,我遇到了許多很淺顯的問題,在詢問老師時,他們是那樣的認真講解,遇到實在不懂得

13、問題,他們會手把手的說教,直到我們弄懂為止。在此我感謝老師對我們孜孜不倦的教誨。最后,我再次向幫助我的老師和同學致上最真摯的謝意。感謝他們對我的幫助!同時在以后的學習當中,我會加倍的努力,繼續(xù)發(fā)揚同學們的這種互幫互助的精神!參考文獻1譚浩強等.c語言程序設計教程.北京:高等教育出版社,1997.2譚浩強.c程序設計.第2版.北京:清華大學出版社,1999.3郭浩志.c語言程序設計.北京.北京郵電大學出版社,2005.4林學焦.turbo c2.0用戶手冊.北京.學苑出版社,1993.5譚浩強、張基溫. c語言程序設計教程.北京:高等教育出版社,2006. 源代碼#include /*輸入輸出函

14、數(shù)*/ #include /*通用應用程序函數(shù)*/ #include /*字符串函數(shù)*/ #include /*字符操作函數(shù)*/ typedef struct /*定義結(jié)構(gòu)體變量*/ int name; int a1; int a2; int a3; int a4; int 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

15、,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(recode 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+

16、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 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);

17、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: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 輸入清單

18、的天數(shù)n); printf( tt002 銷售員月銷售額n); printf( tt003 按銷售額對銷售員排序n); printf( tt004 產(chǎn)品銷售額n); printf( tt005 查詢銷售情況n); printf( tt006 統(tǒng)計表n); printf( tt007 保存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(rec

19、ode t)/*清單輸入函數(shù)*/ int i,num,j,z=0; system(cls); /*清屏*/ printf(輸入所要寫入的清單的天數(shù):); /*輸入所要寫入的清單的天數(shù)*/ scanf(%d,&num); printf(銷售員代號 bread cake pie 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);

20、 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); /*輸入所要查看的售貨員的代號*/ 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(%

21、-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+)/*求銷售產(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(

22、cls); /*清屏*/ for(i=0;i4;i+) mi=i+1; for(i=0;i4;i+) ci=sum(t,n,mi); for(i=0;i4;i+)/*按銷售員的銷售額進行排序*/ for(j=i+1;j4;j+) if(cicj) s=mi; mi=mj; mj=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 c

23、5,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.a1; 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=c

24、j; 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)品的代號和銷售額*/ 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 c

25、4,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;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( %-10d%-10d%-10d%-10d%-10d%-10d%-10dn,i+1,b1i,b2i,b3i,b4i,b5i,ci); printf( 合計 %-10d%-1

溫馨提示

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

評論

0/150

提交評論