




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、.東北大學(xué)信息科學(xué)與工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告題目 超市商品庫存信息管理系統(tǒng)課題組長 宋振課題組成員 常玉穎 于紅爽專業(yè)名稱 計算機科學(xué)與技術(shù)班級 計1307指導(dǎo)教師 楊雷2015 年 1月課程設(shè)計任務(wù)書題目:超市商品庫存信息管理系統(tǒng)問題描述:對一個中小型超市的庫存商品信息管理作一個簡單的模擬。設(shè)計要求:設(shè)計超市庫存商品信息維護管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實現(xiàn)超市商品的創(chuàng)建、分類、出庫、入庫、修改等管理功能。(3)實現(xiàn)庫存商品的各種查詢和統(tǒng)計功能。(4)考慮采用優(yōu)化的查詢和排序算法。(5)其它完善性功能。指導(dǎo)教師簽字:年月日目錄1 課題概述41.1 課題任務(wù)4
2、1.2 課題原理41.3 相關(guān)知識42 需求分析52.1 課題調(diào)研52.2 用戶需求分析53 方案設(shè)計53.1 總體功能設(shè)計53.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計103.3 函數(shù)原型設(shè)計113.4 主算法設(shè)計123.5 用戶界面設(shè)計144 方案實現(xiàn)154.1 開發(fā)環(huán)境與工具154.2 程序設(shè)計關(guān)鍵技術(shù)164.3 個人設(shè)計實現(xiàn)(按組員分工)4.3.1 宋振設(shè)計實現(xiàn)17 4.3.2 常玉穎設(shè)計實現(xiàn)174.3.3于紅爽設(shè)計實現(xiàn)175 測試與調(diào)試235.1 個人測試(按組員分工)235.1.1 宋振測試235.1.2 常玉穎測試235.1.3 于紅爽測試235.2 組裝與系統(tǒng)測試335.3 系統(tǒng)運行366 課題總結(jié)3
3、96.1 課題評價396.2 團隊協(xié)作406.3 團隊協(xié)作416.4 個人設(shè)計小結(jié)(按組員分工)426.4.1宋振設(shè)計小結(jié)426.4.2 常玉穎設(shè)計小結(jié)426.4.3 于紅爽設(shè)計小結(jié)427 附錄A 課題任務(wù)分工50A-1 課題程序設(shè)計分工50A-2 課題報告分工51 附錄B 課題設(shè)計文檔(光盤)52B-1課程設(shè)計報告(電子版)52B-2源程序代碼(*.H,*.CPP)52B-3工程與可執(zhí)行文件)52 B-4屏幕演示錄像文件(可選)52 附錄C 用戶操作手冊(可選)53C.1 運行環(huán)境說明53C.2 操作說明541 課題概述1.1課題任務(wù)超市商品庫存信息管理系統(tǒng)【問題描述】對一個中小型超市的庫存
4、商品信息管理作一個簡單的模擬?!驹O(shè)計要求】設(shè)計超市庫存商品信息維護管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實現(xiàn)超市商品的創(chuàng)建、分類、出庫、入庫、修改等管理功能。(3)實現(xiàn)庫存商品的各種查詢和統(tǒng)計功能。(4)考慮采用優(yōu)化的查詢和排序算法。(5)其它完善性功能。1.2 課題原理本程序采用鄰接表的結(jié)構(gòu),將用戶信息存在鄰接表的順序表中,將入庫出庫的商品信息存儲在鏈表中。程序運行前,將文件中的信息讀入一個三維數(shù)組中,然后把三維數(shù)組讀入鄰接表中。程序運行結(jié)束后,將鄰接表的信息存儲到三維數(shù)組中,再將三維數(shù)組的信息轉(zhuǎn)存到文件中,實現(xiàn)了信息的長久存儲。 總而言之,本實驗的入庫出庫查詢等功能,
5、均是對鄰接表的操作,存儲是借助了一個三維數(shù)組存入到文件中。1.3 相關(guān)知識數(shù)據(jù)結(jié)構(gòu):鄰接表、鄰接表的遍歷,排序、查找、文件、順序表。2 需求分析2.1 課題調(diào)研 本實驗開始之前,詢問了幾家中小型超市,了解了他們商品庫存運營的模式。每一件商品都經(jīng)歷了入庫、在庫、出庫三個過程。入庫需要的商品信息比較多,包括商品名稱,入庫時間,入庫價格,入庫數(shù)量,計量單位,經(jīng)手人等相關(guān)信息。而出庫,在需要出售價格,出售數(shù)量,出手日期,經(jīng)手人即可。2.2 用戶需求分析現(xiàn)代中小型超市基本都要走向?qū)崿F(xiàn)商品信息智能化管理的道路,而商品庫存管理系統(tǒng)能夠有效的幫助他們記錄每天的進賬,出賬,庫存和交易記錄。此系統(tǒng)有效地解決了傳統(tǒng)
6、記賬的繁瑣,賬本數(shù)據(jù)易丟失,賬本信息不安全等問題,是未來包括超市在內(nèi)的商店運營必備的產(chǎn)品。3 方案設(shè)計3.1 總體功能設(shè)計 該程序主要分為以下幾大功能,包括入庫,出庫,以及對庫存的操作。對庫存的操作又包括分類,查詢等功能。而查詢又包括按商品名稱查詢,按商品交易記錄查詢等子功能。而這些均建立在對鄰接表的操作基礎(chǔ)上實現(xiàn)的。3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計程序的數(shù)據(jù)結(jié)構(gòu)包括鄰接表、順序表。 順序表用來存儲從客戶端輸入的商品入庫出庫信息,然后讀入鄰接表中,鄰接表的順序表存儲用戶信息,鏈表存儲商品信息。 struct commodity/商品信息的結(jié)構(gòu)體 char name20; char brand20; flo
7、at purprice; /商品進價 float selprice; /售價 int count; /數(shù)量 char purtime20; /進貨時間 char seltime20; /出貨時間 char unit20; /計量單位 char brokerage20; /經(jīng)手人 char abstract20; /摘要 struct commodity *next; int lin_len; /鏈表有多少節(jié)點 int sign; /做相同累加運算時的標(biāo)記位 Lnode,*Linklist,list20520; struct user /用戶信息的結(jié)構(gòu)體 char account20; /賬戶
8、char code20; /密碼 char name20; char question40; char answer20; /提示問題的答案 int rec_len; /驗證密碼是否正確 struct commodity rec5; /個人信息中增加的買賣記錄,max1代表一個人最多可以存多少條記錄 int list_len;umax1; 3.3 函數(shù)原型設(shè)計void backgroundset( ); /背景顏色設(shè)置函數(shù) void outsert_com(struct user u,int q); void insert_com(struct user u,int q); int jm(st
9、ruct user u); /加密解密函數(shù) int getcode(struct user u); /找回密碼函數(shù) int regist(struct user u); /注冊函數(shù) void save(struct user u); /存入文件函數(shù) void load( ); /讀出函數(shù) void save2(); int lookup_accounts( struct user u,char acc); /匹配賬號函數(shù) struct user check_code(struct user u,char acc,char c); /匹配密碼函數(shù) int find_acc(char accou)
10、; /查找賬戶是第幾個用戶 void print_message( struct user *p); /顯示用戶信息 void out_print(struct user u,int q,int row); struct commodity* InitLnode(struct commodity *p); void remain(struct commodity list20520,int q,int row); void search(struct user u,int q); void com_remain(struct user u,int q); void load2();3.4 主算
11、法設(shè)計void insert_com(struct user u,int q) /商品入庫 int i; struct commodity *a; printf("請輸入您要添加的種類n1.食品n2.家電n3.運動器材n4.衣服n請輸入1-4:"); int x2; scanf("%d",&x2); a=&uq.recx2; for(i=0;i<listqx20.lin_len;i+) a=a->next; a=InitLnode(a); printf("商品名稱:"); scanf("%s&qu
12、ot;,&a->name); printf("n"); printf("商品品牌:"); scanf("%s",&a->brand); printf("n"); printf("商品進價:"); scanf("%f",&a->purprice); printf("n"); printf("商品售價:"); scanf("%f",&a->selprice); pr
13、intf("n"); printf("商品數(shù)量:"); scanf("%d",&a->count); printf("n"); printf("商品進貨時間:"); scanf("%s",&a->purtime); printf("n"); printf("商品經(jīng)手人:"); scanf("%s",&a->brokerage); printf("n");
14、printf("商品摘要:"); scanf("%s",&a->abstract); printf("n"); printf("計量單位:"); scanf("%s",&a->unit); listqx20.lin_len+; /正確已驗證,但是關(guān)閉程序再重啟便沒有,則說明save2或者load2有問題 jm(u); save2(); jm(u);/*/void outsert_com(struct user u,int q) /商品出庫 int i; struct
15、commodity *a; printf("請輸入您要添加的種類n1.食品n2.家電n3.運動器材n4.衣服n請輸入1-4:"); int x2; scanf("%d",&x2); a=&uq.recx2; for(i=0;i<listqx20.lin_len;i+) a=a->next; a=InitLnode(a); printf("商品名稱:"); scanf("%s",&a->name); printf("n"); printf("商品
16、數(shù)量:"); scanf("%d",&a->count); for(i=1;i<(listqx20.lin_len+1);i+) if(strcmp(a->name,)=0) strcpy(a->purtime,listqx2i.purtime); strcpy(a->seltime,listqx2i.seltime); strcpy(a->unit,listqx2i.unit); strcpy(a->abstract,listqx2i.abstract); a->purprice=
17、listqx2i.purprice; break; listqx20.lin_len+; /正確已驗證,但是關(guān)閉程序再重啟便沒有,則說明save2或者load2有問題 jm(u); save2(); jm(u);/*/void remain(struct commodity list20520,int q,int row) /商品庫存信息 int i,j,k,m; for(i=0;i<20;i+) listqrowi.sign=0; struct commodity a20; for(i=0;i<20;i+) ai.count=0; for(i=0;i<20;i+) strc
18、py(,"0"); for(k=1;k<19;k+) once=0; for(m=k+1;m<20;m+) if(listqrowk.sign=0) strcpy(,); if(once=0) ak.count=listqrowk.count; once+; if(strcmp(,)=0) ak.count=ak.count+listqrowm.count; listqrowm.sign+; if(listqrowk.sign=0) strcpy(ak
19、.name,); for(i=0;i<20;i+) printf("%s:",); printf("剩余庫存:%d",ai.count); printf("n"); /*/void search(struct user u,int q) /按商品名稱輸出交易記錄 int xo; int i,j; char time20,name20; printf(".按商品名稱查詢"); printf("請輸入某類產(chǎn)品:n"); printf("請輸入
20、您要查詢的種類n1.食品n2.家電n3.運動器材n4.衣服n請輸入1-4:"); scanf("%d",&xo); switch(xo) case 1: printf("請輸入您要查詢的商品名稱:"); scanf("%s",&name); for(j=1;j<(listqxo0.lin_len+1);j+) if(strcmp(,name)=0) printf("%s:n",); printf("數(shù)量:%dn"
21、,listqxoj.count); break; case 2: printf("請輸入您要查詢的商品名稱:"); scanf("%s",&name); for(j=1;j<(listqxo0.lin_len+1);j+) if(strcmp(,name)=0) printf("%s:n",); printf("數(shù)量:%dn",listqxoj.count); break; case 3: printf("請輸入您要查詢的商品名稱:&quo
22、t;); scanf("%s",&name); for(j=1;j<(listqxo0.lin_len+1);j+) if(strcmp(,name)=0) printf("%s:n",); printf("數(shù)量:%dn",listqxoj.count); break; case 4: printf("請輸入您要查詢的商品名稱:"); scanf("%s",&name); for(j=1;j<(listqxo0.li
23、n_len+1);j+) if(strcmp(,name)=0) printf("%s:n",); printf("數(shù)量:%dn",listqxoj.count); break; /*/void com_remain(struct user u,int q) /查詢某類商品的庫存記錄 int x1,i,j; char name20; float count; struct commodity a; struct commodity *p; a.count=0; printf("輸入您要查詢的商
24、品種類:"); printf("請輸入您要查詢的種類n1.食品n2.家電n3.運動器材n4.衣服n請輸入1-4:"); scanf("%d",&x1); printf("請輸入商品名稱:"); scanf("%s",&name); for(i=1;i<(listqx10.lin_len+1);i+) if(strcmp(,name)=0) strcpy(,name); a.count=a.count+listqx1i.count; printf(
25、"%s:",); printf("庫存:%d",a.count);3.5 用戶界面設(shè)計 本實驗采用dos界面。通過輸出等函數(shù)使界面盡量做的美觀。每一層都有返回上一層和返回主界面的功能。首先第一個頁面是登陸注冊找回密碼界面,登陸界面進入后到達(dá)程序的主界面,也就是主要功能的界面,此界面包括入庫,出庫,商品庫存查詢,商品信息查詢等功能。第一個界面程序主界面4 方案實現(xiàn)4.1 開發(fā)環(huán)境與工具開發(fā)環(huán)境:Console application控制平臺開發(fā)工具:codeblocks4.2 程序設(shè)計關(guān)鍵技術(shù) 1.采用鄰接表、順序表的結(jié)構(gòu)存儲信息,并將信息從鄰
26、接表存儲到順序表然后轉(zhuǎn)存到 文件中,程序運行時,將文件中信息讀取到順序表中,進而構(gòu)造鄰接表用來存儲信息,最終實現(xiàn)對鄰接表的操作。 2.加密功能采用抑或的方式,使得程序安全性提高 3.對鄰接表的遍歷,輸出,查找。4.3 個人設(shè)計實現(xiàn)(按組員分工)4.3.1 宋振程序設(shè)計實現(xiàn)/*結(jié)構(gòu)體的設(shè)計*/struct commodity char name20; char brand20; float purprice; /商品進價 float selprice; /售價 int count; /數(shù)量 char purtime20; /進貨時間 char seltime20; /出貨時間 char unit
27、20; /計量單位 char brokerage20; /經(jīng)手人 char abstract20; /摘要 struct commodity *next; int lin_len; /鏈表有多少節(jié)點 int sign; /做相同累加運算時的標(biāo)記位 Lnode,*Linklist,list20520; struct user char account20; /賬戶 char code20; /密碼 char name20; char question40; char answer20; /提示問題的答案 int rec_len; /驗證密碼是否正確 struct commodity rec5;
28、/個人信息中增加的買賣記錄,max1代表一個人最多可以存多少條記錄 int list_len;umax1; /max1代表最多可以存多少個人的信息。 void backgroundset( ); /背景顏色設(shè)置函數(shù)/*匹配賬號是否正確*/int lookup_accounts(struct user u,char acc) int i; for(i=0;i<max1;i+) if(strcmp(ui.account,acc)=0) return ok; return null; /*匹配密碼是否正確*/ struct user check_code(struct user u,char
29、acc,char c) struct user a; int i=0; a.rec_len=0; for(i=0;i<max1;i+) if(strcmp(ui.account,acc)=0) if(strcmp(ui.code,c)=0) return ui; else return a; /*注冊功能*/int regist(struct user u) /是將注冊的新賬號傳遞給ui,然后使用save函數(shù)保存到文件 char account20; char code20; char name20; char question40; char answer20; int m; int
30、fh2=0; printf("nnnnnnn"); do fh2=0; /每次都初始化,防止fh2,即使賬號不重復(fù)也循環(huán) printf("tt 要注冊的賬號(10個字以內(nèi),否則后果自負(fù)):"); scanf("%s",account); if(strlen(account)>20) /確定賬號不溢出 system("cls"); printf("nnnnnnnnnnn"); printf("tttt溢出了,同學(xué)!"); printf("nnnnnnnnnn&q
31、uot;); Sleep(2000); exit(0); else printf("n"); for(m=0;m<max1;m+) if(strcmp(um.account,account)=0) printf("tt 該賬號已存在!請重新輸入!nn"); fh2=1; /注冊賬號重復(fù)返回功能 while(fh2); printf("tt 請設(shè)置密碼:"); scanf("%s",code); printf("n"); printf("tt 請輸入姓名:"); scan
32、f("%s",name); printf("n"); printf("tt 請輸入密保提示問題:"); scanf("%s",question); printf("n"); printf("tt 請輸入密保答案:"); scanf("%s",answer); printf("n"); printf("tt 恭喜您,%s同學(xué)成功注冊賬號nn",name); strcpy(uu0.rec_len.account,acco
33、unt); strcpy(uu0.rec_len.code,code); strcpy(uu0.rec_,name); strcpy(uu0.rec_len.question,question); strcpy(uu0.rec_len.answer,answer); u0.rec_len+; jm(u); save(u); load(); jm(u); /*找回密碼功能*/int getcode(struct user u) char account20; char answer20; char name20; int m=0; int i; printf("nnnn
34、nnnnn"); printf("tt 請輸入要找回的賬號:"); scanf("%s",account); printf("n"); for(i=0;i<max1;i+) if(strcmp(ui.account,account)=0) printf("tt %s:",ui.question); scanf("%s",answer); printf("n"); if(strcmp(ui.answer,answer)=0) printf("tt 請輸
35、入姓名:"); scanf("%s",name); printf("n"); if(strcmp(,name)=0) m=1; system("cls"); printf("nnnnnnnnnnnntt 信息驗證正確!nn"); printf("tt 您的密碼是:%s",ui.code); if(m=0) printf("tt 輸入有誤哦!"); /*加密功能*/int jm(struct user u) int acc_len; int cod_le
36、n; int nam_len; int qus_len; int ans_len; int com_name_len; int com_brand_len; int pur_price_len; int sel_price_len; int pur_time_len; int sel_time_len; int brokerage_len; int abstract_len; int unit_len; int count_len; int i=0,j; int m=0; int n=0; for(i=0;i<5;i+) acc_len=strlen(ui.account); cod_l
37、en=strlen(ui.code); qus_len=strlen(ui.question); ans_len=strlen(ui.answer); nam_len=strlen(); for(n=0;n<5;n+) com_name_len=strlen(); com_brand_len=strlen(ui.recn.brand); pur_time_len=strlen(ui.recn.purtime); sel_time_len=strlen(ui.recn.seltime); brokerage_len=strlen(ui.recn.bro
38、kerage); abstract_len=strlen(ui.recn.abstract); unit_len=strlen(ui.recn.unit); for(m=0;m<com_name_len;m+) m=m(m%com_name_len); for(m=0;m<com_brand_len;m+) ui.recn.brandm=ui.recn.brandm(m%com_brand_len); for(m=0;m<sel_time_len;m+) ui.recn.seltimem=ui.recn.seltimem(m%s
39、el_time_len); for(m=0;m<pur_time_len;m+) ui.recn.purtimem=ui.recn.purtimem(m%pur_time_len); for(m=0;m<brokerage_len;m+) ui.recn.brokeragem=ui.recn.brokeragem(m%brokerage_len); for(m=0;m<abstract_len;m+) ui.recn.abstractm=ui.recn.abstractm(m%abstract_len); for(m=0;m<unit_len;m+) ui.recn.unitm=ui.recn.unitm(m%unit_len); for(n=0;n<5;n+) ui.recn.count=ui.rec
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)應(yīng)力混凝土箱梁橋頂板疲勞性能的試驗研究
- 企業(yè)班組工作總結(jié)
- 變更授權(quán)合同范本
- 專利咨詢費合同范本
- 內(nèi)銷與外銷合同范例
- 合作分紅協(xié)議合同范例
- 個人轉(zhuǎn)讓大棚合同范本
- 創(chuàng)業(yè)學(xué)術(shù)交流匯報
- 中烹考試模擬題(附參考答案)
- 中職學(xué)生教育管理工作
- 2025年全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫匯編
- 國家基本藥物臨床應(yīng)用指南
- 2025春-新版一年級語文下冊生字表(200個)
- 企業(yè)級軟件開發(fā)作業(yè)指導(dǎo)書
- 護士法律法規(guī)知識培訓(xùn)
- 《中國古代文學(xué)史及作品選II》教學(xué)大綱
- 代工生產(chǎn)合同范本
- 人教版英語2025七年級下冊 Unit1Animal Friends教師版 語法講解+練習(xí)
- DeepSeek新手入門教程
- 課件:《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
評論
0/150
提交評論