算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)文具店的貨品管理系統(tǒng)的設(shè)計(jì)_第1頁
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)文具店的貨品管理系統(tǒng)的設(shè)計(jì)_第2頁
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)文具店的貨品管理系統(tǒng)的設(shè)計(jì)_第3頁
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)文具店的貨品管理系統(tǒng)的設(shè)計(jì)_第4頁
算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)文具店的貨品管理系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

算法與數(shù)據(jù)結(jié)構(gòu) 文具店的貨品管理系統(tǒng)的設(shè)計(jì)學(xué)院:信息工程學(xué)院班級(jí):8888888學(xué)號(hào):學(xué)888888姓名:瀏覽吊磊磊落落指導(dǎo)老師:經(jīng)濟(jì)加加減減日期:2009年6月27日目錄:一.實(shí)驗(yàn)名稱二.問題描述三.總體設(shè)計(jì)四.流程圖五.源程序六.結(jié)果表達(dá)七.結(jié)果分析八.收獲體會(huì)九.參考文獻(xiàn)十.評(píng)語實(shí)驗(yàn)名稱:文具店的貨品管理系統(tǒng).問題描述:在文具店的日常經(jīng)營過程中,存在對(duì)各種文具管理問題。當(dāng)庫存文具不足或缺貨時(shí),需要進(jìn)貨。日常銷售時(shí),需要出庫。當(dāng)盤點(diǎn)貨物時(shí),需要查詢貨物信息。根據(jù)這些需要編寫了此軟件完成庫存文具的管理功能。.總體設(shè)計(jì):通過對(duì)問題的抽象,文具信息和文具分類信息可以用表 1和表2來表示??梢娢木咝畔⒑臀木叻诸愋畔⒃谶壿嬌暇哂芯€性的關(guān)系, 因此可以使用線性表來解決這個(gè)問題。 由于文具信息變動(dòng)較大,應(yīng)該使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)進(jìn)行表示和實(shí)現(xiàn)。 而文具分類信息變動(dòng)不大,可使用順序存儲(chǔ)結(jié)構(gòu)進(jìn)行表示和實(shí)現(xiàn)。表1 文具信息文具名稱文具類別文具數(shù)量jj鋼筆1400lala日t己本21000pp計(jì)算器3150表2 文具分類信息文具分類號(hào)文具類別名1文具2紙張3工具順序表和鏈表的比較:線性表除了可以用順序存儲(chǔ)結(jié)構(gòu)來表示以外, 還可以用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)來表示。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)不同的是: 它不要求邏輯上相鄰的數(shù)據(jù)元素在物理位置上也相鄰,它通過指針來表示數(shù)據(jù)元素之間的邏輯關(guān)系。#順序表存儲(chǔ)結(jié)構(gòu)比較適合于線性表的長度不經(jīng)常發(fā)生變化, 不經(jīng)常進(jìn)行插入和刪除操作,經(jīng)常進(jìn)行存取和查詢操作。#鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比較適合于線性表的長度不可預(yù)知,需要頻繁進(jìn)行插入和刪除操作。

