程序設(shè)計(jì)課程實(shí)習(xí)課程設(shè)計(jì)說明書之超市商品信息管理系統(tǒng)_第1頁
程序設(shè)計(jì)課程實(shí)習(xí)課程設(shè)計(jì)說明書之超市商品信息管理系統(tǒng)_第2頁
程序設(shè)計(jì)課程實(shí)習(xí)課程設(shè)計(jì)說明書之超市商品信息管理系統(tǒng)_第3頁
程序設(shè)計(jì)課程實(shí)習(xí)課程設(shè)計(jì)說明書之超市商品信息管理系統(tǒng)_第4頁
程序設(shè)計(jì)課程實(shí)習(xí)課程設(shè)計(jì)說明書之超市商品信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、超市商品信息管理系統(tǒng)C+程序設(shè)計(jì)課程設(shè)計(jì)說明書指導(dǎo)教師:XXX設(shè)計(jì)成員:劉 X王 X趙 X張 X學(xué)院:XXXXXXXXXXXXXXX學(xué)院班級:XXXX齊齊哈爾大學(xué)計(jì)算機(jī)中心二零零八年九月C+程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)設(shè)計(jì)題目:超市商品信息管理系統(tǒng)一、已知技術(shù)參數(shù)或設(shè)計(jì)前提1、中小型超市一般會(huì)有上萬件商品。2、每件商品需要記錄商品名、條形碼、類別、價(jià)格、出廠日期等商品的基本信息。3、除此之外,還需要記錄商品的其他相關(guān)信息,如生產(chǎn)廠家、供貨處代碼、廠家網(wǎng)址、廠家電話等。4、超市商品的相關(guān)信息需要存儲(chǔ)到文件系統(tǒng)中,同時(shí)需要提供對信息的添加、編輯、刪除等操作。5、超市管理員每天會(huì)

2、記錄購進(jìn)的商品信息,核銷過期的商品等。二、設(shè)計(jì)內(nèi)容及要求1、使用鏈表結(jié)構(gòu)操作數(shù)據(jù),提供創(chuàng)建、插入、刪除節(jié)點(diǎn)等操作。2、使用類和結(jié)構(gòu)表示商品信息。3、實(shí)現(xiàn)商品信息的添加、編輯、刪除等功能。4、實(shí)現(xiàn)以商品名進(jìn)行查詢和顯示所有商品信息的功能。5、實(shí)現(xiàn)使用文本文件保存所有商品信息的存儲(chǔ)功能。三、課程設(shè)計(jì)工作計(jì)劃1、確定題目,成立設(shè)計(jì)小組,做用戶需求分析(9月1日-9月5日)2、查閱資料,進(jìn)行問題分析,制定方案,確定成員分工(9月5日-9月10日)3、根據(jù)方案編寫程序并進(jìn)行調(diào)試(9月10日-9月25日)4、撰寫設(shè)計(jì)說明書,完成設(shè)計(jì)(9月25日-10月1日)5、提交設(shè)計(jì)內(nèi)容,答辯四、相關(guān)教材及參考書目1、

3、C+語言基礎(chǔ)教程.呂鳳翥編著.清華大學(xué)出版社指導(dǎo)教師簽字: 系 主 任簽字: 年 月 日2、C+程序設(shè)計(jì)教程.錢能編著.清華大學(xué)出版社目 錄一、需求分析2二、系統(tǒng)總體設(shè)計(jì)2三、模塊功能實(shí)現(xiàn)3四、系統(tǒng)的軟硬件環(huán)境10五、系統(tǒng)的使用說明10六、結(jié)束語13七、參考文獻(xiàn)13附錄A:程序源代碼14附錄B:程序調(diào)試記錄17教師評語18一、需求分析中小型超市采購的商品一般都成千上萬件。對這些商品進(jìn)行有效的管理必不可少。每件商品一般都需要記錄商品名、條形碼、類別、價(jià)格、出廠日期等商品的基本信息。除此之外,還需要記錄商品的其他相關(guān)信息,如生產(chǎn)廠家、供貨處代碼、廠家網(wǎng)址、廠家電話等。超市商品的相關(guān)信息需要存儲(chǔ)到文

