C语言程序设计课程设计报告设计题目:商店销售管理系统。专业学号班级姓名指导教师2009年春季学期设计任务:C语言课程设计任务书15题目:商店销售管理系统。功能:屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。要求:1、用C语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。评语:总评成绩:指导教师:(手写,要求2000字以上)一、总体设计1.程序的总体设计2.数据结构3.函数原型声明二、详细设计1.main()(流程图)2.3.三、测试及调试(测试方案、存在的问题及解决方法)(写明测试软件的时候采用的测试方法、测试数据,并说明在你软件设计、调试过程中的遇到的问题和解决方案)四、小结(通过本次课程设计......)附件:主要源程序代码(需打印)#includestdio.h#includestdlib.h#includestring.h#defineSIZE100structproduct//数据结构{longnumber;//商品编号charname[20];//商品名称floatinprice;//商品进价floatoutprice;//商品售价intcount;//商品数量};voidmain(){FILE*fp;voidRemined();打印清单函数声明voidmenu();//菜单函数声明voidIn();//商品进库管理函数声明voidOut();//商品出库管理函数声明voidAdd();//创建新商品信息函数声明voidDel();//清除商品信息函数声明voidSale();//销售统计函数声明voidExit();//退出函数声明fp=fopen(商品信息,a+);//创建商品信息文件fclose(fp);fp=fopen(清单,w+);//创建清单文件fclose(fp);menu();}//增加新商品函数voidAdd(){FILE*fp;charm;structproductinf;//录入各个信息printf(请输入商品编号\n);//编号scanf(%ld,&inf.number);printf(请输入商品数量\n);//数量scanf(%d,&inf.count);printf(请输入商品进价\n);scanf(%f,&inf.inprice);printf(请输入商品售价\n);scanf(%f,&inf.outprice);printf(请输入商品名称\n);scanf(%s,inf.name);fp=fopen(商品信息,a+);if(fp==NULL)printf(“”)fwrite(&inf,sizeof(structproduct),1,fp);fclose(fp);//询问是否继续输入printf(是否继续输入?是输入'Y';返回主菜单输入'N'\n);getchar();m=getchar();if(m=='Y'||m=='y')Add();if(m=='N'||m=='n')menu();}//进货模块voidIn(){FILE*fp;inti,b;charm;longnumber;intcount;structproductinf[SIZE];structproductinf1;//输入商品的各种信息fp=fopen(商品信息,r);if((fp=fopen(商品信息,r))==NULL)printf(打开商品信息文件出错\n);printf(请输入商品编号\n);//编号scanf(%ld,&number);printf(请输入商品数量\n);//数量scanf(%d,&count);//将所有信息从文件中读出,进行修改i=0;while(fread(&inf1,sizeof(structproduct),1,fp)!=(int)NULL){if(inf1.number!=number){inf[i].number=inf1.number;strcpy(inf[i].name,inf1.name);inf[i].inprice=inf1.inprice;inf[i].outprice=inf1.outprice;inf[i].count=inf1.count;i++;}else{inf[i].number=inf1.number;inf[i].inprice=inf1.inprice;inf[i].outprice=inf1.outprice;inf[i].count=count+inf1.count;strcpy(inf[i].name,inf1.name);i++;}}fclose(fp);if((fp=fopen(商品信息,w+))==NULL)printf(打开商品信息文件出错\n);for(b=0;bi;b++){if(fwrite(&inf[b],sizeof(structproduct),1,fp)==!1)printf(写入商品信息文件出错\n);}fclose(fp);//询问是否继续输入printf(是否继续输入?是输入'Y';返回主菜单输入'N'\n);getchar();m=getchar();if(m=='Y'||m=='y')In();if(m=='N'||m=='n')menu();}//出货模块voidOut(){FILE*fp;charm;floatmoney=0;longnumber;intcount,i,b;structproductinf[SIZE],inf1;structproductlist;//输入商品的各种信息if((fp=fopen(商品信息,rb))==NULL)printf(打开商品信息文件出错\n);printf(请输入商品编号\n);//编号scanf(%ld,&number);printf(请输入商品数量\n);//数量scanf(%d,&count);i=0;while(fread(&inf1,sizeof(structproduct),1,fp)!=(int)NULL){if(inf1.number!=number){inf[i].number=inf1.number;strcpy(inf[i].name,inf1.name);inf[i].inprice=inf1.inprice;inf[i].outprice=inf1.outprice;inf[i].count=inf1.count;i++;}else{inf[i].number=number;inf[i].inprice=inf1.inprice;inf[i].outprice=inf1.outprice;inf[i].count=(inf1.count-count);strcpy(inf[i].name,inf1.name);list.number=number;list.count=count;list.inprice=inf1.inprice;list.outprice=inf1.outprice;strcpy(list.name,inf1.name);money=(list.count)*(list.outprice);i++;}}fclose(fp);if((fp=fopen(商品信息,w+))==NULL)printf(打开商品信息文件出错\n);for(b=0;bi;b++){if(fwrite(&inf[b],sizeof(structproduct),1,fp)==(int)NULL)printf(写入商品信息文件出错\n);}fclose(fp);fp=fopen(清单,a+);fwrite(&list,sizeof(structproduct),1,fp);fclose(fp);printf(是否打印本次清单?是输入'Y';返回主菜单输入'N'\n);getchar();m=getchar();if(m=='y'||m=='Y')printf(商品编号商品名称进价售价金额\n);printf(%3l%s%3.1f%3.1f%3.1f\n,list.number,list.name,list.inprice,list.outprice,money);printf(是否继续输入?是输入'Y'或'y';否输入'N'或'n'\n);getchar();m=getchar();if(m=='Y'||m=='y')Out();if(m=='N'||m=='n')menu();}voidmenu()//菜单模块{intchoice;printf(#####################################################################\n);printf(\n);printf(欢迎来到商店销售管理系统\n);printf(\n);printf(#####################################################################\n);printf(请输入你要使用的功能编号\n);printf(0-----------退出\n);printf(1-----------商品进库管理\n);printf(2-----------商品出库管理\n);printf(3-----------创建新商品信息\n);printf(4-----------清除商品信息\n);printf(5-----------销售统计\n);printf(6-----------显示库存量\n);scanf(%d,&choice);switch(choice){case0:Exit();case1:In();break;case2:Out();break;case3:Add();break;case4:Del();break;case5:Sale();break;case6:Remined();break;default:main();}}//清除模块voidDel(){inti,b;longnumber;structproductinf[SIZE],infd;charm;FILE*fp;printf(请输入商品编号\n);scanf(%ld,&number);fp=fopen(商品信息,r);if(fp==NULL)printf(“打开文件出错\n”);//将文件内容读出后重新写入i=0;while(fread(&infd,sizeof(structproduct),1,fp)!=(int)NULL){if(infd.number!=number){inf[i].number=infd.number;inf[i].count=infd.count;inf[i].inprice=infd.inprice;inf[i].outprice=infd.outprice;strcpy(inf[i].name,infd.name);i++;}}fclose(fp);if(fopen(商品信息,w+)==NULL)printf(打开商品信息文件出错\n);for(b=0;bi;b++)if(fwrite(&inf[b],sizeof(structproduct),1,fp)==1)printf(写入商品信息文件出错\n);fclose(fp);//询问是否继续输入printf(是否继续输入?是输入'Y'或'y';否输入'N'或'n'\n);getchar();m=getchar();if(m=='Y'||m=='y')Del();if(m=='N'||m=='n')menu();}//退出模块voidExit(){