超市商品销售系统数据结构报告_第1页
超市商品销售系统数据结构报告_第2页
超市商品销售系统数据结构报告_第3页
超市商品销售系统数据结构报告_第4页
超市商品销售系统数据结构报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论