開始五.源程序:#include"malloc.h#include"stdio.h"#include"stdlib.h"#include"string.h"#defineLISTSIZE100#defineMAXSIZE50TOC\o"1-5"\h\z/*文具分類信息的結(jié)構(gòu) */typedefstruct{intSortNumber; /*文具分類號(hào) */charSortName[10]; /*文具分類名 */}DataType,SortType;typedefstruct{SortTypeitems[MAXSIZE];intlength;}SqList;typedefSqListSortList; /*文具分類順序表 */typedefstruct{/*文具分類號(hào) /*文具分類號(hào) *//*文具名稱 *//*文具數(shù)量 */charStockName[10];intamount;}StockType;/*單鏈表的結(jié)構(gòu)節(jié)點(diǎn)定義 */typedefstructNode{StockTypedata;structNode*next;}LNode,*PNode,*LinkList;/*文具鏈表 */typedefLinkListStockList;/*串的定義 */#defineSTRSIZE100typedefstruct{charch[STRSIZE];intlength;}SqString;/*串比較*/intstrcmp(SqStringS,SqStringT){inti;for(i=0;i<S.length&&i<T.length;i++)if(S.ch[i]!=T.ch[i])return(S.ch[i]-T.ch[i]);return(S.length-T.length);}/*單鏈表的初始化 */intInitList(LinkList*h){*h=(LinkList)malloc(sizeof(LNode));if(!h){printf("初始化鏈表錯(cuò)誤! \n");return0;}(*h)->next=NULL;return1;}/*單鏈表的插入 */intInsert(LinkListh,intpos,StockTypex){PNodep=h,q;inti=0;while(p&&i<pos-1){p=p->next;i++;}if(!p||i>pos-1){printf("插入位置不合法! \n");return0;}q=(PNode)malloc(sizeof(LNode));if(!q){printf("不能生成新結(jié)點(diǎn) \n");return0;}q->data=x;q->next=p->next;p->next=q;return1;}/*單鏈表的刪除 */intDelete(LinkListh,intpos,StockType*item){PNodep=h,q;inti=0;while(p->next&&i<pos-1){p=p->next;i++;}if(!p->next||i>pos-1){printf("刪除位置不合法! \n");return0;}q=p->next;p->next=q->next;*item=q->data;free(q);return1;}voidDestroy(LinkListh){PNodep=h->next;while(h){p=h;h=h->next;free(p);}/*順序表的初始化 */intInitList_Sq(SqList*L){L->length=0;return1;}/*順序表的插入 */intListInsert_Sq(SqList*L,intpos,DataTypeitem){inti;if(L->length>=LISTSIZE){printf("");return0;}if(pos<=0||pos>L->length+1){printf("");return0;}for(i=L->length-1;i>=pos-1;i--)L->items[i+1]=L->items[i];L->items[pos-1]=item;L->length++;return1;}/*初始化文具分類順序表 */intCreateSortList(SortList*SL){inti,num=0;SortTypesty;/*使用順序表的 InitList操作初始化順序表 *//*為了區(qū)別單鏈表的同名函數(shù),把順序表的 InitList函數(shù)名改為 InitList_Sq*/InitList_Sq(SL);printf("請(qǐng)輸入文具類別總數(shù): \n");scanf("%d",&num);for(i=0;i<num;i++){