4、件系統(tǒng)中,一般都需要提供對商品信息的添加、編輯、刪除等操作。超市管理員每天都會(huì)記錄購進(jìn)的商品信息,核銷過期的商品等。為了鞏固我們所學(xué)的C+語言程序設(shè)計(jì)知識,也為了滿足課程設(shè)計(jì)的要求,我們在對幾個(gè)中小型超市進(jìn)行調(diào)研的基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)小型的超市商品管理系統(tǒng),提供商品系統(tǒng)的添加、刪除、編輯等功能。同類系統(tǒng)多數(shù)使用結(jié)構(gòu)體數(shù)組來操作數(shù)據(jù),本系統(tǒng)使用鏈表結(jié)構(gòu)操作數(shù)據(jù),提高了數(shù)據(jù)處理的效率。二、系統(tǒng)總體設(shè)計(jì)系統(tǒng)應(yīng)該具有管理系統(tǒng)的基本功能,即對商品信息能夠進(jìn)行添加、刪除、編輯等基本管理。除此之外,還要考慮安全問題,即對系統(tǒng)設(shè)置密碼,進(jìn)行訪問控制。系統(tǒng)設(shè)置了相應(yīng)的鏈表結(jié)果表示操作商品信息。為了便于系統(tǒng)調(diào)試

5、,系統(tǒng)將商品信息存儲(chǔ)于文本文件中。系統(tǒng)體系結(jié)構(gòu)圖2-1所示。文本文件系統(tǒng)主菜單1、添加商品信息2、刪除商品信息3、顯示商品信息4、查詢商品信息5、編輯商品信息6、幫助菜單 7、保存數(shù)據(jù)0、退出系統(tǒng)鏈表類1、添加節(jié)點(diǎn)2、刪除節(jié)點(diǎn)3、查找節(jié)點(diǎn)4、創(chuàng)建節(jié)點(diǎn) 圖 2-1系統(tǒng)體系結(jié)構(gòu)根據(jù)需求分析,系統(tǒng)應(yīng)該包含添加商品信息、刪除商品信息、顯示商品信息、查詢商品信息、編輯商品信息、保存數(shù)據(jù)等6個(gè)主要功能模塊。系統(tǒng)總體框架如圖2-2所示。超市商品信息管理系統(tǒng)添加商品信息刪除商品信息顯示商品信息查詢商品信息編輯商品信息保存數(shù)據(jù)圖 2-2系統(tǒng)功能框圖三、模塊功能實(shí)現(xiàn)根據(jù)系統(tǒng)功能分析,設(shè)計(jì)具體的類以實(shí)現(xiàn)系統(tǒng)功能。系

6、統(tǒng)主要使用2個(gè)主要的類來實(shí)現(xiàn)系統(tǒng)功能:一個(gè)為Manage類,負(fù)責(zé)實(shí)現(xiàn)系統(tǒng)界面的控制機(jī)制;另一個(gè)為list類,即鏈表類,實(shí)現(xiàn)系統(tǒng)的數(shù)據(jù)處理功能。系統(tǒng)的主要類之間的關(guān)系如圖3-1所示。圖 3-1系統(tǒng)類之間的關(guān)系1、list鏈表類的設(shè)計(jì)與實(shí)現(xiàn)根據(jù)總體設(shè)計(jì)內(nèi)容,本系統(tǒng)主要使用鏈表結(jié)構(gòu)來操作數(shù)據(jù),所以鏈表類的設(shè)計(jì)與實(shí)現(xiàn)為系統(tǒng)實(shí)現(xiàn)的核心。鏈表類中的主要數(shù)據(jù)成員head為nodetype節(jié)點(diǎn)類型的數(shù)據(jù)。nodetype的具體結(jié)構(gòu)為:typedef struct linknodechar address100;/廠家地址char birthday100;/出廠日期struct scokk sc;/供貨處代號s

