![《数据结构》课程设计报告_商品货架管理系统_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/3c30d0ab-88a7-4b63-82bc-bdbe90386b98/3c30d0ab-88a7-4b63-82bc-bdbe90386b981.gif)
![《数据结构》课程设计报告_商品货架管理系统_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/29/3c30d0ab-88a7-4b63-82bc-bdbe90386b98/3c30d0ab-88a7-4b63-82bc-bdbe90386b982.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖北第二师范学院课程设计报告课程名称:数据结构课程设计设计题目:_ 商品货架管理系统_系 别:_ 计算机科学系_专 业:_ 软件工程_组 别:蔡桥利,阳乐,邱东明,郝耀峰_学生姓名:二_ 学 号:二_起止日期:20132013 年 1212 月 7 7 日20132013 年 1212 月 2121 日指导教师:_ 宋婉娟_ 教研室主任:目录一、课程设计目的 . 3二、问题描述 . 3三、需求分析 . 3四、概要设计 . 3五、详细设计 . 4六、测试分析 . 7七、使用说明 . 9八、测试数据 . 10九、源程序清单 . 10十、模块说明 . 19课程设计目的通过实习,了解并初步掌握设计、实
2、现较大系统的完整过程,包括系统分析、编码设计、 系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步 的应用开发打好基础。问题描述设计、实现一个商品货架管理系统,实现商品出售,增加,查询(按商品代号,商品名 字,生产日期),修改,输出过期商品,输出小于多少数量的商品。三需求分析四概要设计-4.1系统用到的抽象数据类型定义: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.退出系统- n);printf(tt*n);printf(tt*nn);按序号依次实现功能。struct node *n ext;LiStack,*sqstack;基本操作:置商品童架簣理系统亟应虽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)创建一个存放商品信息的栈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- -欢迎使用商品货架管理系统 -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.退出系统-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查询成欢迎再次便用查询系统.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欢迎再次使用查询系统-11、输出货架上的所有商品。代号商品名称生产日期保质期处数量t个:f2013161031604d2B1312115?2003c20131112G02S01&201312123010012、退出系统。请输入您的操作: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、退出系统。输入 0,退出系统。八测试数据如,测分析 六九源程序清单#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);/ 创建一个存放商品信息的栈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查询成功,欢迎再次使用查询系统.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查询成功,欢迎再次使用查询系统.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查询成功,欢迎再次使用查询系统 .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查询成功,欢迎再次使用查询系统 .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查询成功,欢迎再次使用查询系统.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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PB-22-N-4-Hydroxypentyl-3-carboxyindole-metabolite-生命科学试剂-MCE-7583
- EMPO-生命科学试剂-MCE-2695
- 二零二五年度自动驾驶车辆测试与示范运营合同
- 二零二五年度健康产品销售折扣与会员管理系统合同
- 2025年度体育设施建设与运营签合同授权委托书
- 2025年度董事薪酬体系设计与聘任合同
- 2025年度荒山开发使用权出让合同
- 2025年度林业保护驾驶员聘用与巡护服务合同
- 二零二五年度船舶船员劳动合同及船舶事故应急处理合同
- 二零二五年度2025年度离婚协议版:婚姻解除后财产分配及子女监护权及抚养协议
- GB/T 19228.1-2024不锈钢卡压式管件组件第1部分:卡压式管件
- 2024年计算机二级WPS考试题库380题(含答案)
- (高清版)DZT 0399-2022 矿山资源储量管理规范
- 初一英语英语阅读理解专项训练15篇
- 2023年山西国际能源集团有限公司招聘笔试题库及答案解析
- 部编人教版五年级道德与法治下册全册课件(完整版)
- 广西贵港市2023年中考物理试题(原卷版)
- 仁爱英语八年级阅读理解测试题和答案
- DB11∕T 1875-2021 市政工程施工安全操作规程
- 传统节日春节英文介绍课件
- 水资源论证报告
评论
0/150
提交评论