收藏 分销(赏)

商品管理系统设计说明书.doc

上传人:人****来 文档编号:3383202 上传时间:2024-07-03 格式:DOC 页数:39 大小:205.54KB
下载 相关 举报
商品管理系统设计说明书.doc_第1页
第1页 / 共39页
商品管理系统设计说明书.doc_第2页
第2页 / 共39页
商品管理系统设计说明书.doc_第3页
第3页 / 共39页
商品管理系统设计说明书.doc_第4页
第4页 / 共39页
商品管理系统设计说明书.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、算法与数据结构课程设计说明书 课题:商品管理系统 学院:计算机与通信学院 班级:软件工程二班 姓名:吕少伟 学号: 指导老师:包仲贤 时间:2023.01.12目录摘要3序言4算法描述4流程图:7调试分析:8输出典型数据9源代码15涉及总结30参考文献31摘要随着社会经济的迅速发展和科学技术的全面进步,以计算机与商店管理技术为基础的管理系统正处在蓬勃发展的时期。仓库这个名词,已经不能用货品贮存地来概括,它现在是一个分销中心(DistributionCenter),完毕的任务更全面。过去,人们不明白这条渠道利益。到了今天,公司间的竞争更加剧烈了,因此仓库管理成了供应链管理当中不可或缺的一环。在这

2、样的发展形式下,通过系统的分析与调研,完毕了本系统。系统中重要分为两种操作权限,一种为超级管理员权限,另一种为普通用户权限。重要功能涉及对货品的入库、出库、借出、盘点的相应操作;查询库存、入库、出库、借出、归还的货品数量;对货品月出入库数量与年出入库数量进行记录;对供应商、用户、货品信息进行相应的设立;打印库存信息和货品的出库信息以及用户系统权限的管理。超级管理员可以完毕所有的操作,而普通用户只能完毕查询记录与修改密码的。本课题是一个适应现今仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值关键词:库存;货品;入库;商店序言面对信息爆炸的今天,对库存管理人员来说,工作量正日趋繁

3、琐,因此有一个好的管理系统,就显得非常的必要。库存管理所涉及的范围广泛。但是,最基本的入库、出库的操作,在以前的管理系统中,都会体现。过去,人们的管理理念没有完善,并且经验不够,因此是在摸索中成长。可是当今社会,假如还继承以前的东西,而没有更新或创新的部分,那么是不能适应当今这个大趋势的发展的。现在,一个最明显的变化是仓库不再被看作仅仅是一个货品贮存地,以前人们把货品管理看的很单调。最近出现了很多新的管理模式,如:基于零库存思想的沃尔玛管理方式。这些新的思想在中国的公司中普及只是个时间问题。库存管理的意义重大,不容忽视,基于如此设计了这个系统 算法(数据结构)描述5.1先定义一个商品的结构体数

4、组:typedef struct /*定义结构体数组*/ char name20;/*商品名称*/ int time;/*进货时间*/ int year;/*生产日期*/ int no;/*保质期*/goods;5.2建立一个菜单函数,显示10个功能,供用户选择,进行人机对话。5.3设立一个排序的函数,void Sort_by_time(goods gs,int n)。运用冒泡法先对商品按进货的时间排序,对进货时间同样的货品,再按离保质期最近排序。 5.4设立一个输入的函数,int Input(goods gs,int n)。这个函数是最初商品输入函数,当选择了这个功能后,假如是第一次运营这个

5、程序,保存输入,那将在D盘产生一个名为“商品.doc”的文献,假如已经运营过了,并保存输入,那输入的商品信息将代替原有的信息,数据输入使用交互输入,进行人机对话,拟定是否进行下一个数据的添加。并且调用了上面的排序函数,对输入的数据进行排序。5.5设立一个显示的函数,void Display(goods gs,int n)。显示上面输入的所有数据,或者是从文献中读取的数据。5.6设立一个插入的函数,int Insert_a_record(goods gs,int n)。每次插入一组数据,假如要再插入,则再选择这个功能进行操作。并且在插入的同时,已经排好序,把数据插入适合的位置。5.7设立一个查找

