




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件技術基礎課程設計文具店的貨品管理一 目的利用軟件技術基礎課程中鏈表的知識設計一個倉庫貨品管理系統,利用C/C+等語言進行程序設計,并規(guī)范地完成課程設計報告。通過課程設計,鞏固和加深對鏈表的查找增加等理論知識的理解;掌握現實復雜問題的分析建模和解決方法(包括問題描述、系統分析、設計建模、代碼實現、結果分析等);提高利用計算機分析解決綜合性實際問題的基本能力。二 需求分析在文具店的日常經營過程中,存在對各種文具管理問題。當庫存文具不足或缺貨時,需要進貨。日常銷售時,需要出庫。當盤點貨物時,需要查詢貨物信息。請根據這些要求編寫軟件完成庫存文具的管理功能。所以每件文具有類別(如001、ddd、aa
2、a)、名稱(如文具、紙張、工具)和數量(如10、11、12)三個屬性。請采用鏈表實現以下功能:(1)初始化文具表;(2)文具入庫;(3)文具出庫;(4)查詢文具信息;(5)顯示文具信息;(6)添加新文具類別;三 概要設計1.本程序包含兩個模塊:(1)主程序模塊:main()初始化空鏈表;Switch(菜單選擇函數)Case.判斷菜單選擇函數返回值選擇對應的功能函數 (2)各個功能函數:int menu();菜單選擇函數,返回一個值sn,在后來的主函數用switch調用。int init(linklist &head);初始化空鏈表;int create(linklist &he
3、ad);新建節(jié)點。int insert(linklist &head);修改(增加)節(jié)點內的信息。int find(linklist head);查找節(jié)點信息。int sale(linklist &head);修改節(jié)點信息(減少數量)。int dispaly(linklist head);打印所有節(jié)點信息。int addnew(linklist &head);添加新的節(jié)點。2 主界面設計當輸入相應的操作字符(比如:1-7),通過在主函數中選擇并調用對應的子函數程序以及其他函數中的輔助調用,實現并完成各自的功能操作(比如:添加、查找、刪除、顯示等)。系統主界面如下:如圖2
4、.1所示圖1 菜單顯示選擇界面3.系統功能圖系統功能圖如圖3.1所示。退出管理倉庫庫存信息管理系統初始倉庫信息添加文具數量查詢庫存信息減少文具數量顯示庫存信息添加新文具 圖2.系統功能四 詳細設計1、儲存結構設計依據給定的數據格式,倉庫庫存信息由三個字段來組成,即物品名稱、類別和數量。如: 名稱 類別 數量 本子 A 100通過C語言把庫存物品信息用單鏈表形式連接,源程序要有適當的注釋,使程序易于閱讀,進行儲存。同時進行各種修改,完成倉庫庫存信息管理等功能。typedef structchar name10;char lb10;int count;store;typedef struct no
5、destore Stationery;struct node *next;listnode, *linklist;2、 系統功能設計依據程序的數據結構和功能,遵照“自頂向下”原則,描述該程序的層次結構,在總體上包括數據的插入、添加、刪除以及數據的顯示等功能模塊。初始化空鏈表:head = (linklist)malloc(sizeof(listnode);申請頭結點空間,if (!head)判斷頭結點是否為空,為空則退執(zhí)行exit(ERROR);不為空則執(zhí)行head->next = NULL;給頭結點的指針域指向null即可。因為函數是整型所有返回整型數。return OK;/OK=1菜
6、單選擇函數:即menu()函數,其中while(int)sn!=sn|sn<1|sn>7)判斷輸入的數據是不是整型而且是大于等于1小于等于7,若是則返回輸入的值return sn;,若不是則提示輸入錯誤重新輸入,其中用到的遞歸的思想,以下函數除了退出管理系統都用到了這個思想!(1) 初始化倉庫:即添加新的節(jié)點,先定義兩個linklist型指針變量p, rear,其中rear=head方便遍歷原來的鏈表,讓rear指針指向原鏈表的最后一個空節(jié)點,rear->next = NULL;;然后給p申請內存空間p=(linklist)malloc(sizeof(listnode);之后
7、提示輸入并保存輸入至p內,再然后將p的指針域指向的下一個節(jié)點置空,rear的下一個節(jié)點賦值為p,就完成了添加操作。完成上述操作后提示判斷是否繼續(xù),利用while(flag)控制是否繼續(xù)執(zhí)行添加節(jié)點至尾部的操作。具體函數如下圖3.初始化倉庫(2) 存入函數功能:查找要添加的文具,添加想要的數量;若倉庫無此文具則提 示重新輸入。和添加新的節(jié)點異曲同工,同樣先定義指針變量linklist p, p1, p2;其p2用來遍歷判斷鏈表中是否存在輸入的數據的name屬性的節(jié)點,p用來創(chuàng)建一個新的節(jié)點以便于將輸入的數據與原鏈表的數據比較if (strcmp(p2->S, p
8、->S) = 0);,而p1作為交換變量的中間容器;程序運行提示輸入并保存至p的name屬性里,然后判斷是不是p2遍歷到NULL了,若不是判斷當前p2是否與輸入相同,相同則提示輸入數量并保存cin >> p->Stationery.count;p2->Stationery.count += p->Stationery.count;,最后提示成功并顯示當前此類貨物的庫存printf("n存貨成功!現在的庫存為:%d",p2->Stationery.count);;若p2遍歷到NULL還是沒有找到和p相等的n
9、ame屬性則退出并返回錯誤。具體程序如下圖4.添加文具庫存(3) 查詢函數功能:按照指定關鍵字,對相應倉庫物品信息進行查找并顯示。具體實現方法與存入差不多,先定義新的節(jié)點:linklist p, p1, p2;,一個遍歷p2一個保存輸入p一個用于交換變量的中間容器p1,判斷輸入與遍歷p2是否相等:相等則輸出當前p2的節(jié)點信息,不等則提示錯誤并重新輸入printf("n查找不成功!");find(head);具體程序如下:圖5.查詢文具信息(4) 出貨函數功能:查找要添加的文具,若倉庫中有則減少想要的數量;若無則提示重新輸入,和入庫類似,但是如果庫存有則提示當前此類物品的庫存
10、量并輸入數量,若數量大于庫存則提示錯誤!具體程序核心部分如下:圖6.減少庫存(5) 顯示函數功能:輸出表中所有結點的信息。用到遍歷的思想,上述模塊已經實現,具體如下圖7.顯示所有文具信息(6) 添加新文具函數功能:添加新的文具信息,若倉庫中有則提示錯誤重新輸入;若無則添加新信息。同樣用到了遍歷的思想和添加新的節(jié)點信息,上述程序都已詳細闡述,具體程序如下圖8.添加新文具信息(7) 退出管理函數功能:延時5秒退出系統。用到了系統延時,延時后exit(0);正常退出。圖9.退出管理系統 (8)主函數功能:調用以上子函數,并用開關語句switch語句進行選擇性的調用,switch內部參數是menu()
11、返回的值。3、 模塊設計系統子程序設計int menu();菜單選擇函數int init(linklist &head);初始化鏈表int create(linklist &head);創(chuàng)建倉庫,初始化倉庫文具信息int insert(linklist &head);添加文具數量int find(linklist head);查找文具信息int sale(linklist &head);賣出文具int dispaly(linklist head);顯示倉庫所有文具信息int addnew(linklist &head); 添加新的文具信息 4、 詳細程序
12、設計 4.1 數據類型定義 結構體定義: typedef structchar name10;char lb10;int count; store; 4.2 系統主要子程序詳細設計 1.主函數:主要由switch語句組成,便于函數調用: switch (menu()case 1: /創(chuàng)建create(head);break;case 2: /存貨insert(head);break;case 3: /查詢文具find(head);break;case 4: /賣出文具sale(head);break;case 5: /檢索文具dispaly(head);break;case 6:addnew(
13、head); /添加新文具信息break;case 7:printf("n謝謝使用管理系統!5秒后退出n");/退出管理Delay(5*1000); /延時5秒exit(0);break; 2.管理系統界面函數;按鍵輸入判斷,若是1-7則返回輸入值,若不是則提示錯誤重新輸入!int menu()int sn;printf("n 文具店商品管理 n");printf("=n");printf(" 1.商店商品的初始 n");printf(" 2.商品的存入 n");printf(" 3.
14、商品的查詢 n");printf(" 4.商品的賣出 n");printf(" 5.商品的輸出檢索 n");printf(" 6.添加新文具信息 n");printf(" 7.退出管理系統 n");printf("n=n");printf("選擇1-7:");scanf("%d",&sn);while(int)sn!=sn|sn<1|sn>7)printf("n輸入的不是整數或者超出范圍,重新輸入:");s
15、canf("%d",&sn);fflush(stdin); return sn;五 調試分析各功能的運行結果:1初始化倉庫信息:開始的時候因為菜單選擇只加入了范圍整數判斷而且沒有加入判斷錯誤跳出,導致出現一致刷屏:圖10.初始化出錯后來將鍵盤輸入強制類型轉換,清楚鍵盤緩沖區(qū)并且判斷錯誤就跳出再提示重新輸入,效果明顯改善。2增加文具數量:選擇2,當輸入的文具名稱不是倉庫中已有的就提示輸入錯誤重新輸入;添加成功就提示并顯示現在這個文具庫存。圖11原來的入庫圖12.現在的入庫3查詢信息:選擇3, 進行查詢對應的文具信息,若倉庫無輸入的文具名則提示重新輸入。4減少文具數量:
16、選擇4,提示輸入要求減少的文具,若沒有此類文具則提示重新輸入;若有則減少此類文具數量,提示成功并顯示庫存。入庫出庫操作一開始都沒有人性化的提示正確輸入的文具的庫存,后來發(fā)現并及時解決了。5.商品輸出檢索:選擇5,打印鏈表所有節(jié)點。6.添加新的文具信息:選擇6,添加新的文具信息。圖13添加新的文具信息7.退出管理系統,延時退出,如下圖所示:圖14退出管理系統六 測試結果所有功能都測試完畢,各項結果都符合要求,此貨品管理系統基本滿足要求。各功能的運行結果如下:1初始化倉庫信息:在主菜單中選擇1,進入建立庫存信息表。如圖5.1所示。圖15初始化倉庫2增加文具數量:選擇2,當輸入的文具名稱不是倉庫中已
17、有的就提示輸入錯誤重新輸入;添加成功就提示并顯示現在這個文具庫存。如圖5.2所示圖16增加數量3查詢信息:選擇3, 進行查詢對應的文具信息,若倉庫無輸入的文具名則提示重新輸入。如圖5.3所示。 圖17查詢信息4減少文具數量:選擇4,提示輸入要求減少的文具,若沒有此類文具則提示重新輸入;若有則減少此類文具數量,提示成功并顯示庫存。如圖5.4所示圖18刪除和顯示當前庫存信息5.商品輸出檢索:選擇5,打印鏈表所有節(jié)點。如圖5.5所示。圖19 退出系統6. 添加新的文具信息:選擇6,添加新的文具信息。圖20添加新的文具信息7. 退出管理系統,延時退出,如下圖所示:圖21退出管理系統七 用戶使用說明用戶使用的時候按照提示語句輸入即可,若輸入錯誤或者不符合要求都會及時提示并重新輸入!八 課程設計總結這次課程設計對我來說是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作生意合同范本
- 2025年天津年貨運從業(yè)資格證模擬考試
- 買裝修材料合同范本
- 與機關單位合作合同范例
- 村級修橋合同范本
- 產品研發(fā)定制合同范本
- 信息咨詢收費合同范本
- 伙合合同范本
- 勞動合同范本 銀川
- 代理注冊服務合同范本
- 醫(yī)療機構消毒技術規(guī)范
- 主語從句趣味課件
- 肝脾破裂搶救預案及流程
- 小學生品德發(fā)展與道德教育PPT完整全套教學課件
- 汽車修理廠維修結算清單
- 《外國法制史》課件
- 新能源汽車維護與故障診斷全套課件
- 《計算機應用基礎》教學教案-02文字錄入技術
- 2023年1月浙江省高考英語真題及詳細解析
- 2023年大疆科技行業(yè)發(fā)展概況分析及未來五年行業(yè)數據趨勢預測
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院院感知識培訓
評論
0/150
提交評論