商品销售管理系统设计
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");
if(((year%4==0&&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;
}_product[10],product1[10];//定义主结构体数组和备用结构体数组
structdata//定义日期结构体
{intyear,month,day;
};
structsell/*定义销售数据结构*/
{
intcus;/*顾客代码*/
intnum;/*商品编号*/
floatsells;/*销售数量*/
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*标准库函数*/
#include "string.h"/*字符串函数*/
#include "ctype.h" /*字符操作函数*/
#include "time.h" /*时钟函数*/
#include "cstdlib"
voidlist_name();//显示所有顾客的姓名
voidmain();//主函数
intjudge();//主体判断函数
intjudge_data(char*data1);//细节判断函数,用于判断日期是否合法
voiddownload_s();//写入销售信息(顾客代码,销售数量、销售日期)文件
#include "conio.h"
intx,k;/*定义全局变量用于保存当前商品种类*/
structproduct/*定义商品数据结构*/
{
intnum;/*商品编号*/
charname[20];/*商品名称*/
floatprice;/*商品售价*/
charplace[10];/*商品名称*/
intstorage;/*商品库存*/
printf(" 0. 退出\n");
printf("***********************************************************************\n");
printf("请选择不同功能 输入0----9的数字\n 若输入其它值会提前退出\n");
scanf("%d",&choice);
while(i<10)
{//输出商品记录
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查询完毕,请按任意键继续......");
}*head_c,*qq,*tail_c;//定义头指针操、作指针以及尾指针
voidload();//读取文件函数
voidadd();//添加销售信息函数
intsearch_num();//根据商品编号查询商品的销售历史
voidcal();//计算时间段内各个商品的销售总额
intsearch_name();//根据顾客姓名,查询购买历史
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)//打开文件
pp->next=NULL;
qq->next=NULL;
system("cls");/*清屏*/
printf("**************************商品信息**************************\n\n\n");
printf(" 商品编号 商品名称 商品价格 商品产地 库存数量\n");
定义一个结构体数组保存10种产品信息,具体信息为:产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)
定义一个链表,保存销售信息,具体为:顾客代码,销售数量、销售日期。
定义一个链表保存顾客信息,具体为:顾客代码,顾客姓名
当输入销售信息时查询顾客链表,如果在链表中存在该姓名的顾客记录,则将其代码在该销售链表中插入一条记录,如果不存在,则在顾客链表中插入一条记录,(顾客代码需要自动生成)。
printf(" 4. 按编号查寻商品销售历史\n");
printf(" 5. 计算时间段内各个销售总额\n");
printf(" 6. 按顾客姓名查找购买历史\n");
printf(" 7. 显示顾客姓名\n");
printf(" 8. 导出销售信息(顾客代码,销售数量、销售日期)文件\n");
printf(" 9. 导出顾客信息文件\n");
chardata1[12];/*日期*/
structsell*next;
}*head_s,*pp,*tail_s;//定义头指针操、作指针以及尾指针
structcustomer/*定义销售数据结构*/
{
intcus;/*顾客代码*/
charname[10];/*顾客姓名*/
structcustomer*next;
{
printf("不能打开文件,请检查文件路径\n");//不能打开
exit(0);//退出*/
}printf("*****************88商品信息88*******************\n");
printf("编号 名称 价格 产地 库存数量\n");
while(!feof(fp))
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(建议写成函数)。
head->next=NULL;
do
{
printf("***********************欢迎使用商品销售管理系统!!!*******************\n\n");
printf(" 1. 导入商品信息\n");
printf(" 2. 显示商品信息\n");
printf(" 3. 输入销售记录记录\n");
month=(data1[5]-48)*10+(data1[6]-48),day=(data1[8]-48)*10+(data1[9]-48);
m=strlen(d(data1[4]!='-'||data1[7]!='-')
n=0;
if(year>10000||year<1000||month>12||month<1||day>31||day<1)n=0;
i++;
}
for(i=0;i<10;i++)
product1[i]=_product[i];//对备用结构体数组赋值
fclose(fp);//关闭文件
printf("\t\t数据读入成功!按任意键继续......\n");
}
if(a==1)
{if((fp=fopen("商品信息1.txt","w"))==NULL)//打开文件
system("cls");
switch(choice)
{
case1:
load();
system("cls");
break;
case2:
display();