版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 高級語言課程設(shè)計商品進(jìn)銷存管理程序題 目:班 級:12 軟工2班學(xué)生學(xué)號:201230690231學(xué)生姓名: 莊志煒 指導(dǎo)老師: 肖磊 提交時間:2012年5月10日成 績:華南農(nóng)業(yè)大學(xué) 信息學(xué)院成績評定方法 每名同學(xué)提交最終課程設(shè)計報告后,按照安排的時間到實驗室向指導(dǎo)老師演示程序并回答老師提出的問題,老師根據(jù)實際情況從如下6個方面給出成績。評分項目分?jǐn)?shù)功能是否滿足要求(50分)界面是否美觀(10分)所學(xué)知識在設(shè)計中的運(yùn)用是否得當(dāng)(10分)對效率要求較高的部分是否有更深的思考與設(shè)計(10分)答辯陳述是否清楚(10分)答辯陳述是否完整(10分)小組總成績:一、問題描述1、簡要描述設(shè)計一個商品進(jìn)
2、銷存管理程序,該程序具有以下功能: (1)錄入商品信息; (2)給定商品編號,修改該商品信息; (3)給定商品編號,刪除該商品信息; (4)錄入商品的進(jìn)貨與銷售信息; (5)給定商品編號或商品名,查看該商品及庫存信息; (6)統(tǒng)計功能:提供一些統(tǒng)計各類信息的功能。2、題目要求 (1)按照分析、設(shè)計、編碼、調(diào)試和測試過程完成應(yīng)用程序; (2)學(xué)習(xí)并使用流程圖等工具,并在撰寫報告中使用; (3)程序的各項功能在程序運(yùn)行時,以菜單方式選擇并執(zhí)行; (4)要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示,包括:輸入數(shù)據(jù)的內(nèi)容、格式及結(jié)束方式等 (5)所有的信息存儲在一個文件或多個中,并實現(xiàn)文件讀寫操作。 (
3、6)程序中用鏈表存放商品及進(jìn)銷存信息并實現(xiàn)增刪減功能。3、系統(tǒng)功能分析(1)錄入商場所用商品信息的功能,添加單一新商品信息的功能。(2)查詢商品信息的功能,按商品的編號、名稱、價格區(qū)間查詢商品,以及瀏覽全部商品。還可查詢某一確定日期商品的銷售量和進(jìn)貨量。查詢倉庫的商品總量及商品總價值。(3)實現(xiàn)商品的進(jìn)貨和銷售功能,將銷售信息和進(jìn)貨信息存儲在文件中。(4)修改商品的編號、名稱和價格的功能。(5)根據(jù)輸入編號刪除商品信息。(6)統(tǒng)計商品的銷售量,做前十的總銷量排行榜。4、開發(fā)平臺介紹 本次程序設(shè)計,基于 Code blocks. Code:Blocks 是一個開放源碼的全功能的跨平臺C/C+集成
4、開發(fā)環(huán)境。 Code:Blocks是開放源碼軟件。Code:Blocks由純粹的C+語言開發(fā)完成,它使用了蓍名的圖形界面庫wxWidgets( unicode)版。對于追求完美的C+程序員,再也不必忍受Eclipse的緩慢,再也不必忍受VS.NET的龐大和高昂的價格。(本段來自百度百科)二、系統(tǒng)設(shè)計1、系統(tǒng)總體結(jié)構(gòu)設(shè)計系統(tǒng)各個功能的總體關(guān)系:系統(tǒng)程序中信息都是以結(jié)構(gòu)體的形式表示,并且每一個結(jié)構(gòu)體嵌套在一個鏈表中,從而能夠?qū)崿F(xiàn)上述中所設(shè)想的功能。系統(tǒng)各個功能的總體關(guān)系:功能菜單添加商品功能查詢商品信息功能銷售商品功能進(jìn)貨功能修改商品信息刪除商品信息銷售排行榜2、數(shù)據(jù)結(jié)構(gòu)設(shè)計struct shop
5、ping int shanping_bianhao; char shanpinname N; char jiliangdanwei N; float jia_ge; int kucun; struct shopping *next; shopping,*shop;商品庫存信息結(jié)構(gòu)體: 商品進(jìn)貨銷售信息結(jié)構(gòu)體:struct sell_and_buy int shanping_bianhao; int buy_or_sell; char dateN; char shanpinname N; char jiliangdanwei N; struct sell_and_buy *next; sell_
6、and_buy,*sell;商品信息儲存在文本文件,文件名:goods.dat;商品進(jìn)貨銷售信息存儲在二進(jìn)制文件,文件名:business.dat。用文本的讀出和寫入實現(xiàn)信息從文件寫入鏈表,信息從鏈表存儲在文件中。由于鏈表的內(nèi)容在實現(xiàn)各種功能的過程中多次發(fā)生變化,因此需改變后重寫入文件,用一個函數(shù)實現(xiàn),如下:void chongxie(struct shopping *p) FILE *fp; if(fp=fopen(goods.txt,w)=NULL) exit(0); while(p!=NULL) fprintf(fp,%d %s %s %.2f %d%c,p-shanping_bianh
7、ao,p-shanpinname,p-jiliangdanwei,p-jia_ge,p-kucun,n); p=p-next; fclose(fp);3 、系統(tǒng)各個函數(shù)及函數(shù)之間關(guān)系設(shè)計主函數(shù) main( )功能菜單商品庫存信息讀入函數(shù)wu=shuju_shopping()商品進(jìn)貨銷售信息讀入函數(shù)shuju_buy_or_sell()商場現(xiàn)有商品信息錄入函數(shù)luru_shopping();判斷所添加新商品編號是否與已有重復(fù)函數(shù)duibi(int a)添加新商品insertshopping(wu)修改商品信息xiugaixinxi()刪除商品信息函數(shù)shanchu()銷售和進(jìn)貨函數(shù)jinghuo
8、(0或1);查詢商品信息函數(shù)chazhaoshopping(wu);Case1按編號找商品Case2按名稱找商品Case4瀏覽全部商品按價格區(qū)間找jiagequjian();查看某天商品的銷售情況xiaoshou_or_jinhuo_xinxi(1);查看某天商品的進(jìn)貨情況xiaoshou_or_jinhuo_xinxi(0);Case7查看庫存情況查看商品銷售排行榜在進(jìn)行按區(qū)間查找商品時還需進(jìn)行執(zhí)行函數(shù)void xuanze(float a,float b),選擇出價格a和b之間的商品,函數(shù)代碼如下:void xuanze(float a,float b) int flag=1; struc
9、t shopping *p,*wu; wu=shuju_shopping(); p=wu; printf(nn); while(p!=NULL) if(p-jia_ge=a&p-jia_geshanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); flag=0; p=p-next; if(flag=1) printf(n); printf(你好,沒有該價格區(qū)間的商品*
10、nn); 4 、界面設(shè)計程序運(yùn)行時,以簡單,易懂的“菜單”的方式執(zhí)行,菜單中會有提示。在主菜單中選擇所需功能到所需要的功能,有時可能會有二級“菜單”,每當(dāng)執(zhí)行完主菜單的一個功能時,由程序中的system(cls)函數(shù)進(jìn)行清屏操作,避免已經(jīng)沒有的信息界面仍然出現(xiàn),返回主菜單。代碼如下:do printf(nnn); printf( *歡迎進(jìn)入商品管理系統(tǒng)n); printf( * 請選擇: *n); printf( * *n); printf( * 1 錄入商場現(xiàn)有商品信息 *n); printf( * *n); printf( * 2 添加新種商品信息 *n); printf( * *n);
11、printf( * 3 查詢信息 *n); printf( * *n); printf( * 4 銷售物品 *n); printf( * *n); printf( * 5 進(jìn)貨信息 *n); printf( * *n); printf( * 6 修改商品信息 *n); printf( * *n); printf( * 7 刪除信息 *n); printf( * *n); printf( * 8 查看銷量排行榜 *n); printf( * *n); printf( * 0 退出系統(tǒng) *n); printf( * *n); printf( *歡迎進(jìn)入商品管理系統(tǒng)n); printf( n); p
12、rintf(shanping_bianhao,p1-shanpinname,p1-jiliangdanwei,&p1-jia_ge,&p1-kucun); wu=p1; else p2-next=p1; p2=p1; p1=(struct shopping *)malloc(sizeof(shopping); fscanf(fp,%d%s%s%f%d,&p1-shanping_bianhao,p1-shanpinname,p1-jiliangdanwei,&p1-jia_ge,&p1-kucun); p2-next=NULL; fclose(fp); return(wu); return 0;
13、2、添加新種類的商品代碼:struct shopping *insertshopping(struct shopping *wu) char ch; wu=shuju_shopping(); struct shopping *p,*q,*t; FILE *fp; if(fp=fopen(goods.txt,a+)=NULL) return 0; q=wu; while(q!=NULL) t=q; q=q-next; if(q=NULL) p=(struct shopping*)malloc(sizeof(shopping); printf(n請依次輸入新商品的編號,商品名,計量單位和價格:n)
14、; scanf(%d%s%s%f,&p-shanping_bianhao,p-shanpinname,p-jiliangdanwei,&p-jia_ge); p-kucun=0; if(duibi(p-shanping_bianhao) printf(*n); printf(該商品已存在,添加失敗nn); free(p); break; getchar(); printf(*n); printf(確定輸入請輸入,否則請輸入nn); printf(請輸入:); ch=getchar(); printf(*n); if(ch=Y|ch=y) fprintf(fp,%d %s %s %.2f %d%
15、c,p-shanping_bianhao,p-shanpinname,p-jiliangdanwei,p-jia_ge,p-kucun,n); t-next=p; p-next=NULL; printf(nn); break; else printf(nn); fclose(fp); return wu;3、銷售商品和進(jìn)貨功能代碼(a為0時執(zhí)行銷售功能,為1時執(zhí)行進(jìn)貨功能):struct sell_and_buy *jinghuo(int a) FILE *fp1; if(fp1=fopen(business.txt,ab+)=NULL) return 0; int n,m,flag=1; s
16、truct sell_and_buy *head,*p1; struct shopping *wu,*p; head=shuju_buy_or_sell(); wu=shuju_shopping(); p1=head; printf( n); printf(shanping_bianhao=n) printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jili
17、angdanwei); printf(nn); printf(*n); printf(請輸入該商品的交易數(shù)量 及 交易時間(格式為):n); scanf(%d%s,&m,p1-date); if(!a) if(mp-kucun) printf(*nn); printf(nnnn); break; m=-m; p-kucun=p-kucun+m; p1-buy_or_sell=m; p1-shanping_bianhao=p-shanping_bianhao; strcpy(p1-shanpinname,p-shanpinname); strcpy(p1-jiliangdanwei,p-jili
18、angdanwei); fwrite(p1,sizeof(struct sell_and_buy),1,fp1); printf(*nn); if(!a) printf(應(yīng)支付金額:%.2f元nn,-(m*p-jia_ge); printf(nn); break; p=p-next; if(p=NULL) printf(沒有該商品nn); printf(shanping_bianhao; printf(*n); printf(輸入待刪除商品的編號:n); scanf(%d,&a); q=p; while(p!=NULL) if(p-shanping_bianhao=a) if(i=a) pri
19、ntf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); getchar(); printf(*n); printf(確定刪除請輸入,否則請輸入nn); printf(請輸入:); ch=getchar(); printf(*n); if(ch=N|ch=n) printf(刪除失敗*nn); break; el
20、se p=p-next; printf(*刪除成功*nn); free(q); break; else printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); getchar(); printf(*n); printf(確定刪除請輸入,否則請輸入nn); printf(請輸入:); ch=getchar(
21、); printf(*n); if(ch=N|ch=n) printf(刪除失敗*nn); break; else q-next=p-next; printf(*刪除成功*nn); free(p); break; q=p; p=p-next; if(p=NULL) printf(沒有該商品n); if(i!=a) p=wu; chongxie(p); return 0;5、銷售排行榜代碼:void bandan() memset(m,0,sizeof(m); struct sell_and_buy *p,*head; head=shuju_buy_or_sell(); p=head; int
22、i=1,j,flag=1,k; FILE *fp; while(p!=NULL) flag=1; if(p-buy_or_sell0) for(j=0; jshanpinname)=0) mj.buy_or_sell=mj.buy_or_sell+p-buy_or_sell; flag=0; if(flag) mi=*p; i+; p=p-next; for(k=1; ki; k+) for(j=1; jmj+1.buy_or_sell) m0=mj+1; mj+1=mj; mj=m0; fp=fopen(xiaoshoubandan.txt,w); if(fp=NULL) printf(ns
23、orry,讀取數(shù)據(jù)失敗!n); else for(j=1; ji; j+) fprintf(fp,%d %d %s %d%sn,j,mj.shanping_bianhao,mj.shanpinname,-mj.buy_or_sell,mj.jiliangdanwei); fclose(fp); for(j=1; jshanping_bianhao=a) printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); print
24、f( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); break; p=p-next; if(p=NULL) printf(沒有該商品n); p=wu; break; case 2: printf( n); printf(輸入商品名稱:n); scanf(%s,s); system(cls); while(p!=NULL) if(strcmp(p-shanpinname,s)=0) printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname
25、); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); break; p=p-next; if(p=NULL) printf(沒有該商品n); p=wu; break; case 3: jiagequjian(); break; case 4: system(cls); printf( n); while(p!=NULL) printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-s
26、hanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); printf(*n); p=p-next; p=wu; break; case 5: system(cls); xiaoshou_or_jinhuo_xinxi(1); break; case 6: system(cls); xiaoshou_or_jinhuo_xinxi(0); break; case 7: system(cls); printf( n); while(p!=NULL)
27、 m=m+p-kucun; sum=sum+p-kucun*p-jia_ge; p=p-next; printf(n); printf(n倉庫現(xiàn)有商品總量為: %d件nnn,m); printf(商品總價值為:%.2lf元nn,sum); printf(nn); p=wu; break; case 0: printf( nn); printf( 歡迎再次查找( _ ) nn); printf( nn); break; while(choice!=0); return 0;修改商品信息功能7、修改商品價格修改商品編號修改商品名稱修改商品信息代碼:struct shopping *xiugaixi
28、nxi() struct shopping *p,*wu; wu=shuju_shopping(); p=wu; int a,b,choice,flag=1; float c; char sN; printf(*n); printf(請輸入待改商品的編號:n); scanf(%d,&b); while(p!=NULL) if(p-shanping_bianhao=b) printf(修改前商品信息為:n); printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格
29、: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); break; p=p-next; if(p=NULL) printf(沒有該商品n); flag=0; while(flag=1) do printf(n); printf( 請選擇: n); printf( n); printf( 1:修改商品編號 n); printf( n); printf( 2:修改商品名稱 n); printf( n); printf( 3:修改商品價格 n); printf( n); printf( 0:修
30、改完畢 n); printf( n); printf(n); printf(*請輸入:); scanf(%d,&choice); switch(choice) case 1: printf(*n); printf(輸入商品的新編號:n); scanf(%d,&a); p-shanping_bianhao=a; break; case 2: printf(*n); printf(輸入商品的新名稱:n); scanf(%s,s); strcpy(p-shanpinname,s); break; case 3: printf(*n); printf(輸入商品的新價格:n); scanf(%f,&c)
31、; p-jia_ge=c; break; case 0: break; while(choice!=0); flag=0; printf(修改后的商品信息為:nn); printf(n); printf( 編號: %d nn,p-shanping_bianhao); printf( 名稱: %s nn,p-shanpinname); printf( 價格: %6.2f元 nn,p-jia_ge); printf( 庫存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); p=wu; chongxie(p); return wu;四、系統(tǒng)測試與系統(tǒng)運(yùn)行界面 模塊與系統(tǒng)測試 系統(tǒng)運(yùn)行界面按 進(jìn)入添加新種商品功能,預(yù)期結(jié)果為:請依次輸入新商品的編號,商品名,計量單位和價格: 測試結(jié)果為:輸入數(shù)據(jù):1007 飛科剃須刀 臺 80預(yù)期結(jié)果:添加成功;測試結(jié)果:按 進(jìn)入信息查詢功能:界面如下:按1,輸入編號1001,預(yù)測結(jié)果為: 編號:1001 名稱:筆記本電腦 價格:4050.00元 庫存:50臺 測試結(jié)果:按2,輸入商品名稱:飛科剃須刀,預(yù)測結(jié)果為: 編號:1007 名稱:飛科剃須刀 價格:80.00元 庫存:0臺 測試結(jié)果:按3進(jìn)入價格區(qū)間查找,預(yù)測結(jié)果:出現(xiàn)價格區(qū)間的選擇框測試結(jié)果:選擇其中的一個輸入:輸入1,預(yù)測結(jié)果:輸出價格在0到
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版對講門品牌授權(quán)與市場推廣合同2篇
- 教培機(jī)構(gòu)2025年度27份合同協(xié)議(教育版權(quán)保護(hù))2篇
- 二零二五版住宅小區(qū)配套設(shè)施使用權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度采砂廠承包生態(tài)補(bǔ)償金支付合同范本3篇
- 2024蔬菜種植項目承包合同協(xié)議2篇
- 二零二五版工程招投標(biāo)與合同管理專家指導(dǎo)與案例分析3篇
- 工業(yè)廠房結(jié)構(gòu)檢測與2025年度注漿加固合同3篇
- 展會安全保障合同(2篇)
- 二零二五年度餐飲業(yè)食品安全標(biāo)準(zhǔn)制定合同3篇
- 二零二五版鋼結(jié)構(gòu)工程專用材料采購合同范本5篇
- 小學(xué)四年級數(shù)學(xué)知識點總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評論
0/150
提交評論