#include
#include
#include
typedef struct store//定义商品
{
int number; //商品序号
char name[10]; //商品名称及型号
int shuliang; //商品数量
int jiage; //商品价格
int kucun; //商品库存
int zonge; //销售总额
char riqi; //销售日期
}store;
typedef struct unit
{
store date;
struct unit*next;
}unit;
unit* build()
{
unit p;
if((p=(unit)malloc(sizeof(unit)))==NULL)
{
printf("=>初始化失败!");
return 0;
}
else
{
p->next=NULL;
p->date.number=0;//头结点存放商品数量
printf("初始化成功!\n");
return p;
}
}
void sole(unit head)//卖出商品
{
unit *p,*q;
int m,n=0;
q=head->next;
p=(unit)malloc(sizeof(unit));
printf("=>商品编号:\n");
scanf("%d",&m);
fflush(stdin);
p->date.number;
printf("=>卖出商品及型号:\n");
scanf("%s",&m);
fflush(stdin);
p->date.number=m;
printf("=>请输入数量!\n");
scanf("%d",&m);
fflush(stdin);
p->date.shuliang=m;
printf("=>请输入价格!\n");
scanf("%d",&m);
fflush(stdin);
p->date.jiage=m;
printf("=>请输入库存!\n");
scanf("%d",&m);
fflush(stdin);
p->date.kucun=m;
printf("=>请输入日期!\n");
scanf("%s",&m);
fflush(stdin);
p->date.riqi=m;
p->date.zonge=((p->date.shuliang)*(p->date.jiage));
q=head->next;
head->next=p;
p->next=q;
head->date.number++;
}
void deletion(unit *head)//删除订单
{
unit *p=head->next,*q=head;
char N[10];
printf("=>请输入你想删除订单!\n");
gets(N);
fflush(stdin);
if(p==NULL)
printf("=>系统无订单可删除!\n");
while(p)
{
if(strcmp(p->date.name,N)==0)
{
q->next=p->next;
head->date.number--;
printf("=>删除%s成功!\n",p->date.name);
free(p);
break;
}
else
{
p=p->next;
q=q->next;
if(p==NULL)
printf("=>你要删除的订单不存在,删除失败!\n");
}
}
}
int display(unit *head)//显示商品订单信息
{
unit *p=head->next;
int m,n=0;
if(p==NULL)
{
printf("=>系统无订单!\n");
return 0;
}
while(n==0)
{
printf("=>请选择你的操作!\n");
printf("=>\t\t\t1.显示所有\t2.按编号查找\t3.返回主菜单\n");
scanf("%d",&m);
fflush(stdin);
switch(m)
{
case 1:printf("\n=>该系统拥有%d份订单!\n\n",head->date.number);
p=head->next;
printf("\t商品名称及型号\t数量\t价格\t总额\t日期\n\n");
while(p)
{
printf("\t%s\t%d\t%d\t%d\t%s\n",p->date.name,p->date.shuliang,p->date.jiage,p->date.zonge,p->date.riqi);
p=p->next;
}
break;
case 2:printf("=>请输入查找编号!\n");
scanf("%d",&m);
fflush(stdin);
p=head->next;
while(p)
{
if(p->date.number==m)
{
printf("\t商品名称及型号\t数量\t价格\t总额\t日期\n\n");
printf("\t%s\t%d\t%d\t%d\t%s\n",p->date.name,p->date.shuliang,p->date.jiage,p->date.zonge,p->date.riqi);
break;
}
else
{
p=p->next;
if(p==NULL)
printf("=>你要查的订单不存在!\n");
}
}
break;
case 3:n=1;break;
}
}
return 1;
}
void menu()
{
printf("\t\t\t1.新建系统\t2.添加订单\n\t\t\t3.删除订单\t4.查看信息\n\t\t\t5.退出系统\n");
printf("=>请选择你的操作!\n");
}
void main()
{
int m=0,n, i;
unit head;
printf("\t\t\t 欢迎使用商品订单管理系统 * \n");
//if((head=read())==0)
//{
printf("=>是否新建?\n");
printf("\t\t\t是(1)\t\t否(2)\n");
scanf("%d",&i);
fflush(stdin);
if(i==1)
head=build();
else if(i==2)
exit(1);
//}
else
printf("=>信息导入成功!");
while(m==0)
{
menu();
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:head=build();
break;
case 2:sole(head);
break;
case 3:deletion(head);
break;
case 4:display(head);
break;
case 5:m=1;
break;
}
}
}