




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、超市管理系统1. 问题描述对超市商品进行查询和管理,查询所有商品,是否进货,是否添加某中商品数量,对商品价格进行排序输出商品信息,销售商品。2. 问题分析一个商品的信息可以用一个线性表表示,长度不定。在第一步为超市添加多种商品,方便以后的操作。使用输出表查看全部商品信息,通过使用快速查找是某种商品信息,用选择排序法使商品按价格升序排列,利用顺序表的插入函数添加商品时,通过使用查询判断该商品是否已经存在,如果存在就只添加商品数目,如不存在则继续添加该商品的其他信息。在销售商品时,销售的商品如果存在,当销售数目大于超市所拥有的数目时,提示商品不足以销售。若刚好销售完使得数目为0 ,提示是否添加商品
2、数目。如果商品不存在则显示是否添加该商品。利用顺序表删除函数删除商品信息。3.数据结构用顺序表存储商品信息,方便给定位置的添加和删除信息以及查找给定数据。typedef struct char name20;商品的名称 KeyType id;商品编号KeyType price;价格int num;数目ElemType;typedef structElemType elem100;int length;SqList; 4.主要算法1.顺序表的初始化 void InitList(SqList *&L)2.判断顺序表是否为空 int ListEmpty(SqList *L)3.求表长 int Lis
3、tLength(SqList *L)4.尾插法加入数据int ListInsert(SqList *&L,int i,ElemType e)5.输出表void DispList(SqList *L)6.快速查找int search (SqList *L,int id)7.查找void chazhao(SqList *L)8.选择排序void SelectSort(SqList * L ,int n)9.销售商品void xiaoshou(SqList *L,int id)10.添加商品信息void add(SqList * L,int id)11.删除商品信息void shanchu(SqLi
4、st * L,int id)12.主菜单void caidan()5. 使用说明按照主菜单提示输入即可6. 调试报告1.销售商品(1)如果商品不存在(2)如果商品存在销售前后商品数目的对比,显示销售成功2.进货(1)如果商品存在,只添加商品数目添加完后数目的对比(2)如果商品不存在添加完成前后的对比遇到的问题:1. 在添加商品信息时,只能在输出表中看到已经添加的信息,不能再查询中找到2. 删除商品信息时没有产生作用。解决方案:1. 在查询时是按数据所在的位置查找,而不是数据的下标。2. 删除商品时是删除该商品所在的位置,不是下标。7.个人总结通过这次实验,学会了如何建表,如何将查找,排序,插入
5、等算法运用到顺序表中,和以往简单的用文件存储数据相比,利用数据结构的顺序表存储显得编程含金量提高。此外,更加巩固了本学期所学的一系列知识,获益不少。8. 附录:/添加商品void add(SqList *L,int id)int c,x,num;ElemType a;x=search( L,id);if(x!=-1)printf(超市中已经有%s,数量为%d,是否添加数量(1表示是,表示否):n,L-,L-elemx.num);scanf(%d,&c);if(c=1)printf(输入要添加的数目n);scanf(%d,&num);L-elemx.num=L-elemx.n
6、um+num;elseprintf(取消添加n);else printf(超市中没有编号为%d的商品,继续输入其他信息n,id);scanf(%s %d %d,&,&a.price,&a.num);a.id=id;ListInsert(L,L-length+1,a);printf(添加完成n);/销售商品void xiaoshou(SqList *L,int id)int x,num,c,c1;x=search( L,id);if(x!=-1)printf(超市中有%s,输入销售数量:n,L-);scanf(%d,&num);if(numelemx.num)L-
7、elemx.num=L-elemx.num-num;printf(销售金额为%dn,num*L-elemx.price);if(L-elemx.num=0)printf(商品数目为,:添加商品数目;2:删除该商品;其他不做改动n);scanf(%d,&c1);if(c1=1)add(L,id);else if(c1=2)ListDelete(L,x+1,L-elemx);else printf(不做改动n);else printf(商品数目不足n);elseprintf(没有编号为%d商品信息,是否添加(是,否)n,id); scanf(%d,&c);if(c=1)add(L,id);else
8、 printf(取消添加);/删除商品void shanchu(SqList * L,int id)int x;x=search ( L,id);if(x!=-1)ListDelete(L,x+1,L-elemx);printf(删除信息成功n);else printf(超市中没有该商品n);/主菜单void caidan()printf(欢迎进入超市管理系统n);printf(1:查看所有商品信息n);printf(2:按编号查询某种商品信息n);printf(3:按价格从低到高查看商品信息n);printf(4:销售商品n);printf(5:添加商品信息n);printf(6:删除商品信
9、息n);printf(7:退出n);printf(n);void main()SqList *L;ElemType a;InitList(L);int c,id1,id2,id3;strcpy(,铅笔);a.id=10001;a.num=100;a.price=1;ListInsert(L,1,a);strcpy(,水桶);a.id=10010;a.num=100;a.price=25;ListInsert(L,2,a);strcpy(,数学作业纸);a.id=10004;a.num=10;a.price=2;ListInsert(L,3,a);strcpy
10、(,苹果);a.id=10009;a.num=100;a.price=2;ListInsert(L,4,a);strcpy(,笔记本);a.id=10005;a.num=10;a.price=5000;ListInsert(L,5,a);while(1)caidan();printf(请选择:n);scanf(%d,&c);switch(c)case 1:DispList(L);printf(n);break;case 2:chazhao(L);printf(n);break;case 3:SelectSort( L ,L-length);break;case 4:printf(请输入要销售的商品的编号n);scanf(%d,&id1);xiaoshou(L,id1);break;case 5:printf(请输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 董卿一年级数学试卷
- 肝患者临床护理
- 甘肃省临洮县数学试卷
- 肛痈的护理课件
- 福州春考数学试卷
- 肉鸽养殖技术课件教学
- 肉猪养殖技术课件
- 2024年10月陕西陕西农信社社会招考笔试历年参考题库附带答案详解
- 2025至2030国际快递行业市场深度研究与战略咨询分析报告
- 邯郸市馆陶县事业单位招聘考试真题2024
- 大学2023年自主招生报名登记表
- 小学体育暑假特色作业
- 2020四川考研数学二真题【含答案】
- 压缩机拆除方案
- DB50-T 1293-2022 松材线虫病疫木除治技术规范(标准文本)
- 微电子工艺实验报告
- 部编人教版小学一年级上册写字表田字格字帖
- JJG 5-2001 纤维卷尺、测绳检定规程-(高清现行)
- 金属材料检验的标准课件
- 暑假人教版7升8年级英语试卷试题及答案
- 培训PPT:燃气安全知识及管理PPT课件
评论
0/150
提交评论