產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)

上傳人:優(yōu)*** 文檔編號(hào):44761444 上傳時(shí)間:2021-12-05 格式:DOC 頁(yè)數(shù):17 大?。?60.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
第1頁(yè) / 共17頁(yè)
產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
第2頁(yè) / 共17頁(yè)
產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
第3頁(yè) / 共17頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)》由會(huì)員分享,可在線閱讀,更多相關(guān)《產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 課程設(shè)計(jì)報(bào)告書(shū)(17頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 中北大學(xué) 數(shù) 據(jù) 結(jié) 構(gòu) 課 程 設(shè) 計(jì) 說(shuō) 明 書(shū) 學(xué)生姓名: 宋立群 學(xué) 號(hào): 1021011803 學(xué) 院: 軟件學(xué)院 專(zhuān) 業(yè): 軟件開(kāi)發(fā)與測(cè)試 題 目: 產(chǎn)品進(jìn)銷(xiāo)存管理系統(tǒng) 指導(dǎo)教師 何志英 2011年12月20日 0 / 17 (一)設(shè)計(jì)任務(wù)概述 針對(duì)某一種行業(yè)的庫(kù)房的產(chǎn)品進(jìn)銷(xiāo)存情況進(jìn)行管理。 1、采用一定的存儲(chǔ)結(jié)構(gòu)對(duì)庫(kù)房的貨品及其數(shù)量進(jìn)行分類(lèi)管理; 運(yùn)用鏈表進(jìn)行存儲(chǔ),同時(shí)用到指針變量,運(yùn)用循環(huán)存儲(chǔ),對(duì)存儲(chǔ)產(chǎn)品的信息要用到日期結(jié)構(gòu)體和產(chǎn)品結(jié)構(gòu)體,對(duì)存儲(chǔ)要用到文件指針以及文

2、件的一些方法的使用。 2、可以進(jìn)行產(chǎn)品類(lèi)的添加、產(chǎn)品的添加、產(chǎn)品數(shù)量的添加; 首先要找到鏈表的指針變量,對(duì)指針變量進(jìn)行修改,然后再進(jìn)行產(chǎn)品的出入。 3、能夠查詢(xún)庫(kù)房每種產(chǎn)品的總量、進(jìn)貨日期、銷(xiāo)出數(shù)量、銷(xiāo)售時(shí)間等; 首先要定義一個(gè)查詢(xún)函數(shù),對(duì)產(chǎn)品類(lèi)的指針變量進(jìn)行循環(huán)查詢(xún),再對(duì)產(chǎn)品的指針變量進(jìn)行循環(huán)查詢(xún),找到產(chǎn)品時(shí),在調(diào)用顯示產(chǎn)品信息函數(shù),顯示查詢(xún)到的產(chǎn)品的各項(xiàng)信息。 (二)本設(shè)計(jì)所采用的數(shù)據(jù) 運(yùn)用鏈表進(jìn)行存儲(chǔ),同時(shí)用到指針變量,循環(huán)存儲(chǔ) (三)功能模塊詳細(xì)設(shè)計(jì) 3.1詳細(xì)設(shè)計(jì)思想 1、順序表掛接鏈表的抽象定義類(lèi)型: ADT sqmountlink{

3、 數(shù)據(jù)對(duì)象:D={ai|ai∈kindlist,i=1,2,…,n,n>=0} 數(shù)據(jù)關(guān)系:R={|ai-1,ai∈D,i=1,2,3,…,n} 基本操作: InitMountLisr(&L) 操作結(jié)果:構(gòu)造一個(gè)空的順序表掛接鏈表L。 KindInsert(&L,n) 初始條件:順序表掛接鏈表L已存在。 操作結(jié)果:向順序表掛接鏈表L中添加N類(lèi)產(chǎn)品 ProductInsert(&L,I,n) 初始條件:順序表掛接鏈表L已存在且要將產(chǎn)品插入的產(chǎn)品類(lèi)

4、i已存在 操作結(jié)果:向順序表掛接鏈表L中的產(chǎn)品類(lèi)i中添加N種產(chǎn)品 ProQuantity_add(&L,I,e,n) 初始條件:順序表掛接鏈表L已存在且需要添加的產(chǎn)品及產(chǎn)品所屬的類(lèi)也存在 操作結(jié)果:添加順序表掛接鏈表L的產(chǎn)品類(lèi)i中的產(chǎn)品e的數(shù)量 Visit(&L,i,e) 初始條件:順序表掛接鏈表L已存在且待查詢(xún)的產(chǎn)品所屬產(chǎn)品類(lèi)i也存在 操作結(jié)果:在順序表掛接鏈表L中查詢(xún)產(chǎn)品e的各項(xiàng)信息 DisplayList(&L) 初始條件:順序表掛接鏈表L已存在 操作結(jié)果:現(xiàn)實(shí)順序表掛接鏈表L的內(nèi)容 3.2核心代

5、碼 #include #include #include #define ok 1 #define error 0 #define overflow 0 #define SQMOUNTLINK_INIT_SIZE 100 #define SQMOUNTLINKINCREMENT 10 typedef struct date{ int year; int month; int day; }date; //日期 typedef struct productlnode{ c

6、har pname[30]; //產(chǎn)品名稱(chēng) int totalquantity; //產(chǎn)品總量 date goodsdate; //進(jìn)貨日期 int salesquantity; //消除數(shù)量 date salestime; //銷(xiāo)售時(shí)間 struct productlnode *nextproduct; }productlnode,*plinklist; typedef struct kindlnode{ productlnode *firstproduct; char pkindna

7、me[30]; }kindlnode; typedef struct{ kindlnode *kindelem; int length; int listsize; }sqmountlink; int InitMountList(sqmountlink &L){ //初始化一個(gè)空的順序表掛接鏈表L int i; L.kindelem=(kindlnode*)malloc(SQMOUNTLINK_INIT_SIZE*sizeof(kindlnode)); if(!L.kindelem) exit(overflow); L.l

8、ength=0; L.listsize=SQMOUNTLINK_INIT_SIZE; for(i=0;i=L.listsize){

9、newbase=(kindlnode*)realloc(L.kindelem,(L.listsize+n)*sizeof(kindlnode)); if(!newbase) exit(overflow); L.kindelem=newbase; L.listsize+=n; } printf("需添加的產(chǎn)品類(lèi)名稱(chēng):\n"); for(i=0;i

10、product=NULL; L.length++; } return ok; }//KindInsert int ProductInsert(sqmountlink &L,char pkindname2[],int n){ //向順序表掛接鏈表L的某產(chǎn)品類(lèi)中添加N個(gè)產(chǎn)品 plinklist p,q; int k,j; for(k=0;k

11、 else break; } if(L.kindelem[k].firstproduct==NULL){ q=(plinklist)malloc(sizeof(productlnode)); printf("輸入此產(chǎn)品類(lèi)所含產(chǎn)品的產(chǎn)品名稱(chēng)、總量、進(jìn)貨日期、銷(xiāo)售數(shù)量、銷(xiāo)售時(shí)間:\n"); scanf("%s %d %d,%d,%d %d %d,%d,%d",&(q->pname),&(q->totalquantity),&((q->goodsdate).year),&((q->goodsdate).month),

12、&((q->goodsdate).day),&(q->salesquantity),&((q->salestime).year),&((q->salestime).month),&((q->salestime).day)); q->nextproduct=NULL; (L.kindelem[k]).firstproduct=q; for(j=1;j

13、銷(xiāo)售數(shù)量、銷(xiāo)售時(shí)間:\n");\ scanf("%s %d %d,%d,%d %d %d,%d,%d",&(p->pname),&(p->totalquantity),&((p->goodsdate).year),&((p->goodsdate).month),&((p->goodsdate).day),&(p->salesquantity),&((p->salestime).year),&((p->salestime).month),&((p->salestime).day)); p->nextproduct=q->nextproduct;

14、 q->nextproduct=p; q=p; } } else{ for(q=L.kindelem[k].firstproduct; ;q=q->nextproduct){ if(!(q->nextproduct)) break; } printf("需添加產(chǎn)品的名稱(chēng)、總量、進(jìn)貨日期、銷(xiāo)售數(shù)量、銷(xiāo)售時(shí)間:\n"); for(j=0;j

15、roductlnode)); scanf("%s %d %d,%d,%d %d %d,%d,%d",&(p->pname),&(p->totalquantity),&((p->goodsdate).year),&((p->goodsdate).month),&((p->goodsdate).day),&(p->salesquantity),&((p->salestime).year),&((p->salestime).month),&((p->salestime).day)); p->nextproduct=q->nextproduct;

