商品信息管理系統(tǒng)_第1頁
商品信息管理系統(tǒng)_第2頁
商品信息管理系統(tǒng)_第3頁
商品信息管理系統(tǒng)_第4頁
商品信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院C語言程序設(shè)計(jì)課程設(shè)計(jì)題 目: 商品銷售管理系統(tǒng) 專 業(yè): 信息與計(jì)算科學(xué) 學(xué) 號(hào): 1409301-41 姓 名: 徐藝 指導(dǎo)教師: 李又良 成 績: 二零一五年 六月 二十二日課程設(shè)計(jì)報(bào)告商品銷售管理系統(tǒng)1、研究目的與意義由于現(xiàn)今經(jīng)濟(jì)飛速發(fā)展,人們購買商品量越來越大。因此為提高工作效率,方便商店管理人員對商品信息進(jìn)行登記,查找,等繁雜的工作,進(jìn)而設(shè)計(jì)出一個(gè)功能更完善,合理,先進(jìn)的商品銷售管理系統(tǒng)來管理。開發(fā)此商品銷售管理系統(tǒng)軟件,以供商店管理人員進(jìn)行商品管理,方便管理人員隨時(shí)查詢、修改商品信息。進(jìn)一步鞏固所學(xué)的C語言的數(shù)據(jù)結(jié)構(gòu),流程結(jié)構(gòu),輸入輸出,以及各種調(diào)試測試技能,

2、并培養(yǎng)利用C語言分析實(shí)際問題,用計(jì)算機(jī)解決簡單問題的能力。2、問題描述和功能要求問題描敘對商品銷售信息進(jìn)行管理,主要包含的商品信息為:商品名稱、商品編號(hào)、庫存數(shù)量、銷售數(shù)量、單價(jià)、產(chǎn)地。此主要系統(tǒng)包含下列功能:對商品信息的輸入、顯示、排序、查找、刪除、修改、及對文件的讀寫。系統(tǒng)功能1)、每一條記錄包括一個(gè)商品的名稱、編號(hào)、庫存數(shù)量、銷售數(shù)量、單價(jià)、產(chǎn)地。2)、錄入商品:可以一次完成無數(shù)條商品信息記錄的輸入。3)、顯示庫存:完成全部商品記錄的顯示。4)、插入商品:插入一件新商品的所有信息。5)、查找商品:按商品名稱查找商品。6)、商品排序:按商品銷售量把商品信息排序。7)、商品選購:包括商品信息

3、查詢,商品修改,顯示結(jié)賬。8)、修改庫存數(shù)量:按商品銷售量修改商品庫存數(shù)量及銷售數(shù)量。9)、錄入商品信息文件:能將商品信息保存在任何自定義的文件中。9)、讀取商品信息文件:將保存在文件中的商品信息讀取出來。10)、有一個(gè)清晰美觀界面來調(diào)用各個(gè)功能功能模塊分工:組長:徐藝徐藝負(fù)責(zé):商品信息的保存和讀取。張薇負(fù)責(zé):商品查詢和商品插入。李康負(fù)責(zé):商品選購。譚小芬:商品排序和修改。易楊婷負(fù)責(zé):錄入商品,顯示庫存。3、課程設(shè)計(jì)報(bào)告內(nèi)容3.1學(xué)生信息管理系統(tǒng)的理論依據(jù)1、建立一個(gè)結(jié)構(gòu)體數(shù)組對象sp,用于存儲(chǔ)商品信息struct spchar spmc20;/商品名稱 int spbh;/商品編號(hào) int

4、kcsl;/庫存數(shù)量 int xssl;/銷售數(shù)量 int spdj;/單價(jià) char spcd20;/產(chǎn)地。2、建立相應(yīng)的系統(tǒng)操作函數(shù)如下:輸入k條商品信息存放到數(shù)組struct sp t的函數(shù):int shuru(sp s,int n);顯示數(shù)組struct sp t中n個(gè)商品的信息函數(shù):void xs(sp s,int n);n個(gè)商品數(shù)組struct sp t根據(jù)商品名稱(spmc)查找商品函數(shù):int find(sp s,int n);n個(gè)商品數(shù)組struct sp t中修改商品(從鍵盤輸入商品編號(hào))的信息函數(shù):void change(sp s,int i);n個(gè)商品數(shù)組struct

