超市管理方案计划系统(C语言学习知识课程教学设计报告).doc
-*超市管理系统本设计运用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()4 . 结构体类型说明商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。结构体类型定义为:struct xinxi/结构体char bh30;/商品编号char bhstr30;/商品名称float jinjia;/商品进价float shoujia;/商品售价int kucun;/商品库存数量;5 . 系统函数的设计与实现5.1 主函数主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5-1所示。 图5-1 系统主界面主函数中可以实现各种功能的选择。5.2进货功能函数(1)流程图进货功能函数实现进货功能,能够实现要进货商品的信息添加或录入。进货时,先检测本商品是否存在,若存在则修改库存数量等相关信息;否则添加本商品的相关信息。进货流程图如图5-2所示。开始菜单进货功能输入商品的名称本商品是否存在否添加本商品的相关信息 是修改库存数量等相关信息返回开始菜单 图5-2 进货功能流程图(2)系统代码void jinhuo()/进货处理函数char str30;int i,a=2;while(a=2)printf("请输入商品的名称:");scanf("%s",str);for(i=0;i<b;i+) if(strcmp(str,si.bhstr)=0)/查找要进货的商品 printf("编号:%s,进价:%5.1f,售价:%5.1f,库存数量:%dn",si.bh,si.jinjia,si.shoujia,si.kucun); printf("请输入新库存数量:"); scanf("%d",&si.kucun);/修改库存信息 printf("库存信息修改完成n");break; if(i>=b)/如果没有找到要进货的商品,则添加商品信息 printf("添加商品信息:n"); printf("请输入商品编号:"); scanf("%s",si.bh); printf("请输入商品名称:"); scanf("%s",si.bhstr); printf("请输入商品进价:"); scanf("%f",&si.jinjia); printf("请输入商品售价:"); scanf("%f",&si.shoujia); printf("请输入商品库存数量:"); scanf("%d",&si.kucun); printf("商品信息添加完成n"); b+; printf("请选择:"); printf("1.返回开始菜单"); 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-3 进货功能运行界面5.3退货功能函数(1)流程图退货功能函数实现退货功能,能够实现要退货商品的信息修改。退货时,修改库存数量等相关信息;若库存数量为0,提示是否删除本商品,若选“是”则删除该商品的信息。退货流程图如图5-4所示。开始菜单退货处理请输入要退的商品名称请输入要退商品的数量是否退货否是修改库存数量等相关信息退货成功库存是否为零否是是否删除本商品否是本商品已删除返回开始菜单 图5-4 退货功能流程图(2)系统代码 void tuihuo()/退货处理函数int i,a,c=2,d;char str30;while(c=2)printf("请输入要退的商品名称:");scanf("%s",str);for(i=0;i<b;i+)if(strcmp(str,si.bhstr)=0)/查找要退货的商品printf("请输入要退商品的数量:");scanf("%d",&d);printf("请选择是否要退货");printf("1.是");printf("2.否");scanf("%d",&a);if(a=1)si.kucun =si.kucun +d;/修改库存信息printf("退货已成功n");if(si.kucun=0)/如果库存数量为零,提示是否删除该商品printf("本商品库存为0,请选择是否删除本商品");printf("1.是");printf("2.否");scanf("%d",&a);if(a=1) strcpy(si.bh,"该商品不存在"); strcpy(si.bhstr,"该商品不存在");si.jinjia=0;si.shoujia=0;si.kucun=0;printf("本商品已删除n"); printf("请选择:"); printf("1.返回开始菜单"); printf("2.继续进行退货处理"); scanf("%d",&c);(3)运行效果输入:2输出:请输入要退的商品名称:输入:1输出:请输入要退商品的数量:输入:1输出:请选择是否要退货1.是2.否输入:1输出:退货已成功 请选择:1.返回开始菜单2.继续进行退货处理输入:1返回开始菜单运行效果图如图5-5所示。 图5-5 退货功能运行界面5.4商品销售函数(1)流程图商品销售函数实现商品购买功能。购买商品时输入要购买商品的编号、购买数量,能够计算出应收金额和应收总金额,同时修改库存数量。此外,当实收金额少于应收总金额时,此次销售不成功,可根据用户的要求进行修改或放弃。商品销售流程图如图5-6所示。开始菜单商品销售输入购买商品的编号该商品是否存在 输入购买数量是库存数量是否够重新输入购买数量是否计算应收金额,修改库存数量、打印出销售清单 输出未找到该商品是否结账是否输入实收金额 实收金额是否大于应收总金额否是是否重新付款是找零,购买成功否取消购买某种商品,重新计算总金额,修改库存信息返回开始菜单 图5-6 商品销售流程图(2)系统代码 void spxs()/商品销售函数char str30;int i,sl,a=2,c;float je,jez=0,ssje,zl;while(a=2)printf("请输入购买商品的编号:");scanf("%s",str);for(i=0;i<b;i+) if(strcmp(str,si.bhstr)=0)/查找购买的商品 printf("请输入要购买的数量:"); scanf("%d",&sl); while(sl>si.kucun )/购买的数量如果大于库存数量 printf("商品库存数量不足,请重新输入要购买的数量:"); scanf("%d",&sl); printf("应收金额为:"); je=sl*si.shoujia;/计算购买该商品的金额 printf("%5.1fn",je); si.kucun=si.kucun-sl;/修改库存信息 printf("应收总金额为:"); jez=jez+je;/计算购买商品的总金额 printf("%5.1fn",jez); break; 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",str); for(i=0;i<b;i+) if(strcmp(str,si.bh)=0)|(strcmp(str,si.bhstr)=0)/查找要取消购买的商品 printf("请输入取消购买的数量"); scanf("%d",&sl); si.kucun =si.kucun +sl;/修改库存信息 jez=jez-sl*si.shoujia ;/重新计算总金额 printf("取消购买成功n"); zl=ssje-jez;/找零 printf("找零%5.1fn",zl); printf("购买成功n"); if(a!=2) printf("请选择:"); printf("1.返回开始菜单"); printf("2.继续购买商品"); scanf("%d",&a); jez=0; (3)运行效果输入:3输出:请输入购买商品的编号:输入:1输出:请输入要购买的数量:输入:1输出:应收金额为:1.0 应收总金额为: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所示。 图5-7 商品销售功能运行界面5.5商品信息查询函数(1)流程图商品信息查询函数实现查询商品信息的功能。查询时输入商品的编号或名称,输出商品的编号、名称、进价、售价、库存数量。 商品信息查询流程图如图5-8所示。开始菜单商品信息查询输入要查询商品的编号或名称商品是否存在否输出未找到该商品是输出商品的编号、名称、进价、售价、库存信息返回开始菜单 图5-8 商品信息查询流程图(2)系统代码void xxcx()/商品信息查询函数char str30;int i,a=2;while(a=2)printf("请输入要查询商品的编号或名称:");scanf("%s",str);for(i=0;i<b;i+)/查找要查询的商品 if(strcmp(str,si.bh)=0)|(strcmp(str,si.bhstr)=0) printf("商品编号: %sn",si.bh); printf("商品名称: %sn",si.bhstr); printf("商品进价:%5.1fn",si.jinjia); printf("商品售价:%5.1fn",si.shoujia); printf("商品库存: %dn",si.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.继续查询商品输入:1返回开始菜单运行效果图如图5-9所示。 图5-9 商品信息查询功能运行界面5.6商品信息浏览函数(1)流程图商品信息浏览函数实现浏览全部商品信息的功能。浏览时商品按编号依次输出商品的编号、名称、进价、售价、库存数量信息。商品信息浏览流程图如图5-10所示开始菜单。商品信息浏览 依次输出所有商品的编号、名称、进价、售价、库存信息输入任意字符返回开始菜单返回开始菜单 图5-10 商品信息浏览流程图(2)系统代码void spxxpx()/商品信息排序函数int i,j,t5;float t3,t4;char t130,t230,a;for(j=1;j<=b-1;j+)/排序for(i=0;i<b-j;i+)if(strcmp(si.bh,si+1.bh)>0)strcpy(t1,si.bh);strcpy(t2,si.bhstr);t3=si.jinjia;t4=si.shoujia;t5=si.kucun;strcpy(si.bh,si+1.bh);strcpy(si.bhstr,si+1.bhstr);si.jinjia=si+1.jinjia;si.shoujia=si+1.shoujia;si.kucun=si+1.kucun; strcpy(si+1.bh,t1);strcpy(si+1.bhstr,t2);si+1.jinjia=t3;si+1.shoujia=t4;si+1.kucun=t5;printf("按编号依次输出商品信息:n");for(i=0;i<b;i+)/按编号依次输出商品信息printf("商品编号: %sn商品名称: %sn商品进价:%5.1fn商品售价:%5.1fn商品库存: %dnn",si.bh,si.bhstr,si.jinjia,si.shoujia,si.kucun);printf("请输入任意字符返回开始菜单");scanf("%s",&a);(3)运行效果输入:5输出:按编号依次输出商品信息: 商品编号:1 商品名称:1商品进价:1.0商品售价:1.0商品库存:1 商品编号:2 商品名称:2商品进价:2.0商品售价:2.0商品库存:2 商品编号:3 商品名称:3商品进价:3.0商品售价:3.0商品库存:3 请输入任意字符返回开始菜单输入:w返回开始菜单运行效果图如图5-11所示。 图5-11 商品信息浏览功能运行界面6 . 总结通过C语言程序设计实现了超市管理系统,本系统完成了进货功能、退货功能、商品销售功能、商品信息查询功能和商品信息浏览功能,具有功能齐全和操作简单的特点,但是实用性还有待进一步改进。