




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(精编)商品销售管理系统设计、商品销售管理问题描述:已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最 开始为1000个),设计一程序,完成以下功能:一1)销售:从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。需要判断产 品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:YYYY-MM-D如 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,乙8,10,12 月可以是31天,其余只能小于等于 30 (建议写成函数)。定义一个结构体数组保存10种产品信息,具体信息为:产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)定义一个链表,保存销售信息,具体为:顾客代码,销售数量、销售日期。定义一个链表保存顾客信息,具体为:顾客代码,顾客姓名当输入销售信息时查询顾客
3、链表,如果在链表中存在该姓名的顾客记录,则将其代码在该销售链表中插入一条记录,如果不存在,则在顾客链表中插入一条记录,(顾客代码需要自动生成)。#i nclude stdio.h#include stdlib.h I*#include string.hI*#include ctype.h I*#in clude time.h I*I*IIO 函数 *I标准库函数*I字符串函数*I字符操作函数*I 时钟函数*I#i nclude cstdlib#i nclude coni o.h int x , k; I*定义全局变量用于保存当前商品种类*Istruct product I*定义商品数据结构*I
4、int num; I*商品编号*Ichar name20; I* 商品名称 *Ifloat price ; I* 商品售价 *Ichar place 10; I* 商品名称 *Iint storage ; I* 商品库存 *I_product 10, productl 10; /定义主结构体数组和备用结构体数组struct data /定义日期结构体 int year , mon th, day;;structsell/*定义销售数据结构*/intcus ;/*顾客代码*/intnum;/*商品编号*/float sells ; /* 销售数量 */char data1 12; /* 日期 *
5、/struct sell * next;* head_s,* pp,* tail_s ;/定义头指针操、作指针以及尾指针struct customer /*定义销售数据结构*/int cus ; /*顾客代码*/char name 10; /* 顾客姓名 */struct customer * next;* head_c,* qq,* tail_c ; /定义头指针操、作指针以及尾指针void load (); /读取文件函数void add (); /添加销售信息函数int search_num(); /根据商品编号查询商品的销售历史void cal (); /计算时间段内各个商品的销售总额
6、int search_name(); /根据顾客姓名,查询购买历史void list_name (); /显示所有顾客的姓名void main (); / 主函数int judge (); /主体判断函数int judge_data (char *data1); /细节判断函数,用于判断日期是否合法void download_s(); /写入销售信息(顾客代码,销售数量、销售日期)文件void download_c(); /导出顾客购买记录void display (); /显示现在的商品信息/主函数void main ()int choice ;struct customer * head;
7、 / 定义结构指针head=malloc (sizeof (struct customer ); / 申请动态存储空间head- n ext =NULLdo售管理系统欢迎使用商品销printf!*、nn(* );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
8、 (9.导出顾客信息文件n);printf(0.退出n);printf*n(*);printf输入其它值会提前退出n);(请选择不同功能 输入0-9的数字n若sea nf(%d,&choice );system (els);switch (choice )case 1:load ();system (cls);break;case 2:display ();break;case 3:case 4:case 5:case 6:add ();break;search _num(); break;cal ();break;search_ name();break;case 7:case 8:case
9、 9:case 0:Iist_name (head);break;download_s ();break;download_c ();break;printf (nnnn);printf(*谢谢使用*、nnnn);break; while (choice 0&choice next =NULLqq-next =NULLsystem(cls);/*清屏*/商品信息);printf ( *、nnnprintf ( 商品编号商品名称商品价格商品产地库存数量n);while (i 10)/输出商品记录printf (%8d%12s %12.2f%10s%14dn _product i . num _p
10、roduct i . name_product i . price ,_product i . place , _product i . sto rage);i +;printf (nn查询完毕,请按任意键继续 );getch ();system (cls); void load () /读取文件函数int i =0, n=0, a, b, j ;FILE *fp ; /指向文件的指针doprintf (请选择导入商品信息的方法n1:通过键盘输入n2:通 过文件导入n);sea nf (%d,&a);if (a=2)if (fp =fopen(商品信息.txt , rb )= NULL/ 打开
11、文件printf(不能打开文件,请检查文件路径n );/不能打开exit (0);/ 退出 */pri ntf*88商品信息88*n);printf (编号名称价格产库存数量n);while (! feof (fp)/读入文件fscanf (fp , %d%s%f%s%&_product i . num,_prod uct i . name&_product i . price , _product i . place,&_product i . storage ); 一 一printf (%-10d%-10s %-10.2f%-12s%-12dn , _prod uct i . num, _
12、product i . name_product i . price,product i . place , _prod uct i . storage );i +;for (i =0; i 10; i +) product1 i = _product i ;/ 对备用结构体数组赋值一fclose (fp); / 关闭文件printf (tt数据读入成功!按任意键继续n);if (a=1) if (fp =fopen(商品信息 1.txt , w)= NULL/ 打开文件printf(不能打开文件,请检查文件路径n );/不能打开exit (0);/ 退出 */printf (请输入商品种数)
13、;sea nf (%d, &b);printf (*商品信息 *n);printf (编号 名称 价格 产地 库存数量n);for (j =1; j 10000| year12| month31| day30) n =0;if (month=2&day=29) n =0;if (month=4| month=6| month=9| month=11)if (day30) n =0;return n;/判断函数int judge () /判断商品编号 数量 日期是否正确int i , j =0, k, temp;for (i =0; i num=_product i . nun)j +;x =k
14、=i ;temp =_product k. storage ;if ( _product k. storage -( int ) pp-sells )=0)_product k. storage -=(int ) pp-sells ;/判断计算剩余量break;if (j =0) return 3;/判断是否存在输入编号的商品else if (temp-( int ) pp-sells sells -( int ) pp- sells =1e-6) return 4; / 商品量elseif (judge_data (pp-data1 )=0) return 0;/ 判断日期else retu
15、rn 1;/完全正确/添加销售信息函数void add ()int code , i =0, n, mpp=(struct sell *) malloc (sizeof (struct sell ); / 申请动态存储空间并将指针转变为结构类型qq=( struct customer *) malloc (sizeof (struct customer); / 申请动态 存储空间并将指针转变为结构类型sran d(time(0);code=ra nd ();pnext =NULLqq-next =NULLsystem(cls );/* 清屏 */printf (请输入销售记录nnn ); /*
16、提示输入记录*/printf (顾客姓名商品编号销售数量销售日期n);printf (-n);scanf (%s%d%f%sqq- name&pp- num&pp-sells , pp-data1);/* 输入记录*/n=(int ) pp- sells ;if (nsells );while (1)m=judge(); /判断商品编号数量日期是否正确if (m=1)/ pp=(struct sell *)malloc(sizeof(structsell);/申请动态存储空间并将指针转变为结构类型/ qq=(struct customer *)malloc(sizeof(structcusto
17、mer);pp - cus=qq- cus=code; / 随机数if (head_s=NULLhead_s =pp;elsetail_s -n ext =pp;tail_s =pp;if (head_c=NULL head_c=qq;else tail_c -next =qq;tail_c =qq;printf (tt 销售信息 输入成功!按任意键继续.n);getch ();system (cls);break;else if (n=2)system (cls);于库存数量,请重新输入:nnn);printf (销售数量已大量nnn ); /*提示输入记录*/printf (请输入销售数p
18、rintf (销售数量 n););/*输入记录*/scanf (%f,&pp-sellscontinue ;else if (n=3)system (cls);新输入:nnn);printf (无此商品,请重录nnn ); /*提示输入记录*/printf (请输入销售记号 n);printf (商品编scanf (%d,&pp- nun);continue ;/*输入记录*/else if (m=4)错误,请重新输入商品数量:nnn);录nnn ); /*提示输入记录*/量:n););/*输入记录*/system (cis);printf (商品数量输入 printf (请输入销售记 pri
19、ntf (销售数 scanf (%f,&pp-sells continue ;else if (m=0)system (cis);printf (销售日期不合法,请重新输入销售日期:nnn); /*提示输入记录*/printf (销售日期 n);scanf (%s, pp- datal);/*输入记录*/continue ;k+;/根据商品编号查询商品的销售历史search_ num()int i , num k=0, flag =1, n=0;struct sell * ptr ;system(cls);printf (请输入商品编号:n);sca nf (%d,&n un);for (i
20、=0; i next)if (nun=ptr -nun)if (k=0)售数量销售总额printf (商品编号 销售日期n);nprintf);(k +;printf (%5d%20d%20.2f%15snptr-num)( int ) ptr -sells ,(int ) ptr - sells *_product i . price , ptr -data1);if (k=0)续);printf (该商品记录为空!按任意键继getch ();system (cls);return 0;键继续);elseprintf (nn查询完毕,请按任意getch ();system(cls);retu
21、rn 0;/计算时间段内各个商品的销售总额void cal ()int i , n=0;struct sell si , s2,* p=&s1 ,* q=&s2,* ptr ;system (cis);printf (请输入开始日期:);scanf (%s, p-data1);system (cls);doif (judge_data (pp-data1 )!= 1)printf (输入日期不合法,请重新输入:);scanf (%s, p-data1);system (cis);n =1;elsen =0; while (n=1);printf (请输入结束日期:);scanf (%s, q-
22、data1);system (cis);doif (judge_data (q-data1 )!= 1)printf (输入日期不合法,请重新输入:);scanf (%s, q-data1);system (cis);n =1;elsen =0; while (n=1);printf (销售记录如下:tt时间:%s至%sn, p- datal , q-data1);printf (nntt商品编号销售总额n);printf (ttnn);for (ptr =head_s; ptr ; ptr =ptr - next)for (i =0; i nun) break;productl i . st
23、orage -=( int ) ptr -se Ils ;for (i =0; i next) for (ptr2 =head_s; ptr2 ; ptr2 =ptr2 - next)if (ptr1 -cus=ptr2 -cus) break;for (i =0; i num=_product i . nun) break;if (strcmp (name ptrl - name= 0)/if(k=0|k%8=0)printf (顾客姓名顾客代码商品编号购买数量购买总额购买日期n);printf (-);nprintf (%2s%15d%15d%10d%15.2f 5sn , ptrl -n
24、ameptrl -cus, ptr2 -num( int ) ptr2 -sells ,( int ) ptr2 -sel Is )* productl i . price , ptr2 -data1);k+;k =0;if (k=0)printf (不存在此顾客!按任意键继 续);getch ();system (cIs);else printf (nn 查询完毕,键继续);getch ();system(cls);return 0;return 0;请按任意/显示所有顾客的姓名void list_name () int n=1;struct customer * ptr ;system (
25、cis);if (head_c!=NULL判断链表是否为空printf (顾客姓名如下:n ); /用来显示所有顾客 的姓名for (ptr =head_c; ptr ; ptr =ptr - next)printf (tt%sn, ptr - name;n +;printf (nn顾客姓名查询完毕,请按任意键继续);getch ();system (cis);elseprintf (顾客链表为空!请按任意键继续);getch ();system (cis);void download_s ()/写入销售信息(顾客代码,销售数量、销售日期)文件 int i =0;FILE *fp;struct customer *ptr1 ;struct sell *ptr2 ;system (cis);if (fp =fopen(销售信息文件.txt ,w)= NULLprintf (销售信息文件无法生成!n);exit (0);if (qq!=NULLfprintf (fp, 顾客代码销售数量购买日期n);for (ptr1 =head_c; ptr1 ; ptr1 =ptr1 - next)for (ptr2 =head_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学信息培训总
- 前端技术模拟面试题及答案
- 患者搬运约束技术培训试题及答案
- 辅警法律知识培训提纲课件
- 农业银行2025兴安盟秋招笔试性格测试题专练及答案
- 邮储银行2025鄂尔多斯市秋招笔试创新题型专练及答案
- 农业银行2025凉山彝族自治州秋招笔试创新题型专练及答案
- 农业银行2025鹰潭市小语种岗笔试题及答案
- 2025年3D打印的食品制造工艺
- 2025行业数字化转型成功案例分析
- 2025年湖南韶山红旅教育培训集团有限公司招聘笔试参考题库附带答案详解
- 大件运输安全生产管理制度文本
- 社区用房使用协议书
- 麻醉术前评估制度
- 2025-2030中国茶酒行业市场发展现状及发展趋势与投资研究报告
- 北美128个护理诊断
- 2025高考英语全国II卷试题分析及备考策略指导课件
- 博士组合物80问
- 调课申请书范文
- 伦理学课件-应用伦理学下
- 公路工程监理规划
评论
0/150
提交评论