信息与计算科学系课程设计报告1超市管理系统本设计运用C语言程序设计了一个超市管理系统。主要实现的功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能。1.开发工具和编程语言:开发工具:MicrosoftVisualC++6.0编程语言:C语言2.模块划分3.系统功能与函数的对应关系本系统包括一个主函数和6个被调函数,分别如下:(1)主函数voidmain()(2)功能选择函数voidgongneng()(3)进货功能函数voidjinhuo()(4)退货功能函数voidtuihuo()(5)商品销售函数voidspxs()(6)信息查询函数voidxxcx()(7)信息浏览函数voidspxxpx()信息查询功能信息浏览功能退出功能进货功能退货功能商品销售功能超市管理系统的设计与实现信息与计算科学系课程设计报告24.结构体类型说明商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。结构体类型定义为:structxinxi//结构体{charbh[30];//商品编号charbhstr[30];//商品名称floatjinjia;//商品进价floatshoujia;//商品售价intkucun;//商品库存数量};5.系统函数的设计与实现5.1主函数主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5-1所示。图5-1系统主界面主函数中可以实现各种功能的选择。5.2进货功能函数(1)流程图进货功能函数实现进货功能,能够实现要进货商品的信息添加或录入。进货时,先检测本商品是否存在,若存在则修改库存数量等相关信息;否则添加本商品的相关信息与计算科学系课程设计报告3信息。进货流程图如图5-2所示。否是图5-2进货功能流程图(2)系统代码voidjinhuo()//进货处理函数{charstr[30];inti,a=2;while(a==2){printf(请输入商品的名称:);开始菜单进货功能本商品是否存在修改库存数量等相关信息添加本商品的相关信息返回开始菜单输入商品的名称信息与计算科学系课程设计报告4scanf(%s,str);for(i=0;ib;i++)if(strcmp(str,s[i].bhstr)==0)//查找要进货的商品{printf(编号:%s,进价:%5.1f,售价:%5.1f,库存数量:%d\n,s[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,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.返回开始菜单);信息与计算科学系课程设计报告5printf(2.继续进行进货处理);scanf(%d,&a);}}(3)运行效果输入:选项1输出:请输入商品的名称:输入:1输出:添加商品信息请输入商品编号:……输入:1输出:商品信息添加完成请选择:1.返回开始菜单2.继续进行进货处理输入:2输出:请输入商品名称:输入:1输出:编号:1,进价:1.0,售价:1.0,库存数量:1请输入新库存:输入:2输出:库存信息修改完成请选择:1.返回开始菜单2.继续进行进货处理输入:1返回开始菜单运行效果图如图5-3所示。信息与计算科学系课程设计报告6图5-3进货功能运行界面5.3退货功能函数(1)流程图退货功能函数实现退货功能,能够实现要退货商品的信息修改。退货时,修改库存数量等相关信息;若库存数量为0,提示是否删除本商品,若选“是”则删除该商品的信息。退货流程图如图5-4所示。信息与计算科学系课程设计报告7否是否是否是图5-4退货功能流程图开始菜单退货处理修改库存数量等相关信息本商品已删除返回开始菜单请输入要退的商品名称请输入要退商品的数量是否退货退货成功库存是否为零是否删除本商品信息与计算科学系课程设计报告8(2)系统代码voidtuihuo()//退货处理函数{inti,a,c=2,d;charstr[30];while(c==2){printf(请输入要退的商品名称:);scanf(%s,str);for(i=0;ib;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);信息与计算科学系课程设计报告9if(a==1){strcpy(s[i].bh,该商品不存在);strcpy(s[i].bhstr,该商品不存在);s[i].jinjia=0;s[i].shoujia=0;s[i].kucun=0;printf(本商品已删除\n);}}}printf(请选择:);printf(1.返回开始菜单);printf(2.继续进行退货处理);scanf(%d,&c);}}(3)运行效果输入:2输出:请输入要退的商品名称:输入:1输出:请输入要退商品的数量:输入:1输出:请选择是否要退货1.是2.否输入:1输出:退货已成功请选择:1.返回开始菜单2.继续进行退货处理输入:1返回开始菜单信息与计算科学系课程设计报告10运行效果图如图5-5所示。图5-5退货功能运行界面5.4商品销售函数(1)流程图商品销售函数实现商品购买功能。购买商品时输入要购买商品的编号、购买数量,能够计算出应收金额和应收总金额,同时修改库存数量。此外,当实收金额少于应收总金额时,此次销售不成功,可根据用户的要求进行修改或放弃。信息与计算科学系课程设计报告11商品销售流程图如图5-6所示。是是否是否否是是否图5-6商品销售流程图开始菜单商品销售输入购买商品的编号输入购买数量重新输入购买数量计算应收金额,修改库存数量、打印出销售清单找零,购买成功返回开始菜单该商品是否存在库存数量是否够输出未找到该商品是否结账输入实收金额实收金额是否大于应收总金额是否重新付款取消购买某种商品,重新计算总金额,修改库存信息信息与计算科学系课程设计报告12(2)系统代码voidspxs()//商品销售函数{charstr[30];inti,sl,a=2,c;floatje,jez=0,ssje,zl;while(a==2){printf(请输入购买商品的编号:);scanf(%s,str);for(i=0;ib;i++)if(strcmp(str,s[i].bhstr)==0)//查找购买的商品{printf(请输入要购买的数量:);scanf(%d,&sl);while(sls[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;}信息与计算科学系课程设计报告13if(i=b)//如果没有找到该商品printf(对不起,未找到该商品\n);printf(请选择:);printf(1.结账);printf(2.继续购买商品);scanf(%d,&a);if(a==1)//结账{printf(请输入实收金额:);scanf(%f,&ssje);while(ssjejez)//如果实收金额小于应收总金额{printf(金额不足,请选择:);printf(1.重新付款);printf(2.取消购买);scanf(%d,&c);if(c==1)//重新付款{printf(请输入实收金额:);scanf(%f,&ssje);}else//取消购买某种商品{printf(请输入取消购买商品的编号或名称:);scanf(%s,str);for(i=0;ib;i++)if((strcmp(str,s[i].bh)==0)||(strcmp(str,s[i].bhstr)==0))//查找要取消购买的商品{信息与计算科学系课程设计报告14printf(请输入取消购买的数量);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,&a);jez=0;}}}(3)运行效果输入:3输出:请输入购买商品的编号:输入:1输出:请输入要购买的数量:输入:1输出:应收金额为:1.0信息与计算科学系课程设计报告15应收总金额为: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所示。信息与计算科学系课程设计报告16图5-7商品销售功能运行界面5.5商品信息查询函数(1)流程图商品信息查询函数实现查询商品信息的功能。查询时输入商品的编号或名称,输出商品的编号、名称、进价、售价、库存数量。信息与计算科学系课程设计报告17商品信息查询流程图如图5-8所示。否是图5-8商品信息查询流程图(2)系统代码voidxxcx()//商品信息查询函数{charstr[30];inti,a=2;while(a==2){printf(请输入要查询商品的编号或名称:);scanf(%s,str);for(i=0;ib;i++)//查找要查询的商品if((strcmp(str,s[i].bh)==0)||(strcmp(str,s[i].bhstr)==0)){开始菜单商品信息查询输入要查询商品的编号或名称输出商品的编号、名称、进价、售价、库存信息返回开始菜单输出未找到该商品商品是否存在信息与计算科学系课程设计报告18printf(商品编号:%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].ku