您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 商品销售管理系统设计
、商品销售管理问题描述:已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)),设计一程序,完成以下功能:1)1)销售:从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02))2)2)能根据产品编号查询产品的销售历史3)3)计算时间段内各个产品的销售总额4)4)能根据顾客姓名,查询购买历史5)5)能显示所有顾客的姓名提示:定义一个日期结构体保存日期,具体信息为:年、月、日判断存款日期和取款日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为’-’,字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。判断是否满足构成日期的条件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否则不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建议写成函数)。定义一个结构体数组保存10种产品信息,具体信息为:产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)定义一个链表,保存销售信息,具体为:顾客代码,销售数量、销售日期。定义一个链表保存顾客信息,具体为:顾客代码,顾客姓名当输入销售信息时查询顾客链表,如果在链表中存在该姓名的顾客记录,则将其代码在该销售链表中插入一条记录,如果不存在,则在顾客链表中插入一条记录,(顾客代码需要自动生成)。#includestdio.h/*I/O函数*/#includestdlib.h/*标准库函数*/#includestring.h/*字符串函数*/#includectype.h/*字符操作函数*/#includetime.h/*时钟函数*/#includecstdlib#includeconio.hintx,k;/*定义全局变量用于保存当前商品种类*/structproduct/*定义商品数据结构*/{intnum;/*商品编号*/charname[20];/*商品名称*/floatprice;/*商品售价*/charplace[10];/*商品名称*/intstorage;/*商品库存*/}_product[10],product1[10];//定义主结构体数组和备用结构体数组structdata//定义日期结构体{intyear,month,day;};structsell/*定义销售数据结构*/{intcus;/*顾客代码*/intnum;/*商品编号*/floatsells;/*销售数量*/chardata1[12];/*日期*/structsell*next;}*head_s,*pp,*tail_s;//定义头指针操、作指针以及尾指针structcustomer/*定义销售数据结构*/{intcus;/*顾客代码*/charname[10];/*顾客姓名*/structcustomer*next;}*head_c,*qq,*tail_c;//定义头指针操、作指针以及尾指针voidload();//读取文件函数voidadd();//添加销售信息函数intsearch_num();//根据商品编号查询商品的销售历史voidcal();//计算时间段内各个商品的销售总额intsearch_name();//根据顾客姓名,查询购买历史voidlist_name();//显示所有顾客的姓名voidmain();//主函数intjudge();//主体判断函数intjudge_data(char*data1);//细节判断函数,用于判断日期是否合法voiddownload_s();//写入销售信息(顾客代码,销售数量、销售日期)文件voiddownload_c();//导出顾客购买记录voiddisplay();//显示现在的商品信息//主函数voidmain(){intchoice;structcustomer*head;//定义结构指针head=malloc(sizeof(structcustomer));//申请动态存储空间head-next=NULL;do{printf(***********************欢迎使用商品销售管理系统!!!*******************\n\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(***********************************************************************\n);printf(请选择不同功能输入0----9的数字\n若输入其它值会提前退出\n);scanf(%d,&choice);system(cls);switch(choice){case1:load();system(cls);break;case2:display();break;case3:add();break;case4:search_num();break;case5:cal();break;case6:search_name();break;case7:list_name(head);break;case8:download_s();break;case9:download_c();break;case0:printf(\n\n\n\n);printf(*************谢谢使用************\n\n\n\n);break;}}while(choice0&&choice=9);}voiddisplay(){intcode,i=0;pp=(structsell*)malloc(sizeof(structsell));//申请动态存储空间并将指针转变为结构类型qq=(structcustomer*)malloc(sizeof(structcustomer));//申请动态存储空间并将指针转变为结构类型pp-next=NULL;qq-next=NULL;system(cls);/*清屏*/printf(**************************商品信息**************************\n\n\n);printf(商品编号商品名称商品价格商品产地库存数量\n);while(i10){//输出商品记录printf(%8d%12s%12.2f%10s%14d\n,_product[i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].storage);i++;}printf(\n\n查询完毕,请按任意键继续......);getch();system(cls);}voidload(){//读取文件函数inti=0,n=0,a,b,j;FILE*fp;//指向文件的指针do{printf(请选择导入商品信息的方法\n1:通过键盘输入\n2:通过文件导入\n);scanf(%d,&a);if(a==2){if((fp=fopen(商品信息.txt,rb))==NULL)//打开文件{printf(不能打开文件,请检查文件路径\n);//不能打开exit(0);//退出*/}printf(*****************88商品信息88*******************\n);printf(编号名称价格产地库存数量\n);while(!feof(fp)){//读入文件fscanf(fp,%d%s%f%s%d,&_product[i].num,_product[i].name,&_product[i].price,_product[i].place,&_product[i].storage);printf(%-10d%-10s%-10.2f%-12s%-12d\n,_product[i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].storage);i++;}for(i=0;i10;i++)product1[i]=_product[i];//对备用结构体数组赋值fclose(fp);//关闭文件printf(\t\t数据读入成功!按任意键继续......\n);}if(a==1){if((fp=fopen(商品信息1.txt,w))==NULL)//打开文件{printf(不能打开文件,请检查文件路径\n);//不能打开exit(0);//退出*/}printf(请输入商品种数);scanf(%d,&b);printf(*************商品信息***************\n);printf(编号名称价格产地库存数量\n);for(j=1;j=b;j++){scanf(%d%s%f%s%d,&_product[i].num,_product[i].name,&_product[i].price,_product[i].place,&_product[i].storage);fprintf(fp,%-6d%-6s%-6.2f%-6s%-6d\n,_product[i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].storage);}fclose(fp);//关闭文件printf(\t\t数据读入成功!按任意键继续......\n);}}while(a!=1&&a!=2);}//细节判断函数,用于判断日期是否合法intjudge_data(char*data1){intn=1,m,year=(data1[0]-48)*1000+(data1[1]-48)*100+(data1[2]-48)*10+(data1[3]-48),month=(data1[5]-48)*10+(data1[6]-48),day=(data1[8]-48)*10+(data1[9]-48);m=strlen(data1);if(m!=10)n=0;if(data1[4]!='-'||data1[7]!='-')n=0;if(year10000||year1000||month12||month1||day31||day1)n=0;if(((year%4==0&&year%100!=0)||(year%400==0))&&month==2)if(day30)n=0;if(month==2&&day=29)n=0;if(month==4||month==6||month==9||month==11)if(day30)n=0;returnn;}//判断函数intjudge()//判断商品编号数量日期是否正确{inti,j=0,k,temp;for(i=0;i10;i++)if(pp-num==_product[i].num){j++;x=k=i;temp=_product[k].storage;if((_product[k].storage-(int)pp-sells)=0)_product[k].storage-=(int)pp-sells;//判断计算剩余量break;}if(j==0)return3;//判断是否存在输入编号的商品elseif(temp-(int
本文标题:商品销售管理系统设计
链接地址:https://www.777doc.com/doc-1625533 .html