数据结构课程设计报告_超市商品管理

上传人:工**** 文档编号:499151710 上传时间:2023-02-11 格式:DOC 页数:32 大小:85.50KB
返回 下载 相关 举报
数据结构课程设计报告_超市商品管理_第1页
第1页 / 共32页
数据结构课程设计报告_超市商品管理_第2页
第2页 / 共32页
数据结构课程设计报告_超市商品管理_第3页
第3页 / 共32页
数据结构课程设计报告_超市商品管理_第4页
第4页 / 共32页
数据结构课程设计报告_超市商品管理_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《数据结构课程设计报告_超市商品管理》由会员分享,可在线阅读,更多相关《数据结构课程设计报告_超市商品管理(32页珍藏版)》请在金锄头文库上搜索。

1、.1.需求分析在某个大型生活服务区内,有三个超市,每个超市中的商品包括:商品号,商品名称,商品价格,库存数量,每种商品总数,生产日期等基本信息,假设三个超市的商品信息分别是用单链L1,L2,L3取存储的,请写一个程序实现下列任务要求:知识点:线性表操作任务要求1. 当超市有新的商品购入是能添加到单链表中;2. 能查找出三个超市中具有相同商品名称的商品信息;3. 在超市商品信息L1中删除那些与其他两个超市都有的商品信息;4. 能修改各超市商品基本信息,如价格等。5. 能查找比较超市中相同商品的销售情况,能统计每个超市中每种商品的销售量及销售额。6. 能输出每个超市的所有商品信息;测试数据自行设定

2、,注意测试将活区删空等特殊情况。2.概要设计2.1必要算法1.当超市有新的商品购入是添加到单链表中算法概要:运用单链表的基本操作插入一个新结点,即分配一个新的储存空间,然后依次输入结点所含的数据,再插入到原结点的尾部即可。此算法时间复杂度为O。2.查找出三个超市中具有相同商品名称的商品信息算法概要:1.寻找相同商品名称算法:先比较前两个链表超市l1,l2,运用比较字符串的strcmp方法找出两个链表中含有相同的商品名称,然后将两个链表中具有相同商品名称的商品信息存储到新建链表fs中,再比较链表fs和l3,重复上述步骤,找出链表l1,l2,l3中都具有相同商品名称的商品,将其商品信息存储在链表f

3、s中。此算法时间复杂度为O。2.输出相同商品的商品信息:访问fs中每个结点中的商品名称,根据商品名称分别遍历原链表l1,l2,l3的商品信息找出原结点,然后将其信息输出。此算法时间复杂度为O。3.在超市商品信息L1中删除那些与其他两个超市都有的商品信息算法概要:首先运用上述的寻找相同商品名称算法,找出l1中那些与其他两个超市都有的商品名称,再根据其名称遍历链表l1,找出其结点删除并释放单链表的基本操作。此算法时间复杂度为O。4修改各超市商品基本信息,如价格等算法概要:首先交互输入需要修改信息的商品号,排除超市中没有的商品后,定位到改商品的结点,然后选择需要修改的信息,比如价格,库存数量等,或者

4、全部修改即可修改信息。此算法时间复杂度为O。5.查找比较超市中相同商品的销售情况,统计每个超市中每种商品的销售量及销售额。算法概要:首先通过寻找相同商品名称算法找出相同的商品,若没有相同商品,则返回,若有多个相同商品,通过交互输入商品号分别定位到3个链表中的相应结点然后输出其销售信息,包括销售量和销售额,统计每个超市中每种商品的销售量及销售额是在输出程序中一并输出。此算法时间复杂度为O。6.输出每个超市的所有商品信息算法概要:遍历3个链表的所有结点,然后分别输出每个结点的所有信息。此算法时间复杂度为O。2.2辅助程序1.单链表存储结构:为3个超市分别创建单链表,链表中每个结点含有7个数据,分别

5、是:整型的商品号,字符数组型的商品名称,整型的库存数量,整型的商品总数,整型的生产日期,整型的销售数量。还有一个next指针。2.超市商品信息初始化:在每个链表当中交互输入每个结点的所有信息作为超市商品信息的初始化。3.销售算法:销售算法为了方便统计销售信息而存在,实现思路是:输入卖出的商品编号定位到链表中的相应结点,然后输入销售数量保存但结点中,同时该结点库存数量相应地减少。此算法时间复杂度为O。2.3主程序主程序概要:主程序中首先创建3个链表然后初始化,再输出所需的操作信息供选择,通过交互式输入选择所要进行的操作,直到输入退出程序按钮。1. 详细设计3.1必要算法1.当超市有新的商品购入时

6、添加到单链表中linklist *purchase /超市有新的商品购入是添加到单链表中 linklist *p,*q,*r,*head;int n;head=l;r=l;p=l-next;/输入购入商品的基本信息 q=mallocsizeof;printf;scanfgno;scanfname;scanfprice;scanfamount;scanfdate;q-QuantityInStock=q-amount;q-sold=0;printf; /将新结点插入到表尾 q-next=NULL;whiler=p;p=p-next;r-next=q;r=r-next;return head;2.查

7、找出三个超市中具有相同商品名称的商品信息算法1:寻找3个链表中具有相同商品名称的商品linklist *findSame /寻找3个链表中具有相同商品名称的商品 linklist *p1=l1-next,*p2,*p3,*fs,*q,*p;fs=mallocsizeof; /分配一个新的存储空间用来保存相同商品的信息 fs-next=NULL;q=fs;int flag;/寻找l1,l2中具有相同商品名称的商品 whilep2=l2-next;whileflag=strcmpname,p2-name;ifp=mallocsizeof;strcpyname,p1-name;p-next=NULL

8、;q-next=p;q=q-next;p2=p2-next;p1=p1-next;/寻找l2,l3中具有相同商品名称的商品 p=fs;whilenextp3=l3;whilenextflag=strcmpnext-name,p3-next-name;if break;ifnext=NULLq=p-next;p-next=q-next;p3=p3-next;p=p-next; return fs;算法2:输出3个链表中具有相同商品名称的商品信息void outputSame /输出3个链表中具有相同商品名称的商品信息 linklist *p1=l1-next,*p2=l2-next,*p3=l3

9、-next,*fs,*p;int flag;fs=findSame;p=fs-next;printf;while/遍历链表l1whileflag=strcmpname,p-name;ifprintf;printfgno,p1-name,p1-price,p1-QuantityInStock,p1-amount,p1-amount-p1-QuantityInStock,p1-date;p1=p1-next;/遍历链表l2whileflag=strcmpname,p-name;ifprintfgno,p2-name,p2-price,p2-QuantityInStock,p2-amount,p2-

10、amount-p2-QuantityInStock,p2-date;p2=p2-next;/遍历链表l3whileflag=strcmpname,p-name;ifprintfgno,p3-name,p3-price,p3-QuantityInStock,p3-amount,p3-amount-p3-QuantityInStock,p3-date;p3=p3-next;p=p-next;3.在超市商品信息L1中删除那些与其他两个超市都有的商品信息void delSame /L1中删除那些与其他两个超市都有的商品信息int flag;linklist *p,*s,*q,*fs;fs=findSame;p=fs;whilenextq=l1;whilenextflag=strcmpnext-name,p-next-name;ifs=q-next;q-next=s-next;free;printf;return;q=q-next;p=p-next;4.能修改各超市商品基本信息,如价格等void update /修改商品信息 linklist *p=l,*q=l,*s=l-next; int gno,m,price,QuantityInStock,amount,date,n=0,location=0,flag=0; if /链表为空 printf

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号