♻️ 资源
大小:3.96MB
➡️资源下载:https://download.csdn.net/download/s1t16/87450305
注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!
小型超市管理
目前随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。但是现阶段不少超市对于商品的管理还是以人力运作为主,缺乏标准化的管理。所以故设计了本超市管理系统利用数据库对信息的统一、集中、规范化的管理以实现提高超市的管理和运营效率以节省管理和运营的成本、减轻人员工作强度,并支持简单的决策辅助高层管理。
一个小型超市管理,包括 3 个基本部门管理:
人事部,主要负责超市的人员管理;
二.商品部,主要负责与供货商的沟通,超市商品的进货与定价;
营业部,这是指卖场,下面主要包括食品部.洗化部.非食部.生鲜部等部门。他们主要负责卖场的经营;
小型超市管理系统功能包括:录入、修改、查看、删除,检索商品信息和职工信息的功能;并且能对有用数据进行统计,算账;
课程设计目的:
这次的 c 语言课程设计,主要是做出一个小型超市管理系统,以此来加强对 c 语言函数,结构等所学知识的巩固和实战应用,预习链表的功能,这是对一个学期所学知识的一个小结。
系统分析与设计:
系统功能和模块设计
//函数声明;void desGui();//介绍界面;void loadGui();//加载界面;void menuGui();//菜单界面;void goodsSysGui(); //商品部管理界面;void personGui();//人事部管理界面;void saleGui();//销售部管理界面;void endGui();//任务结束界面;void getOpt();//选项处理函数;void checkCode();//验证码系统;;//商品部函数声明void goodsInfView();//查看信息;void goodsInfCreate();//新建信息;void goodsInfChange();//修改信息;void goodsInfDelete();//删除信息; | //商品部函数声明;void goodsInfView();//查看信息;void goodsInfCreate();//新建信息;void goodsInfChange();//修改信息;void goodsInfDelete();//删除信息;void goodsInfSearch();//检索信息; | //人员部函数声明;void perInfView();//查看信息;void perInfCreate();//新建信息;void perInfChange();//修改信息;void perInfDelete();//删除信息;void perInfSearch();//检索信息; |
//出售部函数声明;void saleInfView();//查看信息;void saleInfChange();//编辑信息;void saleInfDelete();//删除信息;void saleInfSearch();//检索信息; | //控制选择的变量;char opt;//选项变量; int sign;//选项标志; |
系统结构图:
实现过程:
打开
按任意键进入管理系统
按照菜单输入选项 1-3 或*,例如,我输入 1 并按回车
按 1 查看菜单
按 1 回到刚刚的商品部管理系统,按 2
输入完后自动查看
大白菜和农夫山泉的信息有错误,应该进行删除或修改
按 1 返回,再按 3
按 1 返回,再按 4
按 1 返回,再按 5,检索功能
其他功能
系统测试出现的问题和解决的方案:
在进行系统测试时,总不是一帆风顺的,问题总会有的,但解决的办法也总会有的,我很庆幸用了模块化设计程序,这样看起来程序调理清晰了些,修改起来没花太多时间.
遇到的问题:
引用链表的使用,指针 p1,p2 指错地方,考虑情况不周全,比如:新建商品信息的情况,第一次操作是可行,可以新建很多个节点,但是,没有考虑进行其他操作后再第二次点击新建商品信息操作,而此时 p1,p2 指向节点链不达到我的要求
解决办法:加入
if(node!=0) { p1=head; while(p1->next!=NULL) { p2=p1; =p1->next;//p1往后移动,p2紧跟p1 } =p2=(goo*)malloc(sizeof(goo)); node 变量是控制建立节点数,若进行第一次新建操作,则下次操作node!=0为真,则让指针p1->next!=NULL p2=p1即是p1,p2指向最后一个节点,但是,又出现了申请动态空间的问题,若是第一次操作,应该这样p1=p2=(goo*)malloc(sizeof(goo)); 神奇动态空间,以后的操作都是让p1申请动态空间,于是p1=p2=(goo*)malloc(sizeof(goo));解决办法:更改
head=p1 if(node!=0) { p1=head; while(p1->next!=NULL) { p2=p1; =p1->next;//p1往后移动,p2紧跟p1 } =(goo*)malloc(sizeof(goo)); } else { p1=p2=(goo*)malloc(sizeof(goo)); } if(num==p1->num)//如果在p1指向的节点中找到一致的num值这样就可以通过编号查找
我想实现用名称查找该怎么办?
于是,我仿造 if( name==p1->name)
这样对吗?明显错!num 是整型,name 是字符串
解决办法
if(strcmp(name,p1->name)==0)
如 printf(”%d”,outPrice);输出了 0
解决办法:把 %d 改为 %f
再进行修改删除操作时候,按照一般用户思维惯性,都会下一步点击查看来看修改删除后的结果,每次都输入数字,用户会感到麻烦
解决办法:修改删除后自动跳到查看
系统优缺点:
优点:每个模块的都测试了各种不同情况,已经达到我想要实现的更新、查询、删除、数据信息的结果,提高程序的有效性,准确性,对于小型超市来说,改管理系统的功能已经达到要求了。而且,用延迟命令做动画效果,输出图案位置对齐,更美观;操作界面提示多,够人性化。
缺点:由于时间关系,容错性未能做得很好,功能也不够多,而且功能还有些交叉。
代码中的命名有些很容易混淆。与商业软件相比仍有大差距
心得体会:
这次的程序设计练习,我直视着目标需求,去一步一步思考着精确的运行步骤,努力接近着成功的运行结果,本以为能实现达到要求就可以了,却发现小需求也得兼顾好,美观动画输出,为容错去消除输入缓冲区和做验证码,为别人可读用规范的命名,让代码的架构与分层合理,适当添加注释和用户提示,我不断地测试和完善自己的程序……在此过程中,我还更深入地了解了链表的应用,