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

下載本文檔

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

文檔簡介

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

開始五.源程序:#include"malloc.h#include"stdio.h"#include"stdlib.h"#include"string.h"#defineLISTSIZE100#defineMAXSIZE50TOC\o"1-5"\h\z/*文具分類信息的結(jié)構(gòu) */typedefstruct{intSortNumber; /*文具分類號 */charSortName[10]; /*文具分類名 */}DataType,SortType;typedefstruct{SortTypeitems[MAXSIZE];intlength;}SqList;typedefSqListSortList; /*文具分類順序表 */typedefstruct{/*文具分類號 /*文具分類號 *//*文具名稱 *//*文具數(shù)量 */charStockName[10];intamount;}StockType;/*單鏈表的結(jié)構(gòu)節(jié)點定義 */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("初始化鏈表錯誤! \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é)點 \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("請輸入文具類別總數(shù): \n");scanf("%d",&num);for(i=0;i<num;i++){

TOC\o"1-5"\h\zprintf("請輸入文具分類號: \n");scanf("%d",&sty.SortNumber);printf("請輸入文具分類名稱: \n");scanf("%s",&sty.SortName);/*使用順序表的 Insert操作在順序表中插入節(jié)點 */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)建錯誤 \n");return0;}printf("請輸入文具總數(shù) :\n");scanf("%d",&num);for(i=0;i<num;i++){printf("請輸入文具分類號 :\n");scanf("%d",&sty.SortNumber);printf("請輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請輸入文具數(shù)量 :\n");scanf("%d",&sty.amount);/*使用單鏈表的 Insert操作在單鏈表中插入結(jié)點 */Insert(*SL,i+1,sty);}printf("\nOK...\n");return1;}/*文具入庫 */intAddStock(StockListSL){StockTypesty;intpos=0;PNodep=SL->next;printf("請輸入文具分類號 :\n");scanf("%d",&sty.SortNumber);printf("請輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請輸入文具數(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("請輸入文具名稱 :\n");scanf("%s",&sty.StockName);printf("請輸入出庫數(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("請輸入文具分類號 :\n");scanf("%d",&no);/*查詢出所有該文具分類號的文具信息 */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("請輸入文具分類號 :\n");scanf("%d",&st.SortNumber);printf("請輸入文具分類名 :\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)設置文具分類表 \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請選擇(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é)果表達:(1)設置文具分類表K'I:\jj\Dcl)iig\CTPKeze文具店貨品管理系統(tǒng)』表別髀類表息息類具信信具-T具文庫庫具具文統(tǒng)一文化入出文文港一意具具詢示加出一翳文文查顯富i>>>>>>>>12245670-<<<<<<<<但輸入文具類別總數(shù):乙諾>-ArH叢*旦罐文具分類名科請輸入式里分類名稱:Izla日[己本請輸入文具分類號1△嘉具分類名稱:PR什算靠(2)(2)初始化文具店圖圖3嬴*1:\jj\Dcbug\Cppl.ese*文具店貨品管理系統(tǒng)一類表一類表息息哭》分具信信導一具文庫庫具具藻文生出文文法一1具具詢示加出一^^^文查顯簿i>>>>>>>>-12345670ccc/^-cccc請選擇<1.22,45/,,0)二2請輸入文具總數(shù)二卷輸入文具分類號二儲額人文具名稱:請輸入文具數(shù)量;483請輸入文具分類號:l輸入五是名稱:iaLw日記本請輸入文具數(shù)量,109B請輸入文具分類號:文器文入算入輸篇W請腳t15文器文入算入輸篇W請腳t15稱量名數(shù)具具圖2顯示文具信息(3)(3)文具入庫圖圖5芍拼音半2請輸入之具名稱;lala日1己本a■□XmM*I:\jj\Delmg\Cpp1.oxe產(chǎn)表別奘表息息類)分具信信具上具文笈具具文統(tǒng)一文化入出文文要一.具具詢示加出一翳文文查顯暫一>>>}>>>>12345670請選擇《加2.3.%5.6.7.3。請輸入文具分類號:圖4顯示文具入庫之后的文具信息(4)(4)文具出庫圖圖7文具店貨品管理系統(tǒng)號類表鐳分具王昌的庫庫具具文統(tǒng)息息類

信信具文化入出文文/

,具具詢示加出

甯文文查顯董

12345670

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論