




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西安建筑科技大學(xué)課程設(shè)計(jì)(論文)課程設(shè)計(jì)(論文(lnwn)) 題 目:商店(shngdin)存貨管理系統(tǒng) 院 (系):信息(xnx)與控制工程學(xué)院專業(yè)班級(jí): 計(jì)算機(jī)201201 姓 名: 高美虹 學(xué) 號(hào): 120620103 指導(dǎo)教師: 張維琪 2014年 6 月 27日第 頁西安建筑科技(kj)大學(xué)課程設(shè)計(jì)(論文(lnwn))任務(wù)書 專業(yè)(zhuny)班級(jí): 計(jì)算機(jī)1201 學(xué)生姓名: 高美虹 指導(dǎo)教師(簽名): 一、課程設(shè)計(jì)(論文)題目商店存貨管理系統(tǒng)說明:使用線性表實(shí)現(xiàn)商店存貨的管理二、本次課程設(shè)計(jì)(論文)應(yīng)達(dá)到的目的數(shù)據(jù)結(jié)構(gòu)是實(shí)踐性很強(qiáng)的課程。課程設(shè)計(jì)是加強(qiáng)學(xué)生實(shí)踐能力的一個(gè)強(qiáng)有力手段
2、。課程設(shè)計(jì)要求學(xué)生在完成程序設(shè)計(jì)的同時(shí)能夠?qū)懗霰容^規(guī)范的設(shè)計(jì)報(bào)告。嚴(yán)格實(shí)施課程設(shè)計(jì)這一環(huán)節(jié),對(duì)于學(xué)生基本程序設(shè)計(jì)素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。本題目要達(dá)到目的:熟練掌握線性表的實(shí)現(xiàn)。三、本次課程設(shè)計(jì)(論文)任務(wù)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計(jì)要求等) 輸入數(shù)據(jù):5種商品的具體信息。1建立一個(gè)文件,包括5個(gè)種類的貨物情況。能對(duì)商品信息進(jìn)行擴(kuò)充(追加)、修改和刪除以及簡(jiǎn)單的排序;2擴(kuò)充商品數(shù)量,完成系統(tǒng)查詢功能;3提供人機(jī)交互的界面。四、應(yīng)收集的資料及主要參考文獻(xiàn): 由于本課程沒有安排“課內(nèi)上機(jī)”學(xué)時(shí),因此,在課程設(shè)計(jì)之前必須自己已經(jīng)上機(jī)練習(xí)了“線性表”
3、的基本操作。 參考文獻(xiàn):1. Robert L. Kruse,Data Structures And Program Design in C+,高等教育出版社,2001.5.2. 嚴(yán)蔚敏等編著,數(shù)據(jù)結(jié)構(gòu)(C語言版),清華大學(xué)出版社,1997.4;3. 趙文靜等編著,數(shù)據(jù)結(jié)構(gòu)與算法,科學(xué)出版社,2005.08;4. 孫鑫等編著,VC+深入詳解,電子工業(yè)出版社,2007.7 五、審核批準(zhǔn)意見教研室主任(簽字) 設(shè)計(jì)(shj)總說明二十一世紀(jì),計(jì)算機(jī)技術(shù)日漸成熟并逐步濕透至我們生活中的各個(gè)方面,作為計(jì)算機(jī)應(yīng)用的部分,使用計(jì)算機(jī)對(duì)商店存貨信息進(jìn)行管理,具有(jyu)手工管理所無法比擬的優(yōu)點(diǎn),例如:檢索
4、迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等,這些優(yōu)點(diǎn)能夠極大的提高商店信息管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。本次(bn c)設(shè)計(jì)主要用數(shù)據(jù)結(jié)構(gòu)和類闡述一個(gè)功能比較強(qiáng)大的的商店存貨信息管理系統(tǒng)的后臺(tái)操作過程及一些關(guān)鍵技術(shù),商店存貨管理系統(tǒng)的實(shí)現(xiàn)主要用到了單鏈表,類,對(duì)象,指針,首先創(chuàng)建商品信息類型的鏈表,然后將商品信息存到鏈表中去,再到鏈表中對(duì)商品信息象進(jìn)行增、刪、改、查、排序,分別由系統(tǒng)的添加模塊、刪除模塊、修改模塊、查詢模塊和排序模塊實(shí)現(xiàn),程序中用到了遍歷函數(shù)、拷貝構(gòu)造函數(shù)和賦值運(yùn)算符重載函數(shù),可以遍歷商品的每個(gè)節(jié)點(diǎn)并實(shí)現(xiàn)商品信息的拷貝。 本
5、文檔主要介紹了商店存貨管理系統(tǒng)的設(shè)計(jì)目的、問題描述、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、調(diào)試分析、使用說明、設(shè)計(jì)總結(jié)、參考文獻(xiàn)等。本程序?qū)崿F(xiàn)了基于DOS界面的商店存貨管理系統(tǒng)。關(guān)鍵字:數(shù)據(jù)結(jié)構(gòu)、類、單鏈表、節(jié)點(diǎn)、遍歷 目錄(ml) TOC o 1-3 h z u HYPERLINK l _Toc367713036 1.設(shè)計(jì)(shj)目的 PAGEREF _Toc367713036 h 1 HYPERLINK l _Toc367713037 2.問題(wnt)描述 PAGEREF _Toc367713037 h 2 HYPERLINK l _Toc367713038 3.需求分析 PAGEREF _T
6、oc367713038 h 2 HYPERLINK l _Toc367713039 4.概要設(shè)計(jì)3 HYPERLINK l _Toc367713040 5.詳細(xì)設(shè)計(jì) PAGEREF _Toc367713040 h 7 HYPERLINK l _Toc367713041 6.調(diào)試分析 PAGEREF _Toc367713041 h 16 HYPERLINK l _Toc367713042 7.使用說明 PAGEREF _Toc367713042 h 19 HYPERLINK l _Toc367713043 8.設(shè)計(jì)總結(jié) PAGEREF _Toc367713043 h 19 HYPERLINK l
7、 _Toc367713044 9.參考文獻(xiàn) PAGEREF _Toc367713044 h 24第 頁 共 24 頁第 頁 共 38 頁數(shù)據(jù)結(jié)構(gòu)(sh j ji u)課程設(shè)計(jì)-商店(shngdin)存貨管理系統(tǒng)1.設(shè)計(jì)(shj)目的“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)一門十分重要的專業(yè)技術(shù)基礎(chǔ)課,計(jì)算機(jī)科學(xué)各領(lǐng)域及有關(guān)的應(yīng)用軟件都要使用到各種數(shù)據(jù)結(jié)構(gòu)。對(duì)于從事計(jì)算機(jī)科學(xué)及其應(yīng)用的科技工作者來說,數(shù)據(jù)結(jié)構(gòu)與算法是必須透徹地掌握的重要基礎(chǔ)。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的最終目的是解決實(shí)際的應(yīng)用問題,特別是非數(shù)值計(jì)算類型的應(yīng)用問題。課程設(shè)計(jì)是加強(qiáng)學(xué)生實(shí)踐能力的一個(gè)強(qiáng)有力手段。課程設(shè)計(jì)所安排的題目,在難度和深度方
8、面都大于平時(shí)的上機(jī)訓(xùn)練,要求同學(xué)在完成設(shè)計(jì)和編寫中小型軟件的過程中,深化對(duì)數(shù)據(jù)結(jié)構(gòu)與算法課程中基本概念、理論和方法的理解;訓(xùn)練綜合運(yùn)用所學(xué)知識(shí)處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念;使同學(xué)的程序設(shè)計(jì)與調(diào)試水平有一個(gè)明顯的提高。課程設(shè)計(jì)要求學(xué)生在完成程序設(shè)計(jì)的同時(shí)能夠撰寫比較規(guī)范的設(shè)計(jì)報(bào)告。嚴(yán)格實(shí)施課程設(shè)計(jì)這一環(huán)節(jié),對(duì)于學(xué)生基本程序設(shè)計(jì)素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。第 頁 共 38 頁第 頁 共 38頁2.問題(wnt)描述 為了實(shí)現(xiàn)對(duì)商店貨物(huw)的定量管理,設(shè)計(jì)了商店管理系統(tǒng),系統(tǒng)主要用單鏈表實(shí)現(xiàn)對(duì)商品信息(種類、價(jià)格、貨架)的增加、刪除、修改、查詢
9、和排序。程序中用到了遍歷函數(shù),可以遍歷商品的每個(gè)節(jié)點(diǎn)。該管理系統(tǒng)可以解決人工管理所不能勝任(shngrn)的許多問題,而且使用計(jì)算機(jī)對(duì)商店存貨信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn),例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)等。這些優(yōu)點(diǎn)能夠極大的提高商店信息管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。3.需求分析3.1 數(shù)據(jù)需求選擇所需的模塊:1.添加信息模塊,2.刪除信息模塊,3.修改信息模塊,4.查詢信息模塊,5.信息排序模塊,6.存入文件模塊,7.文件讀取模塊,6.退出選擇。若選擇為1,輸入商品的種類、價(jià)格、貨架和所插入的位置。若選擇為2,輸入
10、所刪除的位置,。若選擇為3,輸入商品的種類、價(jià)格、貨架和所修改的位置。若選擇為4,輸入所查詢(chxn)的位置。若選擇為6,輸入(shr)要添加的文件名稱。若選擇為7,輸入(shr)要查詢的文件名稱。第 頁 共 38 頁第 頁 共 38頁3.2 基本功能需求(xqi) 基于任務(wù)書中的開發(fā)目標(biāo)(mbio),系統(tǒng)開發(fā)的范圍確定如下:本系統(tǒng)涉及添加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行排序、文件的存入和讀取。1.輸入數(shù)據(jù)(shj):商品的具體信息:種類(5種)、價(jià)格、貨架。2.建立一個(gè)單鏈表,能對(duì)商品信息進(jìn)行擴(kuò)充(追加)、刪除、修改、查詢以及排序(按價(jià)格由低到高排);3.將已有的信息存入文件
11、,從已有文件中讀取信息;4提供人機(jī)交互的界面。3.3 非功能性需求用戶界面需求:簡(jiǎn)潔、易用、易懂、友好的用戶界面。硬件要求:裝有Visual C+6.0的計(jì)算機(jī)。可靠性需求:保證用戶在正常使用本系統(tǒng)時(shí),用戶的操作或誤操作不會(huì)產(chǎn)生數(shù)據(jù)的丟失。4.概要設(shè)計(jì)4.1 數(shù)據(jù)結(jié)構(gòu)本次設(shè)計(jì)用到的數(shù)據(jù)結(jié)構(gòu)有:?jiǎn)捂湵恚╟lass List):主要用到了數(shù)據(jù)結(jié)構(gòu)中的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)對(duì)商品(shngpn)進(jìn)行增加、刪除(shnch)、修改、查詢和排序。類(class List):此程序(chngx)是基于C+實(shí)現(xiàn)的,對(duì)鏈表的實(shí)現(xiàn)當(dāng)然也用到了類,類中的成員函數(shù)實(shí)現(xiàn)鏈表的各個(gè)功能。結(jié)構(gòu)體(struct Node):為了完成
12、鏈表的實(shí)現(xiàn),必須設(shè)一個(gè)Node作為它的一個(gè)節(jié)點(diǎn),來存儲(chǔ)商品的信息。4.2 系統(tǒng)包含的函數(shù)貨物的插入函數(shù):Error_code insert();貨物的刪除函數(shù):Error_code remove();貨物的修改函數(shù):Error_code replace();貨物的查詢函數(shù):Error_code retrieve();貨物的排序函數(shù):void sort();鏈表的構(gòu)造函數(shù):List();鏈表的析構(gòu)函數(shù):List();確定商品數(shù)量的函數(shù):int size()const;貨架判滿函數(shù):bool full()const;貨架判空函數(shù):bool empty()const;清除商品信息函數(shù):void cl
13、ear();商品遍歷函數(shù):void traverse(void (*visit)(List_entry &);鏈表的拷貝構(gòu)造函數(shù):List(const List©);賦值運(yùn)算符重載(zhn zi):void operator=(const List©);保存(bocn)商品信息到文件:void savedate(List& list);從文件讀取商品信息:void loaddate(List& list)主函數(shù)(hnsh):int main();界面函數(shù):void face()4.3 函數(shù)間的關(guān)系 Insert、remove、replace、retrieve函數(shù)都調(diào)用了set_
14、position函數(shù)來進(jìn)行檢索特點(diǎn)節(jié)點(diǎn),也都用到了full()和empty()函數(shù)來進(jìn)行判滿和判空.node是class List的節(jié)點(diǎn),用來表示商品的信息。class List通過調(diào)用Insert、remove、replace、retrieve、sort、savedate、loaddate函數(shù)實(shí)現(xiàn)對(duì)商品貨物的增加、刪除、修改、查詢、把商品信息存入文件和從文件中讀取商品信息,析構(gòu)函數(shù)List通過調(diào)用clear()函數(shù)實(shí)現(xiàn)析構(gòu)。4.4 系統(tǒng)(xtng)功能模塊圖添加商品種類添加商品價(jià)格1.添加商品信息模塊添加商品貨架要?jiǎng)h除商品種類2.刪除商品信息模塊修改后商品種類修改后商品種類3.修改商品信息模
15、塊商店存貨管理系統(tǒng)修改后商品貨架4.查詢商品信息模塊要查詢商品種類 5.商品信息排序模塊按價(jià)格從低到高依次排序輸入文件名6.存入文件模塊輸入文件名6.從文件讀取模塊8.退出選擇模塊圖4-1 系統(tǒng)(xtng)功能模塊圖5.詳細(xì)(xingx)設(shè)計(jì)5.1 結(jié)構(gòu)(jigu)體的詳細(xì)定義template struct Node string kind1;Node_entry price;Node_entry shelf;Node*next;Node();Node(string kind_1,Node_entry price2,Node_entry shelf2,Node*link);結(jié)構(gòu)體中的數(shù)據(jù)成員有
16、:kind kind1:其中(qzhng)kind是枚舉類型(分別有 cigarette,water,gum,beer,bread五種類型);Node_entry price:Node_entry是模板定義(dngy)的Node中的數(shù)據(jù)類型,price是商品的價(jià)格;Node_entry shelf:Node_entry是模板定義的Node中的數(shù)據(jù)類型,shelf是商品所處(su ch)的貨架;Node*next:Node_entry是模板定義的Node中的數(shù)據(jù)類型,next指針指向下一個(gè)節(jié)點(diǎn);結(jié)構(gòu)體中的成員函數(shù)有:Node();此函構(gòu)造數(shù)定義next為空Node(kind kind2,Node
17、_entry price2,Node_entry shelf2,Node*link):此函數(shù)用來確定節(jié)點(diǎn)中數(shù)據(jù)成員的信息和所指的下一個(gè)Node節(jié)點(diǎn);5.2 系統(tǒng)函數(shù)詳細(xì)介紹貨物的插入函數(shù)Error_code insert():是實(shí)現(xiàn)對(duì)貨物信息插入的函數(shù),即實(shí)現(xiàn)給鏈表添加新節(jié)點(diǎn)的功能,分為插在表頭、表中和表尾三種情況; 貨物的刪除函數(shù)Error_code remove():是實(shí)現(xiàn)對(duì)貨物信息進(jìn)行刪除的函數(shù),即實(shí)現(xiàn)對(duì)鏈表的節(jié)點(diǎn)刪除的功能,分為在表頭刪、表中刪和表尾刪三種情況; 貨物(huw)的修改函數(shù)Error_code replace():是實(shí)現(xiàn)對(duì)貨物信息進(jìn)行修改的函數(shù),即實(shí)現(xiàn)對(duì)鏈表的節(jié)點(diǎn)的各項(xiàng)信
18、息進(jìn)行修改; 貨物的查詢函數(shù)Error_code retrieve():是實(shí)現(xiàn)對(duì)指定貨物的信息進(jìn)行(jnxng)查詢的函數(shù),即實(shí)現(xiàn)對(duì)鏈表的節(jié)點(diǎn)的各項(xiàng)信息進(jìn)行查詢; 貨物的排序函數(shù)void sort():是實(shí)現(xiàn)對(duì)表中所有貨物的信息按價(jià)格由低到高進(jìn)行(jnxng)排序的函數(shù),所使用的排序方法為簡(jiǎn)單插入排序鏈表辦;鏈表的構(gòu)造函數(shù)List():對(duì)商品信息進(jìn)行初始化;鏈表的析構(gòu)函數(shù)List():調(diào)用clear()函數(shù)將表中的空間釋放掉;確定商品數(shù)量的函數(shù)int size()const:顧名思義,確定單鏈表中所存商品的數(shù)量;貨架判滿函數(shù)bool full()const:顧名思義,判斷貨架是否已滿;貨架判空
19、函數(shù)bool empty()const:顧名思義,判斷貨架是否為空;清除商品信息函數(shù)void clear();將鏈表中所存儲(chǔ)的商品的信息逐個(gè)清空;商品遍歷函數(shù)void traverse(void (*visit)(List_entry &):將鏈表中已存貨物的信息挨個(gè)輸出;鏈表的拷貝構(gòu)造函數(shù)List(const List©);將已有商店存貨信息系統(tǒng)拷貝給另一個(gè)商店存貨信息系統(tǒng);賦值運(yùn)算符重載:void operator=(const List©)將賦值運(yùn)算符進(jìn)行重載,使兩個(gè)存貨信息系統(tǒng)之間可以(ky)相互賦值;保存(bocn)信息到文件void savedate(List& l
20、ist):將已經(jīng)存在的商品信息保存到文件中,以便下次使用;從文件讀取信息(xnx):void loaddate(List& list):在已經(jīng)存在的文件中讀取商品信息。主函數(shù)int main():將函數(shù)的各個(gè)功能寫成一個(gè)循環(huán)模式,以方便用戶選擇各功能模塊進(jìn)行使用;界面函數(shù)void face();將函數(shù)的功能界面輸出,以方便用戶選擇各功能模塊進(jìn)行使用;5.3 系統(tǒng)功能模塊介紹5.3.1添加商品信息模塊 首先選擇所要添加的位置,然后選擇要添加商品的種類、價(jià)格和所處貨架,再調(diào)用List的insert()函數(shù)對(duì)商品信息進(jìn)行添加,最后對(duì)所添加的商品信息進(jìn)行顯示并按任意鍵繼續(xù)。5.3.2刪除商品信息模塊
21、首先選擇所要?jiǎng)h除的位置,再調(diào)用List的remove()函數(shù)對(duì)商品信息進(jìn)行刪除,最后對(duì)所刪除的商品信息進(jìn)行顯示并按任意鍵繼續(xù)。5.3.3修改商品信息模塊 首先選擇所要修改的位置,然后選擇要修改商品的種類、價(jià)格(jig)和所處貨架,再調(diào)用List的replace()函數(shù)對(duì)商品信息進(jìn)行(jnxng)修改,最后對(duì)修改后商品的信息進(jìn)行顯示并按任意鍵繼續(xù)。5.3.4查詢(chxn)商品信息模塊 首先選擇所要查詢的位置,再調(diào)用List的retrieve()函數(shù)對(duì)商品信息進(jìn)行查詢,最后對(duì)所查詢的商品信息進(jìn)行顯示并按任意鍵繼續(xù)。5.3.5商品信息排序模塊 調(diào)用List的void sort()函數(shù)對(duì)商品信息進(jìn)行
22、排序,排序所用的算法是簡(jiǎn)單插入排序的鏈表版,按照商品價(jià)格由低到高對(duì)List中的貨物進(jìn)行排序,最后對(duì)排序后的商品信息進(jìn)行顯示。5.3.6存入文件模塊 選擇要存入的文件名,將已有商品信息存入文件。5.3.7商品信息排序模塊 選擇要讀取的文件名,從已有文件中讀取商品信息。5.3.8退出選擇模塊 退出商店存貨管理系統(tǒng)的使用。5.4 具體模塊設(shè)計(jì)5.4.1添加商品信息模塊開始輸入添加模塊編號(hào)輸入插入的位置和商品信息調(diào)用List的插入函數(shù) 顯示插入的信息是否繼續(xù)添加 是 結(jié)束 否圖5-1商品信息的插入(ch r)流程圖5.4.2刪除(shnch)商品信息模塊(m kui)開始輸入刪除模塊編號(hào)輸入刪除的位置
23、調(diào)用List的刪除函數(shù) 顯示刪除的信息是否繼續(xù)添加 是 結(jié)束 否圖5-2商品信息的刪除(shnch)流程圖5.4.3修改(xigi)商品信息模塊(m kui)開始輸入修改模塊編號(hào)輸入修改的位置和商品信息 調(diào)用List的修改函數(shù)顯示修改后的信息 是否繼續(xù)添加 是 否結(jié)束 圖5-3商品信息的修改(xigi)流程圖5.4.4查詢(chxn)商品信息模塊(m kui)開始輸入查詢模塊編號(hào)輸入查詢的位置 調(diào)用List的修改函數(shù)顯示查詢的信息 是否繼續(xù)添加 是 結(jié)束 否圖5-4商品信息的查詢(chxn)流程圖5.4.5商品信息排序(pi x)模塊(m kui)開始輸入排序模塊編號(hào)調(diào)用List的排序函數(shù) 顯
24、示排好序的信息 結(jié)束 圖5-5商品信息的排序(pi x)流程圖5.4.6寫入文件(wnjin)模塊開始輸入要寫入的文件名用savedate函數(shù)顯示寫入文件成功 結(jié)束 圖5-6寫入文件(wnjin)流程圖5.4.7讀取文件信息模塊開始輸入要讀取的文件名調(diào)用savedate函數(shù)顯示讀取文件成功 結(jié)束 圖5-7讀取文件(wnjin)流程圖6.調(diào)試(dio sh)分析本軟件是基于Windows的編程開發(fā)(kif),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好準(zhǔn)備工作:需要安裝Visual C+6.0的計(jì)算機(jī)一臺(tái);配置好之后,在Visual C+6.0環(huán)境下進(jìn)行軟件的調(diào)試。測(cè)試數(shù)據(jù):商品信
25、息輸入:在“插入商品信息”模塊中,根據(jù)主界面提示,鍵入數(shù)字1,確定,再按提示進(jìn)行操作測(cè)試,添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)文本中有保存該記錄,如果錯(cuò)誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。例如(lr):輸入1后確定,程序顯示“請(qǐng)輸入(shr)你要插入(ch r)的位置:”,鍵入位置如2,繼續(xù)操作,假設(shè)數(shù)據(jù)為:cigarette,12,1,程序正常運(yùn)行。退出保存。商品信息刪除:在“刪除商品信息”模塊中,根據(jù)主界面提示,鍵入數(shù)字2,確定,再按提示進(jìn)行操作測(cè)試,刪除一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)文本中有保存該記錄,如果錯(cuò)誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。例如:輸入2后確定,程
26、序顯示“請(qǐng)輸入你要?jiǎng)h除的數(shù)據(jù)的位置:”,鍵入位置如2,繼續(xù)操作,假設(shè)數(shù)據(jù)為:cigarette,12,1,程序正常運(yùn)行。退出保存。商品信息修改:在“商品信息修改”模塊中,根據(jù)主界面提示,鍵入數(shù)字3,確定,再按提示進(jìn)行操作測(cè)試,輸入修改位置及修改后的信息,如果錯(cuò)誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。例如:輸入3后確定,程序顯示“請(qǐng)輸入你要修改的位置:”,鍵入位置如2,繼續(xù)操作,假設(shè)數(shù)據(jù)為:cigarette,12,1,程序正常運(yùn)行。退出保存。商品信息的查詢:按商品信息在單鏈表中所處的位置進(jìn)行查詢。在“商品信息查詢”模塊中,根據(jù)主界面提示,鍵入數(shù)字4,確定,再按提示進(jìn)行操作測(cè)試,
27、輸入查詢的位置,如果錯(cuò)誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。例如(lr):輸入4后確定(qudng),程序顯示“請(qǐng)輸入(shr)你要查詢的位置:”,鍵入位置如2,繼續(xù)操作,假設(shè)輸出數(shù)據(jù)為:cigarette,12,1,程序正常運(yùn)行。退出保存。商品信息的排序:按商品價(jià)格由低到高進(jìn)行排序。在“商品信息排序”模塊中,根據(jù)主界面提示,鍵入數(shù)字5,確定,觀察是否能正常顯示商品信息,否則修改程序再進(jìn)行調(diào)試。例如:輸入5后確定,假設(shè)輸出數(shù)據(jù)為:cigarette,12,1;cigarette,13,2;cigarette,14,3.程序正常運(yùn)行。退出保存。商品信息加入文件:根據(jù)主界面提示,
28、輸入要加入的文件名,確定,觀察是否能正常執(zhí)行,否則修改程序再進(jìn)行調(diào)試。例如:輸入a后確定,假設(shè)輸出數(shù)據(jù)為:加入文件成功,程序正常運(yùn)行。退出保存。商品信息從文件中讀取:根據(jù)主界面提示,輸入要讀取的文件名,確定,觀察是否能正常執(zhí)行,否則修改程序再進(jìn)行調(diào)試。例如:輸入a后確定,假設(shè)輸出數(shù)據(jù)為:讀取文件成功,程序正常運(yùn)行。退出保存。算法改進(jìn)設(shè)想:在程序設(shè)計(jì)前期,我們并沒有用txt文件來保存商品信息。經(jīng)過我不斷的修改以及調(diào)試后,該程序總算可以進(jìn)行txt文本的讀出與寫入,并且添加商品信息后可以直接將信息保存在txt文本文件中。7.使用(shyng)說明7.1主菜單(ci dn)圖7-1主菜單(ci dn)
29、7.2添加商品信息圖7-2添加(tin ji)商品信息7.3刪除(shnch)商品信息圖7-3刪除(shnch)商品信息7.4修改商品信息圖7-4修改(xigi)商品信息7.5查詢(chxn)商品信息圖7-5查詢(chxn)商品信息7.6商品信息排序圖7-6商品信息排序(pi x)7.7商品信息存入(cn r)文件圖7-7商品信息存入(cn r)文件圖7-8文件中的信息7.8商品信息從文件中讀取圖7-9商品信息從文件中讀取源程序# include# include#include#include#include#include#include using namespace std;enum
30、Error_codesuccess,fail,range_error,underflow,overflow,fatal,not_present,duplicate_error,entry_inserted,entry_found,internal_error;/enum kindcigarette,water,gum,beer,bread;template struct Node string kind1;Node_entry price;Node_entry shelf;Node*next;Node();Node(string kind_1,Node_entry price2,Node_en
31、try shelf2,Node*link);template Node:Node()next=NULL;template Node:Node(string kind_1,Node_entry price2,Node_entry shelf2,Node *link=NULL)kind1=kind_1;price=price2; shelf=shelf2;next=link;templateclass Listpublic:Error_code insert(List& list,const string &kind_1,const List_entry &price2,const List_en
32、try &shelf2); Error_code remove(List& list,string &kind_1,List_entry &price2,List_entry &shelf2);Error_code replace(List& list,const string &kind_1,const List_entry &price2,const List_entry &shelf2);Error_code retrieve(List& list,string &kind_1,List_entry &price2,List_entry &shelf2)const;void sort()
33、;List();int size()const;bool full()const;bool empty()const;void clear();void traverse(void (*visit)(List_entry &);List();List(const List©);void operator=(const List©);void savedate(List& list);void loaddate(List& list);protected:int count; Node*head;Node*set_position(int position)const;templ
34、ate Error_code List:insert(List& list,const string &kind_1,const List_entry &price2,const List_entry &shelf2)int position=list.size();if(positioncount)return fail; Node*new_node,*previous,*following;if(position0)previous=set_position(position-1);following=previous-next;else following=head;new_node=n
35、ew Node(kind_1,price2,shelf2,following);if(new_node=NULL)return overflow;if (position=0)head=new_node;elseprevious-next=new_node;count+;return success;template Error_code List:remove(List& list,string &kind_1,List_entry &price2,List_entry &shelf2)string kin_d;int position;coutkin_d;coutendl;Node* h=
36、head;for(position=0;h-kind1!=kin_d;position+)h=h-next;Node*prior,*current;if(count=0)return fail;if(position=count)return fail;if(position0)prior=set_position(position-1);current=prior-next; prior-next=current-next;elsecurrent=head;head=head-next;kind_1=current-kind1;price2=current-price;shelf2=curr
37、ent-shelf;delete current;count-;return success;template Error_code List:replace(List& list,const string &kind_1,const List_entry &price2,const List_entry &shelf2)string kin_d;int position;coutkin_d;coutendl;Node* h=head;for(position=0;h-kind1!=kin_d;position+)h=h-next; Node *current;if(position=coun
38、t)return fail;current=set_position(position); current-kind1=kind_1;current-price=price2;current-shelf=shelf2;return success;template Error_code List:retrieve(List& list,string &kind_1,List_entry &price2,List_entry &shelf2)conststring kin_d;int position;coutkin_d;coutendl;Node* h=head;for(position=0;
39、h-kind1!=kin_d;position+)h=h-next;Node *current;if(position=count)return fail;current=set_position(position);kind_1=current-kind1;price2=current-price;shelf2=current-shelf;return success;template void List:sort()Node*first_unsorted,*last_sorted,*current,*trailing;if(head!=NULL)last_sorted=head;while
40、(last_sorted-next!=NULL)first_unsorted=last_sorted-next;if(first_unsorted-priceprice)last_sorted-next=first_unsorted-next;first_unsorted-next=head;head=first_unsorted;elsetrailing=head;current=trailing-next;while(first_unsorted-pricecurrent-price)trailing=current;current=trailing-next;if(first_unsor
41、ted=current)last_sorted=first_unsorted;elselast_sorted-next=first_unsorted-next;first_unsorted-next=current;trailing-next=first_unsorted;Node* q=head;cout 排序(pi x)后的信息:endl;for(int i=0;q;i+)cout 商品(shngpn)類型 商品價(jià)格 商品貨架endl; cout ;coutkind1;cout ; coutprice; cout ; coutshelf;coutendlnext;system(pause)
42、;coutn;coutendl;template List:List()count=0;head=NULL;template int List:size()constreturn count;template bool List:full()constreturn false;template bool List:empty()constreturn count=0;template void List:clear()Node *p,*q;for(p=head;p;p=q)q=p-next;delete p;count=0; head=NULL;template void List:trave
43、rse(void (*visit)(List_entry &)Node *q;for(q=head;q;q=q-next);template List:List()clear();template List:List(const List©)count=copy.count; Node*new_node,*old_node=copy.head;if(old_node=NULL)head=NULL;elsenew_node=head=new Node(old_node-entry);while(old_node-next!=NULL)old_node=old_node-next;new_
44、node-next=new Node(old_node-entry);new_node=new_node-next;template void List:operator=(const List©)List new_copy(copy);clear;count=new_copy.count;head=new_copy.head;new_copy.count=0;new_copy.head=NULL;template Node*List:set_position(int position)constNode*q=head;for(int i=0;inext;return q;void w
45、rite_entry(char &c)coutc;void first_face()cout endl;cout endl ttendl tt endl tt 商店(shngdin)存貨管理系統(tǒng) endl tt endl tt 1. 商品(shngpn)增加 endl tt endl tt 2. 商品(shngpn)刪除 endl tt endl tt 3. 商品修改 endl tt endl tt 4. 商品查詢 endl tt endl tt 5. 商品排序 endl tt endl tt 6. 存入文件 endl tt endl tt 7. 文件讀取endl tt endl tt 8.
46、退出系統(tǒng) endl tt endl tt endl endl tt;template void List:savedate(List& list)int position;ofstream out;out.open(file.txt);out種類setw(10)價(jià)格setw(10)貨架endl;Node* h=head;for(position=0;h;position+)outkind1setw(12)pricesetw(12)shelfnext;cout成功存入!endl;template void List:loaddate(List& list)/從文件中讀取商品信息ifstream
47、file;int position;char fname41;cout請(qǐng)輸入(shr)讀取的文件名:fname;file.open(fname,ios:in);if(!file)cout打開(d ki)文件失?。ndl;cin.get();elseNode* h=head; for(position=0;h;position+)if(file&!file.eof()file.read(reinterpret_cast(&list),sizeof(list);if(!list.empty() h=h-next;file.close();cout讀取成功(chnggng)!endl;int ma
48、in()int select;string kind1;int price;int shelf;List c_list; do first_face();coutselect; coutendl; switch (select) case 1: coutkind1; coutprice; coutshelf; coutendl; c_list.insert(c_list,kind1,price,shelf);cout 所添加(tin ji)的信息為:endl; cout 商品類型(lixng) 商品價(jià)格 商品貨架endl; cout ;coutkind1;cout ; coutprice; cout ; coutshelf; cout endl endl t該商品已經(jīng)添加成功 endl endl t; system(pause); coutn; coutendl;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030面食行業(yè)競(jìng)爭(zhēng)格局分析及投資前景與戰(zhàn)略規(guī)劃研究報(bào)告
- 2025-2030年食材配送產(chǎn)業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030年月餅產(chǎn)業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030年中國隔音玻璃行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國酯季銨鹽行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國軟墻潔凈室行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國織機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國眼部過敏治療行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國電動(dòng)汽車牽引電機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 揚(yáng)州中瑞酒店職業(yè)學(xué)院《高級(jí)植物生理學(xué)實(shí)驗(yàn)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年度新能源車充電樁建設(shè)承包掛靠合同范本3篇
- 口腔科耗材管理制度
- 《律師事務(wù)所管理辦法》(全文)
- 校長(zhǎng)國培計(jì)劃培訓(xùn)成果匯報(bào)
- DB37 5155-2019 公共建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 2025年河北省職業(yè)院校高職組“食品安全與質(zhì)量檢測(cè)”技能大賽參考試題庫(含答案)
- 3、2024廣西專業(yè)技術(shù)人員繼續(xù)教育公需科目參考答案(99分)
- 中國血管性認(rèn)知障礙診治指南(2024版)解讀
- 康復(fù)治療技術(shù)-言語康復(fù)
- 闖關(guān)迷宮課件教學(xué)課件
- 統(tǒng)編版四年級(jí)下冊(cè)語文第七單元教學(xué)設(shè)計(jì)(含單元備課設(shè)計(jì)方案)
評(píng)論
0/150
提交評(píng)論