数学与计算科学学院《C语言程序设计》课程设计题目:商品销售管理系统专业:数学与应用数学专业学号:1409401-29姓名:曾澳指导教师:成绩:二零一五年六月十日课程设计报告——商品销售管理系统1、研究目的与意义由于经济飞速发展,销售人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,为了减轻商家及销售人员对进行查找等繁杂的工作,进而设计出一个功能更完善,合理,先进的商品销售管理系统来管理。开发此商品销售管理系统软件,以供操作者进行商品管理,方便操作者随时添加、查询、修改商品信息。进一步巩固所学的C语言的数据结构,流程结构,输入输出…,以及各种调试测试技能,并培养利用C语言分析实际问题,用计算机解决简单问题的能力。2、问题描述和功能要求问题描叙:对商品销售信息进行管理,主要包含的商品销售信息为:名称、单价、编号、数量、销售额、销售量,此主要系统包含下列功能:对商品销售信息的输入、显示、排序、查找、删除、修改、及对文件的读写。系统功能:1)、每一条记录包括一个商品信息的名称、单价、编号、数量、销售额、销售量。2)、输入功能:可以一次完成无数条记录的输入。3)、显示功能:完成全部商品记录的显示。4)、修改功能:能将以前输入并保存的数据进行修改。5)、查找功能:按商品编号查找商品信息,并显示。6)、删除功能:删除其中一个商品的信息;7)、排序功能:按商品销售量和销售额进行排序。8)、文件的读写功能:能将商品销售信息保存在任何自定义的文件中;同时,也能将保存在文件中的商品销售信息读取出来。9)、有一个清晰美观界面来调用各个功能功能模块分工:组长:曾澳李楚莲负责:输入功能、显示功能。何畅负责:排序功能曾澳负责:查找功能。叶小康负责:删除功能、修改功能。丁慧莹负责:文件的读写功能。3、课程设计报告内容3.1商品销售管理系统的理论依据1、建立一个结构体数组对象goods,用于存储商品信息structgoods{charname[20];//商品名称longbianhao;//商品编号intshuliang;//商品数量doubleprice;//商品单价intxiaoshoue;//商品销售额intxiaoshoul;//商品销售量};2、建立相应的系统操作函数如下:○1输入商品信息存放到数组goods的函数:intinput(structgoodsg[]);○2显示数组goods中n个商品的信息函数:voidDisplay(structgoodsg[],intn);○3n个商品数组goods中修改某商品的信息函数:voidChange(structgoodsg[],intn);○4n个商品数组goods根据商品名称查找商品函数:voidSearch(structgoodsg[],inti);○5删除商品的信息函数:intDelete(structgoodsg[],intn);○6n个商品数组goods按销售量和销售额升降排序函数:voidSort_lpx(structgoodsg[],inti);voidSort_epx(structgoodsg[],inti);○7从文件中读入数据到数组goods中的函数:voidRead(structgoodsg[],inti);○8将所有记录goods写入文件函数:voidSave(structgoodsg[],inti);;○9退出管理系统函数:exit(0);3、写main()函数,由用户输入一个参数a,根据a的值来选择要进行的操作。3.2算法流程图3.3源程序如下:#includestdio.h#includestdlib.h#includestring.hstructgoods{charname[20];longbianhao;longshuliang;doubleprice;doublexiaoshoue;intxiaoshoul;};structgoodsg[10];//商品最多种inti=0;//i用于输入的商品的个数intmenu(){inta;printf(***********************商品销售管理系统*************************\n);printf(1,录入商品\n);printf(2,显示商品\n);printf(3,修改商品\n);printf(4,选购商品\n);printf(5,删除商品\n);printf(6,商品的销售量排序\n);printf(7,商品的销售额排序\n);printf(8,从文件中读入数据\n);printf(9,将所有记录写入文件\n);printf(0,返回程序\n);printf(请选择(输入0-9的10个数字):);scanf(%d,&a);for(;a0||a9;){printf(输入错误,请重新选择(输入0-9的10个数字):);scanf(%d,&i);}system(cls);returna;}intinput(structgoodsg[])//输入商品信息{charflag='Y';while(flag=='y'||flag=='Y')//判断{printf(请输入该商品的名称:);//交互输入商品信息scanf(%s,g[i].name);printf(请输入该商品的编号:);scanf(%ld,&g[i].bianhao);printf(请输入该商品的数量:);scanf(%ld,&g[i].shuliang);printf(请输入该商品的单价:);scanf(%lf,&g[i].price);printf(请输入该商品的销售量:);scanf(%d,&g[i].xiaoshoul);printf(请输入该商品的销售额:);scanf(%lf,&g[i].xiaoshoue);printf(\n);getchar();i++;printf(继续输入商品信息请按:Yory,退出请按:Norn.\n);scanf(%c,&flag);//判断是否继续输入}printf(按任意键回主菜单\n);system(cls);return(i);}voidDisplay(structgoodsg[],intn)//显示所有记录{intk;if(n==0)printf(暂无该商品记录!\n);else{printf(名称、编号、数量、单价、销售量、销售额\n);//循环输出for(k=0;kn;k++){printf(%7s,g[k].name);printf(%7ld,g[k].bianhao);printf(%7ld,g[k].shuliang);printf(%12.5lf,g[k].price);printf(%7d,g[k].xiaoshoul);printf(%12.5lf,g[k].xiaoshoue);printf(\n);}system(pause);system(cls);}}voidChange(structgoodsg[],intn)//修改的信息{//p用来表示要修改商品编号intp,k;//k为循环变量chara='y';while(a=='y'||a=='Y'){printf(\t\t商品信息修改:\n);printf(请输入要修改的商品的编号:\n);scanf(%d,&p);for(k=0;p!=g[k].bianhao&&kn;k++);if(k==n)printf(无法找到该商品的信息\n);else{printf(该商品的信息为:\n);printf(名称、编号、数量、单价、销售量、销售额\n);printf(%7s,g[k].name);printf(%7ld,g[k].bianhao);printf(%7ld,g[k].shuliang);printf(%12.5lf,g[k].price);printf(%7d,g[k].xiaoshoul);printf(%12.5lf,g[k].xiaoshoue);printf(请输入该商品的新信息:\n);printf(请输入该商品的名称:);scanf(%s,g[k].name);printf(请输入该商品的编号:);scanf(%ld,&g[k].bianhao);printf(请输入该商品的数量:);scanf(%ld,&g[k].shuliang);printf(请输入该商品的单价:);scanf(%lf,&g[k].price);printf(请输入该商品的销售量:);scanf(%d,&g[k].xiaoshoul);printf(请输入该商品的销售额:);scanf(%lf,&g[k].xiaoshoue);getchar();printf(修改成功!\n);}printf(是否继续修改,继续请按'Y'或'y',退出请按'N'或'n'.\n);a=getchar();//判断是否继续}system(cls);}voidSearch(structgoodsg[],inti)//查找并显示一个记录{intp,k;//p为要查找的商品编号,t为循环节,s用来判断循环是否结束charflag='y';while(flag=='y'||flag=='Y'){printf(请输入要查找的商品编号:);scanf(%d,&p);getchar();for(k=0;p!=g[k].bianhao&&ki;k++);structgoods[],intn,p为查找编号,K=0KnP=g[k].bianhao这编号不存在k++结束输出kif(k==i)printf(该商品编号不存在!\n);else{printf(该商品的信息为:\n);printf(名称、编号、数量、单价、销售量、销售额\n);printf(%7s,g[k].name);printf(%7ld,g[k].bianhao);printf(%7ld,g[k].shuliang);printf(%12.5lf,g[k].price);printf(%7d,g[k].xiaoshoul);printf(%12.5lf,g[k].xiaoshoue);printf(\n);}printf(继续查找商品信息请输入:Yory,退出输入:Norn\n);scanf(%c,&flag);//判断是否继续输入}system(cls);}intDelete(structgoodsg[],intn)//删除商品{intt,p,s;chara='Y';while(a=='y'||a=='Y'){printf(请输入需要删除商品的编号:\n);scanf(%d,&s);getchar();for(t=0;tn&&s!=g[t].bianhao;t++);if(s==g[t].bianhao){for(p=t;pn;p++)g[p]=g[p+1];n=n-1;printf(删除成功!\n);}elseprintf(没有找到要删除的商品!\n);printf(是否继续删除,继续请按'Y'或'y',退出请按'N'或'n'.\n);a=getchar();getchar();}system(cls);return(n);}voidSort_lpx(structgoodsg[],inti)//按销售量排序{intm,n,k;//m,n为循环变量goodst;开始运行i=kin退出程序A[i]=a[i+1]structgoodsg[],intni++;for(m=0;mi-1;m++)//排序(降序)for(n=m+1;ni;n++)if(g[m].xiaoshoulg[n].xiaoshoul){t=g[m];g[m]=g[n];g[n]=t;}printf(排序后的顺序为:\n);printf(名称、编号、数量、单价、销售量、销售额\n);for(k=0;ki;k++)//循环输出{printf(%7s,g[k].name);printf(%7ld,g[k].bianhao);printf(%7ld,g[k].shuliang);pr