5、sp t按銷售數(shù)量排降序函數(shù):void sort_xssl(sp s,int n);從文件filename中讀入數(shù)據(jù)到數(shù)組struct sp t中的函數(shù):void read(sp s,int i);將所有記錄struct sp寫入文件filename函數(shù):void save(sp s,int i);將新的商品插入sp s中函數(shù):int Insert(sp s,int n);退出管理系統(tǒng)函數(shù):exit(0);3、寫main()函數(shù),由用戶輸入一個(gè)參數(shù)a,根據(jù)a的值來選擇要進(jìn)行的操作。 3.2算法流程圖商品信息管理系統(tǒng)的main()函數(shù)顯示所有商品信息按商品名稱查找插入新商品商品選購按商品銷售量排

6、序修改庫存數(shù)量保存商品信息功能從文件中讀入商品信息輸入商品信息系統(tǒng)運(yùn)行結(jié)束退出管理系統(tǒng)a=0a!=0請輸入一個(gè)要操作的菜單項(xiàng)a并根據(jù)a值判斷執(zhí)行的操作輸出相應(yīng)的運(yùn)行結(jié)果3.3 源程序如下: #include"stdio.h"#include"string.h"#include"stdlib.h"typedef struct char spmc20; int spbh; int xssl; int kcsl; int spdj; char spcd20;sp;int n=0;sp s20;int menu() int select; p