7、truct goods go;/單個(gè)商品信息struct telephone te;/購貨方式bool flag;struct linknode* next;/指向節(jié)點(diǎn)的指針nodetype;此節(jié)點(diǎn)類型類一個(gè)自定義的結(jié)構(gòu)體,其中有7個(gè)數(shù)據(jù)域,兩個(gè)整型數(shù)組分別代表廠家地址和出廠日期;還有三個(gè)數(shù)據(jù)域,是嵌入的結(jié)構(gòu)體類型,分別代表供貨處代號、單個(gè)商品信息、購貨方式,其商品信息結(jié)構(gòu)體的具體結(jié)構(gòu)如下:struct goods char name100;/商品名 char type100 ;/類別 char authentication100;/商品認(rèn)證char company100;/公司名 char

8、price50;/價(jià)格;其他結(jié)構(gòu)的詳細(xì)信息請參考附錄A:程序源代碼。此節(jié)點(diǎn)類型的最后一個(gè)域是重要的指針域,用于存放指向下一個(gè)節(jié)點(diǎn)的指針。根據(jù)上面設(shè)計(jì)的鏈表結(jié)構(gòu)和系統(tǒng)功能設(shè)計(jì)的內(nèi)容,可以進(jìn)一步規(guī)劃鏈表類的主要功能如下:(1)添加節(jié)點(diǎn)將新添加的商品信息填充到新創(chuàng)建的節(jié)點(diǎn)中,然后插入到鏈表里。類的成員函數(shù)原型如下:nodetype* List:insertNode(int i);其中,整型參數(shù)i為節(jié)點(diǎn)序號;函數(shù)返回值為鏈表的節(jié)點(diǎn)指針。在此函數(shù)中,首先,定義h,p,s三個(gè)指向節(jié)點(diǎn)的指針,h為指向鏈表頭的指針,p為查找節(jié)點(diǎn)時(shí)返回的指針,s為指向新生成的節(jié)點(diǎn)的指針;然后,使用malloc函數(shù)創(chuàng)建一個(gè)空的節(jié)

9、點(diǎn),即在堆空間創(chuàng)建一個(gè)nodetype類型的變量,將s指針指向此變量;判斷是否是此鏈表的第一個(gè)節(jié)點(diǎn),如果是,則s所指節(jié)點(diǎn)為鏈表的頭節(jié)點(diǎn),并將h指針指向鏈表頭節(jié)點(diǎn);如果不是,則需要查找節(jié)點(diǎn)的插入位置,根據(jù)函數(shù)參數(shù)i調(diào)用intFindNode函數(shù)查找插入位置,并將返回的位置指針復(fù)制給p;如果p所指向的值存在,則將創(chuàng)建的s節(jié)點(diǎn)插入,否則,顯示i值錯(cuò)誤。一般插入節(jié)點(diǎn)的方法是使用下面兩條語句:s->next=p->next;/ s節(jié)點(diǎn)的next指針指向p節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)p->next=s;/p的next指針指向s節(jié)點(diǎn)函數(shù)最后,將h指向鏈表的頭節(jié)點(diǎn),并返回新創(chuàng)建的節(jié)點(diǎn)s的地址。函數(shù)的程序