16、 q->nextproduct=p; q=p; } } return ok; }//ProductInsert void ProQuantity_add(sqmountlink &L,char pkindname1[],char pname1[],int n){ //添加順序表掛接鏈表L的某產(chǎn)品類(lèi)中的某產(chǎn)品的總量,且需添加的產(chǎn)品總量為n int i,k; plinklist p; for(i=0;i

17、,pkindname1)!=0) continue; else break; } if(inextproduct){ k=strcmp(p->pname,pname1); if(k==0){ p->totalquantity=p->totalquantity+n; printf("查看添加后產(chǎn)品的各

18、項(xiàng)輸出:%s %d %d,%d,%d %d %d,%d,%d\n",p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goodsdate).day,p->salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day); } } } }//ProQuantity_add void ProQuantity_subtract(sqmountlink &L,char

19、 pkindname4[],char pname4[],int n){ //添加順序表掛接鏈表L的某產(chǎn)品類(lèi)中的某產(chǎn)品銷(xiāo)出數(shù)量,且銷(xiāo)出的數(shù)量n int i,k; plinklist p; for(i=0;i

20、uct;p!=NULL;p=p->nextproduct){ k=strcmp(p->pname,pname4); if(k==0){ p->salesquantity=p->salesquantity+n; printf("查看添加后產(chǎn)品的各項(xiàng)輸出:%s %d %d,%d,%d %d %d,%d,%d\n",p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goodsdate).day,

21、p->salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day); } } } }//ProQuantity_subtract void Visit(sqmountlink &L,char pkindname3[],char pname3[]){ //在順序表掛接鏈表L中,查詢(xún)屬于某產(chǎn)品類(lèi)的某產(chǎn)品的各項(xiàng)信息 int i,k; plinklist p; for(i=0;i