7、rintf("*n"); printf("tttt商品銷售管理系統(tǒng)n");printf("tttt【1】錄入商品n");printf("tttt【2】顯示庫存n");printf("tttt【3】插入商品n"); printf("tttt【4】查找商品n"); printf("tttt【5】商品排序n"); printf("tttt【6】商品選購n");printf("tttt【7】修改庫存數(shù)量n");printf(

8、"tttt【8】錄入文件n");printf("tttt【9】讀取文件n"); printf("tttt【0】退出程序n"); printf("n*n");printf("t請輸入你的選擇(輸入0-9中的一個(gè)數(shù)字):n"); scanf("%d",&select);for(;select<0|select>9;)printf("n輸入錯(cuò)誤!請重新輸入你的選擇(輸入0-9中的一個(gè)數(shù)字):");scanf("%d",&a

9、mp;select);return select;int shuru(sp s,int n) char flag='Y'while(flag='y' | flag='Y')/判斷 printf("n請輸入商品名稱:"); scanf("%s",&sn.spmc); printf("n請輸入商品編號(hào):"); scanf("%d",&sn.spbh); printf("n請輸入銷售數(shù)量:"); scanf("%d",

10、&sn.xssl); printf("n請輸入庫存數(shù)量:"); scanf("%d",&sn.kcsl); printf("n請輸入商品單價(jià):"); scanf("%d",&sn.spdj); printf("n請輸入商品產(chǎn)地:"); scanf("%s",&sn.spcd); getchar(); n+; printf("繼續(xù)輸入商品信息請按:Y or y,退出請按:N or n.n"); scanf("%c&q

11、uot;,&flag);/判斷是否繼續(xù)輸入getchar();printf("按任意鍵回主菜單n");getchar();return(n);void xs(sp s,int n) /顯示商品信息 int i; printf("商品名稱 商品編號(hào) 銷售數(shù)量 庫存數(shù)量 單價(jià) 產(chǎn)地n"); for(i=0;i<n;i+) printf("%6s %8d %9d %8d %8d %6sn" ,si.spmc,si.spbh,si.xssl,si.kcsl,si.spdj,si.spcd);int Insert(sp s,int

12、 n)/插入商品的信息printf("請輸入要插入的商品名稱:");/輸入商品信息scanf("%s",sn.spmc);printf("請輸入要插入的商品編號(hào):");scanf("%d",&sn.spbh);printf("請輸入要插入的銷售數(shù)量:");scanf("%d",&sn.xssl);printf("請輸入要插入的庫存數(shù)量:");scanf("%d",&sn.kcsl);printf("請輸

13、入要插入的商品單價(jià):");scanf("%d",&sn.spdj);printf("請輸入要插入的商品產(chǎn)地:");scanf("%s",sn.spcd); return (n);int find(sp s,int n)/查找并顯示一個(gè)記錄 int k,va=-1;/k為要查找的商品名稱,t為循環(huán)節(jié),s用來判斷循環(huán)是否結(jié)束 char flag='y' while(flag='y' | flag='Y') printf("請輸入您所選的商品名稱:");

14、scanf("%s",&k); getchar(); for(k=0;k!=0 && k<n;k+);if(k=n)printf("該商品不存在!n"); else printf("該商品的信息為:n"); printf(" 商品名稱 商品編號(hào) 銷售數(shù)量 庫存數(shù)量 商品單價(jià) 商品產(chǎn)地n"); printf("%9s",sk.spmc); printf("%9d",sk.spbh); printf("%11d",sk.xssl)

15、; printf("%9d",sk.kcsl); printf("%13.2d",sk.spdj); printf("%9s",sk.spcd); va=k; printf("n繼續(xù)查找商品信息請輸入:Y or y,n退出輸入:N or nn"); scanf("%c",&flag);/判斷是否繼續(xù)輸入return k; void sort_xssl(sp s,int n) int m,k; sp p; for(k=1;k<=n-1;k+) for(m=0;m<n-k;m+)

16、 if( sm.xssl>sm+1.xssl) p=sm+1; sm+1=sm;sm=p; for(m=0;m<n;m+) printf("%s %d %d %d %d %sn",sm.spmc,sm.spbh,sm.xssl,sm.kcsl,sm.spdj,sm.spcd); void spxg(sp s,int k) /查找并顯示一個(gè)記錄char p20; /p為要查找的商品名稱int sum; /商品的總額int h; /商品的選購數(shù)量printf("請輸入您所選的商品名稱:");scanf("%s",&p)

17、;getchar();for(k=0;strcmp(p,sk.spmc)!=0 && k<n;k+);if(k=-1)printf("該商品不存在!n");else printf("該商品的信息為:n"); printf("商品名稱 商品編號(hào) 銷售數(shù)量 庫存數(shù)量 商品單價(jià) 商品產(chǎn)地n"); printf("%7s",sk.spmc); printf("%7d",sk.spbh); printf("%10d",sk.xssl); printf("

18、%12d",sk.kcsl); printf("%11d",sk.spdj); printf("%10s",sk.spcd); printf("n");/printf("繼續(xù)您所需要的商品請輸入:Y or y,退出輸入:N or nn");/scanf("%c",&flag);/判斷是否繼續(xù)輸入 printf("請輸入所購買商品的數(shù)量:"); scanf("%d",&h); sum=sk.spdj*h; /計(jì)算商品總額printf

19、("您所購買商品的總額為: ");printf("%dn",sum);void change(sp s,int i)/修改商品的信息 long p;/p用來表示要?jiǎng)h除商品的編號(hào)int k;printf("請輸入商品編號(hào):n");scanf("%ld",&p);for(k=0;p!=sk.spbh && k<i;k+);if(k=i)printf("無法找到該商品的信息n");elseprintf("t該商品的信息為:n");printf(&quo

20、t;商品名稱 商品編號(hào) 銷售數(shù)量 庫存數(shù)量 單價(jià) 產(chǎn)地 n");printf("%9s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.xssl);printf("%9d",sk.kcsl);printf("%8d",sk.spdj);printf("%9s",sk.spcd);printf("t請輸入該商品的新信息:n");printf("請輸入商品的名稱:");/交互輸入商品

21、的信息scanf("%s",&sk.spmc );printf("請輸入該商品的編號(hào):");scanf("%d",&sk.spbh);printf("請輸入該銷售數(shù)量:");scanf("%d",&sk.xssl );printf("請輸入該庫存數(shù)量:");scanf("%d",&sk.kcsl );printf("請輸入該商品的單價(jià):");scanf("%d",&sk.spd

22、j );printf("請輸入該商品的產(chǎn)地:");scanf("%s",&sk.spcd ); getchar();printf("修改成功!n");/記錄void save(sp s,int i)/將所有記錄寫入文件int k=0;FILE *fp;/定義文件指針char filename20;/定義文件名printf("請輸入你要存儲(chǔ)商品信息文件名:");/輸入文件名scanf("%s",&filename);if(fp=fopen(filename,"wb&quo

23、t;)=NULL)/打開文件printf("無法打開該文件!n");/打開失敗信息return;printf("保存到文件%s里的信息為:n",filename); while(k<i)fprintf(fp,"%6s",sk.spmc);fprintf(fp,"%8d",sk.spbh);fprintf(fp,"%9d",sk.kcsl);fprintf(fp,"%8d",sk.xssl);fprintf(fp,"%8d",sk.spdj);fpri

24、ntf(fp,"%6s",sk.spcd);printf("%6s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.kcsl);printf("%8d",sk.xssl);printf("%8d",sk.spdj);printf("%6s",sk.spcd);printf("n");k+;fclose(fp);printf("信息保存成功n");/讀取void read

25、(sp s,int i)/從文件中讀入學(xué)生信息FILE *fp;/定義一個(gè)文件類型的指針char filename20;/定義文件名printf("請輸入文件名:n");scanf("%s",&filename);/輸入文件名if(fp=fopen(filename,"rb")=NULL)/打開文件printf("無法打開該文件!n");/打開失敗信息return;printf("從文件%s中讀入的數(shù)據(jù)為:n",filename);printf("商品名稱 商品編號(hào) 銷售數(shù)量

26、庫存數(shù)量 單價(jià) 產(chǎn)地n");int k=0;while(k<n)printf("%6s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.kcsl);printf("%8d",sk.xssl);printf("%8d",sk.spdj);printf("%6s",sk.spcd);k+;fclose(fp);printf("讀入成功!n"); void main() int n=0; while

27、(1) switch(menu()case 1:printf("n*錄入商品*n");n=shuru(s,n);break; case 2:printf("n*顯示庫存*n"); xs(s,n);break; case 3:printf("n*插入商品*n");n=Insert(s,n);break; case 4:printf("n*查找商品*n");n=find(s,n);break; case 5:printf("n*商品排序*n"); sort_xssl(s,n);break; case

28、 6: printf("n*商品選購*n");spxg(s,n);break; case 7:printf("n*修改庫存數(shù)量*n");change(s,n);break; case 8:printf("n*錄入文件*n");save(s,n);break; case 9:printf("n*讀取文件*n");read(s,n);break; case 0:printf("n*退出程序*n");exit(0); 3.4 算法調(diào)試過程中出現(xiàn)的問題及解決方法整個(gè)的調(diào)試過程中,我遇到的問題可以分為兩大

29、類,一類是粗心大意犯的錯(cuò)誤,第二類則是代碼整合在一起前后不對應(yīng)的問題。我在整合所有的模塊時(shí),因?yàn)榇中耐袅艘粋€(gè),結(jié)果導(dǎo)致了系統(tǒng)出項(xiàng)大面積的報(bào)錯(cuò),這樣的報(bào)錯(cuò)并非是算法的出錯(cuò),而是因?yàn)榇中模麓伪仨氄J(rèn)真對待。只要找到錯(cuò)誤提示處,加上了,問題便迎刃而解。這里,在我加入了后,又出現(xiàn)了新的錯(cuò)誤。insert定義和調(diào)用時(shí)大小寫不一樣,我翻上去把insert統(tǒng)一好后,錯(cuò)誤解決。spxg這個(gè)函數(shù)在定義時(shí)是寫的char n但是調(diào)用時(shí)是int n,我將前者改成int n就行了。read函數(shù)定義時(shí)沒有定義int n,但是調(diào)用時(shí)又出現(xiàn)了int n,我在定義函數(shù)read里加入了int n,錯(cuò)誤解決。3.5運(yùn)行結(jié)果1,軟

30、件主菜單2,商品信息錄入和顯示3、按商品名稱查找結(jié)果4、插入新商品信息5、按商品銷售數(shù)量排序6、商品選購8、修改商品庫存數(shù)量9、 將所有記錄寫入文件10、 讀入文件3.6 心得體會(huì)經(jīng)過一個(gè)多星期的C語言課程設(shè)計(jì),我們小組都感覺收獲不少!張薇:通過這次的課程設(shè)計(jì),我對于課本上的知識(shí)有了更好的理解和學(xué)習(xí),碰到問題不在是通過百度一下,而是自己查找課本解決問題,或者詢問老師和同學(xué),這也明顯提高了自己的動(dòng)手能力和思考能力,同時(shí)我也知道了自己對于程序的編寫還有很多不足的地方,對課本知識(shí)也還有很多不熟練,所以這也提醒我要好好理解課本知識(shí),多練習(xí)多鞏固??傊ㄟ^本次鍛煉,我對知識(shí)有了更好的掌握,也感謝老師耐

31、心的指導(dǎo),讓我更快更好地完成了課程設(shè)計(jì),讓我獲益匪淺。徐藝:這次課程設(shè)計(jì)對基礎(chǔ)不扎實(shí)的我來說是個(gè)挑戰(zhàn),我們組又偏偏選擇了一個(gè)難的題目。但是我們小組團(tuán)結(jié)友愛,我們互幫互助,做完各自的模塊,會(huì)幫助其他有困難的組員。我們不懂得會(huì)查閱課本,會(huì)積極向老師請教。老師和同學(xué)都給了很多幫助。在做課程設(shè)計(jì)的這幾周中,我不斷學(xué)會(huì)了很多平時(shí)沒注意到知識(shí)點(diǎn),感覺這六周的課程設(shè)計(jì),自己的短板被一一補(bǔ)上。課程設(shè)計(jì)使我受益匪淺。易楊婷:完成程序的編寫,決不意味著萬事大吉。通過我們小組幾個(gè)星期的艱苦奮斗,我們的編程終于接近尾聲。小組間互幫互助,不懂得就問,讓我意識(shí)到了團(tuán)隊(duì)的重要性。在我編寫的模塊中,也遇到了很多問題,以為萬無一失的程序,實(shí)際上機(jī)運(yùn)行時(shí)可能不斷出現(xiàn)麻煩。如編譯程序檢測出一大堆錯(cuò)誤。有時(shí)程序本身不存在語法錯(cuò)誤,也能夠順利運(yùn)行,但是運(yùn)行結(jié)果明顯是錯(cuò)誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)沒法發(fā)現(xiàn)這類程序邏輯錯(cuò)誤,只能靠自己的上機(jī)經(jīng)驗(yàn)分析判定錯(cuò)誤所在。程序的調(diào)試是一個(gè)技能性很強(qiáng)的工作,盡快把握程序調(diào)試方法是非常重要的。有時(shí)候一個(gè)消耗我?guī)讉€(gè)小時(shí)時(shí)間的小小錯(cuò)誤,調(diào)試高手一眼就看出錯(cuò)誤所在。譚小芬;這一次課程設(shè)計(jì),我主要做了按銷售數(shù)量排序和修改庫存數(shù)量,從這次設(shè)計(jì)中我學(xué)到了很多,如定義結(jié)構(gòu)體,冒泡法對數(shù)組進(jìn)行排序,函數(shù)的調(diào)用,對print

溫馨提示

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

最新文檔

評論

0/150

提交評論