10、流程圖如圖3-1所示。開始創(chuàng)建鏈表節(jié)點(diǎn)并初始化:s= (nodetype*)malloc (sizeof(nodetype);s->next=NULL;是否為鏈表的第一個(gè)節(jié)點(diǎn)?插入節(jié)點(diǎn):s->next = h;h=s;查找節(jié)點(diǎn)i,找插入位置:p=intFindNode(i);是否找到(p!=NULL)?插入節(jié)點(diǎn):s->next=p->next;p->next=s;i值不正確head=h;定義指針:nodetype *h=head, *p, *s;否是否是return s;圖 3-1 插入節(jié)點(diǎn)流程圖(2)顯示節(jié)點(diǎn)信息在系統(tǒng)中,需要顯示所有的商品名信息、一件商品的所有

11、信息等,這些都需要顯示節(jié)點(diǎn)保存的相應(yīng)信息。顯示所有商品名,就是顯示節(jié)點(diǎn)中的商品域中的商品名信息,它顯示的是節(jié)點(diǎn)的一部分信息。顯示所有的商品名的成員函數(shù)原型如下:void List:dispNameAll();其函數(shù)功能是顯示所有商品名,無參數(shù),無返回值。其函數(shù)體的主要源代碼如下所示:void List:dispNameAll()nodetype* p=head;cout<<" 現(xiàn)有的商品: "<<endl;if(p=NULL)cout<<" 沒有任何商品數(shù)據(jù)"<<endl;while(p!=NULL)cou

12、t<<" 商品名:"<<p-><<endl;p=p->next;在函數(shù)體中主要利用while循環(huán)遍歷訪問整個(gè)鏈表,p=p->next;語句主要功能是指向節(jié)點(diǎn)的指針不斷下移,以訪問所有的節(jié)點(diǎn)。顯示一件商品的所有信息使用的成員函數(shù)原型為:void List:dispOneNode(nodetype* p);函數(shù)的主要功能是顯示一件商品的所有信息,參數(shù)p為指向節(jié)點(diǎn)的指針,無返回值。函數(shù)通過參數(shù)接收指向節(jié)點(diǎn)的指針p,通過p訪問其所指向的節(jié)點(diǎn),并顯示節(jié)點(diǎn)的所有信息(包括商品的基本信息,如商品名、價(jià)格等)。函數(shù)體的主要

13、代碼如下:void List:dispOneNode(nodetype* p)if(p!=NULL)dispGoods(p);/顯示一件商品的基本信息dispScokk(p);/顯示一件商品的供貨站代碼dispTelephone(p);/顯示一件商品的訂貨方式(3)修改節(jié)點(diǎn)信息由于節(jié)點(diǎn)保存的信息較多,使用了嵌套的結(jié)構(gòu)體保存數(shù)據(jù),所以修改時(shí),也需要按照相應(yīng)的結(jié)構(gòu)進(jìn)行修改。可以修改商品的基本信息、商品的供貨站代碼和商品的訂貨方式。使用的成員函數(shù)原型如下:void editGoods(nodetype* p);/編輯單個(gè)商品說明信息void editScokk(nodetype* p);/編輯單個(gè)商

14、品供貨方式void editTelephone(nodetype* p);/編輯單個(gè)商品訂貨方式(4)查找定位節(jié)點(diǎn)在進(jìn)行節(jié)點(diǎn)的插入和編輯時(shí),往往都需要按照指定的條件進(jìn)行信息節(jié)點(diǎn)的查找??梢酝ㄟ^商品名或節(jié)點(diǎn)序號進(jìn)行節(jié)點(diǎn)的查找定位。成員函數(shù)的原型如下所示:nodetype* intFindNode(int i);/通過查找序號返回節(jié)點(diǎn)的指針nodetype* strFindNode(char c);/通過查找商品名返回節(jié)點(diǎn)的指針int findByName(char c);/通過查找商品名返回節(jié)點(diǎn)的序號其中,商品名查找節(jié)點(diǎn),并返回節(jié)點(diǎn)指針使用較多,函數(shù)的主體代碼如下所示。nodetype* Lis

15、t:strFindNode(char c) nodetype* p=head;int j=1;strcat(c, "n");/從外部讀入的字符串末尾都帶了一個(gè)換行符/查找第 i 個(gè)節(jié)點(diǎn)并由 p 指向該節(jié)點(diǎn)while( p!=NULL && !(checkString(c, p->)j+;p=p->next;return p;此函數(shù)主要通過p指針的移動(dòng),并比較p所指向的節(jié)點(diǎn)中的商品名與給定的查找商品名是否一致,如果相同則找到,否則,繼續(xù)移動(dòng)p指針指向下一個(gè)節(jié)點(diǎn)繼續(xù)比較,直到p指向鏈表尾(p為NULL)。(5)刪除節(jié)點(diǎn)刪除節(jié)點(diǎn)操作是一個(gè)

16、常用的操作。一般需要先找到要?jiǎng)h除的節(jié)點(diǎn),然后,將其從鏈表中刪除。由于節(jié)點(diǎn)是使用malloc函數(shù)生成的動(dòng)態(tài)變量,所以,應(yīng)該使用delete系統(tǒng)函數(shù)將其刪除。刪除后還需要保存鏈表的連接性,即刪除鏈表中的指定節(jié)點(diǎn)時(shí),需要如圖3-2所示的一些后繼的處理步驟。123headNULL123headNULLps=p->nextp->next=s->nexts->next圖 3-2節(jié)點(diǎn)刪除的處理步驟刪除節(jié)點(diǎn)的成員函數(shù)如下所示:void List:deleteNode(int i)nodetype *h=head, *p=head, *s;int j=1;if(i=1)/刪除第一個(gè)節(jié)點(diǎn)h

17、=h->next;delete(p);elsep=intFindNode(i-1);/查找第 i-1 個(gè)節(jié)點(diǎn),p 指向這個(gè)節(jié)點(diǎn)if(p!=NULL && p->next!=NULL)s=p->next;/s指向要?jiǎng)h除的節(jié)點(diǎn)p->next=s->next;delete(s);elsecout<<"輸入的 i 值不正確"<<endl;head=h;(6)創(chuàng)建鏈表與其他成員函數(shù)功能實(shí)現(xiàn)略,詳細(xì)內(nèi)容請參看課程設(shè)計(jì)提交的源代碼2、Manage類的設(shè)計(jì)與實(shí)現(xiàn)Manage類的主要功能是負(fù)責(zé)顯示系統(tǒng)的主菜單和進(jìn)行界面控制

18、。其主要類結(jié)構(gòu)如下:class ManageList L1;/存儲(chǔ)結(jié)構(gòu)public:void welcome(); /登錄頁面,密碼控制void Loop();/主循環(huán)void display();/顯示菜單;其中,L1為List鏈表類的對象,是執(zhí)行系統(tǒng)功能的核心部分。void Manage:Loop()成員函數(shù)主要負(fù)責(zé)進(jìn)行界面控制。Loop函數(shù)首先,進(jìn)行系統(tǒng)初始化,包括創(chuàng)建List類的實(shí)例對象L1;定義字符數(shù)組ch接收用戶輸入的數(shù)字,并執(zhí)行相應(yīng)功能;定義兩個(gè)指向節(jié)點(diǎn)的指針*p, *head,其中p為指向普通節(jié)點(diǎn)的指針,head為指向鏈表頭節(jié)點(diǎn)的指針;定義整型變量i存放節(jié)點(diǎn)的序號;從外部文件讀

19、入數(shù)據(jù)創(chuàng)建鏈表,p指向鏈表的頭節(jié);并讓head指向頭節(jié)點(diǎn);顯示系統(tǒng)主菜單等。這些步驟使系統(tǒng)得到初始化。Loop函數(shù)體的程序流程圖如圖3-3所示。開始結(jié)束List L1;char ch20;nodetype *p, *head; int i;載入數(shù)據(jù):p=L1.loadList();head=p;顯示系統(tǒng)界面:display();ch是否為0選項(xiàng)控制:ch1:添加商品信息(插入節(jié)點(diǎn),填充節(jié)點(diǎn)信息)2:刪除商品信息(查找指定節(jié)點(diǎn),刪除)3:顯示商品信息(顯示節(jié)點(diǎn)中的商品名信息)4:查詢商品信息(按照商品名,查詢節(jié)點(diǎn)的內(nèi)容)5:編輯商品信息(編輯節(jié)點(diǎn)的相應(yīng)信息)6:幫助菜單(顯示系統(tǒng)菜單)7:保存數(shù)

20、據(jù) 1 否是圖 3-3 Loop函數(shù)程序流程圖3、主函數(shù)的實(shí)現(xiàn)在完成了上面兩個(gè)主要類的基礎(chǔ)上完成主函數(shù)。在主函數(shù)中創(chuàng)建Manage類的一個(gè)實(shí)例Goods,并調(diào)用Manage類中的Welcome成員函數(shù),顯示程序界面,并進(jìn)行訪問控制。main函數(shù)的主要代碼如下:void main()Manage Goods;Goods.welcome();/顯示程序歡迎界面四、系統(tǒng)的軟硬件環(huán)境1、軟件環(huán)境系統(tǒng)可以運(yùn)行在Windows XP/200X等操作系統(tǒng)上。系統(tǒng)編輯編譯環(huán)境為Visual C+ 6.0。2硬件環(huán)境本系統(tǒng)在計(jì)算中心實(shí)驗(yàn)室的計(jì)算機(jī)上編輯測試。測試用計(jì)算機(jī)的主要配置是CPU 2.4GHz,256M

21、內(nèi)存,80G硬盤。本系統(tǒng)可以運(yùn)行在使用Windows操作系統(tǒng)的品牌機(jī)或兼容機(jī)上,具有80486,50MHz以上的處理器都可以運(yùn)行本管理系統(tǒng)。五、系統(tǒng)的使用說明系統(tǒng)在完成后進(jìn)行了詳細(xì)的軟件功能測試。本系統(tǒng)可以完成對超市商品信息的添加、刪除、顯示、編輯等功能。軟件的使用步驟如下:1、在課程設(shè)計(jì)的光盤中的“超市商品管理系統(tǒng)源代碼”文件夾中找到“Debug”文件夾,在里面運(yùn)行GoodsManage.exe可執(zhí)行文件。系統(tǒng)會(huì)彈出如圖所示的系統(tǒng)程序登陸界面,輸入正確的密碼(默認(rèn)密碼為“admin”)后可以進(jìn)入到程序主界面。圖 5-1 系統(tǒng)登陸界面2、在主程序界面中,用戶可以根據(jù)界面中的功能提示,輸入相應(yīng)的

22、0-7的數(shù)字符號,執(zhí)行相應(yīng)的功能。主程序界面如圖5-2所示。圖 5-2 系統(tǒng)主功能菜單界面3、在主菜單程序界面中用戶如果輸入1,并按回車鍵,則會(huì)進(jìn)入到添加商品信息的程序界面中,如圖5-3所示。在這個(gè)界面中,會(huì)提示輸入商品信息,如輸入商品名、商品類別、出廠日期、商品認(rèn)證、公司名、價(jià)格、廠址、條形碼、購貨網(wǎng)址、廠家電話等相關(guān)信息。錄入時(shí),以回車為每一項(xiàng)的結(jié)束符。圖 5-3 添加商品信息界面4、如果用戶在主程序界面中,輸入2則會(huì)進(jìn)入到刪除商品信息界面里。在這個(gè)界面中,會(huì)顯示已經(jīng)存儲(chǔ)在系統(tǒng)中的相關(guān)產(chǎn)品信息,主要是顯示商品的名稱。用戶可以查看后,確定自己要?jiǎng)h除的信息,并輸入要?jiǎng)h除的商品的名稱,以刪除相應(yīng)