TOC\o"1-5"\h\zprintf("請(qǐng)輸入文具分類號(hào): \n");scanf("%d",&sty.SortNumber);printf("請(qǐng)輸入文具分類名稱: \n");scanf("%s",&sty.SortName);/*使用順序表的 Insert操作在順序表中插入節(jié)點(diǎn) */Insert_Sq*//*為了區(qū)別單鏈表的同名函數(shù),把順序表的 ListInsert函數(shù)名改為Insert_Sq*/ListInsert_Sq(SL,i+1,sty);}printf("\nOK...\n");return1;}/*初始化文具鏈表 */intCreateStockList(StockList*SL){inti,num=0;StockTypesty;/*使用單鏈表的 InitList操作初始化單鏈表 */if(!InitList(SL)){printf("創(chuàng)建錯(cuò)誤 \n");return0;}printf("請(qǐng)輸入文具總數(shù) :\n");scanf("%d",&num);for(i=0;i<num;i++){printf("請(qǐng)輸入文具分類號(hào) :\n");scanf("%d",&sty.SortNumber);printf("請(qǐng)輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請(qǐng)輸入文具數(shù)量 :\n");scanf("%d",&sty.amount);/*使用單鏈表的 Insert操作在單鏈表中插入結(jié)點(diǎn) */Insert(*SL,i+1,sty);}printf("\nOK...\n");return1;}/*文具入庫 */intAddStock(StockListSL){StockTypesty;intpos=0;PNodep=SL->next;printf("請(qǐng)輸入文具分類號(hào) :\n");scanf("%d",&sty.SortNumber);printf("請(qǐng)輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請(qǐng)輸入文具數(shù)量 :\n");scanf("%d",&sty.amount);while(p){/*如果該文具存在,則修改其數(shù)量 */if(!strcmp(p->data.StockName,sty.StockName)){p->data.amount+=sty.amount;break;}p=p->next;pos++;}/*如果該文具不存在,則插入到文具鏈表中 */if(!p)Insert(SL,pos+1,sty);printf("\nOK...\n");return1;}/*文具出庫 */intRemoveStock(StockListSL){StockTypesty;PNodep=SL->next;intpos=0;printf("請(qǐng)輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請(qǐng)輸入出庫數(shù)量 :\n");scanf("%d",&sty.amount);while(p&&strcmp(p->data.StockName,sty.StockName)){p=p->next;pos++;}/*修改該文具的數(shù)量 */p->data.amount-=sty.amount;*//*如果出庫數(shù)量大于庫存數(shù)量,則從鏈表中刪除該文具*/if(p->data.amount<=0)Delete(SL,pos+1,&sty);printf("\nOK...\n");return1;}/*查詢文具信息 */intQueryStock(StockListSL){intno;PNodep=SL->next;printf("請(qǐng)輸入文具分類號(hào) :\n");scanf("%d",&no);/*查詢出所有該文具分類號(hào)的文具信息 */printf("\nNumberStockNameamount\n");while(p){if(p->data.SortNumber==no){printf("%d\t",p->data.SortNumber);printf("%s\t",p->data.StockName);printf("%d\t",p->data.amount);printf("\n");}p=p->next;}return1;}/*顯示文具信息 */voidDispStock(StockListSL){PNodep=SL->next;printf("\nNumberStockNameamount\n");while(p){printf("%d\t",p->data.SortNumber);printf("%s\t",p->data.StockName);printf("%d\t",p->data.amount);printf("\n");p=p->next;}}/*添加新文具類別 */intAddSort(SortList*L){SortTypest;printf("請(qǐng)輸入文具分類號(hào) :\n");scanf("%d",&st.SortNumber);printf("請(qǐng)輸入文具分類名 :\n");scanf("%s",&st.SortName);if(!ListInsert_Sq(L,L->length+1,st))return0;printf("\nOK...\n");return1;}intmain(intargc,char*argv[]){intchoice;StockListSL;SortListL;doprintf("\n文具店貨品管理系統(tǒng)TOC\o"1-5"\h\zprintf("\n 主菜單 \n")printf(" (1)設(shè)置文具分類表 \n");printf(" (2)初始化文具表 \n");printf(" (3)文具入庫 \n");printf(" (4)文具出庫 \n");printf(" (5)查詢文具信息 \n");printf(" (6)顯示文具信息 \n");printf(" (7)添加新文具類別 \n");printf(" (0)退出系統(tǒng) \n");printf("\n請(qǐng)選擇(1,2,3,4,5,6,7,0):");scanf("%d",&choice);if(choice<0&&choice>7)continue;switch(choice){case1:CreateSortList(&L);break;case2:CreateStockList(&SL);break;case3:AddStock(SL);break;case4:RemoveStock(SL);break;case5:QueryStock(SL);break;\n");/*初始化文具分類順序表 \n");/*初始化文具分類順序表 *//*初始化文具表 *//*文具入庫 *//*文具出庫 *//*查詢文具信息 *//*顯示文具信息 *//*添加新文具類別/*添加新文具類別*//*退出主程序*/case0:exit(0);default:break;}}while(1);return0;}六.結(jié)果表達(dá):(1)設(shè)置文具分類表K'I:\jj\Dcl)iig\CTPKeze文具店貨品管理系統(tǒng)』表別髀類表息息類具信信具-T具文庫庫具具文統(tǒng)一文化入出文文港一意具具詢示加出一翳文文查顯富i>>>>>>>>12245670-<<<<<<<<但輸入文具類別總數(shù):乙諾>-ArH叢*旦罐文具分類名科請(qǐng)輸入式里分類名稱:Izla日[己本請(qǐng)輸入文具分類號(hào)1△嘉具分類名稱:PR什算靠(2)(2)初始化文具店圖圖3嬴*1:\jj\Dcbug\Cppl.ese*文具店貨品管理系統(tǒng)一類表一類表息息哭》分具信信導(dǎo)一具文庫庫具具藻文生出文文法一1具具詢示加出一^^^文查顯簿i>>>>>>>>-12345670ccc/^-cccc請(qǐng)選擇<1.22,45/,,0)二2請(qǐng)輸入文具總數(shù)二卷輸入文具分類號(hào)二儲(chǔ)額人文具名稱:請(qǐng)輸入文具數(shù)量;483請(qǐng)輸入文具分類號(hào):l輸入五是名稱:iaLw日記本請(qǐng)輸入文具數(shù)量,109B請(qǐng)輸入文具分類號(hào):文器文入算入輸篇W請(qǐng)腳t15文器文入算入輸篇W請(qǐng)腳t15稱量名數(shù)具具圖2顯示文具信息(3)(3)文具入庫圖圖5芍拼音半2請(qǐng)輸入之具名稱;lala日1己本a■□XmM*I:\jj\Delmg\Cpp1.oxe產(chǎn)表別奘表息息類)分具信信具上具文笈具具文統(tǒng)一文化入出文文要一.具具詢示加出一翳文文查顯暫一>>>}>>>>12345670請(qǐng)選擇《加2.3.%5.6.7.3。請(qǐng)輸入文具分類號(hào):圖4顯示文具入庫之后的文具信息(4)(4)文具出庫圖圖7文具店貨品管理系統(tǒng)號(hào)類表鐳分具王昌的庫庫具具文統(tǒng)息息類

信信具文化入出文文/

,具具詢示加出

甯文文查顯董

12345670

<<<<<<<<q■■076■5■:笳心名,2具口

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論