![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/eadb3ebd-344e-4775-8b37-cb2109ca6c61/eadb3ebd-344e-4775-8b37-cb2109ca6c61pic.jpg)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-倉(cāng)庫(kù)進(jìn)銷存管理系統(tǒng)_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/eadb3ebd-344e-4775-8b37-cb2109ca6c61/eadb3ebd-344e-4775-8b37-cb2109ca6c611.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題 目: 倉(cāng)庫(kù)進(jìn)銷存管理系統(tǒng) </p><p> 學(xué) 院: 計(jì)算機(jī)與控制工程學(xué)院 </p><p> 專業(yè)班級(jí): 軟件101 </p><p> 學(xué)
2、生姓名: </p><p> 指導(dǎo)教師: </p><p> 2012 年06 月2 9日</p><p><b> 綜合實(shí)踐1評(píng)分表</b></p><p>
3、; 注:介于A和C之間為B級(jí),低于C為D級(jí)和E級(jí)。按各項(xiàng)指標(biāo)打分后,總分在90~100為優(yōu),80~89為良,70~79為中,60~69為及格,60分以下不及格。</p><p><b> 目 錄</b></p><p> 1. 問(wèn)題描述…………………………………………………………………………1</p><p> 2. 需求分析………
4、…………………………………………………………………1</p><p> 3. 軟件概要設(shè)計(jì)……………………………………………………………………2</p><p> 3.1 設(shè)計(jì)分析 ……………………………………………………………………2</p><p> 3.1.1 設(shè)計(jì)理念 ………………………………………………………………2</p><p
5、> 3.1.2 設(shè)計(jì)框架 ………………………………………………………………2</p><p> 4. 軟件詳細(xì)設(shè)計(jì)……………………………………………………………………3</p><p> 4.1 數(shù)據(jù)流程及結(jié)構(gòu)應(yīng)用 ………………………………………………………3</p><p> 4.1.1 數(shù)據(jù)結(jié)構(gòu)應(yīng)用 …………………………………………………………3&
6、lt;/p><p> 4.1.2 主要流程圖 ……………………………………………………………3</p><p> 4.2 主要函數(shù)設(shè)計(jì) ………………………………………………………………4</p><p> 4.2.1 主函數(shù)的設(shè)計(jì)… ………………………………………………………4</p><p> 4.2.2 錄入函數(shù)的設(shè)計(jì) …………………
7、……………………………………5</p><p> 4.2.3 查找函數(shù)的設(shè)計(jì) ………………………………………………………7</p><p> 4.2.4 刪除函數(shù)的設(shè)計(jì) ………………………………………………………8</p><p> 4.2.5 排序函數(shù)的設(shè)計(jì) ………………………………………………………9</p><p> 5. 軟件
8、測(cè)試分析 …………………………………………………………………11</p><p> 5.1 函數(shù)模塊的設(shè)計(jì)……………………………………………………………11</p><p> 5.1.1 登錄函數(shù)的測(cè)試………………………………………………………11</p><p> 5.1.2 錄入函數(shù)的測(cè)試………………………………………………………12</p>
9、<p> 5.1.3 查找函數(shù)的測(cè)試………………………………………………………12</p><p> 5.1.4 修改函數(shù)的測(cè)試………………………………………………………13</p><p> 5.1.5 插入函數(shù)的測(cè)試………………………………………………………13</p><p> 5.1.6 刪除函數(shù)的測(cè)試………………………………………………
10、………14</p><p> 5.1.7 排序函數(shù)的測(cè)試………………………………………………………14</p><p> 5.2 文件模塊的測(cè)試……………………………………………………………15</p><p> 5.2.1 文件讀取的測(cè)試………………………………………………………15</p><p> 5.2.2 文件寫(xiě)入的測(cè)試……
11、…………………………………………………15</p><p> 6. 課程設(shè)計(jì)總結(jié) …………………………………………………………………16</p><p> 7. 參考文獻(xiàn) ………………………………………………………………………16</p><p><b> 附錄</b></p><p><b> 1.問(wèn)
12、題描述</b></p><p><b> 倉(cāng)庫(kù)管理的重要性:</b></p><p> 倉(cāng)庫(kù)作為一總貨品資源的集散地,貨品的種類繁多,包含很多的信息數(shù)據(jù)管理。據(jù)調(diào)查得知,以前倉(cāng)庫(kù)進(jìn)行信息管理的方式主要是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于貨品的出入庫(kù)情況的統(tǒng)計(jì)和核實(shí)等旺旺采用對(duì)賬本的的人工檢查,對(duì)管理者的管理權(quán)限的不受約束,任何人都可以查看,引起資料
13、外泄。另外,數(shù)據(jù)信息處理工作量大,容易出錯(cuò),不宜查找。而且,一般儲(chǔ)存情況是記錄在賬本上的,倉(cāng)庫(kù)管理人員也只是當(dāng)時(shí)記得比較清楚,時(shí)間長(zhǎng)了進(jìn)行查詢會(huì)造成費(fèi)事、費(fèi)時(shí)、費(fèi)力,如對(duì)很長(zhǎng)時(shí)間的商品以及大量商品進(jìn)行管理就更加困難了。因此我們很有必要建立一個(gè)倉(cāng)庫(kù)進(jìn)銷存管理系統(tǒng),使商品管理工作更加規(guī)范化、系統(tǒng)化、程序化,提高信息處理的速度和準(zhǔn)確性。</p><p><b> 2.軟件需求分析</b><
14、/p><p> 商場(chǎng)購(gòu)物已成為每家每戶生活中必須的經(jīng)歷,隨著人流量的增大。商場(chǎng)出售的商品種類也越來(lái)越多,商場(chǎng)的倉(cāng)庫(kù)需要有規(guī)格有條理的管理方式,靈活記錄每天的情況。針對(duì)上面的情況,開(kāi)發(fā)一個(gè)系統(tǒng)軟件成為必然。該系統(tǒng)需要能夠 方便的對(duì)每天進(jìn)銷存貨操作和每天的銷售額及庫(kù)存量進(jìn)行記錄,能夠給小型商場(chǎng)提供諸多方便。因此,商場(chǎng)庫(kù)存系統(tǒng)應(yīng)運(yùn)而生。</p><p><b> 功能需求:</b
15、></p><p> (1)用戶自行注冊(cè)登錄,保證倉(cāng)庫(kù)商品信息的保密性。</p><p> ?。?)倉(cāng)庫(kù)各種商品信息的輸入,主要包括商品名稱、數(shù)量、類別、日期等。</p><p> ?。?)倉(cāng)庫(kù)各種商品信息的查詢、修改和維護(hù)。</p><p> ?。?)對(duì)倉(cāng)庫(kù)中損壞商品信息的刪除。</p><p> (5)倉(cāng)
16、庫(kù)商品信息列表的生成顯示。</p><p> ?。?)實(shí)現(xiàn)商品信息對(duì)文本中的保存。</p><p><b> 3.軟件概要設(shè)計(jì)</b></p><p><b> 3.1設(shè)計(jì)分析</b></p><p><b> 3.1.1設(shè)計(jì)理念</b></p><p
17、> 倉(cāng)庫(kù)存系統(tǒng)主要運(yùn)用了數(shù)據(jù)結(jié)構(gòu)中線性表的鏈?zhǔn)酱鎯?chǔ),鏈?zhǔn)酱鎯?chǔ)空間的可擴(kuò)展性大,將鏈表中的數(shù)據(jù)以文件的形式保存,程序功能包括初始化、創(chuàng)建表、插入、刪除和查找等,以最少的內(nèi)存使用和最高的效率為原則,實(shí)現(xiàn)客戶的需求。進(jìn)入主菜單,選擇相應(yīng)的功能按照提示即可進(jìn)入相應(yīng)的操作。 </p><p> 主菜單主要實(shí)現(xiàn)以下函數(shù)模塊功能:</p><p> (1)錄入商品函數(shù) LinkList g
18、oods_input()//運(yùn)用鏈?zhǔn)酱鎯?chǔ)</p><p> 商品信息寫(xiě)入文件的函數(shù) void file_write(Node *p)</p><p> 文件中的信息讀出的函數(shù) LinkList file_read()</p><p> ?。?)查找商品函數(shù) void goods_find()</p><p> ?。?)修改信息函數(shù)
19、 void goods_change()</p><p> ?。?)插入商品函數(shù) void goods_insert()</p><p> ?。?)刪除商品函數(shù) void goods_delete()</p><p> ?。?)商品信息排序函數(shù) void goods_rank()</p><p><b> 3.1.2設(shè)計(jì)框架
20、</b></p><p><b> 4.軟件詳細(xì)設(shè)計(jì)</b></p><p> 4.1數(shù)據(jù)流程及結(jié)構(gòu)應(yīng)用</p><p> 4.1.1數(shù)據(jù)結(jié)構(gòu)應(yīng)用</p><p> 為了能夠提高內(nèi)存的利用及各功能的實(shí)現(xiàn),程序主要使用了:</p><p> (1)線性表的鏈?zhǔn)酱鎯?chǔ),分配存儲(chǔ)空間
21、,空間可擴(kuò)展性強(qiáng),方便頻繁的錄入、插入、查找、刪除和排序等而不占用多余的內(nèi)存。(主要應(yīng)用)</p><p> ?。?)文件文本的讀取與寫(xiě)入,為了方便用戶更加快速的執(zhí)行管理操作。</p><p> (3)結(jié)構(gòu)體的定義,定義了商品結(jié)構(gòu)體和日期結(jié)構(gòu)體。</p><p> (4)登錄用戶時(shí)的字符串讀取及驗(yàn)證。</p><p> 4.1.2主要流
22、程圖</p><p> 圖4-1 程序流程圖</p><p> 4.2 主要函數(shù)設(shè)計(jì)</p><p> 4.2.1主函數(shù)的設(shè)計(jì)</p><p> 程序啟動(dòng)進(jìn)入主函數(shù),進(jìn)入主菜單 界面和用戶進(jìn)行交互。用戶可以直接明了的清楚軟件的功能項(xiàng)目,調(diào)用各個(gè)模塊的功能項(xiàng)目,進(jìn)行選擇。</p><p> void main
23、()</p><p><b> {</b></p><p><b> int c;</b></p><p><b> key();</b></p><p><b> do</b></p><p><b> {
24、</b></p><p> printf("請(qǐng)按任意鍵返回主菜單!");</p><p><b> getch();</b></p><p> system("cls");</p><p> printf("\n********************
25、********歡迎進(jìn)入商場(chǎng)貨物管理系統(tǒng)****************************\n\n");</p><p> printf(" 1: 錄入商品信息;\n");</p><p> printf(" 2: 查找商品信息;\n");</p><p> printf(" 3: 修改商
26、品信息;\n");</p><p> printf(" 4: 插入商品信息;\n");</p><p> printf(" 5: 刪除商品信息;\n");</p><p> printf(" 6: 商品信息排序;\n");</p><p> printf(&q
27、uot; 7: 統(tǒng)計(jì)商品信息;\n");</p><p> printf(" 0: 退出系統(tǒng);\n");</p><p> printf(" 請(qǐng)選擇(0~7): ");</p><p> scanf("%d",&c);</p><p><b>
28、 while(1)</b></p><p><b> {</b></p><p> if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0)break;</p><p><b> else </b></p><p><b>
29、 {</b></p><p> printf("\n輸入有誤,請(qǐng)重新輸入!\n清選擇(0~7):");</p><p> scanf("%d",&c);</p><p> if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0) break;</p&g
30、t;<p><b> }</b></p><p><b> }</b></p><p><b> switch(c)</b></p><p><b> {</b></p><p> case 1:goods_input();brea
31、k;</p><p> case 2:goods_find();break;</p><p> case 3:goods_change();break;</p><p> case 4:goods_insert();break;</p><p> case 5:goods_delete();break;</p><
32、p> case 6:goods_rank();break;</p><p> case 7:goods_tongji();break;</p><p> case 0 :break;</p><p><b> }</b></p><p> }while(c!=0);</p><p>
33、;<b> }</b></p><p> 4.2.2錄入函數(shù)的設(shè)計(jì)</p><p> 數(shù)據(jù)錄入是該軟件必備的基本功能當(dāng)鏈表為空時(shí),對(duì)商品信息變量“商品號(hào)”判斷并進(jìn)行錄入,系統(tǒng)調(diào)用錄入函數(shù),在用戶輸入商品信息后添加到鏈表里,在添加過(guò)程中按提示自動(dòng)插入到相應(yīng)位置。添加成功后,返回主菜單并提示用戶保存到自建的文本中,并可以根據(jù)各個(gè)模塊要求進(jìn)行讀取修改。</p&g
34、t;<p> LinkList goods_input()</p><p><b> {</b></p><p> LinkList L;</p><p> Node *p1,*p2;</p><p><b> int i=1;</b></p><p>
35、; void file_write(Node *p);</p><p> int flag=1;</p><p> L=p2=(Node*)malloc(sizeof(Node));//為頭節(jié)點(diǎn)分配存儲(chǔ)空間</p><p> while(flag)</p><p><b> {</b></p>&
36、lt;p> p1=(Node*)malloc(sizeof(Node));</p><p> printf("請(qǐng)輸入第%d種商品的信息(商品號(hào)為0時(shí),結(jié)束商品輸入):\n\n",i++);</p><p> flushall();</p><p> printf("商品號(hào):");</p><p
37、> scanf("%ld",&p1->num);</p><p> if(p1->num!=0)</p><p><b> {</b></p><p> flushall();</p><p> printf("名稱:");</p>
38、<p> scanf("%s",&p1->name);</p><p> flushall();</p><p> printf("類別:");</p><p> scanf("%s",&p1->kind);</p><p> flu
39、shall();</p><p> printf("生產(chǎn)日期(年月日用空格隔開(kāi)):");</p><p> scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);</p><p> flu
40、shall();</p><p> printf("保質(zhì)期:");</p><p> scanf("%d",&p1->save_day);</p><p> flushall();</p><p> printf("商品數(shù)量:");</p><
41、;p> scanf("%d",&p1->shuliang);</p><p> flushall();</p><p> printf("進(jìn)價(jià):");</p><p> scanf("%f",&p1->jinjia);</p><p> f
42、lushall();</p><p> printf("售價(jià):");</p><p> scanf("%f",&p1->shoujia);</p><p> flushall();</p><p> printf("銷售日期(年月日用空格隔開(kāi)):");</
43、p><p> scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);</p><p> p2->next=p1;</p><p><b> p2=p1;</b></p>
44、;<p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p><b> flag=0;</b></p><p><b> break;</b>
45、;</p><p><b> }</b></p><p><b> }</b></p><p> p2->next=NULL;</p><p> file_write(L);</p><p><b> free(p1);</b></
46、p><p> return(L);</p><p><b> }</b></p><p> 保存文本文件的讀寫(xiě)函數(shù)模塊:</p><p> void file_write(Node *p) //將商品信息寫(xiě)入文件</p><p><b> ?。?lt;/b></p>
47、<p><b> }</b></p><p> LinkList file_read()//將文件中的信息讀出的函數(shù)</p><p><b> ?。?lt;/b></p><p><b> }</b></p><p> 4.2.3查找函數(shù)的設(shè)計(jì)</p>
48、;<p> 查找商品是信息管理的基本功能,當(dāng)數(shù)據(jù)很多時(shí)怎么快速找到商品對(duì)管理員來(lái)說(shuō)很重要,系統(tǒng)調(diào)用查找函數(shù)模塊,顯示查找菜單。根據(jù)提示輸入需要查找的“商品號(hào)”進(jìn)行查找,查找成功,用戶會(huì)看到查找商品的詳細(xì)信息,如沒(méi)有該商品,則查找失敗,查找函數(shù)設(shè)計(jì):</p><p> void goods_find()</p><p><b> {</b></
49、p><p> long snum;</p><p> int flag=0,t;</p><p> Node *p0,*p1;</p><p> p1=p0=file_read();</p><p><b> while(1)</b></p><p><b>
50、; {</b></p><p><b> flag=0;</b></p><p> printf("請(qǐng)輸入你要查找的商品信息的商品號(hào):");</p><p> scanf("%ld",&snum);</p><p> while( p0->nex
51、t!=NULL)</p><p><b> {</b></p><p> p0=p0->next;</p><p> if(p0->num==snum) </p><p><b> { </b></p><p><b> flag=1;<
52、;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag==1)</p><p><b> { </b>&
53、lt;/p><p> printf("該商品的信息如下:\n\n");</p><p> printf("商品號(hào)\t名稱\t類別\t生產(chǎn)日期\t保質(zhì)期\t數(shù)量\t進(jìn)價(jià)\t售價(jià)\t銷售日期\n");</p><p> printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f
54、\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sa
55、le_date.month,p0->sale_date.day);</p><p><b> }</b></p><p><b> else</b></p><p> printf("此商品號(hào)不存在,查找失敗!\n");</p><p><b> p0=p
56、1;</b></p><p> printf("結(jié)束查找按0,繼續(xù)查找按1:");</p><p> scanf("%d",&t);</p><p><b> if(t==0)</b></p><p><b> break;</b>
57、</p><p><b> }</b></p><p><b> }</b></p><p> 4.2.4刪除函數(shù)的設(shè)計(jì)</p><p> 刪除是一項(xiàng)對(duì)數(shù)據(jù)管理的功能,將過(guò)期的商品信息刪除,以免影響倉(cāng)庫(kù)管理,刪除函數(shù)的原理和查找函數(shù)原理一樣,只是在輸入“商品號(hào)”找到對(duì)應(yīng)的商品后刪除該結(jié)點(diǎn),就
58、會(huì)刪除該商品的所有詳細(xì)信息,并提示用戶保存!</p><p> void goods_delete()</p><p><b> {</b></p><p><b> long num;</b></p><p> Node *p,*p0,*p1,*p2;</p><p&g
59、t; int flag=0,t;</p><p> p0=file_read();</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p>&l
60、t;b> p1=p2=p0;</b></p><p> p=p1->next;</p><p> if(p==NULL) flag=0;</p><p> printf("請(qǐng)輸入你要?jiǎng)h除的商品的商品號(hào):");</p><p> scanf("%ld",&num)
61、;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->num==num)</p><p><b> {</b></p><p> p1->next=p->next;</p>
62、;<p><b> free(p);</b></p><p><b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> p1=p;&l
63、t;/b></p><p> p=p->next;</p><p><b> flag=0;</b></p><p><b> }</b></p><p> if(flag==1)</p><p> printf("你已正確刪除!\n"
64、;);</p><p><b> else</b></p><p> printf("你輸入的商品號(hào)不存在!\n");</p><p> printf("結(jié)束刪除按0,繼續(xù)刪除按1:");</p><p> scanf("%d",&t);<
65、/p><p><b> if(t==0)</b></p><p><b> break;</b></p><p><b> }</b></p><p> p0=p0->next;</p><p> printf("商品號(hào)\t名稱\t
66、類別\t生產(chǎn)日期\t保質(zhì)期\t數(shù)量\t進(jìn)價(jià)\t售價(jià)\t銷售日期</p><p><b> \n");</b></p><p> while(p0!=NULL)</p><p><b> {</b></p><p> printf("--------------------
67、------------------------------------------------------------\n"); printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0-&
68、gt;pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);</p><p> p0=p0->next;</p><
69、p><b> }</b></p><p> file_write(p2);</p><p><b> }</b></p><p> 4.2.5排序函數(shù)的設(shè)計(jì)</p><p> 商品信息排序,為了可以更清楚的了解到商品庫(kù)存量的多少,方便于管理者對(duì)商場(chǎng)商品的銷售政策和對(duì)即將過(guò)期商品的多少
70、有所了解,使倉(cāng)庫(kù)管理員更直觀的了解到倉(cāng)庫(kù)庫(kù)存。該函數(shù)找到商品的記錄信息按照商品數(shù)量從小到大重新排序,排序完后,返回主菜單并提示用戶保存! </p><p> void goods_rank()</p><p><b> {</b></p><p> Node *p,*q,*k,*L,t;</p><p><b
71、> Node *p0;</b></p><p> int flag=0;</p><p> L=file_read();</p><p> p=L->next;</p><p> while(p->next)</p><p><b> {</b></
72、p><p><b> k=p;</b></p><p> q=p->next;</p><p><b> while(q)</b></p><p><b> {</b></p><p> if((k->shuliang)>(q-&
73、gt;shuliang))</p><p><b> k=q;</b></p><p> q=q->next;</p><p><b> }</b></p><p><b> if(p!=k)</b></p><p><b>
74、{</b></p><p><b> t=*p;</b></p><p> *p=*k; </p><p><b> *k=t;</b></p><p> t.next=p->next;</p><p> p->next=k->
75、;next;</p><p> k->next=t.next;</p><p><b> flag=1;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b>&l
76、t;/p><p> if(flag=1)</p><p> printf("按商品數(shù)量從小到大排序成功!\n");</p><p><b> else</b></p><p> printf("按商品數(shù)量從小到大排序失敗!\n");</p><p>&l
77、t;b> p0=L;</b></p><p> p0=p0->next;</p><p> printf("商品號(hào)\t名稱\t類別\t生產(chǎn)日期\t保質(zhì)期\t數(shù)量\t進(jìn)價(jià)\t售價(jià)\t銷售日期\n");</p><p> while(p0!=NULL)</p><p> {printf(&qu
78、ot;--------------------------------------------------------------------------------\n");printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->
79、;pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);</p><p> p0=p0->ne
80、xt;</p><p><b> }</b></p><p> file_write(L);</p><p><b> }</b></p><p><b> 5.軟件測(cè)試分析</b></p><p> 5.1函數(shù)模塊的測(cè)試</p>
81、<p> 5.1.1登錄函數(shù)的測(cè)試</p><p> 圖5-1-1 登錄測(cè)試(a)(b)</p><p> 5.1.2錄入商品函數(shù)的測(cè)試</p><p> 圖5-1-2 錄入商品信息測(cè)試</p><p> 5.1.3查找商品函數(shù)的測(cè)試</p><p> 圖5-1-3 查找商品信息測(cè)試</p
82、><p> 5.1.4修改商品函數(shù)的測(cè)試</p><p> 圖5-1-4 修改商品信息測(cè)試</p><p> 5.1.4插入商品函數(shù)的測(cè)試</p><p> 圖5-1-4 插入商品信息測(cè)試</p><p> 5.1.5刪除商品函數(shù)的測(cè)試</p><p> 圖5-1-5 刪除商品信息測(cè)試
83、</p><p> 5.1.6商品排序函數(shù)的測(cè)試</p><p> 圖5-1-6 商品信息排序測(cè)試</p><p> 5.2 文件模塊的的測(cè)試</p><p> 5.2.1 文件讀取測(cè)試</p><p> 圖5-2-1 文件讀取</p><p> 5.2.2 文本寫(xiě)入測(cè)試</p
84、><p> 圖5-2-2 文本寫(xiě)入</p><p><b> 6.課程設(shè)計(jì)總結(jié)</b></p><p> 經(jīng)過(guò)近兩周的課程設(shè)計(jì)實(shí)習(xí)過(guò)程中我學(xué)到了很多,我做的是商場(chǎng)倉(cāng)庫(kù)管理系統(tǒng),這個(gè)系統(tǒng)基本完成了預(yù)期的一些基本功能(商品信息的錄入、刪除、查找和修改等),實(shí)現(xiàn)了倉(cāng)庫(kù)管理的信息化,滿足了客戶對(duì)于基本倉(cāng)庫(kù)管理的需求。這次課程設(shè)計(jì)中,各個(gè)功能模版的執(zhí)行
85、主要運(yùn)用了本學(xué)期學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)中的線性表鏈?zhǔn)酱鎯?chǔ)的方式,節(jié)點(diǎn)的插入刪除等 。讓我們?cè)僖淮卧趹?yīng)用中對(duì)線性表的運(yùn)用有所提高,并加深了數(shù)據(jù)結(jié)構(gòu)與實(shí)際應(yīng)用的聯(lián)系。</p><p> 此外,這次的課程設(shè)計(jì),還加強(qiáng)了我們動(dòng)手、思考和解決問(wèn)題的能力。鞏固和加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。培養(yǎng)了我選用參考書(shū),查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問(wèn)題、解決問(wèn)題的能力。通過(guò)實(shí)際編譯系統(tǒng)的
86、分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。而且做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)的鞏固和加強(qiáng),平時(shí)看課本時(shí),有些問(wèn)題就不是很能理解,做完課程設(shè)計(jì),那些問(wèn)題就迎刃而解了。而且還可以記住很多東西。認(rèn)識(shí)來(lái)源于實(shí)踐,實(shí)踐是認(rèn)識(shí)的動(dòng)力和最終目的,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。所以這個(gè)期末測(cè)試之后的課程設(shè)計(jì)對(duì)我們的作用是非常大的。</p><p><b> 7.參考文獻(xiàn)</b></p>
87、;<p> 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版). 北京: 清華大學(xué)出版社, 1997.4</p><p> 嚴(yán)蔚敏, 吳偉民, 米寧. 數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版). 北京: 清華大學(xué)出版社, 1999.2</p><p><b> 附錄</b></p><p><b> 使用說(shuō)明:</b><
88、/p><p> 本系統(tǒng)軟件為倉(cāng)庫(kù)管理中的基本軟件,實(shí)現(xiàn)功能為商品信息的錄入、查找、刪除、修改和查看等。用戶首先需要注冊(cè)然后登錄到主菜單,按菜單提示選擇相應(yīng)的模塊操作進(jìn)行倉(cāng)庫(kù)管理的實(shí)施。用戶還可以在創(chuàng)建的文本中直接查看保存的商品信息,方便用戶直接的對(duì)倉(cāng)庫(kù)的管理與查看。使用流程按提示操作即可。</p><p><b> 源代碼:</b></p><p&
89、gt; #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> #include<conio.h></p><p><b> //日期結(jié)構(gòu)體</b><
90、;/p><p> typedef struct </p><p><b> {</b></p><p><b> int year;</b></p><p> int month;</p><p><b> int day;</b></p&
91、gt;<p><b> }DATE;</b></p><p><b> //商品結(jié)構(gòu)體</b></p><p><b> //定義鏈表</b></p><p> typedef struct Node</p><p><b> {</b&
92、gt;</p><p><b> long num;</b></p><p> char name[20];</p><p> char kind[20];</p><p> DATE pro_date;</p><p> int save_day;</p><p&g
93、t; int shuliang;</p><p> float jinjia;</p><p> float shoujia;</p><p> DATE sale_date;</p><p> struct Node *next;</p><p> }Node,*LinkList;</p>
94、<p><b> //申請(qǐng)函數(shù)</b></p><p> void apply()</p><p><b> {</b></p><p> int i,flag=1;</p><p><b> FILE *fp;</b></p><p&g
95、t; char name[20],key[20];</p><p> flushall();</p><p> printf("用戶名(不能為空):");</p><p> scanf("%s",name);</p><p> flushall();</p><p>
96、 printf("密碼(不能為空):");</p><p> for(i=0;i<=20;i++)</p><p><b> {</b></p><p> key[i]=getch();</p><p> if(key[i]==13)</p><p><b&
97、gt; {</b></p><p> key[i]='\0';</p><p><b> break;</b></p><p><b> }</b></p><p> printf("*");</p><p><
98、b> }</b></p><p> fp=fopen("key.txt","w");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("the file can not open
99、!");</p><p><b> flag=0;</b></p><p><b> exit(1);</b></p><p><b> }</b></p><p> fprintf(fp,"%s %s",name,key);</p&
100、gt;<p> fclose(fp);</p><p> if(flag==1)</p><p> printf("\n申請(qǐng)成功,請(qǐng)登錄!\n");</p><p><b> else</b></p><p> printf("\n申請(qǐng)失敗,請(qǐng)重新申請(qǐng)!\n"
101、;);</p><p><b> }</b></p><p><b> //登錄函數(shù)</b></p><p> int load()</p><p><b> {</b></p><p><b> FILE *fp;</b>
102、;</p><p><b> int i;</b></p><p> char name[20],key[20];</p><p> char name1[20],key1[20];</p><p> fp=fopen("key.txt","r");</p>
103、<p> fscanf(fp,"%s %s",name,key);</p><p> fclose(fp);</p><p> printf("用戶名(不能為空):");</p><p> scanf("%s",name1);</p><p> flushall(
104、);</p><p> printf("密碼(不能為空):");</p><p> for(i=0;i<=20;i++)</p><p><b> {</b></p><p> key1[i]=getch();</p><p> if(key1[i]==13)&
105、lt;/p><p><b> {</b></p><p> key1[i]='\0';</p><p><b> break;</b></p><p><b> }</b></p><p> printf("*"
106、);</p><p><b> }</b></p><p> printf("\n");</p><p> if(strcmp(name1,name)==0&&strcmp(key1,key)==0)</p><p> { printf("登陸成功!\n\n&qu
107、ot;);return 1;}</p><p><b> else</b></p><p> { printf("用戶名或密碼錯(cuò)誤;請(qǐng)重新登錄!"); return 0;}</p><p><b> }</b></p><p><b> //密碼保護(hù)系統(tǒng)&
108、lt;/b></p><p> void key()</p><p><b> {</b></p><p> int choice,c;</p><p><b> do</b></p><p> { printf("\n**************
109、**************申請(qǐng)登錄系統(tǒng)********************************\n\n");</p><p> printf(" 1: 新用戶注冊(cè); \n\n");</p><p> printf(" 2: 新用戶登錄;
110、 \n\n");</p><p> printf("請(qǐng)選擇:");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> {</b></p><p>
111、; case 1: apply(); break;</p><p> case 2: c=load();break;</p><p><b> }</b></p><p> }while(c!=1);</p><p><b> }</b></p><p> Lin
112、kList goods_input()</p><p><b> {</b></p><p> LinkList L;</p><p> Node *p1,*p2;</p><p><b> int i=1;</b></p><p> void file_write
113、(Node *p);</p><p> int flag=1;</p><p> L=p2=(Node*)malloc(sizeof(Node));//為頭節(jié)點(diǎn)分配存儲(chǔ)空間</p><p> while(flag)</p><p><b> {</b></p><p> p1=(Node
114、*)malloc(sizeof(Node));</p><p> printf("請(qǐng)輸入第%d種商品的信息(商品號(hào)為0時(shí),結(jié)束商品輸入):\n\n",i++);</p><p> flushall();</p><p> printf("商品號(hào):");</p><p> scanf("
115、%ld",&p1->num);</p><p> if(p1->num!=0)</p><p><b> {</b></p><p> flushall();// i/o庫(kù)函數(shù) 清除緩沖</p><p> printf("名稱:");</p>&l
116、t;p> scanf("%s",&p1->name);</p><p> flushall();</p><p> printf("類別:");</p><p> scanf("%s",&p1->kind);</p><p> flusha
117、ll();</p><p> printf("生產(chǎn)日期(年月日用空格隔開(kāi)):");</p><p> scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);</p><p> flusha
118、ll();</p><p> printf("保質(zhì)期:");</p><p> scanf("%d",&p1->save_day);</p><p> flushall();</p><p> printf("商品數(shù)量:");</p><p&
119、gt; scanf("%d",&p1->shuliang);</p><p> flushall();</p><p> printf("進(jìn)價(jià):");</p><p> scanf("%f",&p1->jinjia);</p><p> flus
120、hall();</p><p> printf("售價(jià):");</p><p> scanf("%f",&p1->shoujia);</p><p> flushall();</p><p> printf("銷售日期(年月日用空格隔開(kāi)):");</p&g
121、t;<p> scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);</p><p> p2->next=p1;</p><p><b> p2=p1;</b></p>
122、<p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p><b> flag=0;</b></p><p><b> break;</b>&l
123、t;/p><p><b> }</b></p><p><b> }</b></p><p> p2->next=NULL;</p><p> file_write(L);</p><p><b> free(p1);</b></p&g
124、t;<p> return(L);</p><p><b> }</b></p><p> //將商品信息寫(xiě)入文件</p><p> void file_write(Node *p)</p><p><b> { </b></p><p><b
125、> FILE *fp;</b></p><p> char filename[50];int c;</p><p> printf("是否保存?(保存按1;不保存按0):");</p><p> scanf("%d",&c);</p><p><b> if
126、(c==1)</b></p><p> { flushall();</p><p> printf("\n為了將你操作的信息保存下來(lái),請(qǐng)輸入要寫(xiě)入的文件的路經(jīng)或文件:");</p><p> gets(filename);</p><p> fp=fopen(filename,"w"
127、;);//文件寫(xiě)入</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\n this file can not be open!");</p><p><b> exit(1);</b></p>
128、<p><b> }</b></p><p> p=p->next;</p><p> while(p!=NULL)</p><p><b> { </b></p><p> fprintf(fp,"%ld %s %s %d %d %d %d %d %f
129、 %f %d %d %d\n",p->num,p->name,p->kind,p->pro_date.year,p->pro_date.month,p->pro_date.day,p->save_day,p->shuliang,p->jinjia,p->shoujia,p->sale_date.year,p->sale_date.month,p->s
130、ale_date.day);</p><p> p=p->next;</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("文件保存成功!");</p><p><b> }</b>
131、;</p><p><b> }</b></p><p> //將文件中的信息讀出的函數(shù)</p><p> LinkList file_read()</p><p><b> {</b></p><p><b> FILE *fp;</b>&l
132、t;/p><p> LinkList L;</p><p> Node *p1,*p2; </p><p> char filename[50];</p><p> int i,k=0,t=-2;</p><p> flushall();</p><p> printf("請(qǐng)輸
133、入要讀取的文件的路徑或文件名:");</p><p> gets(filename);</p><p> flushall();</p><p> printf("請(qǐng)輸入商品的種類數(shù):");</p><p> scanf("%d",&i);</p><p&g
134、t; fp=fopen(filename,"r");//文件讀出</p><p> L=p2=(Node*)malloc(sizeof(Node));//為頭節(jié)點(diǎn)分配存儲(chǔ)空間</p><p> while(t!=EOF&&k<i)</p><p><b> {</b></p>&l
135、t;p> p1=(Node*)malloc(sizeof(Node));</p><p> t=fscanf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d",&p1->num,p1->name,p1->kind,&p1->pro_date.year,&p1->pro_date.month,
136、&p1->pro_date.day,&p1->save_day,&p1->shuliang,&p1->jinjia,&p1->shoujia,&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);</p><p> p2->ne
137、xt=p1;</p><p><b> p2=p1;</b></p><p><b> k++;</b></p><p><b> }</b></p><p> p2->next=NULL;</p><p> fclose(fp);<
138、;/p><p><b> return L;</b></p><p><b> }</b></p><p><b> //查找商品信息</b></p><p> void goods_find()</p><p><b> {</b
139、></p><p> long snum;</p><p> int flag=0,t;</p><p> Node *p0,*p1;</p><p> p1=p0=file_read();</p><p><b> while(1)</b></p><p>
140、;<b> {</b></p><p><b> flag=0;</b></p><p> printf("請(qǐng)輸入你要查找的商品信息的商品號(hào):");</p><p> scanf("%ld",&snum);</p><p> while( p
141、0->next!=NULL)</p><p><b> {</b></p><p> p0=p0->next;</p><p> if(p0->num==snum) </p><p><b> { </b></p><p><b> f
142、lag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag==1)</p><p> { printf(&qu
143、ot;該商品的信息如下:\n\n");</p><p> printf("商品號(hào)\t名稱\t類別\t生產(chǎn)日期\t保質(zhì)期\t數(shù)量\t進(jìn)價(jià)\t售價(jià)\t銷售日期\n");</p><p> printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0
144、->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.d
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 超市進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--商品進(jìn)銷存管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告--商品進(jìn)銷存管理系統(tǒng)
- 藥品進(jìn)銷存管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- mis課程設(shè)計(jì)--超市進(jìn)銷存管理系統(tǒng)
- 某商店進(jìn)銷存管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 【精品設(shè)計(jì)下載】課程設(shè)計(jì)-商品進(jìn)銷存管理系統(tǒng)
- 進(jìn)銷存管理系統(tǒng)
- 數(shù)據(jù)庫(kù)進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---超市進(jìn)銷存管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 課程設(shè)計(jì)---超市進(jìn)銷存管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--產(chǎn)品進(jìn)銷存儲(chǔ)管理系統(tǒng)
- 倉(cāng)庫(kù)進(jìn)銷存管理系統(tǒng)的開(kāi)發(fā).pdf
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--進(jìn)銷存管理系統(tǒng)需求分析與設(shè)計(jì)
- 超市進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 軟件工程課程設(shè)計(jì)--藥品進(jìn)銷存管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論