数学与计算科学学院《C语言程序设计》课程设计题目:商品销售管理系统专业:信息与计算科学学号:1409301-41姓名:徐艺指导教师:李又良成绩:二零一五年六月二十二日课程设计报告——商品销售管理系统1、研究目的与意义由于现今经济飞速发展,人们购买商品量越来越大。因此为提高工作效率,方便商店管理人员对商品信息进行登记,查找,等繁杂的工作,进而设计出一个功能更完善,合理,先进的商品销售管理系统来管理。开发此商品销售管理系统软件,以供商店管理人员进行商品管理,方便管理人员随时查询、修改商品信息。进一步巩固所学的C语言的数据结构,流程结构,输入输出,以及各种调试测试技能,并培养利用C语言分析实际问题,用计算机解决简单问题的能力。2、问题描述和功能要求问题描叙对商品销售信息进行管理,主要包含的商品信息为:商品名称、商品编号、库存数量、销售数量、单价、产地。此主要系统包含下列功能:对商品信息的输入、显示、排序、查找、删除、修改、及对文件的读写。系统功能1)、每一条记录包括一个商品的名称、编号、库存数量、销售数量、单价、产地。2)、录入商品:可以一次完成无数条商品信息记录的输入。3)、显示库存:完成全部商品记录的显示。4)、插入商品:插入一件新商品的所有信息。5)、查找商品:按商品名称查找商品。6)、商品排序:按商品销售量把商品信息排序。7)、商品选购:包括商品信息查询,商品修改,显示结账。8)、修改库存数量:按商品销售量修改商品库存数量及销售数量。9)、录入商品信息文件:能将商品信息保存在任何自定义的文件中。9)、读取商品信息文件:将保存在文件中的商品信息读取出来。10)、有一个清晰美观界面来调用各个功能功能模块分工:组长:徐艺徐艺负责:商品信息的保存和读取。张薇负责:商品查询和商品插入。李康负责:商品选购。谭小芬:商品排序和修改。易杨婷负责:录入商品,显示库存。3、课程设计报告内容3.1学生信息管理系统的理论依据1、建立一个结构体数组对象sp,用于存储商品信息structsp{charspmc[20];//商品名称intspbh;//商品编号intkcsl;//库存数量intxssl;//销售数量intspdj;//单价charspcd[20];//产地}。2、建立相应的系统操作函数如下:○1输入k条商品信息存放到数组structspt[]的函数:intshuru(sps[],intn);○2显示数组structspt[]中n个商品的信息函数:voidxs(sps[],intn);○3n个商品数组structspt[]根据商品名称(spmc)查找商品函数:intfind(sps[],intn);④n个商品数组structspt[]中修改商品(从键盘输入商品编号)的信息函数:voidchange(sps[],inti);⑤n个商品数组structspt[]按销售数量排降序函数:voidsort_xssl(sps[],intn);⑥从文件filename中读入数据到数组structspt[]中的函数:voidread(sps[],inti);⑦将所有记录structsp写入文件filename函数:voidsave(sps[],inti);⑧将新的商品插入sps[]中函数:intInsert(sps[],intn);⑨退出管理系统函数:exit(0);3、写main()函数,由用户输入一个参数a,根据a的值来选择要进行的操作。3.2算法流程图商品信息管理系统的main()函数显示所有商品信息按商品名称查找插入新商品商品选购按商品销售量排序修改库存数量保存商品信息功能从文件中读入商品信息输入商品信息系统运行结束退出管理系统a=0a!=0请输入一个要操作的菜单项a并根据a值判断执行的操作输出相应的运行结果3.3源程序如下:#includestdio.h#includestring.h#includestdlib.htypedefstruct{charspmc[20];intspbh;intxssl;intkcsl;intspdj;charspcd[20];}sp;intn=0;sps[20];intmenu(){intselect;printf(********************************************************************************\n);printf(\t\t\t\t商品销售管理系统\n);printf(\t\t\t\t【1】录入商品\n);printf(\t\t\t\t【2】显示库存\n);printf(\t\t\t\t【3】插入商品\n);printf(\t\t\t\t【4】查找商品\n);printf(\t\t\t\t【5】商品排序\n);printf(\t\t\t\t【6】商品选购\n);printf(\t\t\t\t【7】修改库存数量\n);printf(\t\t\t\t【8】录入文件\n);printf(\t\t\t\t【9】读取文件\n);printf(\t\t\t\t【0】退出程序\n);printf(\n********************************************************************************\n);printf(\t请输入你的选择(输入0-9中的一个数字):\n);scanf(%d,&select);for(;select0||select9;){printf(\n输入错误!请重新输入你的选择(输入0-9中的一个数字):);scanf(%d,&select);}returnselect;}intshuru(sps[],intn){charflag='Y';while(flag=='y'||flag=='Y')//判断{printf(\n请输入商品名称:);scanf(%s,&s[n].spmc);printf(\n请输入商品编号:);scanf(%d,&s[n].spbh);printf(\n请输入销售数量:);scanf(%d,&s[n].xssl);printf(\n请输入库存数量:);scanf(%d,&s[n].kcsl);printf(\n请输入商品单价:);scanf(%d,&s[n].spdj);printf(\n请输入商品产地:);scanf(%s,&s[n].spcd);getchar();n++;printf(继续输入商品信息请按:Yory,退出请按:Norn.\n);scanf(%c,&flag);//判断是否继续输入getchar();}printf(按任意键回主菜单\n);getchar();return(n);}voidxs(sps[],intn)//显示商品信息{inti;printf(商品名称商品编号销售数量库存数量单价产地\n);for(i=0;in;i++)printf(%6s%8d%9d%8d%8d%6s\n,s[i].spmc,s[i].spbh,s[i].xssl,s[i].kcsl,s[i].spdj,s[i].spcd);}intInsert(sps[],intn)//插入商品的信息{{printf(请输入要插入的商品名称:);//输入商品信息scanf(%s,s[n].spmc);printf(请输入要插入的商品编号:);scanf(%d,&s[n].spbh);printf(请输入要插入的销售数量:);scanf(%d,&s[n].xssl);printf(请输入要插入的库存数量:);scanf(%d,&s[n].kcsl);printf(请输入要插入的商品单价:);scanf(%d,&s[n].spdj);printf(请输入要插入的商品产地:);scanf(%s,s[n].spcd);}return(n);}intfind(sps[],intn)//查找并显示一个记录{intk,va=-1;//k为要查找的商品名称,t为循环节,s用来判断循环是否结束charflag='y';while(flag=='y'||flag=='Y'){printf(请输入您所选的商品名称:);scanf(%s,&k);getchar();for(k=0;k!=0&&kn;k++);if(k==n)printf(该商品不存在!\n);else{printf(该商品的信息为:\n);printf(商品名称商品编号销售数量库存数量商品单价商品产地\n);printf(%9s,s[k].spmc);printf(%9d,s[k].spbh);printf(%11d,s[k].xssl);printf(%9d,s[k].kcsl);printf(%13.2d,s[k].spdj);printf(%9s,s[k].spcd);va=k;}printf(\n继续查找商品信息请输入:Yory,\n退出输入:Norn\n);scanf(%c,&flag);//判断是否继续输入}returnk;}voidsort_xssl(sps[],intn){intm,k;spp;for(k=1;k=n-1;k++){for(m=0;mn-k;m++){if(s[m].xssls[m+1].xssl){p=s[m+1];s[m+1]=s[m];s[m]=p;}}}for(m=0;mn;m++)printf(%s%d%d%d%d%s\n,s[m].spmc,s[m].spbh,s[m].xssl,s[m].kcsl,s[m].spdj,s[m].spcd);}voidspxg(sps[],intk)//查找并显示一个记录{charp[20];//p为要查找的商品名称intsum;//商品的总额inth;//商品的选购数量{printf(请输入您所选的商品名称:);scanf(%s,&p);getchar();for(k=0;strcmp(p,s[k].spmc)!=0&&kn;k++);if(k==-1)printf(该商品不存在!\n);else{printf(该商品的信息为:\n);printf(商品名称商品编号销售数量库存数量商品单价商品产地\n);printf(%7s,s[k].spmc);printf(%7d,s[k].spbh);printf(%10d,s[k].xssl);printf(%12d,s[k].kcsl);printf(%11d,s[k].spdj);printf(%10s,s[k].spcd);printf(\n);}//printf(继续您所需要的商品请输入:Yory,退出输入:Norn\n);//scanf(%c,&flag);//判断是否继续输入printf(请输入所购买商品的数量:);scanf(%d,&h);sum=s[k].spdj*h;//计算商品总额printf(您所购买商品的总额为:);printf(%d\n,sum);}}voidchange(sps[],inti)//修改商品的信息{longp;//p用来表示要删除商品的编号intk;printf(请输入商品编号:\n);scanf(%ld,&p);for(k=0;p!=s[k].spbh&&ki;k++);if(k==i)printf(无法找到该商品的信息\n);else{printf(\t该商品的信息为:\n);printf(商品名称商品编号销售数量库存数量单价产地\n);printf(%9s,s[k].spmc);printf(%8d,s[k].spbh);printf(%9d,s[k].xssl);printf(%9d,s[k].kcsl);printf(%8d,s[k].spdj);printf(%9s,s[k].spcd);printf(\t请输入该商品的新信息:\n);printf(请输入商品的名称:);//交互输入商品的信息scanf(%s,&s[k].spmc);printf(请输入该商品的编号:);scanf(%d,&s[k].s