23、的商品。程序界面如圖5-4所示。圖 5-4 刪除商品程序界面5、如果用戶在主程序界面中輸入4、可以查詢商品信息,如圖5-5所示。圖 5-5 查詢商品信息程序界面六、結(jié)束語超市商品管理系統(tǒng)使用了鏈表類結(jié)構(gòu)和面向?qū)ο蟮木幊煞椒ǎ行У靥岣吡松唐沸畔⒌墓芾硇屎统绦虼a的復(fù)用率以及程序的可維護(hù)性與擴(kuò)展性。本小組成員通過一個(gè)多月的努力,從進(jìn)入超市進(jìn)行調(diào)研到系統(tǒng)設(shè)計(jì)并編寫程序源代碼以及系統(tǒng)編譯測試,每個(gè)小組成員分工協(xié)作、共同努力圓滿地完成了此次課程設(shè)計(jì)任務(wù)。系統(tǒng)的總體設(shè)計(jì)和主函數(shù)部分以及程序的匯總調(diào)試由組長劉X完成;list鏈表類的插入、刪除和顯示功能的設(shè)計(jì)與實(shí)現(xiàn)由小組成員王X完成;list類的其余部分

24、如節(jié)點(diǎn)的查找和創(chuàng)建的設(shè)計(jì)與實(shí)現(xiàn)由小組成員趙X完成;Manage類的設(shè)計(jì)與實(shí)現(xiàn)由小組成員張X完成。通過本次課程設(shè)計(jì),小組成員較好地掌握了鏈表的使用方法和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本技能,為將來的深入學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。由于時(shí)間關(guān)系本系統(tǒng)還不是很完善,有些地方還需要改進(jìn)。比如數(shù)據(jù)存儲(chǔ)使用的是文本文件。這個(gè)系統(tǒng)也僅僅是一個(gè)利用鏈表類操作的基本系統(tǒng),也希望以后能根據(jù)實(shí)際情況進(jìn)一步的完善其功能,使其不但能滿足課程設(shè)計(jì)的要求,還能有一定的實(shí)用價(jià)值。在整個(gè)的課程設(shè)計(jì)過程中,小組得到了其他各組同學(xué)和指導(dǎo)教師的幫助,這些幫助使我們克服了課程設(shè)計(jì)過程中的遇到的一些困難。在此表示衷心感謝。七、參考文獻(xiàn)1C+語言基礎(chǔ)教程

