版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 課程設(shè)計報告</b></p><p> 設(shè)計題目:文具店的貨品管理 </p><p> 專 業(yè) 軟件工程 </p><p> 班 級
2、 </p><p> 學 生 </p><p> 學 號 </p><p> 2009-20109年 第 2 學期</p><p><b> 一、設(shè)計目的</b></p&g
3、t;<p> 1、能根據(jù)實際問題的具體情況,結(jié)合數(shù)據(jù)結(jié)構(gòu)課程中的基本理論和基本算法,分析并正確確定數(shù)據(jù)的邏輯結(jié)構(gòu),合理地選擇相應(yīng)的存儲結(jié)構(gòu),并能設(shè)計出解決問題的有效算法。</p><p> 2、提高程序設(shè)計和調(diào)試能力。學生通過上機實習,驗證自己設(shè)計的算法的正確性。學會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改。</p><p> 3、初步掌握軟件開發(fā)過程中問
4、題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。</p><p> 4、訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學的工作方法和作風。</p><p> 5、培養(yǎng)根據(jù)選題需要選擇學習書籍,查閱文獻資料的自學能力。</p><p><b> 二、設(shè)計內(nèi)容</b></p><p>&l
5、t;b> 文具店的貨品管理</b></p><p> 在文具店的日常管理經(jīng)營過程中,存在對各種文具管理問題。當庫存文具不足或缺貨時,需要進貨。日常銷售時,需要出庫。當盤點貨物時,需要查詢貨物的信息。請根據(jù)這些要求編寫軟件完成庫存文具的管理功能。</p><p> 文具信息可以用表1和表2來表示。</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;輸入錯誤,從新選擇(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)存商品容量不足,無法賣出。");</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商店沒有此類文具。");</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)試的過程中,對
57、程序做了幾點改進,增加了程序的容錯能力,不論用戶輸入什么內(nèi)容,程序都能安全檢查。</p><p><b> 測試結(jié)果</b></p><p> 進入演示程序后,即顯示主界面為:</p><p> 根據(jù)提示,用戶輸入選項:</p><p> 進入商店商品的初始化狀態(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> (例:文具店需進 鋼筆 300 , 橡皮 200 )</p><
59、p> 3、商品的查詢 (查詢一種商品的信息, 這里以鋼筆為例)</p><p> 初始化時,鋼筆 400 ; </p><p> 后進貨, 鋼筆 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)庫存商品的信息</p><p><b> 6、退出管理系統(tǒng)</b></p><p>
61、;<b> 六、課程設(shè)計小結(jié):</b></p><p> 通過這次課程設(shè)計,對程序設(shè)計和調(diào)試的能力有很大的提升。這次課程設(shè)計使我深刻認識到自己專業(yè)知識的匱乏,缺乏獨立程序設(shè)計的能力。通過這次的課程設(shè)計也是我認識到了我在程序設(shè)計方面的嚴重不足,以及專業(yè)知識的嚴重匱乏。我的程序設(shè)計思想和代碼的編寫和調(diào)試能力在此次課設(shè)期間有所提高。這樣一種更貼切實際的課程設(shè)計,大大的提高了我的學習效率,希望能
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---商品管理軟件
- 文具店策劃
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
- 經(jīng)營文具店經(jīng)驗 (總結(jié))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--庫存管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
評論
0/150
提交評論