6、删除的函数,int Delete_a_record(goods gs,int n)。输入要查找的商品名称,假如不存在,则输出失败信息,假如存在,则用下一个信息代替原有信息的位置。5.8设立一个查找显示的函数,void Query_a_record(goods gs,int n)。输入要查找的商品名称,假如不存在,则输出失败信息,假如存在,则显示信息。5.9设立一个写入文献的函数,void WritetoText(goods gs,int n)。设立文献指针,先判断文献是否能打开并且能进行写操作,不能则输出失败信息,能则循环写入数据,写完关闭文献。5.10设立一个读文献的函数,int Addfr

7、omText(goods gs,int n)。设立文献指针,判断文献是否能打开并且能进行读操作,能则先读出总的数据量,接着循环读出数据,最后关闭文献。5.11进入最后一步,main函数。判断选择的操作,根据用户选择的操作,运用switch语句进行相应的函数调用。5.12选择保存功能,对数据进行保存,然后选择结束程序退出功能,退出程序。Sort_by_time(gs,n)初始条件:数据已经存在操作结果:数据进行排序Input(gs, n)初始条件:没有任何数据存在,或者要替换原文献中的所有数据 操作结果:数据进行输入Display(gs,n)初始条件:数据已经存在 操作结果:数据显示Insert

8、_a_record(gs,n) 初始条件:数据已经存在操作结果:数据插入Delete_a_record(gs,n)初始条件:数据已经存在 操作结果:数据删除Query_a_record(gs,n)初始条件:数据已经存在 操作结果:数据记录WritetoText(gs,n)初始条件:数据已经存在 操作结果:写入文献中AddfromText(gs,n)初始条件:文献已经存在 操作结果:从文献中读出流程图:退出程序写入文献排序数据记录数据添加数据查找数据删除数据显示数据新数据重新选择功能读文献Main函数功能8功能1功能2功能3功能4功能5功能6功能9功能7 功能0调试分析:a、 调试中碰到的问题及

9、对问题的解决方法;1. 在商品的排序方面,指针指向错误。解决方案:运用画图理清指针的指向,并改正2.写入文献,当文献不存在数无法写入解决方案:当文献不存在时,创建一个文本去存取信息;3. 查找信息,当信息不存在时,程序没有反映解决方案:当所搜寻的信息不存在时,返回查找失败;4. VS运营程序时,出现scanf不安全问题解决方案:在项目属性中的预解决器中加入一串代码;b、 算法的时间复杂度和空间复杂度;算法的时间复杂度为:O(n3)空间复杂度:170输出典型数据界面:显示功能,显示最初的数据:插入功能:删除功能:查找商品信息:记录并显示进货时间最早且最接近保质期中止时间的货品:写入文献:读取文献

10、:对读入文献进行排序:获得测试结果:源程序#include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/char name20;/*商品名称*/int time;/*进货时间*/int year;/*生产日期*/int no;/*保质期*/goods;goods gs80; /*结构体数组变量*/int menu_select() /*菜单函数*/char c;dosystem(cls); /*运营前清屏*/printf(* 商品系统*n); /*菜单选择*/printf( | 1. 输入数据 |n);print

11、f( | 2. 显示数据 |n);printf( | 3. 插入数据 |n);printf( | 4. 删除数据 |n);printf( | 5. 查找数据 |n);printf( | 6. 记录并显示进货时间最早且最接近保质期中止时间的货品 |n);printf( | 7. 写入文献 |n);printf( | 8. 读文献 |n);printf( | 9. 对读入的文献进行排序 |n);printf( | 0. 退出 |n);printf(*n);printf(请选择(0-9):);c = getchar(); /*读入选择*/ while (c9);return(c - 0); /*返回

12、选择*/void Sort_by_time(goods gs, int n) /*按进货时间排序*/int i, j, *a, *b, c, *p, *q, s, *m, *k, d, e, f;char t10;for (i = 0; in - 1; i+) /*冒泡法排序*/for (j = 0; jgsj + 1.time)a = &gsj + 1.time;b = &gsj.time;c = *a;*a = *b;*b = c;strcpy(t, gsj + 1.name);strcpy(gsj + 1.name, gsj.name);strcpy(gsj.name, t);p = &