25、.呂鳳翥編著.清華大學(xué)出版社2C+程序設(shè)計(jì)教程.錢能編著.清華大學(xué)出版社3/456789附錄A:程序源代碼文件名:main.cpp#include "Manage.h"/*/* 模塊功能:主函數(shù)程序入口 */* 全局變量:無 */* 創(chuàng)建人:XXX */* 創(chuàng)建日期:XXXX年XX月XX日*/*/void main()Manage Goods;Goods.welcome();/顯示程序歡迎界面文件名:Manage.h#include <iostream.h> #include <string.h> /strcpy():字符串復(fù)制#include &l

26、t;stdlib.h> /system("cls")#include <stdio.h> /文件操作(寫文件)#include "list.h" /創(chuàng)建類 List 的對象和節(jié)點(diǎn)指針/*/* 類功能:程序界面顯示、密碼控制、菜單顯示、循環(huán)控制 */* 全局變量:無 */* 創(chuàng)建人:XXX */* 創(chuàng)建日期:XXXX年XX月XX日*/*/class ManageList L1;/存儲(chǔ)結(jié)構(gòu)public:void welcome(); /登錄頁面void Loop();/主循環(huán)void display();/顯示菜單;文件名:list.h#i

27、nclude <iostream.h> #include <malloc.h> #include <string.h>/字符串處理#include <stdio.h>/文件操作(讀文件)#include <stdlib.h>/system("cls")/*/* 類功能:操作鏈表,包括添加、刪除、編輯節(jié)點(diǎn)等操作 */* 全局變量:無 */* 創(chuàng)建人:XXX */* 創(chuàng)建日期:XXXX年XX月XX日 */*/廠家地址struct address char country100;/國家char city100; /城市c

