《數據結構》課程設計報告_商品貨架管理系統(tǒng)_第1頁
《數據結構》課程設計報告_商品貨架管理系統(tǒng)_第2頁
免費預覽已結束,剩余18頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、湖北第二師范學院課程設計報告課程名稱:數據結構課程設計設計題目:_ 商品貨架管理系統(tǒng)_系 別:_ 計算機科學系_專 業(yè):_ 軟件工程_組 別:蔡橋利,陽樂,邱東明,郝耀峰_學生姓名:二_ 學 號:二_起止日期:20132013 年 1212 月 7 7 日20132013 年 1212 月 2121 日指導教師:_ 宋婉娟_ 教研室主任:目錄一、課程設計目的 . 3二、問題描述 . 3三、需求分析 . 3四、概要設計 . 3五、詳細設計 . 4六、測試分析 . 7七、使用說明 . 9八、測試數據 . 10九、源程序清單 . 10十、模塊說明 . 19課程設計目的通過實習,了解并初步掌握設計、實

2、現較大系統(tǒng)的完整過程,包括系統(tǒng)分析、編碼設計、 系統(tǒng)集成、以及調試分析,熟練掌握數據結構的選擇、設計、實現以及操作方法,為進一步 的應用開發(fā)打好基礎。問題描述設計、實現一個商品貨架管理系統(tǒng),實現商品出售,增加,查詢(按商品代號,商品名 字,生產日期),修改,輸出過期商品,輸出小于多少數量的商品。三需求分析四概要設計-4.1系統(tǒng)用到的抽象數據類型定義:1、/定義結構體typedef struct nodeint n; /商品代號char n ame20; / 商品名稱 int date; /生產日期in t validity; /保質期(天)int num; /商品數量prin tf(tt- 1

3、.建立目前商品信息- n);prin tf(tt- 2.添加商口口- n);prin tf(tt- 3.出售商品- n);prin tf(tt- 4.查詢商品- n);prin tf(tt- 5.修改商品- n);prin tf(tt- 6.顯示所有商品信息- n);prin tf(tt- 0.退出系統(tǒng)- n);printf(tt*n);printf(tt*nn);按序號依次實現功能。struct node *n ext;LiStack,*sqstack;基本操作:置商品童架簣理系統(tǒng)亟應雖1+ *7 node-Q GlobalscreatQDateF(int dale, int validit

4、y)findLiSt3ck *top.mainQ.NameF(LiStack *top)NumberF(LiStacln ext;ifelse增加商品sqstack push(LiStack *top)創(chuàng)建一個存放商品信息的棧sqstack creat()出售商品sqstack pop(LiStack *top) /按序號查找商品void SequenceNumberF(LiStack *top)/按商品名字查詢商品void NameF(LiStack *top)/按商品生產日期查找商品void ProductionDateF(LiStack *top)/按商品數量查找商品,查找小于該數量的商

5、品void NumberF(LiStack *top)/date加validity,并返回date,到期時間。int DateF(int date,int validity)/查詢過期商品信息void OverdueF(LiStack *top)/查詢商品void find(LiStack *top)/修改商品sqstack update(LiStack *top)void main()LiStack *top;char i,j;top=(LiStack *)malloc(sizeof(LiStack);top-next=NULL;printf(nntt- -歡迎使用商品貨架管理系統(tǒng) -n);

6、while(1)printf(tt*n);printf(tt- 1.建立目前商品信息-n);printf(tt- 2.添加商品-n);printf(tt- 3.出售商品-n);printf(tt- 4.查詢商品-n);printf(tt- 5.修改商品-n);printf(tt- 6.顯示所有商品信息-n);printf(tt- 0.退出系統(tǒng)-n);printf(tt*nn);printf(ttt請輸入您的操作:);scanf(%s,&i);scanf(%c,&j);printf(nn);if(i = 0)printf(ttt退出成功,歡迎下次使用!n);break; else

7、 switch(i)case 1:top=creat();break;case 2:top=push(top);break;case 3:top=pop(top);break;case 4:find(top);break;case 5:top=update(top);break;case 6:print(top);break;default:printf(ttt輸入錯誤,請選擇正確的功能n);六.測試分析按照附錄中的測試數據,得出如下測試、分析結果:1 新建商品信息。a/b/c/d*號商品名稱生產日期保質期(天數量“4d20131211602003C20131112603002b2Q131S1

8、0302&a1A20131212302、增加商品。f。f 弋號商品名稱生產日期保質期(天)數欽個6f20131Q10316Q4d2R131211602003c20131112603002b201310103B2001a2W131212301003、出售商品代號 3,商品名稱 c,50 個。代叮商品名稱生產日期保質期1天數量t個)bf314d2M131211602M03c20131112602502b3020Q1a20131212301Q04、出售商品代號 2,商品名稱 b,200 個。仁號竊品名稱生產日期保質期(天數量(個)6f2P131010314d20131211602QQc201

9、31112602501a20131212301RR -I320131211歡迎進入裔品亙詢界面! 中崩萱詢|A31【接 補 查詢輸人町期商品信息榆入5】 詢1-5:5是=20131226(20131226的過期的商品有:生產日囲20131010詢號式口畧方商品S3什詢30查詢成歡迎再次便用查詢系統(tǒng).6、查詢,按商品名稱查詢,輸入b。面界名個- -1 1 3 3 S S入k k入詢詢息2 2查查信:號鋁品- -5 5: :b b商迎弋3 3, ,商:商 1 1彈過查數躡稱品倔名:方商干品 r rL L么tips:SO5、查詢,按序號查詢,輸入 1.星 g 黔10、修改商品。修改商品代號為4 的商

10、品。弋號是4一歡迎商品修改界面! 一 蘇生產日期保質期(天輸人4號_驅名稱記生嚴且期5年月日20131215:一保質期咲也-一數量匕:20歡迎再次使用查詢系統(tǒng)-11、輸出貨架上的所有商品。代號商品名稱生產日期保質期處數量t個:f2013161031604d2B1312115?2003c20131112G02S01&201312123010012、退出系統(tǒng)。請輸入您的操作:0|退岀成功歡迎下次使用!Press any key to cantinueH七使用說明1、建立目前商品信息。輸入1, -1 表示結束。按照提示依次輸入商品代號、商品名稱、生產日期、保質期、數量。2、添加商品。輸入 2

11、,依次輸入商品代號、商品名稱、生產日期、保質期、數量。3、出售商品。輸入 3,顯示所有商品,選擇要出售的商品代號、數量,如果出售的數量小 于等于該商品有的數量則顯示出售成功。否則顯示出售失敗。4、 查詢商品。輸入 4,選擇 1、2、3 則按商品代號、名稱、生產日期查詢商品,選擇4、5,則分別輸出小于該數值的商品,輸出過期商品。5、修改商品信息。輸入 5,輸入修改商品代號,按照提示輸入商品名稱、生產日期,保質 期,數量。6、 輸入所有商品信息。輸入 6,顯示所有商品信息。20131211-itllpolp號加: :4 4 4 4 4 4 L L力入入入成麼主冃圭冃空冃宓-20131211前口習習

12、習目商商商立期n詢改帝建g g查修顯退1212 3 34 4 5 5 6 6 0 01.口7、退出系統(tǒng)。輸入 0,退出系統(tǒng)。八測試數據如,測分析 六九源程序清單#include#include#include / 定義結構體 typedef struct nodeint n; /char name20; /int date; / int validity; /int num; / struct node*next; LiStack,*sqstack;/ 輸出所有商品 p 的名字、生產日期、保質期。 void print(sqstack p)sqstack L=(LiStack *)malloc

13、(sizeof(LiStack); L=p-next;if(L=NULL)printf( 貨架為空。 n); elseprintf(” 代號t 商品名稱t 生產日期tt 保質期(天)ttwhile(L!=NULL)printf(%d,L-n); printf(t%s tt,L-name); printf(%d tt,L-date); printf(%dtt,L-validity); printf(%d ttn,L-num); p=L;L=p-next;/ 增加商品sqstack push(LiStack *top)printf(t*n);商品代號商品名稱生產日期保質期(天)商品數量數量(個)n

14、);int validity,num,n;int date;char name20;LiStack *temp=(LiStack *)malloc(sizeof(LiStack);printf(ttt- 歡迎進入商品添加界面! -n);temp=(LiStack *)malloc(sizeof(LiStack); printf(t 增加商品的代號是 :);scanf(%d,&n);printf(t增加的商品名稱是 :);scanf(%s,name);printf(t生產日期 ( 年月日,如:20131215:) 是 :);scanf(%d,&date);printf(t保質期

15、(天) 是: );scanf(%d,&validity);printf(t數量 ( 個):);scanf(%d,&num);temp-date=date;strcpy(temp-name,name);temp-num=num;temp-validity=validity;temp-n=n; if(top-next=NULL)temp-next=NULL; top-next=temp;elsetemp-next=top-next; top-next=temp;printf(t 商品添加成功! n);return (top);/ 創(chuàng)建一個存放商品信息的棧sqstack creat(

16、)int n,validity,num;char name20;int date;LiStack *p;LiStack *top=(LiStack *)malloc(sizeof(LiStack); top-next=NULL;while(1)printf(t 請輸入商品代號 (int) ,代號為 -1 表示輸入結束 :);scanf(%d,&n);if(ndate=date;p-validity=validity; strcpy(p-name,name); p-num=num;p-n=n;if(top-next=NULL)p-next=NULL;top-next=p;elsep-ne

17、xt=top-next; top-next=p;return(top);/ 出售商品sqstack pop(LiStack *top)int n,num;LiStack *p,*L;p=(LiStack *)malloc(sizeof(LiStack);L=(LiStack *)malloc(sizeof(LiStack);printf(ttt-歡迎進入商品出售界面! -n);printf(t- 目前商品有 :n);print(top);printf(出售的商品代號是 :);scanf(%d,&n);printf(出售的商品數量 (個):);scanf(%d,&num);p=t

18、op-next; if(top-next=NULL)printf( 貨架為空,請先添加貨物 ! n);elsewhile(p-next!=NULL), 如 20131215):,n);if(p-next-n=n)if(p-next-numnext-num=num)if(p-next-next=NULL)p-next=NULL;printf( 商品出售成功 !);free(L);break;elseL=p-next;p-next=L-next;free(L);printf( 商品出售成功 !);break;elsep-next-num-=num;printf( 商品出售成功 !);break;p

19、=p-next;if(p=NULL)printf( 輸入的商品序號有誤,請重新操作。 n);return(top);/ 按序號查找商品void SequenceNumberF(LiStack *top)int n,x=0;LiStack *p;p=(LiStack *)malloc(sizeof (LiStack);printf( 需要查詢的商品代號是 :);scanf(%d,&n);p=top;while(p-next!=NULL)if(p-next-n=n)printf( 代號 t 商品名稱 t 生產日期 tt 保質期 ( 天 )tt(個)n);printf(%d,p-next-n

20、);數量printf(t%s tt,p-next-name);printf(%d tt,p-next-date);printf(%d tt,p-next-validity);printf(%d ttn,p-next-num);x=1;break;p=p-next;if(x=0&p-next=NULL)printf(t沒有您要查詢的商品。 n);printf(t查詢成功,歡迎再次使用查詢系統(tǒng).n);/ 按商品名字查詢商品void NameF(LiStack *top)char name20;int x=0;LiStack *p;p=(LiStack *)malloc(sizeof (Li

21、Stack);printf( 需要查詢的商品名稱是 :);scanf(%s,name);p=top;while(p-next!=NULL)if(strcmp(p-next-name,name)=0)printf( 代號 t 商品名稱 t 生產日期 tt 保質期 ( 天 )tt(個)n);printf(%d,p-next-n);printf(t%s tt,p-next-name);printf(%d tt,p-next-date);printf(%d tt,p-next-validity);printf(%d ttn,p-next-num);x=1;break;p=p-next;if(x=0&a

22、mp;p-next=NULL)printf(t沒有您查詢的商品。 n);printf(t查詢成功,歡迎再次使用查詢系統(tǒng).n);/ 按商品生產日期查找商品void ProductionDateF(LiStack *top)int x=0;int date;LiStack *p;p=(LiStack *)malloc(sizeof (LiStack);printf( 需要查詢的生產日期是 :);數量scanf(%d,&date);p=top;printf(”需要查詢的生產日期4 的商品有:n,date);printf(”代號t 商品名稱t 生產日期tt 保質期(天)tt 數量(個)n);w

23、hile(p-next!=NULL)if(date=p-next-date)printf(%d,p-next-n); printf(t%s tt,p-next-name); printf(%dtt,p-next-date); printf(%d tt,p-next-validity); printf(%dttn,p-next-num);x=1;p=p-next;if(x=0&p-next=NULL)prin tf(t沒有商品的生產日期在d 之前商品。n ,date);printf(t查詢成功,歡迎再次使用查詢系統(tǒng) .n);/ 按商品數量查找商品,查找小于該數量的商品void Numbe

24、rF(LiStack *top)int num,x=0;LiStack *p;p=(LiStack *)malloc(sizeof (LiStack); printf( 需要查詢的商品數量是:);scanf(%d,&num);p=top;printf(商品數量低于4 的商品有:n,num);printf( 代號t 商品名稱t 生產日期tt 保質期(天)tt 數量(個)n);while(p-next!=NULL)if(p-next-numnext-n);printf(t%s tt,p-next-name); printf(%d tt,p-next-date);printf(%d tt,p

25、-next-validity); printf(%d ttn,p-next-num);x=1;p=p-next;if(x=0&p-next=NULL)printf(t沒有商品低于4 的商品。n,num);printf(t查詢成功,歡迎再次使用查詢系統(tǒng) .n);/date 加 validity ,并返回 date ,到期時間。int DateF(int date,int validity)int i=0,j=0,k=0;int c=0;i=date/10000;j=(date-10000*i)/100;k=date-10000*i-100*j;k=k+validity;if(k30)c=

26、k/30;k=k%30;j=j+c;c=0;if(j12)c=j/12;j=j%12;i=i+c;date=i*10000+j*100+k;return (date);/ 查詢過期商品信息void OverdueF(LiStack *top)int validity,x=0;LiStack *p;int date,date2,date1;p=(LiStack *)malloc(sizeof (LiStack);printf( 請輸入目前的日期是 :);scanf(%d,&date);p=top;printf( 需要查詢目前日期 (%d) 的過期的商品有 :n,date);while(p

27、-next!=NULL)validity=p-next-validity;date1=p-next-date;date2=DateF(date1,validity);if(date2next-n);printf(t%s tt,p-next-name);printf(%d tt,p-next-date);printf(%d tt,p-next-validity);printf(%d ttn,p-next-num);數量x=1;p=p-next;if(x=0&p-next=NULL)printf(t沒有過期商品。 n);printf(t查詢成功,歡迎再次使用查詢系統(tǒng).n);/ 查詢商品vo

28、id find(LiStack *top)int i;printf(ttt- 歡迎進入商品查詢界面! -n);printf(tips:t 【按 商品代號 查詢輸入 1】t 【按 名稱 查詢輸入 2】 n printf(t 【按生產日期 查詢輸入 3】 t 【按 個數 查詢輸入 4】n); printf(t 【查詢過期商品信息輸入5】n);printf( 輸入按什么方式查詢 (1-5):);scanf(%d,&i);switch(i)case 1 :SequenceNumberF(top);break;case 2 :NameF(top);break;case 3 :Production

29、DateF(top);break;case 4 :NumberF(top);break;case 5 :OverdueF(top);break;default :printf(ttt 輸入查詢方式錯誤。 n);/ 修改商品sqstack update(LiStack *top)int n,validity,num,i,x;char name20;int date;LiStack *p;p=(LiStack *)malloc(sizeof (LiStack);printf(ttt- 歡迎進入商品修改界面! -n);printf( 需要查詢的商品代號是 :);scanf(%d,&i);p=top;while(p-next!=NULL)if(p-next-n=i)printf( 代號 t 商品名稱 t 生產日期 tt 保質期 ( 天 )tt(個)n);printf(%d,p-next-n);printf(t%s tt,p-next-name); printf(%d tt,p-next-date);數量printf(%d tt,p-next-validity); printf(%d ttn,p-next-num); printf(t修改為 :);n=p-next-n;printf(t請輸入%d 號商品名稱:,n

溫馨提示

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

評論

0/150

提交評論