13、gsj + 1.year;q = &gsj.year;s = *p;*p = *q;*q = s;m = &gsj + 1.no;k = &gsj.no;d = *m;*m = *k;*k = d;else if (gsj.time = gsj + 1.time)p = &gsj.year;a = &gsj + 1.year;b = &gsj.no;q = &gsj + 1.no;e = (*p) + (*b) * 10000;f = (*a) + (*q) * 10000;if (ef)a = &gsj + 1.time;b = &gsj.time;c = *a;*a = *b;*b = c

14、;strcpy(t, gsj + 1.name);strcpy(gsj + 1.name, gsj.name);strcpy(gsj.name, t);p = &gsj + 1.year;q = &gsj.year;s = *p;*p = *q;*q = s;m = &gsj + 1.no;k = &gsj.no;d = *m;*m = *k;*k = d; int Input(goods gs, int n) /*输入若干条记录*/int i = 0;char sign=0, x10;while (sign != n&sign != N) /*判断*/printf(商品名称:); /*交互输

15、入*/scanf(%s, gsn + i.name);printf(进货时间(例20230201):);scanf(%d, &gsn + i.time);printf(生产日期(例20230201):);scanf(%d, &gsn + i.year);printf(保质期(年):);scanf(%d, &gsn + i.no);gets(x); /*清除多余的输入*/printf(继续输入?(Y/N);scanf(%c, &sign); /*输入判断*/i+;Sort_by_time(gs, n + i); /*调用排序函数*/return(n + i);void Display(goods

16、 gs, int n) /*显示所有记录*/int i;printf(-n); /*格式头*/printf(商品名称 进货时间 生产日期 保质期(年)n);printf(-n);for (i = 1; i1 & i % 10 = 0) /*每十个暂停*/printf(-n); /*格式*/system(pause);printf(-n);system(pause); /*按任何键继续*/int Insert_a_record(goods gs, int n) /*插入一条记录*/char x10; /*清除多余输入所用*/printf(商品名称:); /*交互输入*/scanf(%s, gsn

17、.name);printf(进货时间:);scanf(%d, &gsn.time);printf(生产日期:);scanf(%d, &gsn.year);printf(保质期:);scanf(%d, &gsn.no);gets(x);n+;Sort_by_time(gs, n); /*调用排序函数*/printf(插入成功!n); /*返回成功信息*/return(n);int Delete_a_record(goods gs, int n) /*按商品名字查找,删除一条记录*/char s20;int i = 0, j;printf(商品名称:);scanf(%s, s);while (st

18、rcmp(gsi.name, s) != 0 & in) i+; /*查找判断*/if (i = n)printf(没找到!n); /*返回失败信息*/return(n);for (j = i; jn - 1; j+) /*删除操作*/strcpy(gsj.name, gsj + 1.name);gsj.time = gsj + 1.time;gsj.year = gsj + 1.year;gsj.no = gsj + 1.no;printf(删除成功!n); /*返回成功信息*/return(n - 1);void Query_a_record(goods gs, int n) /*查找并显

19、示一个记录*/char s20;int i = 0;printf(输入要查找的商品名称:);scanf(%s, s);while (strcmp(gsi.name, s) != 0 & in) i+; /*查找判断*/if (i = n)printf(没找到!n); /*输入失败信息*/return;printf(进贷时间:%dn, gsi.time); /*输出该商品信息*/printf(生产日期:%dn, gsi.year);printf(保质期:%dn, gsi.no);void WritetoText(goods gs, int n) /*将所有记录写入文献*/int i = 0;FI

20、LE *fp; /*定义文献指针*/if (fp = fopen(d:商品.doc, wb) = NULL) /*打开文献*/printf(cannt open the filen);system(pause);return;fprintf(fp, %dn, n); /*循环写入数据*/while (in)fprintf(fp, %-5s%d %d %dn, gsi.name, gsi.time, gsi.year, gsi.no);i+;fclose(fp); /*关闭文献*/printf(Successed!n); /*返回成功信息*/int AddfromText(goods gs, i

21、nt n) /*从文献中读入数据*/int i = 0, num;FILE *fp; /*定义文献指针*/if (fp = fopen(d:商品.doc, rb) = NULL) /*打开文献*/printf(cannt open the filen); /*打开失败信息*/system(pause);return(n);fscanf(fp, %d, &num); /*读入总记录量*/while (inum) /*循环读入数据*/fscanf(fp, %s%d%d%d, gsn + i.name, &gsn + i.time, &gsn + i.year, &gsn + i.no);i+;n

22、+= num;fclose(fp); /*关闭文献*/printf(Successed!n);system(pause);return(n);void main() /*主函数*/int n = 0;for (;)switch (menu_select() /*选择判断*/case 1:printf(输入最初商品n); /*输入若干条记录*/n = Input(gs, n);break;case 2:printf(显示所有商品n); /*显示所有记录*/Display(gs, n);break;case 3:printf(插入n);n = Insert_a_record(gs, n); /*插

23、入*/system(pause);break;case 4:printf(删除n);n = Delete_a_record(gs, n); /*按商品名称查找,删除*/system(pause);break;case 5:printf(查找并显示n);Query_a_record(gs, n); /*查找并显示*/system(pause);break;case 6:printf(记录并显示进货时间最早且最接近保质期中止时间的货品n);printf(共有 %d 件商品.n, n); /*总共记录数*/printf(进货时间最早且最接近保质期中止时间的货品:n);printf(商品名称:%sn,

24、 gs0.name);printf(进货时间:%dn, gs0.time);printf(生产日期:%dn, gs0.year);printf(保质期:%dnn, gs0.no);system(pause);break;case 7:printf(写到文献中n);WritetoText(gs, n); /*循环写入数据*/system(pause);break;case 8:printf(文献中读数据n);n = AddfromText(gs, n);break;case 9:printf(n);Sort_by_time(gs, n);/*对读入的文献进行排序*/break;case 0:pr

25、intf(结束退出!n); /*结束程序*/system(pause);exit(0);设计总结转眼,为期两周的数据结构课程设计结束了。在这次实习中,自己的C语言知识和数据结构知识得到了巩固,编程能力也有了一定的提高。同时也学会了解决问题的方法。总结起来,自己重要有以下几点体会:1.必须牢固掌握基础知识。由于C语言是大一所学知识,有所遗忘,且未掌握好这学期所学的算法与数据结构这门课,所以在实习之初感到棘手。不知如何下手,但在后来的实习过程中自己通过看书和课外资料,并请教其他同学,慢慢地对C语言和数据结构知识有所熟悉。这时才逐渐有了思绪。所以,这次实习之后,我告诫自己:此后一定要牢固掌握好专业基

26、础知识。2.必须培养严谨的科学态度。自己在编程时经常由于一些类似于“少了分号”的小错误而导致错误,不够认真细致,这给自己带来了许多麻烦。编程是一件十分严谨的事情,容不得马虎。所以在此后自己一定要培养严谨的科学态度。我想这不仅是对于程序设计,做任何事都应如此。3.这次课程设计也让我充足结识到算法与数据结构这门课的重要性。它给我们一个思想和大纲,让我们在编程时容易找到思绪,不至于无章可循。同时它也有广泛的实际应用。总之,在这次实习中,自己的C语言以及数据结构知识得到提高,编程能力也得到了提高。参考文献1 严蔚敏,吴伟民.数据结构(C语言版)M.北京:清华大学出版社.20232 严蔚敏,吴伟民.数据结构题集(C语言版)m. 北京:清华大学出版社.20233 William Ford,William Topp.DATA STRUCTURE WITH C+ .北京:清华大学出版社(影印版). 20234 谭浩强.c语言程序设计M.北京:清华大学出版社. 2023. 5 Clifford A. Shaffer. 张铭,刘晓丹译.数据结构与算法分析(Java版) , A Practical Introduction to Data Structures and Algorithm Analysis Java Edition ,北京:电子工业出版社 2023

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服