版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)題目:文具店的貨品管理 </p><p> 專 業(yè) 軟件工程 </p><p> 班 級(jí)
2、 </p><p> 學(xué) 生 </p><p> 學(xué) 號(hào) </p><p> 2009-20109年 第 2 學(xué)期</p><p><b> 一、設(shè)計(jì)目的</b></p&g
3、t;<p> 1、能根據(jù)實(shí)際問(wèn)題的具體情況,結(jié)合數(shù)據(jù)結(jié)構(gòu)課程中的基本理論和基本算法,分析并正確確定數(shù)據(jù)的邏輯結(jié)構(gòu),合理地選擇相應(yīng)的存儲(chǔ)結(jié)構(gòu),并能設(shè)計(jì)出解決問(wèn)題的有效算法。</p><p> 2、提高程序設(shè)計(jì)和調(diào)試能力。學(xué)生通過(guò)上機(jī)實(shí)習(xí),驗(yàn)證自己設(shè)計(jì)的算法的正確性。學(xué)會(huì)有效利用基本調(diào)試方法,迅速找出程序代碼中的錯(cuò)誤并且修改。</p><p> 3、初步掌握軟件開(kāi)發(fā)過(guò)程中問(wèn)
4、題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能。</p><p> 4、訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。</p><p> 5、培養(yǎng)根據(jù)選題需要選擇學(xué)習(xí)書(shū)籍,查閱文獻(xiàn)資料的自學(xué)能力。</p><p><b> 二、設(shè)計(jì)內(nèi)容</b></p><p>&l
5、t;b> 文具店的貨品管理</b></p><p> 在文具店的日常管理經(jīng)營(yíng)過(guò)程中,存在對(duì)各種文具管理問(wèn)題。當(dāng)庫(kù)存文具不足或缺貨時(shí),需要進(jìn)貨。日常銷售時(shí),需要出庫(kù)。當(dāng)盤點(diǎn)貨物時(shí),需要查詢貨物的信息。請(qǐng)根據(jù)這些要求編寫軟件完成庫(kù)存文具的管理功能。</p><p> 文具信息可以用表1和表2來(lái)表示。</p><p> 表1
6、 </p><p><b> 表2</b></p><p><b> 三、源程序</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p>&l
7、t;p> #include<malloc.h></p><p> #include<string.h></p><p> #include<iostream.h></p><p> #define ERROR 0</p><p> #define OK 1</p><p&
8、gt; #define OVERFLOW 0</p><p> typedef struct{</p><p> char name[10];</p><p> char lb[10];</p><p> int count;</p><p> }datatype;</p><p>
9、 typedef struct node{</p><p> datatype name;</p><p> struct node *next;</p><p> }listnode,*linklist;</p><p> int menu_select();</p><p> int linklist_
10、init(linklist &head);</p><p> int linklist_create(linklist &head);</p><p> int linklist_insert(linklist &head);</p><p> int linklist_find(linklist head);</p>&
11、lt;p> int linklist_delete(linklist &head);</p><p> int linklist_print(linklist head);</p><p> int menu_select()</p><p><b> {</b></p><p><b>
12、 int sn;</b></p><p> printf("\n 文具店商品管理 \n");</p><p> printf("=================================================\n");</p><p&
13、gt; printf(" 1.商店商品的初始狀態(tài) \n");</p><p> printf(" 2.商品的存入 \n");</p><p> printf(" 3.商品的查詢
14、 \n");</p><p> printf(" 4.商品的賣出 \n");</p><p> printf(" 5.商品的輸出檢索 \n");</p>&l
15、t;p> printf(" 6.退出管理系統(tǒng) \n");</p><p> printf("\n===============================================\n");</p><p> printf("選擇1--6:")
16、;</p><p><b> for(;;)</b></p><p><b> {</b></p><p> scanf("%d",&sn);</p><p> if(sn<1||sn>6)</p><p> printf(&
17、quot;輸入錯(cuò)誤,從新選擇(1--6):");</p><p><b> else</b></p><p><b> break;</b></p><p><b> }</b></p><p> return sn;</p><p>
18、<b> }</b></p><p> int linklist_init(linklist &head) //初始化</p><p><b> {</b></p><p> head=(linklist)malloc(sizeof(listnode));</p&g
19、t;<p><b> if(!head)</b></p><p> exit(OVERFLOW);</p><p> head->next=NULL;</p><p> return OK;</p><p><b> }</b></p><p>
20、 int linklist_create(linklist &head) //商品的創(chuàng)建</p><p><b> {</b></p><p> linklist p,rear;</p><p> int flag=0;</p><p> rear=head;</p
21、><p> while(flag==0)</p><p><b> {</b></p><p> p=(linklist)malloc(sizeof(listnode));</p><p> printf("\n商店初始商品文具名稱:");</p><p> cin>
22、;>p->name.name;</p><p> printf("\n初始文具數(shù)量:");</p><p> cin>>p->name.count;</p><p> printf("\n初始文具類別:");</p><p> cin>>p->na
23、me.lb;</p><p> p->next=NULL;</p><p> rear->next=p;</p><p><b> rear=p;</b></p><p> printf("結(jié)束初始化嗎?(1/0):");</p><p> scanf(&
24、quot;%d",&flag);</p><p><b> }</b></p><p> rear->next=NULL;</p><p> return OK;</p><p><b> }</b></p><p> int linklis
25、t_insert(linklist &head) //向商店存貨(存入文具)</p><p><b> {</b></p><p> linklist p,p1,p2;</p><p><b> p2=head;</b></p><p>
26、 p2=p2->next;</p><p> p=(linklist)malloc(sizeof(listnode));</p><p> printf("輸入要存貨的文具名稱:");</p><p> cin>>p->name.name;</p><p> printf("\n
27、存貨的文具數(shù)量:");</p><p> cin>>p->name.count;</p><p> printf("\n存貨的文具類別:");</p><p> cin>>p->name.lb;</p><p> while(p2!=NULL)</p>&
28、lt;p><b> {</b></p><p> if(strcmp(p2->name.name,p->name.name)==0)</p><p><b> {</b></p><p> p2->name.count+=p->name.count;</p><p&
29、gt; printf("\n存貨成功!");</p><p> return OK;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>&
30、lt;b> p1=p2;</b></p><p> p2=p2->next;</p><p><b> }</b></p><p><b> }</b></p><p> if(p2==NULL)</p><p><b> {&l
31、t;/b></p><p> p1->next=p;</p><p> p->next=NULL;</p><p> printf("\n存貨成功!");</p><p><b> }</b></p><p> return ERROR;</p
32、><p><b> }</b></p><p> int linklist_delete(linklist &head) //商店賣出文具</p><p><b> {</b></p><p> linklist p,t;</p>&
33、lt;p><b> t=head;</b></p><p> t=t->next;</p><p> p=(linklist)malloc(sizeof(listnode));</p><p> printf("賣出商品的文具名稱:");</p><p> cin>>
34、p->name.name;</p><p> printf("\n想賣出多少件:");</p><p> cin>>p->name.count;</p><p> while(t!=NULL)</p><p><b> {</b></p><p>
35、; if(strcmp(t->name.name,p->name.name)==0)</p><p><b> {</b></p><p> if(t->name.count==0)</p><p><b> {</b></p><p> printf("\n此
36、類商品已經(jīng)銷售完。");</p><p> return ERROR;</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> if(t->na
37、me.count<p->name.count)</p><p><b> {</b></p><p> printf("\n現(xiàn)存商品容量不足,無(wú)法賣出。");</p><p> return ERROR;</p><p><b> }</b></p>
38、;<p><b> else</b></p><p><b> {</b></p><p> t->name.count-=p->name.count;</p><p> printf("\n此類文具賣出成功!");</p><p> retu
39、rn OK;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b
40、></p><p> t=t->next;</p><p><b> }</b></p><p><b> }</b></p><p> if(t==NULL)</p><p><b> {</b></p><p
41、> printf("\n商店沒(méi)有此類文具。");</p><p><b> }</b></p><p> return ERROR;</p><p><b> }</b></p><p> int linklist_print(linklist head)
42、 //輸出</p><p><b> {</b></p><p> linklist p1;</p><p><b> p1=head;</b></p><p> p1=p1->next;</p><p> printf("文具名稱
43、 文具類別 文具數(shù)量\n");</p><p> while(p1!=NULL)</p><p><b> {</b></p><p> printf("%4s\t%14s\t%20d",p1->name.name,p1->name.lb,p1->n
44、ame.count);</p><p> p1=p1->next;</p><p> printf("\n");</p><p><b> }</b></p><p> return OK;</p><p><b> }</b></p
45、><p> int linklist_find(linklist head) //查找</p><p><b> {</b></p><p> linklist p,p1,p2;</p><p> p1=p2=head;</p><p> p
46、2=p2->next;</p><p> p=(linklist)malloc(sizeof(listnode));</p><p> printf("\n輸入要查找的文具名稱:");</p><p> cin>>p->name.name;</p><p> while(p2!=NULL)&
47、lt;/p><p><b> {</b></p><p> if(strcmp(p2->name.name,p->name.name)==0)</p><p><b> {</b></p><p> printf("\n查找成功,輸出如下:\n");</p&
48、gt;<p> printf("文具名稱 文具類別 文具數(shù)量\n");</p><p> printf("%4s\t%14s\t%20d",p2->name.name,p2->name.lb,p2->name.count);</p><p> return OK;<
49、/p><p><b> }</b></p><p><b> else</b></p><p> p2=p2->next;</p><p><b> }</b></p><p> printf("\n查找不成功!");&l
50、t;/p><p> return ERROR;</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> linklist head;</p><p> linkli
51、st_init(head);</p><p><b> for(;;)</b></p><p><b> {</b></p><p> switch(menu_select())</p><p><b> {</b></p><p> case
52、 1: //創(chuàng)建</p><p> linklist_create(head);</p><p><b> break;</b></p><p> case 2: //存貨</p><p> linklist_inse
53、rt(head);</p><p><b> break; </b></p><p> case 3: //查詢文具</p><p> linklist_find(head);</p><p><b> break;</b></p>
54、;<p> case 4: //賣出文具</p><p> linklist_delete(head);</p><p><b> break;</b></p><p> case 5: //檢索文具</p>&l
55、t;p> linklist_print(head); </p><p><b> break;</b></p><p><b> case 6:</b></p><p> printf("\n謝謝光臨,歡迎回顧!\n");</p><p><b> br
56、eak;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 調(diào)試分析</b></p><p> 調(diào)試的過(guò)程中,對(duì)
57、程序做了幾點(diǎn)改進(jìn),增加了程序的容錯(cuò)能力,不論用戶輸入什么內(nèi)容,程序都能安全檢查。</p><p><b> 測(cè)試結(jié)果</b></p><p> 進(jìn)入演示程序后,即顯示主界面為:</p><p> 根據(jù)提示,用戶輸入選項(xiàng):</p><p> 進(jìn)入商店商品的初始化狀態(tài)</p><p><
58、b> 輸入表1和表2信息</b></p><p> 其中:結(jié)束初始化嗎? (1/0) 選擇 0 代表不結(jié)束,即繼續(xù)輸入商品信息,選擇1 代表,商品信息輸入結(jié)束.</p><p><b> 商品的存入</b></p><p> (例:文具店需進(jìn) 鋼筆 300 , 橡皮 200 )</p><
59、p> 3、商品的查詢 (查詢一種商品的信息, 這里以鋼筆為例)</p><p> 初始化時(shí),鋼筆 400 ; </p><p> 后進(jìn)貨, 鋼筆 300; </p><p> 文具店現(xiàn)有存貨為:鋼筆 700; </p><p><b> 4、商品的賣出</b></p><p&
60、gt; 以鋼筆為例: 鋼筆現(xiàn)存 700; 要賣出 200</p><p> 剩余 鋼筆 500</p><p><b> 5、商品的輸出檢索</b></p><p> 可以查看現(xiàn)庫(kù)存商品的信息</p><p><b> 6、退出管理系統(tǒng)</b></p><p>
61、;<b> 六、課程設(shè)計(jì)小結(jié):</b></p><p> 通過(guò)這次課程設(shè)計(jì),對(duì)程序設(shè)計(jì)和調(diào)試的能力有很大的提升。這次課程設(shè)計(jì)使我深刻認(rèn)識(shí)到自己專業(yè)知識(shí)的匱乏,缺乏獨(dú)立程序設(shè)計(jì)的能力。通過(guò)這次的課程設(shè)計(jì)也是我認(rèn)識(shí)到了我在程序設(shè)計(jì)方面的嚴(yán)重不足,以及專業(yè)知識(shí)的嚴(yán)重匱乏。我的程序設(shè)計(jì)思想和代碼的編寫和調(diào)試能力在此次課設(shè)期間有所提高。這樣一種更貼切實(shí)際的課程設(shè)計(jì),大大的提高了我的學(xué)習(xí)效率,希望能
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---商品管理軟件
- 文具店策劃
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 經(jīng)營(yíng)文具店經(jīng)驗(yàn) (總結(jié))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--庫(kù)存管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論