




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-PAGE . z. - w -科技大學(xué)數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)學(xué)生:白天磊學(xué) 號(hào):1267159204學(xué)院:軟件學(xué)院專業(yè):軟件工程題目:產(chǎn)品進(jìn)銷存管理系統(tǒng)指導(dǎo)教師康懿(一)設(shè)計(jì)任務(wù)概述針對(duì)*一種行業(yè)的庫(kù)房的產(chǎn)品進(jìn)銷存情況進(jìn)行管理。1、采用一定的存儲(chǔ)結(jié)構(gòu)對(duì)庫(kù)房的貨品及其數(shù)量進(jìn)行分類管理;運(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、可以進(jìn)行產(chǎn)品類的添加、產(chǎn)品的添加、產(chǎn)品數(shù)量的添加; 首先要找到鏈表的指針變量,對(duì)指針變量進(jìn)行修改,然后再進(jìn)行產(chǎn)品的出入。3、能夠查詢庫(kù)房每種產(chǎn)品的總量
2、、進(jìn)貨日期、銷出數(shù)量、銷售時(shí)間等; 首先要定義一個(gè)查詢函數(shù),對(duì)產(chǎn)品類的指針變量進(jìn)行循環(huán)查詢,再對(duì)產(chǎn)品的指針變量進(jìn)行循環(huán)查詢,找到產(chǎn)品時(shí),在調(diào)用顯示產(chǎn)品信息函數(shù),顯示查詢到的產(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、順序表掛接鏈表的抽象定義類型:ADT sqmountlink 數(shù)據(jù)對(duì)象:D=ai|aikindlist,i=1,2,n,n=0 數(shù)據(jù)關(guān)系:R=|ai-1,aiD,i=1,2,3,n 基本操作: InitMountLisr(&L) 操作結(jié)果:構(gòu)造一個(gè)空的順序表掛接鏈表L。 KindInsert(&L,
3、n) 初始條件:順序表掛接鏈表L已存在。 操作結(jié)果:向順序表掛接鏈表L中添加N類產(chǎn)品ProductInsert(&L,I,n) 初始條件:順序表掛接鏈表L已存在且要將產(chǎn)品插入的產(chǎn)品類i已存在 操作結(jié)果:向順序表掛接鏈表L中的產(chǎn)品類i中添加N種產(chǎn)品ProQuantity_add(&L,I,e,n) 初始條件:順序表掛接鏈表L已存在且需要添加的產(chǎn)品及產(chǎn)品所屬的類也存在 操作結(jié)果:添加順序表掛接鏈表L的產(chǎn)品類i中的產(chǎn)品e的數(shù)量Visit(&L,i,e) 初始條件:順序表掛接鏈表L已存在且待查詢的產(chǎn)品所屬產(chǎn)品類i也存在 操作結(jié)果:在順序表掛接鏈表L中查詢產(chǎn)品e的各項(xiàng)信息DisplayList(&L)
4、初始條件:順序表掛接鏈表L已存在 操作結(jié)果:現(xiàn)實(shí)順序表掛接鏈表L的容3.2核心代碼#include#include#include#define ok 1#define error 0#define overflow 0#define SQMOUNTLINK_INIT_SIZE 100#define SQMOUNTLINKINCREMENT 10typedef struct date int year; int month; int day;date; /日期typedef struct productlnode char pname30; /產(chǎn)品名稱 int totalquantity; /
5、產(chǎn)品總量 date goodsdate; /進(jìn)貨日期 int salesquantity; /消除數(shù)量 date salestime; /銷售時(shí)間 struct productlnode *ne*tproduct;productlnode,*plinklist;typedef struct kindlnode productlnode *firstproduct; char pkindname30;kindlnode;typedef struct kindlnode *kindelem; int length; int listsize;sqmountlink;int InitMountLis
6、t(sqmountlink &L) /初始化一個(gè)空的順序表掛接鏈表L int i; L.kindelem=(kindlnode*)malloc(SQMOUNTLINK_INIT_SIZE*sizeof(kindlnode); if(!L.kindelem) e*it(overflow); L.length=0; L.listsize=SQMOUNTLINK_INIT_SIZE; for(i=0;i=L.listsize) newbase=(kindlnode*)realloc(L.kindelem,(L.listsize+n)*sizeof(kindlnode); if(!newbase) e
7、*it(overflow); L.kindelem=newbase; L.listsize+=n; printf(需添加的產(chǎn)品類名稱:n); for(i=0;in;i+) scanf(%s,&L.kindelemL.length.pkindname); L.kindelemL.length.firstproduct=NULL; L.length+; return ok;/KindInsertint ProductInsert(sqmountlink &L,char pkindname2,int n) /向順序表掛接鏈表L的*產(chǎn)品類中添加N個(gè)產(chǎn)品 plinklist p,q; int k,j;
8、for(k=0;kpname),&(q-totalquantity),&(q-goodsdate).year),&(q-goodsdate).month),&(q-goodsdate).day),&(q-salesquantity),&(q-salestime).year),&(q-salestime).month),&(q-salestime).day); q-ne*tproduct=NULL; (L.kindelemk).firstproduct=q; for(j=1;jpname),&(p-totalquantity),&(p-goodsdate).year),&(p-goodsdate
9、).month),&(p-goodsdate).day),&(p-salesquantity),&(p-salestime).year),&(p-salestime).month),&(p-salestime).day); p-ne*tproduct=q-ne*tproduct; q-ne*tproduct=p; q=p; else for(q=L.kindelemk.firstproduct; ;q=q-ne*tproduct) if(!(q-ne*tproduct) break; printf(需添加產(chǎn)品的名稱、總量、進(jìn)貨日期、銷售數(shù)量、銷售時(shí)間:n); for(j=0;jpname),&
10、(p-totalquantity),&(p-goodsdate).year),&(p-goodsdate).month),&(p-goodsdate).day),&(p-salesquantity),&(p-salestime).year),&(p-salestime).month),&(p-salestime).day); p-ne*tproduct=q-ne*tproduct; q-ne*tproduct=p; q=p; return ok;/ProductInsertvoid ProQuantity_add(sqmountlink &L,char pkindname1,char pnam
11、e1,int n) /添加順序表掛接鏈表L的*產(chǎn)品類中的*產(chǎn)品的總量,且需添加的產(chǎn)品總量為n int i,k; plinklist p; for(i=0;iL.length;i+) if(strcmp(L.kindelemi).pkindname,pkindname1)!=0) continue; else break; if(ine*tproduct) k=strcmp(p-pname,pname1); if(k=0) p-totalquantity=p-totalquantity+n; printf(查看添加后產(chǎn)品的各項(xiàng)輸出:%s %d %d,%d,%d %d %d,%d,%dn,p-pn
12、ame,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goodsdate).day,p-salesquantity,(p-salestime).year,(p-salestime).month,(p-salestime).day); /ProQuantity_addvoid ProQuantity_subtract(sqmountlink &L,char pkindname4,char pname4,int n) /添加順序表掛接鏈表L的*產(chǎn)品類中的*產(chǎn)品銷出數(shù)量,且銷出的數(shù)量n int i,k; plinklist p;
13、for(i=0;iL.length;i+) if(strcmp(L.kindelemi).pkindname,pkindname4)!=0) continue; else break; if(ine*tproduct) 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,%dn,p-pname,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goodsda
14、te).day,p-salesquantity,(p-salestime).year,(p-salestime).month,(p-salestime).day); /ProQuantity_subtractvoid Visit(sqmountlink &L,char pkindname3,char pname3) /在順序表掛接鏈表L中,查詢屬于*產(chǎn)品類的*產(chǎn)品的各項(xiàng)信息 int i,k; plinklist p; for(i=0;iL.length;i+) if(strcmp(L.kindelemi).pkindname,pkindname3)!=0) continue; else bre
15、ak; if(ine*tproduct) k=strcmp(p-pname,pname3); if(k=0) break; if(k!=0) printf(此產(chǎn)品不存在:n); else printf(輸出待查詢產(chǎn)品的各項(xiàng)信息:n); printf(產(chǎn)品類*產(chǎn) 品*產(chǎn)品總量*進(jìn) 貨 日 期*銷售數(shù)量*銷 售 時(shí) 間n); printf(%s %s %d %d,%d,%d %d %d,%d,%dn,(L.kindelemi).pkindname,p-pname,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goodsdate)
16、.day,p-salesquantity,(p-salestime).year,(p-salestime).month,(p-salestime).day); /Visitvoid DisplayList(sqmountlink &L) /顯示各產(chǎn)品所屬產(chǎn)品類、產(chǎn)品名稱、產(chǎn)品總量、進(jìn)貨日期、銷售數(shù)量、銷售時(shí)間 int i; plinklist p; printf(產(chǎn)品類*產(chǎn) 品*產(chǎn)品總量*進(jìn) 貨 日 期*銷售數(shù)量*銷 售 時(shí) 間n); for(i=0;ine*tproduct) printf(%s %s %d %d,%d,%d %d %d,%d,%dn,(L.kindelemi).pkindn
17、ame,p-pname,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goodsdate).day,p-salesquantity,(p-salestime).year,(p-salestime).month,(p-salestime).day); /DisplayListvoid menu_operation()/操作菜單 printf(n); printf(輸入所要執(zhí)行的操作:n); printf(1、產(chǎn)品類添加: n); printf(2、產(chǎn)品添加: n); printf(3、產(chǎn)品數(shù)量添加: n); printf(4、
18、產(chǎn)品售出: n); printf(5、查詢產(chǎn)品: n); printf(0、退出程序: n); printf(n);/mene_operation/*主程序*/void main(void) int order; int i,n; char a30; char b30; sqmountlink L; InitMountList(L); printf(輸入時(shí)間時(shí)請(qǐng)按照年,月,日”格式輸入.n); loop: menu_operation(); printf(輸入命令:); scanf(%d,&order); switch(order) case 1: printf(需添加產(chǎn)品類的個(gè)數(shù):); sc
19、anf(%d,&i); KindInsert(L,i); printf(修改后的產(chǎn)品庫(kù)存管理表:n); DisplayList(L); goto loop; case 2: printf(需添加產(chǎn)品所屬產(chǎn)品類的名稱:); scanf(%s,&a); printf(需向此產(chǎn)品類添加產(chǎn)品的個(gè)數(shù):); scanf(%d,&i); ProductInsert(L,a,i); printf(修改后的產(chǎn)品庫(kù)存管理表:n); DisplayList(L); goto loop; case 3: printf(輸入需添加數(shù)量的產(chǎn)品所屬產(chǎn)品類的名稱:); scanf(%s,&a); printf(輸入需添加數(shù)量的產(chǎn)品的名稱:); scanf(%s,&b); printf(輸入需添加產(chǎn)品的數(shù)量:); scanf(%d,&n); ProQuantity_add(L,a,b,n); printf(修改后的產(chǎn)品庫(kù)存管理表:n); DisplayList(L); goto loop; case 4: printf(輸入售出產(chǎn)品所屬產(chǎn)品類的名稱:); scanf(%s,&a); printf(輸入售出產(chǎn)品的名稱:); scanf(%s,&b); printf(輸入售出產(chǎn)品的數(shù)量:); scanf(%d,&n); ProQuantity_subtract(L,a,b,n); p
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 垃圾分類實(shí)施方案
- 圓的綜合運(yùn)用課件
- 《大數(shù)據(jù)分析技術(shù)與應(yīng)用課件》
- 《智能管理之光:i海爾管理與創(chuàng)新》課件
- N2級(jí)護(hù)理人員理論考核復(fù)習(xí)題與答案(附解析)
- 2024年7月基礎(chǔ)檢驗(yàn)技術(shù)模擬練習(xí)題+答案(附解析)
- 6月放射醫(yī)學(xué)技術(shù)士師模擬題含參考答案解析
- 糖批發(fā)客戶關(guān)系管理考核試卷
- 洗滌機(jī)械市場(chǎng)營(yíng)銷策略實(shí)施考核試卷
- 糖果行業(yè)包裝設(shè)計(jì)大賽考核試卷
- 10J113-1內(nèi)隔墻-輕質(zhì)條板(一)
- 工程施工全過(guò)程的檔案資料目錄(總包單位)
- FeNO臨床應(yīng)用課程
- 家委會(huì)工作匯報(bào)課件
- 電場(chǎng)電場(chǎng)強(qiáng)度
- 廣東省佛山2022-2023學(xué)年外研版八年級(jí)下學(xué)期英語(yǔ)期末模擬試卷(二)
- 四年級(jí)《爺爺?shù)臓敔攺哪睦飦?lái)》閱讀測(cè)評(píng)題
- CJJ14-2016城市公共廁所設(shè)計(jì)標(biāo)準(zhǔn)
- ISO9001設(shè)計(jì)變更管理程序
- 個(gè)人所得稅 贍養(yǎng)老人協(xié)議書(shū)
- 《取水許可核驗(yàn)報(bào)告編制導(dǎo)則(試行)(征求意見(jiàn)稿)》
評(píng)論
0/150
提交評(píng)論