您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 超市收银管理程序的设计方案与实现
学号:10212810114武汉理工大学华夏学院数据结构课程设计题目超市收银管理程序的设计与实现院系信息工程系专业软件工程班级1101姓名指导教师2018年6月24日个人收集整理资料,仅供交流学习,勿作商业用途课程设计任务书学生姓名:熊伟专业班级:软件1101班指导教师:夏红霞工作单位:信息工程系题目:超市收银管理程序的设计与实现初始条件:理论:学习了《数据结构》课程,掌握了基本的数据结构和常用的算法;实践:信息工程系实验室提供计算机及软件开发环境。要求完成的主要任务:包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:1)商品管理人员对商品信息商品号、商品名、单价)进行输入、删除、修改和查询。2)收银人员录入商品号及购买数量,计算应付钱数,实收钱数和应找钱数。3)对销售情况进行查询。2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:1)设计题目;2)摘要和关键字;3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试等;4)结束语;5)参考文献。时间安排:2018年6月20日-24日第18周)星期一查阅资料星期二系统设计,数据结构设计,算法设计星期三-星期四编程并上机调试星期五撰写报告星期五验收程序,提交设计报告书。指导教师签名:2018年6月20日系主任或责任教师)签名:2018年6月20日个人收集整理资料,仅供交流学习,勿作商业用途超市收银管理程序的设计与实现摘要:该程序主要用于实现登陆超市商品管理系统的界面;超市工作人员对商品的管理系统主要包括对商品名,货号及商品库存量的存储修改以及查;。实现顾客购买商品的系统界面;以及结账系统——主要显示顾客当前购物清单,应付金额,以及实收金额,找零。本程序将实现不同功能的程序写入具有共同头文件的不同文件中,以便在其他程序中可以直接调用而不要重新声明定义。关键字:登陆系统商品统计超市管理查询付款引言:随着科技的发展,社会的进步,人们对产品的质量和服务的要求越来越高,市场竞争日趋激烈。超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。这些对传统的人工记录、操作来说越来越复杂、困难。因此,面对不同种类的信息,需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据操作的执行。所以超市收银管理程序是当今社会所必不可少的,它的特点就是能够实时的和准确的控制店内的销售情况。如果能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。一个好的超市收银管理程序能够给企业带来巨大的便利,以及效益。1需求分析:(1)商品管理人员对商品信息商品号、商品名、单价)进行输入、删除、修改和查询。(2)收银人员录入商品号及购买数量,计算应付钱数,实收钱数和应找钱数。(3)对销售情况进行查询。(4)顾客能看到自己已经购买的商品及价格数量以及找零。2数据结构设计:structitem_node:商品元素;全局变量;FILE:存储商品信息的文件;个人收集整理资料,仅供交流学习,勿作商业用途goods[i]:文件中存储的商品;intselect:操作选项;fp:指向文件的指针;p,p1:指向商品元素的指针;storage:记载商品库存量amount:记录顾客购买同样商品的数量;id:商品号;brand:商品名;in_price/out_price:商品进价/售价;Total:应付金额;Pay:实收金额。3算法设计:该程序主要包括登录系统、显示商品清单、购物车、结账系统3.1登陆系统用于超市管理人员登录及操作,选择1建立商品数据库、选择2显示商品信息、选择3进入购物车菜单、选4择进入结账目录、选择5退出程序。voidmain({printf(********************。printf(欢迎进入商品管理系统。printf(********************。while(1{switch(menu({case1:build(。break。case2:dis_all(。break。case3:shop_cart(。break。case4:account(。break。case5:printf(谢谢使用,再见。exit(0。}}}3.1.1登陆系统操作菜单个人收集整理资料,仅供交流学习,勿作商业用途管理人员登录后显示的界面,选择1.将会建立商品统计信息、选择2.将显式所有商品、选择3.显示购买商品链、选择4.弹出付账选择、选择5.退出intmenu({intselect。charstr[5]。printf(请选择操作序号。printf(\n****************\n。printf(1.建立商品统计信息\n。printf(2.显式所有商品\n。printf(3.购买商品链\n。printf(4.付账\n。printf(5.退出\n。printf(********\n\n。printf(请选择序号\n。while(1{gets(str。select=atoi(str。if(select5||select1printf(输入有误请重新选择\n。elsebreak。}returnselect。}3.2显示商品信息打开保存的文件并在屏幕上显示商品的货号、品名、单价、库存量voiddis_all({inti。FILE*fp。fp=fopen(goods,r。for(i=0。fread(goods+i,sizeof(structitem,1,fp!=0。i++{printf(************************************\n。printf(贷号品名单价库存量\n。printf(%10s%20s%7,2f%9d\n,goods[i].id,goods[i].brand,goods[i].out_price,goods[i].storage。}fclose(fp。}个人收集整理资料,仅供交流学习,勿作商业用途3.2.1建立商品信息库建立商品信息库,首先输入商品名称,接着输入货号,进价以及售价,最后输入商品的库存量voidbuild({FILE*fp。inti。printf(请依次输入商品信息\n。for(i=0。iNUM。i++{printf(品名:。gets(goods[i].brand。printf(货号:。gets(goods[i].id。printf(进价:。scanf(%f,&goods[i].in_price。printf(售价:。scanf(%f,&goods[i].out_price。printf(库存量:。scanf(%d,&goods[i].storage。printf(\n。if((fp=fopen(goods,w==NULL{printf(falltobuildafile。return。}fwrite(goods,sizeof(structitem,NUM,fp。fclose(fp。}}3.3购物车操作用于顾客登陆所购买的物品并显示所购买的物品,选择1添加商品、选择2显示清单、选择3返回voidshop_cart({while(1{switch(cart_menu(个人收集整理资料,仅供交流学习,勿作商业用途{case1:add(。case2:display(。case3:return。}}}3.3.1购物车菜单屏幕显示购物车的界面选1.将会添加到购买商品、选择2.屏幕上会显示当前购物的清单、选择3.将会退出如果选择错误,会提示“输入有误请重新选择”intcart_menu({charstr[5]。intselect。printf(选择操作序号。printf(\n。printf(1.添加到购买商品\n。printf(2.显式当前购物清单\n。printf(3.退出\n。while(1{gets(str。select=atoi(str。if(select5||select1printf(输入有误请重新选择\n。elsebreak。}returnselect。}3.3.2购物清单显示所购买物品的品名、货号、售价以及库存量voiddisplay({structitem_node*p=cart。if(p==NULL{printf(empty。return。}个人收集整理资料,仅供交流学习,勿作商业用途while(p!=NULL{printf(品名货号售价库存量。printf(%12s%20s%8.3f%8d\n,p-wanted.brand,p-wanted.id,p-wanted.out_price,p-wanted.storage。p=p-next。}}3.3.3添加商品添加所购买的物品货号以及数量,结束后会提示是否继续添加,如果输入错误将显示“打开文件失败”voidadd({FILE*fp。inti,n。charstr[20]。charchoice。structitem_node*p,*p1。do{printf(请输入所购商品货号。gets(str。if((fp=fopen(goods,r==NULL{printf(打开文件失败\n。continue。}for(i=0。fread(goods+i,sizeof(structitem,1,fp!=0。i++{if(goods[i].id==str{printf(********************************\n。printf(货号品名售价库存量。printf(%10s%20s%7.2f%8d\n,goods[i].id,goods[i].brand,goods[i].out_price,goods[i].storage。printf(购买数量。scanf(%d,&n。p1=(structitem_node*malloc(sizeof(structitem_node。个人收集整理资料,仅供交流学习,勿作商业用途if(p1==NULL{printf(fall。exit(1。}p1-amount=n。p1-wanted=goods[i]。p1-next=NULL。p=cart。if(cart==NULLcart=p1。else{while(p-next!=NULLp=p-next。p1-next=p-next。p-next=p1。}}break。}fclose(fp。printf(是否继续购买商品?。choice=getchar(。}while(choice=='Y'||choice=='y'。3.4结账系统显示购物清单及应找钱数,显示购物清单,然后输入实收的钱数,最后会在屏幕上显示应找的钱数intaccount({floattotal=0,pay。structitem_node*p。inti。FILE*fp。printf(以下是您的购物清单:\n。display(。if((fp=fopen(goods,r==NULL个人收集整理资料,仅供交流学习,勿作商业用途{printf(打开文件失败\n。return0。}for(i=0。(fread(goods+i,sizeof(structitem,1,fp!=0。i++。fclose(fp。p=cart。while(p!=NULL{total+=p-wanted.out_price*p-amount。for(i=0。goods[i].id!=p-wanted.id。i++。goods[i].storage-=p-amount。p=p-next。}printf(总计%7.2f,total。printf(\n输入实付金额:。scanf(%f,&pay。printf(实付
本文标题:超市收银管理程序的设计方案与实现
链接地址:https://www.777doc.com/doc-5776611 .html