版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(销售管理)商品销售管理系统设计2020年3月多年的企业涔询顾问经险,精,谕作的卓越管言疔案,值得您下载拥有!、商品销售管理问题描述:已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个),设计一程序,完成以下功能:1) 1)销售:从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02)2) 2)能根据产品编号查询产品的销售历史3) 3)计算时间段内各个产品的销售总额4) 4)能根据顾客姓名,查询购买历史5) 5)能显示所有顾客的姓名
2、提示:定义一个日期结构体保存日期,具体信息为:年、月、日判断存款日期和取款日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为'-',字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。判断是否满足构成日期的条件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否则不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建议写成函数)。定义一个结构体数组保存10种产品信息,具体信息为:产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)定义一个链表,保存销售信息,具体为:顾客代码
3、,销售数量、销售日期。定义一个链表保存顾客信息,具体为:顾客代码,顾客姓名当输入销售信息时查询顾客链表,如果在链表中存在该姓名的顾客记录,则将其代码在该销售链表中插入一条记录,如果不存在,则在顾客链表中插入一条记录,(顾客代码需要自动生成)。#include"stdio.h"/*I/O函数*/#include"stdlib.h"/*标准库函数*/#include"string.h"/*字符串函数*/#include"ctype.h"/*字符操作函数*/#include"time.h"/*时钟函数
4、*/int num ;/*商品编号*/#include"cstdlib"#include"conio.h"intx,k;/*定义全局变量用于保存当前商品种类*/structproduct/*定义商品数据结构*/charname20;/*商品名称*/floatprice;/*商品售价*/charplace10;/*商品名称*/intstorage;/*商品库存*/_product10,product110;/定义主结构体数组和备用结构体数组structdata/定义日期结构体intyear,month,day;structsell/*定义销售数据结构*/i
5、ntcus;/*顾客代码*/intnum;/*商品编号*/floatsells;/*销售数量*/chardatal12;/*日期*/structsell*next;*head_s,*pp,*tail_s;/定义头指针操、作指针以及尾指针structcustomer/*定义销售数据结构*/intcus;/*顾客代码*/charname10;/*顾客姓名*/structcustomer*next;*head_c,*qq,*tail_c;/定义头指针操、作指针以及尾指针voidload();/读取文件函数voidadd();/添加销售信息函数intsearch_num();根据商品编号查询商品的销售
6、历史voidcal();/计算时间段内各个商品的销售总额intsearch_name();根据顾客姓名,查询购买历史voidlist_name();/显示所有顾客的姓名voidmain();/主函数intjudge();/主体判断函数intjudge_data(char*data1);细节判断函数,用于判断日期是否合法voiddownload_s();/写入销售信息(顾客代码,销售数量、销售日期)文件voiddownload_c();/导出顾客购买记录voiddisplay();/显示现在的商品信息/主函数voidmain()intchoice;structcustomer*head;/定义结
7、构指针head=malloc(sizeof(structcustomer);/申请动态存储空间head->next=NULL;doprintf (M*欢迎使用商品销售管理系!*己);printf (1 .导入商品信息n");printf (2 .显示商品信息n");printf (3 .输入销售记录记录n");printf (4 .按编号查寻商品销售历史n");printf (5 .计算时间段内各个销售总额n");printf ("6 .按顾客姓名查找购买历史n");printf ("7 .显示顾客姓名n&q
8、uot;);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;cas
9、e2: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("nnnn");printf(、*谢谢使用*M吊由门”break;while(choice>0&&choice<=9);voiddisplay()intcod
10、e,i=0;);pp=(structsell*)malloc(sizeof(structsell);/申请动态存储空间并将指针转变为结构类型qq=(structcustomer*)malloc(sizeof(structcustomer);/申请动态存储空间并将指针转变为结构类型pp->next=NULL;qq->next=NULL;system("cls");/*清屏*/printf (3*商品信息*nnn);printf("商品编号商品名称商品价格商品产地库存数量n");while(i<10)/输出商品记录printf("
11、%8d%12s%12.2f%10s%14dn",producti.num,_,_producti.price,producti.place,_producti.storage);i+;printf("nn查询完毕,请按任意键继续");getch();system("cls");voidload()/读取文件函数inti=0,n=0,a,b,j;FILE*fp;指向文件的指针doprintf("请选择导入商品信息的方法n1:通过键盘输入n2:通过文件导入n");scanf("%d"
12、,&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",&_producti.num,_,&_producti.price,_
13、producti.place,&_producti.storage);printf("%-10d%-10s%-10.2f%-12s%-12dn",producti.num,_,_producti.price,_producti.place,_producti.storage);i+;for(i=0;i<10;i+)productli=_producti;对备用结构体数组赋值fclose(fp);/关闭文件printf("tt数据读入成功!按任意键继续n");if(a=1)if(fp=fopen("商品信息
14、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",&_producti.num,_,&_producti.pric
15、e,_producti.place,&_producti.storage);fprintf(fp,"%-6d%-6s%-6.2f%-6s%-6dn",_producti.num,_,_producti.price,_producti.place,_producti.storage);fclose(fp);/关闭文件n");printf("tt数据读入成功!按任意键继续while(a!=1&&a!=2);细节判断函数,用于判断日期是否合法intjudge_data(char*data1)intn=1,m,y
16、ear=(data10-48)*1000+(datal1-48)*100+(datal2-48)*10+(datal3-48),month=(datal5-48)*10+(datal6-48),day=(datal8-48)*10+(datal9-48);m=strlen(data1);if(m!=10)n=0;if(data14!='-'|data17!='-')n=0;n=0;if(year>10000|year<1000|month>12|month<1|day>31|day<1)if(year%4=0&&
17、;year%100!=0)|(year%400=0)&&month=2)if(day>30)n=0;if(month=2&&day>=29)n=0;if(month=4|month=6|month=9|month=11)if(day>30)n=0;returnn;/判断函数intjudge()判断商品编号数量日期是否正确inti,j=0,k,temp;for(i=0;i<10;i+)if(pp->num=_producti.num)j+;x=k=i;temp=_productk.storage;if(_productk.storag
18、e-(int)pp->sells)>=0)_productk.storage-=(int)pp->sells;/判断计算剩余量break;if(j=0)return3;判断是否存在输入编号的商品elseif(temp-(int)pp->sells<0)return2;/判断输入量是否大于剩余库存量elseif(pp->sells-(int)pp->sells>=1e-6)return4;/商口口口里elseif(judge_data(pp->data1)=0)return0;判断日期elsereturn1;/完全正确/添加销售信息函数voi
19、dadd()intcode,i=0,n,m;pp=(structsell*)malloc(sizeof(structsell);/申请动态存储空间并将指针转变为结构类型qq=(structcustomer*)malloc(sizeof(structcustomer);/申请动态存储空间并将指针转变为结构类型srand(time(0);code=rand();pp->next=NULL;qq->next=NULL;system("cls");/*清屏*/printf("请输入销售记录nnn");/*提示输入记录*/printf("顾客
20、姓名商品编号销售数量销售日期n");printf("n");scanf("%s%d%f%s",qq->name,&pp->num,&pp->sells,pp->datal);/*输入记录*/n=(int)pp->sells;if(n<=0)printf("商品数量有误!请从新输入");scanf("%f",&pp->sells);while(1)m=judge();/判断商品编号数量日期是否正确if(m=1)申请动态存/pp=(struct
21、sell*)malloc(sizeof(structsell);/储空间并将指针转变为结构类型/qq=(structcustomer*)malloc(sizeof(structcustomer);pp->cus=qq->cus=code;/随机数if(head_s=NULL)续n");head_s=pp;elsetail_s->next=pp;tail_s=pp;if(head_c=NULL)head_c=qq;elsetail_c->next=qq;tail_c=qq;printf("tt销售信息输入成功!按任意键继getch();system(&
22、quot;cls");break;elseif(m=2)system("cls");printf(”销售数量已大于库存数量,请重新输入:nnn");printf("请输入销售数量nnn");/*提示输入记录*/printf("销售数量n");scanf("%f",&pp->sells);/*输入记录*/continueelseif(m=3)system("cls");printf("无此商品,请重新输入:nnn");printf("
23、请输入销售记录nnn");/*提示输入记录*/printf("商品编号n");scanf("%d”,&pp->num);/*输入记录*/continue重:nnn"*/else if (m = 4)system ("cls");printf ("商品数量输入错误,请重新输入商品数);printf ("请输入销售记录nnn" ); /*提示输入记录printf("销售数量:n");scanf("%f",&pp->sells);/*
24、输入记录*/continueelseif(m=0)system("cls");printf("销售日期不合法,请重新输入销售日期:nnn");/*提示输入记录*/printf("销售日期n");scanf("%s",pp->datal);/*输入记录*/continue;k+;/根据商品编号查询商品的销售历史search_num()inti,num,k=0,flag=1,n=0;structsell*ptr;system("cls");printf("请输入商品编号:n"
25、;);scanf("%d”,&num);for(i=0;i<10;i+)if(num=_producti.num)flag=0;break;if(flag=1)!");system("cls");printf("无此商品,请查实商品编号后按任意键准备重新输入getch();system("cls");return0;for(ptr=head_s;ptr;ptr=ptr->next)if(num=ptr->num)if(k=0)printf("商品编号销售数量销售总额销售日期n")
26、;printf("-n");k+;printf("%5d%20d%20.2f%15sn",ptr->num,(int)ptr->sells,(int)ptr->sells*_producti.price,ptr->datal);if(k=0)printf("该商品记录为空!!按任意键继续");getch();system("cls");return0;elseprintf("nn查询完毕,请按任意键继续");getch();system("cls");
27、return0;/计算时间段内各个商品的销售总额voidcal()inti,n=0;structsellsi,s2,*p=&s1,*q=&s2,*ptr;system("cls");printf("请输入开始日期:");doscanf("%s”,p->datal);system("cls");if(judge_data(pp->datal)!=1)printf("输入日期不合法,请重新输入:");scanf("%s”,p->datal);system("
28、;cls");n=1;elsen=0;while(n=1);printf("请输入结束日期:");scanf("%s”,q->datal);system("cls");doif(judge_data(q->datal)!=1)printf("输入日期不合法,请重新输入:");scanf("%s”,q->data1);system("cls");n=1;elsen=0;while(n=1);printf("销售记录如下:tt时间:s至$门”,p->dat
29、al,q->data1);printf("nntt商品编号销售总额n");printf("ttnn");for(ptr=head_s;ptr;ptr=ptr->next)for(i=0;i<10;i+)if(product1i.num=ptr->num)breakproductli.storage-=(int)ptr->sells;for(i=0;i<10;i+)i.pricprintf("tt%2dtt%.2fn",product1i.num,product1e*(1000-productli.s
30、torage);printf("nn查询完毕,请按任意键继续");getch();system("cls");根据顾客姓名,查询购买历史intsearch_name()inti,k=1;charname10;structcustomer*ptri;structsell*ptr2;system("cls");printf("请输入顾客姓名:n");scanf("%s",name);for(ptri=head_c;ptr1;ptr1=ptri->next)for(ptr2=head_s;ptr
31、2;ptr2=ptr2->next)if(ptri->cus=ptr2->cus)break;for(i=0;i<10;i+)if(ptr2->num=_producti.num)break;if(strcmp(name,ptri->name)=0)/if(k=0|k%8=0)printf("顾客姓名顾客代码商品编号购买数量购买总额购买日期n");printf ();n"printf("%2s%15d%15d%10d%15.2f%15sn",ptr1->name,ptr1->cus,ptr2->num,(int)ptr2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中煤财务公司招聘2人备考题库含完整答案详解【考点梳理】
- 2026中南大学湘雅医院江西医院高层次人才招聘备考题库附参考答案详解(夺分金卷)
- 2026江苏无锡职业技术大学招聘3人备考题库含答案详解【综合题】
- 2026广东惠州博罗县人民医院招聘69人备考题库及答案详解【名师系列】
- 2026恒丰银行总行实习生招收备考题库含完整答案详解【全优】
- 2026广东深圳市宝安区翻身实验学校(西校区)诚聘初中道法、高中历史教师2人备考题库(全优)附答案详解
- 2026四川宜宾长宁县淯江文旅集团有限公司招聘员工20名备考题库及参考答案详解【能力提升】
- 2026中冶京诚工程技术有限公司春季校园招聘备考题库ab卷附答案详解
- 2026江苏苏州太仓农商行招聘2人备考题库附答案详解【满分必刷】
- 2026清华大学基础医学院彭敏实验室招聘科研助理2人备考题库及参考答案详解(夺分金卷)
- 2026年家电以旧换新项目评估报告
- 2026年粤港澳大湾区建筑市场发展新机遇
- 中央2025年公安部部分直属事业单位招聘84人笔试历年参考题库附带答案详解
- 手术室安全管理课件
- 2026年北大emba考试试题
- 春季安全行车培训宣传课件
- 2026年东莞市厚街控股集团有限公司招聘14名工作人员备考题库及一套参考答案详解
- 2026年高压电工证考试试题及答案
- 2025年高职(城市轨道交通机电技术)设备调试阶段测试题及答案
- 【全科医学概论5版】全套教学课件【694张】
- 电厂防汛课件
评论
0/150
提交评论