22、L.kindelem[i]).pkindname,pkindname3)!=0) continue; else break; } if(inextproduct){ k=strcmp(p->pname,pname3); if(k==0) break; } if(k!=0) printf("此

23、產(chǎn)品不存在:\n"); else{ printf("輸出待查詢(xún)產(chǎn)品的各項(xiàng)信息:\n"); printf("產(chǎn)品類(lèi)★產(chǎn) 品★產(chǎn)品總量★進(jìn) 貨 日 期★銷(xiāo)售數(shù)量★銷(xiāo) 售 時(shí) 間\n"); printf("%s %s %d %d,%d,%d %d %d,%d,%d\n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goodsdate).day,p->

24、salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day); } } }//Visit void DisplayList(sqmountlink &L){ //顯示各產(chǎn)品所屬產(chǎn)品類(lèi)、產(chǎn)品名稱(chēng)、產(chǎn)品總量、進(jìn)貨日期、銷(xiāo)售數(shù)量、銷(xiāo)售時(shí)間 int i; plinklist p; printf("產(chǎn)品類(lèi)★產(chǎn) 品★產(chǎn)品總量★進(jìn) 貨 日 期★銷(xiāo)售數(shù)量★銷(xiāo) 售 時(shí) 間\n"); for(i=0;i

25、elem[i].firstproduct)) printf("%s\n",(L.kindelem[i]).pkindname); for(p=L.kindelem[i].firstproduct;p;p=p->nextproduct) printf("%s %s %d %d,%d,%d %d %d,%d,%d\n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->g

26、oodsdate).day,p->salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day); } }//DisplayList void menu_operation(){//操作菜單 printf("┌──────────┐\n"); printf("│輸入所要執(zhí)行的操作:│\n"); printf("│1、產(chǎn)品類(lèi)添加: │\n"); printf("│2、產(chǎn)品添加: │\n"); printf("│3、產(chǎn)品數(shù)量添加:

27、 │\n"); printf("│4、產(chǎn)品售出: │\n"); printf("│5、查詢(xún)產(chǎn)品: │\n"); printf("│0、退出程序: │\n"); printf("└──────────┘\n"); }//mene_operation /*------------------------------主程序---------------------------*/ void main(void){ int order; int i,n; char a[30]; char b[

