本设计运用C语言程序设计了一个超市管理系统。主要实现的功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能.
1。开发工具和编程语言:
开发工具:Microsoft Visual C++ 6.0 编程语言:C语言
2. 模块划分
超市管理系统的设计与实现 进货功能 退货功能 商品销售功能 信息查询功能 信息浏览功能 退出功能
3。 系统功能与函数的对应关系
本系统包括一个主函数和6个被调函数,分别如下: (1) 主函数 void main() (2) 功能选择函数 void gongneng() (3) 进货功能函数 void jinhuo() (4) 退货功能函数 void tuihuo() (5) 商品销售函数 void spxs() (6) 信息查询函数 void xxcx() (7) 信息浏览函数 void spxxpx()
1
4 .结构体类型说明
商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。 结构体类型定义为: struct xinxi//结构体 {
char bh[30];//商品编号 char bhstr[30];//商品名称 float jinjia;//商品进价 float shoujia;//商品售价 int kucun;//商品库存数量 };
5 。 系统函数的设计与实现
5.1 主函数
主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5—1所示。
图5—1 系统主界面
主函数中可以实现各种功能的选择。
5.2进货功能函数
(1)流程图
进货功能函数实现进货功能,能够实现要进货商品的信息添加或录入.进货时,先检测本商品是否存在,若存在则修改库存数量等相关信息;否则添加本商品的相关信
2
息.
进货流程图如图5-2所示。
开始菜单 否
本商品是否存在 输入商品的名称 进货功能 是
图5—2进货功能流程图
返回开始菜单 修改库存数量等相关信息 添加本商品的相关信息 (2)系统代码
void jinhuo()//进货处理函数 {
char str[30]; int i,a=2; while(a==2) {
printf(\"请输入商品的名称:\");
3
scanf(”%s”,str); for(i=0;iif(strcmp(str,s[i].bhstr)==0)//查找要进货的商品 {
printf(”编号:%s,进价:%5。1f,售价:%5.1f,库存数量:%d\\n\[i].bh,s[i].jinjia,s[i].shoujia,s[i]。kucun); printf(\"请输入新库存数量:”);
scanf(\"%d”,&s[i]。kucun);//修改库存信息 printf(\"库存信息修改完成\\n”); break; }
if(i〉=b)//如果没有找到要进货的商品,则添加商品信息 {
printf(”添加商品信息:\\n\"); printf(\"请输入商品编号:”); scanf(\"%s”,s[i]。bh); printf(”请输入商品名称:”); scanf(\"%s\[i]。bhstr); printf(\"请输入商品进价:”); scanf(\"%f”,&s[i].jinjia); printf(”请输入商品售价:\"); scanf(”%f\&s[i]。shoujia); printf(”请输入商品库存数量:”); scanf(”%d\",&s[i].kucun); printf(”商品信息添加完成\\n\"); b++; }
printf(”请选择:\"); printf(”1。返回开始菜单\");
4
printf(\"2。继续进行进货处理”); scanf(\"%d\&a); } } (3)运行效果 输入:选项1
输出:请输入商品的名称: 输入:1
输出:添加商品信息 请输入商品编号: …… 输入:1
输出:商品信息添加完成
请选择:1.返回开始菜单2。继续进行进货处理 输入:2
输出:请输入商品名称: 输入:1
输出:编号:1,进价:1.0,售价:1。0,库存数量:1 请输入新库存: 输入:2
输出:库存信息修改完成
请选择:1。返回开始菜单2。继续进行进货处理 输入:1 返回开始菜单
运行效果图如图5—3所示.
5
图5-3进货功能运行界面
5.3退货功能函数
(1)流程图
退货功能函数实现退货功能,能够实现要退货商品的信息修改。退货时,修改库存数量等相关信息;若库存数量为0,提示是否删除本商品,若选“是”则删除该商品的信息.
退货流程图如图5-4所示。
6
否 是 否 是 否 是
图5—4 退货功能流程图 开始菜单 退货处理 请输入要退的商品名称 请输入要退商品的数量 是否退货 修改库存数量等相关信息 退货成功 库存是否为零 是否删除本商品 本商品已删除 返回开始菜单 7
(2)系统代码
void tuihuo()//退货处理函数 {
int i,a,c=2,d; char str[30]; while(c==2) {
printf(”请输入要退的商品名称:\"); scanf(\"%s\",str); for(i=0;i〈b;i++)
if(strcmp(str,s[i]。bhstr)==0)//查找要退货的商品 {
printf(\"请输入要退商品的数量:\"); scanf(”%d\",&d);
printf(”请选择是否要退货\"); printf(”1。是\"); printf(”2.否”); scanf(\"%d”,&a); if(a==1) {
s[i]。kucun =s[i]。kucun +d;//修改库存信息 printf(\"退货已成功\\n\"); }
if(s[i].kucun==0)//如果库存数量为零,提示是否删除该商品 {
printf(\"本商品库存为0,请选择是否删除本商品”); printf(\"1.是\"); printf(\"2.否”); scanf(\"%d”,&a);
8
if(a==1) {
strcpy(s[i]。bh,\"该商品不存在”); strcpy(s[i].bhstr,\"该商品不存在\"); } }
printf(\"请选择:\"); printf(”1。返回开始菜单”); printf(\"2。继续进行退货处理\"); scanf(”%d\",&c); } }
(3)运行效果 输入:2
输出:请输入要退的商品名称: 输入:1
输出:请输入要退商品的数量: 输入:1
输出:请选择是否要退货1.是2.否 输入:1
输出:退货已成功
请选择:1。返回开始菜单2。继续进行退货处理 输入:1 返回开始菜单
}
s[i].jinjia=0; s[i]。shoujia=0; s[i]。kucun=0;
printf(\"本商品已删除\\n\");
9
运行效果图如图5—5所示。
图5-5退货功能运行界面
5.4商品销售函数
(1)流程图
商品销售函数实现商品购买功能。购买商品时输入要购买商品的编号、购买数量,能够计算出应收金额和应收总金额,同时修改库存数量。此外,当实收金额少于应收总金额时,此次销售不成功,可根据用户的要求进行修改或放弃。
10
商品销售流程图如图5—6所示。
是 是否 是否 是否结账 否是 是 否 返回开始菜单 图5—6商品销售流程图 11
开始菜单 商品销售 输入购买商品的编号 该商品是否存在 输入购买数量 库存数量是否够 重新输入购买数量 计算应收金额,修改库存数量、打印出销售清单 输出未找到该商品 输入实收金额 实收金额是否大于应收总金额 找零,购买成功 是否重新付款 取消购买某种商品,重新计算总金额,修改库存信息 (2)系统代码
void spxs()//商品销售函数 {
char str[30]; int i,sl,a=2,c;
float je,jez=0,ssje,zl; while(a==2) {
printf(”请输入购买商品的编号:”); scanf(”%s”,str); for(i=0;iif(strcmp(str,s[i]。bhstr)==0)//查找购买的商品 {
printf(\"请输入要购买的数量:”); scanf(\"%d”,&sl);
while(sl〉s[i]。kucun )//购买的数量如果大于库存数量 {
printf(”商品库存数量不足,请重新输入要购买的数量:\");
scanf(\"%d”,&sl); }
printf(”应收金额为:\");
je=sl*s[i].shoujia;//计算购买该商品的金额 printf(\"%5。1f\\n”,je);
s[i]。kucun=s[i].kucun-sl;//修改库存信息 printf(\"应收总金额为:”); jez=jez+je;//计算购买商品的总金额 printf(\"%5。1f\\n”,jez); break; }
12
if(i>=b)//如果没有找到该商品 printf(\"对不起,未找到该商品\\n\"); printf(”请选择:\"); printf(\"1.结账”);
printf(\"2。继续购买商品”); scanf(\"%d\",&a); if(a==1)//结账 {
printf(\"请输入实收金额:”); scanf(\"%f”,&ssje);
while(ssje〈jez)//如果实收金额小于应收总金额 {
printf(\"金额不足,请选择:”);
printf(”1。重新付款\");
printf(\"2。取消购买\"); scanf(”%d\",&c); if(c==1)//重新付款 {
printf(”请输入实收金额:”); scanf(”%f”,&ssje);
}
else//取消购买某种商品 {
printf(”请输入取消购买商品的编号或名称:”);
scanf(\"%s\; for(i=0;i〈b;i++)
if((strcmp(str,s[i]。bh)==0)||(strcmp(str,s[i]。bhstr)==0))//查找要取消购买的商品
{
13
printf(\"请输入取消购买的数量”); scanf(\"%d\",&sl);
s[i]。kucun =s[i]。kucun +sl;//修改库存信息
jez=jez—sl*s[i].shoujia ;//重新计算总金额 printf(”取消购买成功\\n”);
}
}
}
zl=ssje—jez;//找零
printf(”找零%5.1f\\n”,zl); printf(”购买成功\\n”); } if(a!=2) {
printf(\"请选择:”); printf(\"1.返回开始菜单”); printf(\"2.继续购买商品\"); scanf(”%d\ jez=0; } } }
(3)运行效果 输入:3
输出:请输入购买商品的编号: 输入:1
输出:请输入要购买的数量: 输入:1
输出:应收金额为:1。0
14
应收总金额为:1。0
请选择:1.结账2.继续购买商品 输入:2
输出:请输入购买商品的编号: 输入:2
输出:请输入要购买的数量: 输入:1
输出:应收金额为:2。0 应收总金额为:3。0
请选择:1.结账2.继续购买商品 输入:1
输出:请输入实收金额: 输入:2
输出:金额不足,请选择:1。重新付款2.取消购买 输入:1
输出:请输入实收金额: 输入:5 输出:找零2。0 购买成功
请选择:1。返回开始菜单2.继续购买商品 输入:1 返回开始菜单
运行效果图如图5-7所示。
15
图5-7商品销售功能运行界面
5.5商品信息查询函数
(1)流程图
商品信息查询函数实现查询商品信息的功能。查询时输入商品的编号或名称,输出商品的编号、名称、进价、售价、库存数量。
16
商品信息查询流程图如图5-8所示。
否 是
图5—8商品信息查询流程图
返回开始菜单 输出商品的编号、名称、进价、售价、库存信息 输出未找到该商品 商品是否存输入要查询商品的编号或名称 开始菜单 商品信息查询
(2)系统代码
void xxcx()//商品信息查询函数 {
char str[30]; int i,a=2; while(a==2) {
printf(”请输入要查询商品的编号或名称:”); scanf(”%s”,str);
for(i=0;i〈b;i++)//查找要查询的商品
if((strcmp(str,s[i]。bh)==0)||(strcmp(str,s[i].bhstr)==0)) {
17
printf(\"商品编号: %s\\n\",s[i]。bh); printf(\"商品名称: %s\\n”,s[i]。bhstr); printf(”商品进价:%5.1f\\n\",s[i]。jinjia); printf(”商品售价:%5.1f\\n\",s[i].shoujia); printf(”商品库存: %d\\n”,s[i]。kucun); break;
}
if(i〉=b)//未找到要查询的商品
printf(”对不起,未找到该商品\\n\");
printf(”请选择:\"); printf(”1。返回开始菜单\"); printf(\"2。继续查询商品\"); scanf(”%d”,&a); } }
(3)运行效果 输入:4
输出:请输入要查询商品的编号或名称: 输入:1
输出:商品编号:1 商品名称:1
商品进价:1.0 商品售价:1.0 商品库存:1
请选择:1。返回开始菜单2。继续查询商品 输入:2
输出:请输入要查询商品的编号或名称: 输入:3
输出:对不起,未找到该商品
请选择:1。返回开始菜单2。继续查询商品
18
输入:1 返回开始菜单
运行效果图如图5—9所示。
图5-9商品信息查询功能运行界面
5.6商品信息浏览函数
(1)流程图
商品信息浏览函数实现浏览全部商品信息的功能.浏览时商品按编号依次输出商品的编号、名称、进价、售价、库存数量信息。
商品信息浏览流程图如图5-10所示。
输入任意字符返回开始菜单 依次输出所有商品的编号、名称、进价、售价、库存信息 开始菜单 商品信息浏览
返回开始菜单 图5—10商品信息浏览流程图 19
(2)系统代码
void spxxpx()//商品信息排序函数 {
int i,j,t5; float t3,t4;
char t1[30],t2[30],a; for(j=1;j<=b—1;j++)//排序
for(i=0;i〈b-j;i++)
if(strcmp(s[i].bh,s[i+1].bh)〉0) {
strcpy(t1,s[i].bh);strcpy(t2,s[i]。bhstr);t3=s[i].jinjia;
strcpy(s[i].bh,s[i+1]。bh);
t4=s[i].shoujia;t5=s[i].kucun;
strcpy(s[i].bhstr,s[i+1].bhstr);s[i]。jinjia=s[i+1]。jinjia;
s[i].shoujia=s[i+1]。shoujia;s[i]。kucun=s[i+1]。kucun;
strcpy(s[i+1]。bh,t1);strcpy(s[i+1].bhstr,t2);s[i+1].jinjia=t3;s[i+1]。shoujia=t4;s[i+1].kucun=t5;
}
printf(”按编号依次输出商品信息:\\n”); for(i=0;iprintf(\"商品编号: %s\\n商品名称: %s\\n商品进价:%5。1f\\n商品
售价:%5。1f\\n商品库存: %d\\n\\n\ }
(3)运行效果 输入:5
输出:按编号依次输出商品信息: 商品编号:1 商品名称:1
商品进价:1.0
20
s[i].bh,s[i]。bhstr,s[i]。jinjia,s[i].shoujia,s[i]。kucun);
printf(”请输入任意字符返回开始菜单”); scanf(”%s\);
商品售价:1.0 商品库存:1 商品编号:2 商品名称:2
商品进价:2。0 商品售价:2。0 商品库存:2 商品编号:3 商品名称:3
商品进价:3。0 商品售价:3.0 商品库存:3
请输入任意字符返回开始菜单输入:w 返回开始菜单
运行效果图如图5-11所示.
21
图5—11商品信息浏览功能运行界面
6 . 总结
通过C语言程序设计实现了超市管理系统,本系统完成了进货功能、退货功能、商品销售功能、商品信息查询功能和商品信息浏览功能,具有功能齐全和操作简单的特点,但是实用性还有待进一步改进。
22
因篇幅问题不能全部显示,请点此查看更多更全内容