版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《數據結構》課程設計</p><p><b> 報告</b></p><p> 設計地點(單位)__ _ 計算機基礎自主學習中心 __ _ _設計題目:________家電庫存管理系統(tǒng)的設計______ ____ _</p><p> 完成日期:2012年 1 月 13 日 </p>&l
2、t;p> 指導教師評語: ______________________ ________________ _</p><p> _______________________________________________________________________________________________________________________________________
3、__________________________________________________________________ __________ _ </p><p> 成績(五級記分制):______ __________ 指導教師(簽字):________ ________ </p>
4、<p><b> 課程設計任務書</b></p><p> 設計題目:家電庫存管理系統(tǒng)的設計 </p><p><b> 摘要</b></p><p> 隨著信息技術的飛速發(fā)展,人們對信息管理技術要求也越來越高以適應飛速發(fā)展的經濟。本次課程設計針對當前的需求,設計一個家電倉庫信息的管理系統(tǒng)以方便商家更快
5、捷更有效的對倉庫貨品的信息進行管理,給商家創(chuàng)造更多的價值!</p><p> 該系統(tǒng)整體運用了數據結構的知識,它是將貨品信息按鏈表形式來儲存的。將所有的貨品分類儲存在數據鏈表的每一個節(jié)點中,每個節(jié)點也包含了一種類型家電的所有信息。即是,建一個鏈表,鏈表中有許多個節(jié)點,節(jié)點中儲存了不同類型的數據;這樣我們就很容易的將貨品信息管理起來了!</p><p> 該系統(tǒng)進行了精心的規(guī)劃,有齊全的
6、信息管理功能。方便用戶使用,用戶能夠很快的找到自己所需要的信息并且有添加、刪除、修改、查詢、排序、保存等功能提高了用戶對信息的管理效率!</p><p> 關鍵詞:信息 數據結構 鏈表 管理 </p><p><b> 目錄</b></p><p> 1 系統(tǒng)需求分析說明書1</p><p> 1.
7、1系統(tǒng)軟件界面介紹1</p><p> 1.2系統(tǒng)設計要求1</p><p> 1.3系統(tǒng)的設計2</p><p> 2 系統(tǒng)分析與設計3</p><p><b> 2.1系統(tǒng)分析3</b></p><p> 2.2系統(tǒng)功能分析4</p><p>&l
8、t;b> 3 代碼實現7</b></p><p> 3.1鏈表創(chuàng)建函數代碼解釋7</p><p> 3.2插入節(jié)點函數代碼解釋7</p><p> 3.3刪除節(jié)點函數代碼解釋8</p><p> 3.4查找函數代碼解釋8</p><p> 3.5貨品信息修改函數代碼解釋9<
9、;/p><p> 3.6信息讀取函數代碼解釋10</p><p> 4 系統(tǒng)功能實現11</p><p> 4.1 倉庫鏈表建立函數實現11</p><p> 4.2修改信息函數實現11</p><p> 4.3新增貨品插入函數實現12</p><p> 4.4刪除函數實現1
10、2</p><p> 4.5修改函數的實現13</p><p> 4.6插入節(jié)點函數實現13</p><p> 5 系統(tǒng)使用說明書14</p><p><b> 6 總結15</b></p><p><b> 參考文獻16</b></p>&
11、lt;p><b> 致謝17</b></p><p> 1 系統(tǒng)需求分析說明書</p><p> 1.1系統(tǒng)軟件界面介紹</p><p><b> 1.1 系統(tǒng)界面</b></p><p> 該系統(tǒng)的軟件界面就是以在C++編譯后生成的一個系統(tǒng)菜單,菜單有八個選項供用戶選擇即有創(chuàng)建倉
12、庫鏈表,信息查找等功能!在菜單下面有供用戶選擇系統(tǒng)項目的輸入指令,當用戶輸入0-7中的數字后就會實現相應的功能!如果輸入錯誤后界面會彈出警告讓用戶重新輸入!</p><p><b> 1.2系統(tǒng)設計要求</b></p><p> 第一,該系統(tǒng)的設計對設計者的要求比較高。想要設計該系統(tǒng),必須對C語言知識掌握牢固,以及C++、數據結構知識靈活運用。例如:主菜單供客戶選
13、擇的選擇項就需要用到C語言的switch條件語句來實現不同的選擇功能。數據結構中的數據封裝也是必不可少的。</p><p><b> 1.3系統(tǒng)的設計</b></p><p> 系統(tǒng)設計分為幾大模塊進行設計的。</p><p> 第一大模塊總體規(guī)劃設計,這部分主要是封裝頭文件,這里要定義好數據結構體,即要把一類家電信息打包成一個節(jié)點類型的
14、數據然后再創(chuàng)建鏈表數據和指向節(jié)點數的節(jié)點。該過程就是數據結構中的抽象數據類型ADT,這樣將就輕松的把不同類型數據管理起來了!頭文件也包含了所有子函數的頭。</p><p> 第二大模塊是主函數的設計,主函數的功能是要建立一個倉庫管理的鏈表,然后一一實現系統(tǒng)所有的功能即是在不同的情況對子函數的調用。</p><p> 第三大模塊是各個函數功能的實現,該部分是系統(tǒng)的核心部分,在寫子函數的時
15、候必須考慮周全;否則就會出現內存出錯的情況系統(tǒng)就會崩潰掉,信息就很可能丟失。會給用戶帶來巨大的損失!</p><p> 該系統(tǒng)設計模塊圖如圖1.2所示:</p><p> 圖1.2 系統(tǒng)模塊設計</p><p><b> 2 系統(tǒng)分析與設計</b></p><p><b> 2.1系統(tǒng)分析</b&
16、gt;</p><p> 系統(tǒng)主要工作流程是從打開系統(tǒng)后進入功能選擇,選擇不同的選項進行操作后就返回系統(tǒng)首頁。其運行流程圖如圖2.1所示:</p><p><b> 圖2.1系統(tǒng)流程圖</b></p><p><b> 2.2系統(tǒng)功能分析</b></p><p> 系統(tǒng)功能的實現主要是靠各個
17、子函數來實現的。</p><p> 1)倉庫鏈表的創(chuàng)建:</p><p> 當用戶選擇功能號1時,就進行倉庫鏈表的建立。</p><p> 倉庫建立流程圖如圖2.2所示:</p><p> 圖2.2 倉庫鏈表建立 </p><p> 2)倉庫貨品信息查找:</p><p>
18、 信息查找流程圖如圖2.3 所示:</p><p> 圖2.3 信息查找流程圖</p><p> 3)新增貨品信息插入:</p><p> 新增貨品信息插入流程圖如圖2.4所示:</p><p> 圖2.4 信息插入流程圖</p><p> 4)刪除已賣出的貨品信息:</p><p>
19、 刪除信息流程圖如圖2.5所示:</p><p> 圖2.5 刪除信息流程圖</p><p> 5)庫存貨品信息修改</p><p> 庫存貨品信息修改流程圖如圖2.6所示:</p><p> 圖2.6 信息修改流程圖</p><p> 6)信息保存直接選功能號6即可保存到文件。</p>&l
20、t;p><b> 7)倉庫信息讀取:</b></p><p> 倉庫信息讀取流程圖如圖2.7所示:</p><p> 圖2.7信息讀取流程圖</p><p><b> 3 代碼實現</b></p><p> 3.1鏈表創(chuàng)建函數代碼解釋</p><p> NO
21、DE *creatlist()</p><p> {NODE *Head;</p><p> Head=new NODE;</p><p> int i; int k;</p><p> NODE *P1, *Ptr;</p><p> P1=(NODE*)malloc(sizeof(NODE));<
22、;/p><p><b> P1=Head;</b></p><p> cout<<"輸入倉庫電器種類數:"<<endl;</p><p><b> cin>>k;</b></p><p> printf("請輸入電器類別--型號-
23、-商標--重量--單價--編號--日期--廠家\n");</p><p> for(i=0;i<k;i++)</p><p> { Ptr=(NODE*)malloc(sizeof(NODE));</p><p> scanf("%s %s %s %f %lf %s %s %s",Ptr->data.leibie,Pt
24、r->data.xinhao,Ptr->data.brand,&Ptr->data.height,&Ptr->data.price,Ptr->data.no,Ptr->data.date,Ptr->data.factory);</p><p> P1->link=Ptr;</p><p><b> P1=Ptr;
25、</b></p><p> P1->link=NULL;}</p><p> return Head;</p><p><b> }</b></p><p> 這里使用鏈表創(chuàng)建函數就可以創(chuàng)建一個鏈表,并儲存貨品信息!</p><p> 3.2插入節(jié)點函數代碼解釋<
26、/p><p> void InsertNode(NODE *head,NODE *p)</p><p><b> { </b></p><p> NODE *p1,*p2;</p><p><b> p1=head;</b></p><p> p2=p1->lin
27、k;</p><p> while(p2!=NULL && strcmp(p2->data.no,p->data.no)<0) </p><p><b> {</b></p><p> p1=p2; //p1 指向剛訪問過的結點</p><p> p2=p2->link;
28、//p2 指向表的下一個結點 }</p><p> p1->link=p; //插入 p 所指向的結點</p><p> p->link=p2; //連接表中剩余的結點</p><p> cout<<"插入成功!"<<endl;</p><p><b> }</b
29、></p><p><b> }</b></p><p> 該函數實現了在倉庫鏈表中插入一個節(jié)點的功能!</p><p> 3.3刪除節(jié)點函數代碼解釋</p><p> void deleteNode(NODE *head)//賣出貨品信息刪除 </p><p><b>
30、 {</b></p><p><b> char x;</b></p><p> NODE *pPre,*pLoc;</p><p> pLoc=searchList1(head);</p><p> // dataOut = pLoc->data;</p><p>
31、if(pLoc==NULL)</p><p> {printf("沒有查到要刪除的商品信息!\n");</p><p> return ;}</p><p> if(pLoc!=NULL) </p><p> printf("真的要刪除該商品嗎?(y/n):"); </p>&
32、lt;p><b> cin>>x; </b></p><p> if (x=='y'||x=='Y') </p><p> {pPre=head;</p><p> while((pPre!=NULL)&&(pPre->link!=pLoc))</p>
33、;<p> pPre=pPre->link;</p><p> pPre->link=pLoc->link;</p><p> free(pLoc);</p><p> printf("delete success!\n");</p><p><b> }</b
34、></p><p><b> }</b></p><p> 該函數實現了對賣出貨品信息的刪除!</p><p> 3.4查找函數代碼解釋</p><p> NODE *searchList(NODE *head)//貨品信息查找 </p><p> { char a;<
35、/p><p> char b=' ';</p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("==================\n"); </p><p> p
36、rintf(" 1. 查詢所有家電信息 \n");</p><p> printf(" 2. 按商品名稱查詢 \n");</p><p> printf(" 0. 退出查找系統(tǒng) \n");</p><p> printf("==================\n"); <
37、/p><p> printf(" 請 選 擇: \n"); </p><p> a = getch();</p><p><b> switch(a)</b></p><p><b> {</b></p><p> case '0':
38、return 0;break;</p><p> case '1':list0(head);break;</p><p> case '2':list1(head);break;</p><p> default:printf("輸入錯誤,請重新輸入:\n");</p><p><
39、;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 該函數用switch語句做成一個多種查找方式的查找函數!</p><p> 3.5貨品信息修改函數代碼解釋</p><p> vo
40、id modify(NODE *head)//庫存貨品信息修改</p><p><b> {</b></p><p><b> int m;</b></p><p><b> NODE *P;</b></p><p> P=searchList1(head);</
41、p><p> cout<<"請輸入要修改的商品信息番號!:"<<endl;</p><p> if (P==NULL) </p><p> { printf("沒有查到要修改的商品信息!\n"); </p><p><b> return;}</b>
42、</p><p> if(P!=NULL)</p><p> cout<<endl;</p><p> printf("請輸入您選擇的功能號<0-8>:\n");</p><p> cin>>m; switch(m)</p><p><b>
43、; {</b></p><p> case 1:cout<<"請輸入新的商標信息"<<endl;cin>>P->data.brand;break;</p><p> case 2:cout<<"請輸入新的日期信息"<<endl;cin>> P->da
44、ta.date;break;</p><p> case 3:cout<<"請輸入新的廠家信息"<<endl;cin>> P->data.factory;break;</p><p> case 4:cout<<"請輸入新的重量信息"<<endl;cin>> P-&g
45、t;data.height;break;</p><p> case 5:cout<<"請輸入新的類別信息"<<endl;cin>> P->data.leibie;break;</p><p> case 6:cout<<"請輸入新的編號信息"<<endl;cin>>
46、P->data.no;break;</p><p> case 7:cout<<"請輸入新的單價信息"<<endl;cin>> P->data.price;break;</p><p> case 8:cout<<"請輸入新的型號信息"<<endl;cin>>P-
47、>data.xinhao;break;</p><p> case 0:break;</p><p><b> }</b></p><p> P=P->link;</p><p><b> }</b></p><p> 該函數實現了對節(jié)點信息的修改!&l
48、t;/p><p> 3.6信息讀取函數代碼解釋</p><p> NODE *read_file(NODE *head)</p><p> {NODE *q,*t;</p><p> head=Initlist(head);</p><p><b> t=head;</b></p&g
49、t;<p> ifstream fin("家電庫存信息.txt");</p><p> if( !fin )</p><p> {printf("\n打開文件失敗!,可能沒有記錄\n");</p><p> return NULL;}</p><p> printf(&qu
50、ot;類別--型號--商 標--重量--單價--編號--日期--廠家\n");</p><p> while ( !fin.eof() )</p><p><b> {</b></p><p> q=(NODE*)malloc(sizeof(NODE));</p><p> HOUSEHOLD te
51、mp;</p><p> fin>>temp.leibie;fin>>temp.xinhao;fin>>temp.brand;fin>>temp.height;</p><p> fin>>temp.price;fin>>temp.no;fin>>temp.date;fin&
52、gt;>temp.factory;</p><p> q->data = temp;</p><p> q->link=NULL;</p><p> t->link=q;</p><p> t=t->link;</p><p><b> }</b&g
53、t;</p><p> printf("讀取成功!\n");</p><p> fin.close();</p><p> return head;</p><p><b> }</b></p><p> 該函數將文本文件的數據讀出來并生成一個鏈表!</p>
54、;<p><b> 4 系統(tǒng)功能實現</b></p><p> 4.1 倉庫鏈表建立函數實現</p><p> 圖4.1倉庫鏈表建立函數實現</p><p> 4.2修改信息函數實現</p><p> 圖4.2修改信息函數實現</p><p> 4.3新增貨品插入函數實現
55、</p><p> 圖4.3新增貨品插入函數實現</p><p><b> 4.4刪除函數實現</b></p><p> 圖4.4刪除函數實現</p><p> 4.5修改函數的實現</p><p> 圖4.5修改函數的實現</p><p> 4.6插入節(jié)點函數
56、實現</p><p> 圖4.6插入節(jié)點函數實現</p><p><b> 5 系統(tǒng)使用說明書</b></p><p> 1.創(chuàng)建倉庫鏈表:在此目錄下,用戶可以創(chuàng)建一個新的倉庫鏈表。</p><p> 2..查詢記錄:在此目錄下,用戶可以查詢所有家電記錄和按名稱查詢家電記錄</p><p>
57、; 1).查詢所有家電記錄:顯示所有的家電記錄,如果沒有記錄則會提示用戶輸入記錄。</p><p> 2).按類別查詢家電記錄:輸入要查詢家電的名稱后,顯示相應家電的信息。</p><p> 3).按品牌查詢家電記錄:輸入要查詢家電的品牌后,顯示相應家電的信息。</p><p> 4).按型號查詢家電記錄:輸入要查詢家電的型號后,顯示相應家電的信息。<
58、/p><p> 0).退出查詢系統(tǒng):退出查詢系統(tǒng)并返回主菜單。</p><p> 3. 插入新增貨品信息:在此目錄下,用戶添加新的紀錄。添加完后,系統(tǒng)會返回主菜單并提示用戶保存,此時你要可以選擇。</p><p> 4. 刪除信息:在此目錄下,用戶刪除紀錄</p><p> 5. 修改記錄:在此目錄下,用戶在原有的記錄上更改記錄。更改后,
59、系統(tǒng)會返回主菜單并提示用戶保存,此時你要可以選擇2保存,如果不選擇保存則不會更改。</p><p> 6.保存記錄:在此目錄下,系統(tǒng)會對變動的信息保存起來!</p><p> 7.讀取記錄:在此目錄下,系統(tǒng)將儲存的信息全部讀出來!</p><p> 0. 退出系統(tǒng):提示按0鍵鍵退出系統(tǒng)。</p><p><b> 6 總結&
60、lt;/b></p><p> 在為期兩周的時間終于完成了本次課程設計。在設計初期準備階段時做好了充分的準備,包括查詢資料、知識的溫故等。有了充分的準備后,就可以有個好的開始了。課程設計在設計階段中遇到不少的問題,但是都一一解決了。在開始階段的數據封裝與函數頭做起來比較順利,第二階段在總體規(guī)劃時開始很混亂,但在仔細分析后很快就把總體思路打造好了。最后的也是最困難的問題就是怎樣實現各個子函數的功能,由于自己
61、的粗心造成了不少的麻煩!例如,將一個有返回值函數直接調用,而沒有進行傳值造成了內存錯誤從而耽誤了進度。最后進行仔細調試后才發(fā)現這個問題,最后程序就順利運行了!</p><p><b> 參考文獻</b></p><p> [1] 吳偉民. 結構(C語言版).大學出版社,2000</p><p> [2] 周學毛 李健. 據結構與程序設計.
62、人民郵電出版社, 2008</p><p> [3] 譚浩強. C程序設計(第三版). 清華大學出版設, 2008</p><p> [4] 韓永泉.高質量程序設計指南—C++/C語言第3版, 2007</p><p> [5] 蘇仕華. 數據結構與算法解析. 合肥: 中國科學技術大學出版社,2004</p><p> [6] 劉振安
63、 孫忱 劉燕君. C程序設計課程設計. 北京:機械工業(yè)出版社,2004</p><p> [7] 唐策善,黃劉生. 數據結構(第二版). 合肥:中國科學技術大學出版社,2002</p><p> [8] 劉大有,唐海鷹. 數據結構. 北京:高等教育出版社,2001</p><p> [9] 嚴蔚敏,陳文博. 數據結構及應用算法教程. 北京:清華大學出版社,20
64、01</p><p> [10] 蘇仕華. 數據結構自學輔導. 北京:清華大學出版社,2002</p><p> [11] 徐孝凱. 數據結構實用教程. 北京:清華大學出版社,1999</p><p> [12] 蘇仕華. 數據結構課程設計. 北京:機械工業(yè)出版社,2005</p><p><b> 致謝</b>
65、</p><p> 經過為期一周的努力,我的課程設計任務也終于如期完成。在設計階段中遇到不少的問題,但是都一一解決了。有些是通過自己細心的研究和檢查把程序調試好,有的問題是自己不懂的知識通過網上搜索以及同學的幫助也順利的解決了!在此我要感謝幫助過我的老師和同學們,是你們耐心指導才讓我順利的完成了本次課程設計。我也從中學到許多的東西! </p><p> 通過本次課程設計,我對數據結構的
66、知識掌握更牢固了!也培養(yǎng)了自己勤于思考的良好習慣!也讓我收獲了不少的東西,感謝所有幫助過我的人!</p><p><b> 附頁: 程序代碼</b></p><p><b> 頭文件.h</b></p><p> #include <string></p><p> #inclu
67、de <stdlib.h></p><p> #include <stdio.h></p><p> #include<conio.h></p><p> #include "windows.h"</p><p> #include<iostream></p&g
68、t;<p> #include<fstream></p><p> using namespace std;</p><p> typedef struct _Household{</p><p> char leibie[20];</p><p> char xinhao[30];</p
69、><p> char brand[30];</p><p> float height;</p><p> double price;</p><p> char no[30];</p><p> char date[20];</p><p>
70、 char factory[30];</p><p> int key;</p><p> }HOUSEHOLD;</p><p> typedef struct _NODE{</p><p> HOUSEHOLD data;</p><p> struct _NODE *link;&l
71、t;/p><p><b> }NODE;</b></p><p> typedef struct _LINKLIST{</p><p> NODE* Phead;</p><p> int count;</p><p> }LINKLIST;</p><p> LI
72、NKLIST *creatvoidlist();</p><p> NODE *creatlist();</p><p> void InsertNode(NODE *head,NODE *p);</p><p> void deleteNode(NODE *head);</p><p> NODE *searchList(NODE
73、*head);</p><p> NODE *searchList1(NODE *head);</p><p> void modify(NODE *head);</p><p> bool display(NODE *head);</p><p> NODE *sort(NODE *head); </p><p
74、> void write_file(NODE *head);</p><p> NODE *read_file(NODE *head);</p><p> NODE *Initlist(NODE *p);</p><p> void list0(NODE *head);</p><p> void list1(NODE *h
75、ead);</p><p> int StrCmp(char na[],char name[],int y);</p><p><b> 子函數.cpp</b></p><p> #include"store.h"</p><p> LINKLIST *creatvoidlist()//創(chuàng)建一
76、個空的倉庫鏈表</p><p><b> {</b></p><p> LINKLIST *p;</p><p> p = (LINKLIST*)malloc(sizeof(LINKLIST));</p><p><b> if(!p)</b></p><p><
77、;b> exit(0);</b></p><p> p->count=0;</p><p> p->Phead=NULL;</p><p><b> return p;</b></p><p><b> }</b></p><p>
78、NODE *creatlist()//創(chuàng)建鏈表</p><p><b> {</b></p><p> NODE *Head;</p><p> Head=new NODE;</p><p><b> int i;</b></p><p><b> int
79、 k;</b></p><p> NODE *P1, *Ptr;</p><p> P1=(NODE*)malloc(sizeof(NODE));</p><p><b> P1=Head;</b></p><p> cout<<"輸入倉庫電器種類數:"<<
80、endl;</p><p><b> cin>>k;</b></p><p> printf("請輸入電器類別--型號--商標--重量--單價--編號--日期--廠家\n");</p><p> for(i=0;i<k;i++)</p><p><b> {<
81、/b></p><p> Ptr=(NODE*)malloc(sizeof(NODE));</p><p> scanf("%s %s %s %f %lf %s %s %s",Ptr->data.leibie,Ptr->data.xinhao,Ptr->data.brand,&Ptr->data.height,&Ptr-
82、>data.price,Ptr->data.no,Ptr->data.date,Ptr->data.factory);</p><p> P1->link=Ptr;</p><p><b> P1=Ptr;</b></p><p> P1->link=NULL;</p><p>
83、<b> }</b></p><p> printf("添加成功!");</p><p> return Head;</p><p><b> }</b></p><p> void InsertNode(NODE *head,NODE *p)//插入新的節(jié)點</
84、p><p><b> { </b></p><p> NODE *p1,*p2;</p><p><b> p1=head;</b></p><p> p2=p1->link;</p><p> while(p2!=NULL && strcmp(p
85、2->data.no,p->data.no)<0) </p><p><b> {</b></p><p> p1=p2; //p1 指向剛訪問過的結點</p><p> p2=p2->link; //p2 指向表的下一個結點 }</p><p> p1->link=p; //插入
86、p 所指向的結點</p><p> p->link=p2; //連接表中剩余的結點</p><p> cout<<"插入成功!"<<endl;</p><p><b> }</b></p><p><b> }</b></p>
87、<p> void deleteNode(NODE *head)//賣出貨品信息刪除 </p><p><b> {</b></p><p><b> char x;</b></p><p> NODE *pPre,*pLoc;</p><p> pLoc=searchList1
88、(head);</p><p> // dataOut = pLoc->data;</p><p> if(pLoc==NULL)</p><p><b> {</b></p><p> printf("沒有查到要刪除的商品信息!\n");</p><p><
89、;b> return ;</b></p><p><b> }</b></p><p> if(pLoc!=NULL) </p><p> printf("真的要刪除該商品嗎?(y/n):"); </p><p><b> cin>>x; </b
90、></p><p> if (x=='y'||x=='Y') </p><p><b> {</b></p><p> pPre=head;</p><p> while((pPre!=NULL)&&(pPre->link!=pLoc))</p&g
91、t;<p> pPre=pPre->link;</p><p> pPre->link=pLoc->link;</p><p> free(pLoc);</p><p> printf("delete success!\n");</p><p><b> }</b&
92、gt;</p><p><b> }</b></p><p> NODE *searchList1(NODE *head)//貨品信息查找 </p><p><b> {</b></p><p><b> NODE *p;</b></p><p>
93、; char num[30];</p><p> char name[30]; </p><p><b> char pp; </b></p><p> printf("==================\n"); </p><p> printf(" a. 按商品編號查詢 \n
94、");</p><p> printf(" b. 按商品名稱查詢 \n");</p><p> printf("==================\n"); </p><p> printf(" 請 選 擇: "); </p><p> p=head->li
95、nk; </p><p><b> cin>>pp; </b></p><p> getchar();</p><p> if (pp=='a'||pp=='A')</p><p><b> { </b></p><p>
96、 cout<<"請輸入要查找的商品編號:"<<endl;</p><p><b> cin>>num;</b></p><p> while (p&&strcmp(p->data.no,num)!=0) </p><p> p=p->link; </
97、p><p> if ((p==NULL)||strcmp(p->data.no,num)>0)</p><p><b> p=NULL;</b></p><p> else if (pp=='b'||pp=='B') </p><p><b> {</b&g
98、t;</p><p> cout<<" 請輸入要查找的商品名稱:"<<endl; </p><p> cin>>name;</p><p> while(p&&strcmp(p->data.leibie,name)!=0)</p><p> p=p->
99、link; </p><p><b> }</b></p><p><b> }</b></p><p><b> return p;</b></p><p><b> }</b></p><p> NODE *searc
100、hList(NODE *head)//貨品信息查找 </p><p><b> {</b></p><p><b> char a;</b></p><p> char b=' ';</p><p><b> while(1)</b></p>
101、<p><b> {</b></p><p> printf("==================\n"); </p><p> printf(" 1. 查詢所有家電信息 \n");</p><p> printf(" 2. 按商品名稱查詢 \n");</
102、p><p> printf(" 0. 退出查找系統(tǒng) \n");</p><p> printf("==================\n"); </p><p> printf(" 請 選 擇: \n"); </p><p> a = getch();</p>
103、<p><b> switch(a)</b></p><p><b> {</b></p><p> case '0':return 0;break;</p><p> case '1':list0(head);break;</p><p> ca
104、se '2':list1(head);break;</p><p> default:printf("輸入錯誤,請重新輸入:\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }<
105、;/b></p><p> void list0(NODE *head)//查詢所有家電信息</p><p><b> {</b></p><p><b> NODE *p;</b></p><p> p=head->link;</p><p> if(
106、p==NULL)</p><p><b> {</b></p><p> printf("沒有記錄,請輸入記錄\n");</p><p><b> }</b></p><p><b> else</b></p><p><
107、;b> {</b></p><p> printf("類別--型號--商 標--重量--單價--編號--日期--廠家\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> printf("%s %s
108、 %s %f%lf %s %s %s\n",p->data.leibie,p->data.xinhao,p->data.brand,p->data.height,p->data.price,p->data.no,p->data.date,p->data.factory);</p><p> p=p->link;</p&g
109、t;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void list1(NODE *head)//按名稱查詢函數</p><p><b> {</b>&l
110、t;/p><p><b> NODE *p;</b></p><p><b> p=head;</b></p><p><b> int y;</b></p><p> char na[20];</p><p> printf("請輸入查
111、詢家電的名稱:");</p><p> scanf("%s",na);</p><p> printf("你要查詢的記錄為\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p>
112、y=StrCmp(na,p->data.leibie,20);</p><p><b> if(y==1)</b></p><p><b> { </b></p><p> p=p->link;</p><p><b> }</b></p>&
113、lt;p><b> else</b></p><p><b> {</b></p><p> printf("類別--型號--商 標--重量--單價--編號--日期--廠家\n");</p><p> printf("%s %s %s %f%lf %s %s
114、 %s\n",p->data.leibie,p->data.xinhao,p->data.brand,p->data.height,p->data.price,p->data.no,p->data.date,p->data.factory);</p><p> p=p->link;</p><p><b>
115、 }</b></p><p><b> }</b></p><p><b> }</b></p><p> int StrCmp(char na[],char name[],int y)//比較數據信息</p><p><b> {</b></p>
116、;<p><b> int i =0;</b></p><p><b> int n=0;</b></p><p> while(na[i])</p><p><b> {</b></p><p><b> n++;</b><
117、/p><p><b> i++;</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(na[i]!=name[i])</p>
118、;<p><b> break;</b></p><p><b> }</b></p><p><b> if(i<n)</b></p><p><b> {</b></p><p><b> return 1;&l
119、t;/b></p><p><b> }</b></p><p><b> else</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> void m
120、odify(NODE *head)//庫存貨品信息修改</p><p><b> {</b></p><p><b> int m;</b></p><p><b> NODE *P;</b></p><p> P=searchList1(head);</p>
121、;<p> cout<<"請輸入要修改的商品信息番號?。?quot;<<endl;</p><p> if (P==NULL) </p><p><b> { </b></p><p> printf("沒有查到要修改的商品信息!\n"); </p>&l
122、t;p><b> return;</b></p><p><b> }</b></p><p> if(P!=NULL)</p><p> printf(" :---------------------------------------------:\n");</
123、p><p> printf(" : 選擇要修改的項目 *\n");</p><p> printf(" :=============================================*\n");</p><p> prin
124、tf(" : 1. 修改貨品商標 *\n");</p><p> printf(" : 2. 修改進貨時間 *\n");</p><p> printf(" :
125、 3. 修改生產廠家 *\n");</p><p> printf(" : 4. 修改貨品質量 *\n");</p><p> printf(" : 5. 修改貨品類別
126、 *\n");</p><p> printf(" : 6. 修改貨品編號 *\n");</p><p> printf(" : 7. 修改貨品單價 *\n");</p&g
127、t;<p> printf(" : 8. 修改貨品型號 *\n");</p><p> printf(" : 0. 結束程序 *\n");</p><p> printf(&q
128、uot; :---------------------------------------------*\n");</p><p> cout<<endl;</p><p> printf("請輸入您選擇的功能號<0-8>:\n");</p><p><b> cin>&g
129、t;m;</b></p><p><b> switch(m)</b></p><p><b> {</b></p><p> case 1:cout<<"請輸入新的商標信息"<<endl;cin>>P->data.brand;break;&
130、lt;/p><p> case 2:cout<<"請輸入新的日期信息"<<endl;cin>> P->data.date;break;</p><p> case 3:cout<<"請輸入新的廠家信息"<<endl;cin>> P->data.factory;brea
131、k;</p><p> case 4:cout<<"請輸入新的重量信息"<<endl;cin>> P->data.height;break;</p><p> case 5:cout<<"請輸入新的類別信息"<<endl;cin>> P->data.leibie
132、;break;</p><p> case 6:cout<<"請輸入新的編號信息"<<endl;cin>> P->data.no;break;</p><p> case 7:cout<<"請輸入新的單價信息"<<endl;cin>> P->data.price;
133、break;</p><p> case 8:cout<<"請輸入新的型號信息"<<endl;cin>>P->data.xinhao;break;</p><p> case 0:break;</p><p><b> }</b></p><p> P
134、=P->link;</p><p><b> }</b></p><p> bool display(NODE *head)//顯示庫存信息</p><p><b> {</b></p><p> NODE *temp;</p><p> temp=head-
135、>link;</p><p> printf("電器類別--型號--商標--重量--單價--編號--日期--廠家 \n");</p><p> printf("--------------------------------------------------------------------------------\n");</p
136、><p> while(temp)</p><p><b> {</b></p><p> HOUSEHOLD info = temp->data;</p><p> printf("%s\t",info.leibie);</p><p> printf("
137、;%s\t",info.xinhao);</p><p> printf("%s\t",info.brand);</p><p> printf("%f\t",info.height);</p><p> printf("%lf\t",info.price);</p><
138、p> printf("%s\t",info.no);</p><p> printf("%s\t",info.date);</p><p> printf("%s\t",info.factory); </p><p> printf("------------------------
139、--------------------------------------------------------\n");</p><p> temp=temp->link;</p><p><b> }</b></p><p> return true;</p><p><b> }&
140、lt;/b></p><p> NODE *sort(NODE *head)//鏈表排序</p><p><b> {</b></p><p> NODE *first,*rear,*p_min,*min,*p;</p><p> first = NULL;</p><p> w
141、hile(head != NULL)</p><p><b> {</b></p><p> for(p=head,min=head;p->link;p->link)</p><p> { </p><p> if(p->link->data.no<min-
142、>data.no)</p><p><b> {</b></p><p><b> p_min=p;</b></p><p> min=p->link;</p><p><b> }</b></p><p><b> }&
143、lt;/b></p><p> if(first==NULL)</p><p><b> {</b></p><p> first=min;</p><p><b> rear=min;</b></p><p><b> }</b><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據結構-家電庫存管理系統(tǒng)課程設計報告
- 數據結構-家電庫存管理系統(tǒng)課程設計報告
- 數據結構課程設計--庫存管理
- 數據結構課程設計---物品庫存管理
- 家電庫存管理系統(tǒng)課程設計報告
- 數據結構課程設計報告--車庫管理系統(tǒng)
- 職工管理系統(tǒng)數據結構課程設計報告
- 數據結構課程設計報告——圖書管理系統(tǒng)
- 數據結構課程設計報告圖書管理系統(tǒng)
- 《數據結構》課程設計報告--商品貨架管理系統(tǒng)
- 數據結構課程設計報告---學生學籍管理系統(tǒng)
- 數據結構課程設計報告
- 數據結構課程設計報告
- 數據結構課程設計報告
- 數據結構課程設計報告
- 數據結構課程設計報告
- 數據結構課程設計報告
- 數據結構-課程設計--學生管理系統(tǒng)
- 數據結構課程設計--成績管理系統(tǒng)
- 數據結構課程設計報告
評論
0/150
提交評論