28、30]; sqmountlink L; InitMountList(L); printf("☆輸入時(shí)間時(shí)請(qǐng)按照“年,月,日”格式輸入.☆\n"); loop: menu_operation(); printf("輸入命令:"); scanf("%d",&order); switch(order){ case 1: printf("需添加產(chǎn)品類(lèi)的個(gè)數(shù):"); scanf("%d",&i); KindInsert(L,i); printf("

29、修改后的產(chǎn)品庫(kù)存管理表:\n"); DisplayList(L); goto loop; case 2: printf("需添加產(chǎn)品所屬產(chǎn)品類(lèi)的名稱(chēng):"); scanf("%s",&a); printf("需向此產(chǎn)品類(lèi)添加產(chǎn)品的個(gè)數(shù):"); scanf("%d",&i); ProductInsert(L,a,i); printf("修改后的產(chǎn)品庫(kù)存管理表:\n"); DisplayList(L)

30、; goto loop; case 3: printf("輸入需添加數(shù)量的產(chǎn)品所屬產(chǎn)品類(lèi)的名稱(chēng):"); scanf("%s",&a); printf("輸入需添加數(shù)量的產(chǎn)品的名稱(chēng):"); scanf("%s",&b); printf("輸入需添加產(chǎn)品的數(shù)量:"); scanf("%d",&n); ProQuantity_add(L,a,b,n); printf("修改后的產(chǎn)品庫(kù)存管理表:\n");

31、 DisplayList(L); goto loop; case 4: printf("輸入售出產(chǎn)品所屬產(chǎn)品類(lèi)的名稱(chēng):"); scanf("%s",&a); printf("輸入售出產(chǎn)品的名稱(chēng):"); scanf("%s",&b); printf("輸入售出產(chǎn)品的數(shù)量:"); scanf("%d",&n); ProQuantity_subtract(L,a,b,n); printf("修

32、改后的產(chǎn)品庫(kù)存管理表:\n"); DisplayList(L); goto loop; case 5: printf("輸入待查詢(xún)產(chǎn)品所屬產(chǎn)品類(lèi)的名稱(chēng):"); scanf("%s",&a); printf("輸入待查詢(xún)產(chǎn)品的名稱(chēng):"); scanf("%s",&b); Visit(L,a,b); goto loop; case 0: exit(0); } } 3.3程序運(yùn)行結(jié)果

33、 程序啟動(dòng)界面。 產(chǎn)品類(lèi)的添加。 產(chǎn)品的添加。 產(chǎn)品數(shù)量的添加。 產(chǎn)品售出。 產(chǎn)品查詢(xún)。 (四) 課程設(shè)計(jì)心得,存在問(wèn)題及解決方法 拿到這道題時(shí),我沒(méi)有選擇自己去編寫(xiě),我想我從來(lái)沒(méi)有編過(guò)這么復(fù)雜的程序,一定編不成,我選擇了上網(wǎng)去查,值得慶幸的是我找到了一部分的程序,然后拷貝上程序在機(jī)房運(yùn)行,發(fā)現(xiàn)有許多錯(cuò)誤,我就開(kāi)始一個(gè)一個(gè)解決問(wèn)題,其中有些問(wèn)題是一些符號(hào)的丟失,還有頭文件的錯(cuò)誤運(yùn)用,還有對(duì)一些輸入超出程序范圍的數(shù)據(jù)進(jìn)行修改,才使程

34、序得以繼續(xù)進(jìn)行,最后我通過(guò)自己和請(qǐng)教同學(xué),最終整個(gè)程序得以運(yùn)行,不過(guò)最重要的不是僅僅讓程序運(yùn)行成功,而是了解整個(gè)程序的思想設(shè)計(jì)和功能的實(shí)現(xiàn),然后我開(kāi)始翻譯程序,把每一句都弄的清清楚楚為止,從中我復(fù)習(xí)了很多知識(shí)點(diǎn),也學(xué)到了很多我以前不知道的東西。通過(guò)對(duì)本系統(tǒng)的開(kāi)發(fā),我對(duì)軟件開(kāi)發(fā)過(guò)程有了更清楚地了解,首先是問(wèn)題的定義,需求分析,然后概要設(shè)計(jì),詳細(xì)設(shè)計(jì)等,讓我知道了僅僅學(xué)習(xí)課本知識(shí)是不行的,還得經(jīng)常去自己設(shè)計(jì)一些小的項(xiàng)目去發(fā)現(xiàn)問(wèn)題,必須培養(yǎng)動(dòng)手能力,這樣才能既復(fù)習(xí)了知識(shí)點(diǎn),又可以學(xué)會(huì)詳細(xì)的數(shù)據(jù)結(jié)構(gòu)思想和設(shè)計(jì),所以我在以后一定要加強(qiáng)這方面的學(xué)習(xí)。 溫馨提示:最好仔細(xì)閱讀后才下載使用,萬(wàn)分感謝!

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!