28、har street100;/街道;/購貨方式struct telephonechar WebSite50;/廠家網(wǎng)址char FactoryTele30;/廠家電話char DeliverTele30;/供貨處電話;/商品信息struct goods char name100;/商品名 char type100 ;/類別 char authentication100;/商品認(rèn)證char company100;/公司名 char price50;/價(jià)格;/供貨處代號struct scokkchar num50;/條形碼char jialefu50;/家樂福char woerma50;/沃爾瑪c

29、har suguo50;/蘇果char bailian50;/白蓮;/定義節(jié)點(diǎn)的類型typedef struct linknodechar address100;/地址char birthday100;/出廠日期struct scokk sc;/供貨處代號struct goods go;/單個(gè)商品信息struct telephone te;/購貨方式bool flag;struct linknode* next;/指向節(jié)點(diǎn)的指針nodetype;/鏈表類class Listnodetype *head;public:List();List:List();linknode* createList

30、(int n);/創(chuàng)建鏈表int ListLen();/返回鏈表長度nodetype* intFindNode(int i);/通過查找序號返回節(jié)點(diǎn)的指針nodetype* strFindNode(char c);/通過查找商品名返回節(jié)點(diǎn)的指針int findByName(char c);/通過查找商品名返回節(jié)點(diǎn)的序號nodetype* insertNode(int i); /插入節(jié)點(diǎn)void deleteNode(int i);/刪除節(jié)點(diǎn),刪除第 i 個(gè)節(jié)點(diǎn)nodetype* loadList();/初始化:從外部讀入數(shù)據(jù)void readfromFile(FILE *f,char *string);/從文件中讀出數(shù)據(jù)bool checkString(char *a, char *b);/對比兩個(gè)字符串是否相等void help();/顯示幫助菜單void editGoods(nodetype* p);/編輯單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論