#include
#include
int inumber = 0; //商品量的统计
int ibuy = 0; //订单的统计
void secondmain(); //管理维护子菜单
void jianpanload(); //输入商品
void scanproduct(); //浏览商品
void searchproduct(); //搜索商品
void dinggou(); //订购商品
void lookdinggou(); //查询订单
void addproduct(); //增加商品
void deleteproduct(); //删除商品
void saveproduct(); //保存商品
void savedinggou(); //保存订单
void wenbenload(); //从文本导入商品
struct product
{
char name[30]; //商品名
int number; //货号
char vender[30]; //厂家
char filed[100]; //产地
int stock; //存量
double price; //单价
};
struct product a[100];
struct dinggou
{
int bgname; //货号
int bmany; //订购量
int btime; //日期时间
char bname[100]; //客户名
char baddress[100]; //客户地址
int bnumber; //客户号
};
struct dinggou b[100];
int main(void)
{
int i;
wenbenload();
do
{
printf("\n\n\n\n\n\n");
printf("**************************欢迎使用商品订购系统v1.0******************************\n");
printf(" ┏━━━━━━━━━━━━━━━━━━━┓\n");
printf(" ┃ 1.浏览商品信息 ┃\n");
printf(" ┃ 2.订购商品 ┃\n");
printf(" ┃ 3.订单查询 ┃\n");
printf(" ┃ 4.搜索商品 ┃\n");
printf(" ┃ 5.管理菜单 ┃\n");
printf(" ┃ 0.退出系统 ┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━┛\n");
printf("********************************************************************************\n");
printf("\n\n\t\t请输入你的操作(0~5): ");
scanf("%d",&i);
switch(i)
{
case 1:
scanproduct();
break;
case 2:
dinggou();
break;
case 3:
lookdinggou();
break;
case 4:
searchproduct();
break;
case 5:
secondmain();
break;
case 0: //退出系统的界面
printf("\n\n\n\n\n\n\n\n");
printf("\n\n\t\t\t欢迎使用本系统\n\n\n\n\n\t\t\t欢迎再次使用\n");
}
}while(1);
return 0;
}
//浏览商品
void scanproduct()
{
int i;
printf("\t\t\t\t\t商品信息列表\n");
for (i = 0; i < inumber; i++)
{
printf("名称 : %s\n",a[i].name);
printf("货号 : %d\n",a[i].number);
printf("厂家 : %s\n",a[i].vender);
printf("产地 : %s\n",a[i].filed);
printf("存量 : %d\n",a[i].stock);
printf("单价 : %.2lf\n\n\n",a[i].price);
}
printf("\n\n\n\n\n\n\t\t\t");
printf("返回主菜单\n");
printf("\t\t\t"); //每个/t占8个字节,可理解为空格键
return;
}
//商品的订购
void dinggou()
{
char ch;
int i, j, t, c = 1;
int n = 1;
int m = 0;
do
{
switch(n)
{
case 1:
printf("\t\t\t\t商品信息列表\n");
//显示商品的名称、货号信息,以便于订购
printf("名称\t 货号\t 库存\n");
for (i = 0; i < inumber; i++)
{
printf("%s\t %d\t %d\n\n\n",a[i].name,a[i].number,a[i].stock);
}
printf("\n\n\n");
printf("\t\t\t\t商品订单\n");
printf("\n\t\t\t请输入你的第%d个订单信息:\n",m + 1);
printf("\n\t\t\t货号:");
fflush(stdin);
scanf("%d",&b[ibuy].bgname);
//检测是否含有此商品
j = 1;
for (i = 0; i < inumber; i++)
{
if(a[i].number == b[ibuy].bgname)
{
j = 0;
t = i;
}
}
//若有商品继续购买项目
if(j == 0)
{
printf("\n\t\t\t订购量:");
fflush(stdin);
scanf("%d",&b[ibuy].bmany);
if (a[t].stock >= b[ibuy].bmany)
{
a[t].stock = a[t].stock - b[ibuy].bmany; //顾客购买后商品的库存计算
printf("\n\t\t\t日期时间:");
fflush(stdin);
scanf("%d",&b[ibuy].btime);
printf("\n\t\t\t客户名:");
fflush(stdin);
gets(b[ibuy].bname);
printf("\n\t\t\t客户地址:");
fflush(stdin);
gets(b[ibuy].baddress);
printf("\n\t\t\t客户号:");
printf("%d\n",b[ibuy].bnumber);
ibuy++;
m++;
printf("\n\n\n\t\t\t\t");
}
else
{
printf("\n\n\t\t\t订购数目超出库存\n");
printf("\t\t\t");
}
}
//若没有商品的提示及操作
else
{
printf("\n\n\t\t\t查无此货\n");
printf("\t\t\t");
}
case 2:
printf("是否继续输入订购?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch == 'N' || ch == 'n')
{
c = 0;
break;
}
else if(ch == 'Y' || ch == 'y')
{
c = 0;
n = 1;
break;
}
else if(ch != 'n' || ch != 'N' || ch != 'Y' || ch != 'y')
{
n = 0;
c = 1;
break;
}
case 0:
if(c == 1)
{
n = 2;
}
}
}while(ch != 'n' && ch != 'N');
return ;
}
//订单的查询
void lookdinggou()
{
int i;
printf("\t\t\t\t\t订单列表\n");
for (i = 0; i < ibuy; i++)
{
printf("货号 : %d\n",b[i].bgname);
printf("订购量 : %d\n",b[i].bmany);
printf("日期时间 : %d\n",b[i].btime);
printf("客户名 : %s\n",b[i].bname);
printf("客户地址 : %s\n",b[i].baddress);
printf("客户号 : %d\n\n\n",b[i].bnumber);
}
printf("\n\n\n\n\n\n\t\t\t");
printf("返回主菜单\n");
printf("\t\t\t");
return;
}
//增加商品
void addproduct()
{
char ch;
int i=1;
int n = 1;
do
{
switch(n)
{
case 1:
printf("\t\t\t\t商品信息的增加\n");
printf("\t\t\t\t\t注:要重新输入已有及增加的商品\n");
printf("\n\t\t\t请输入你的第%d件商品的信息:\n",i);
printf("\n\t\t\t名称:");
fflush(stdin);
scanf("%s",a[inumber].name);
printf("\n\t\t\t货号:");
fflush(stdin);
scanf("%d",&a[inumber].number);
printf("\n\t\t\t厂家:");
fflush(stdin);
scanf("%s",a[inumber].vender);
printf("\n\t\t\t产地:");
fflush(stdin);
scanf("%s",a[inumber].filed);
printf("\n\t\t\t存量:");
fflush(stdin);
scanf("%d",&a[inumber].stock);
printf("\n\t\t\t单价:");
fflush(stdin);
scanf("%lf",&a[inumber].price);
i++;
inumber++;
case 2:
printf("是否继续输入记录?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch == 'N' || ch ==' Y'|| ch == 'n'|| ch == 'y')
{
break;
}
if(ch ==' Y'|| ch == 'y')
{
n = 1;
break;
}
case 0:
printf("是否继续输入记录?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
n = 2;
}
}while(ch != 'n' && ch != 'N');
return;
}
//删除商品
void deleteproduct()
{
int i;
int j;
char ch;
int n = 1;
do
{
switch(n)
{
case 1:
printf("\t\t\t\t商品列表\n");
//显示商品的名称、货号信息,以便于下部的删除
for (i = 0; i < inumber; i++)
{
printf("名称 : %s\n",a[i].name);
printf("ID : %d\n",i);
printf("库存 : %d\n\n\n",a[i].stock);
}
//商品的搜索
printf("\n\n\n\t\t\t\t请输入你要删除商品的ID:");
scanf("%d",&j);
i = j;
while(i < inumber - 1)
{
strcpy(a[i].name, a[i + 1].name);
a[i].number = a[i + 1].number;
strcpy(a[i].filed, a[i + 1].filed);
a[i].stock = a[i + 1].stock;
a[i].price = a[i + 1].price;
strcpy(a[i].vender, a[i + 1].vender);
i++;
}
inumber--;
case 2:
printf("是否继续删除商品?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch == 'N' || ch ==' Y'|| ch == 'n'|| ch == 'y')
{
break;
}
if(ch ==' Y'|| ch == 'y')
{
n = 1;
break;
}
case 0:
printf("是否继续输入记录?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
n = 2;
}
}while(ch != 'n' && ch != 'N');
printf("\n\n\n\n\n\n\t\t\t");
printf("返回附加功能菜单\n");
printf("\t\t\t");
return;
}
//商品信息的保存
void saveproduct()
{
FILE *fpgoods;
int i;
fpgoods = fopen("goodsinfo.out","w");
fprintf(fpgoods,"\t\t\t\t\t\t商品信息列表\n");
//商品信息的录入
for (i = 0; i < inumber; i++)
{
fprintf(fpgoods,"名称: %s\n",a[i].name);
fprintf(fpgoods,"货号: %d\n",a[i].number);
fprintf(fpgoods,"厂家: %s\n",a[i].vender);
fprintf(fpgoods,"产地: %s\n",a[i].filed);
fprintf(fpgoods,"存量: %d\n",a[i].stock);
fprintf(fpgoods,"单价: %.2lf\n\n\n",a[i].price);
}
fclose(fpgoods);
printf("\n\n\n\n\n\n\t\t\t\t商品信息保存成功!!!\n");
printf("\t\t\t\t");
return;
}
//订单的保存信息
void savedinggou()
{
FILE *fpgoods;
int i;
fpgoods = fopen("bookrecordinfo.out","w");
fprintf(fpgoods,"\t\t\t\t\t\t订单列表\n");
//商品信息的录入
for (i = 0; i < ibuy; i++)
{
fprintf(fpgoods,"货号 :%d\n",b[i].bgname);
fprintf(fpgoods,"订购量 :%d\n",b[i].bmany);
fprintf(fpgoods,"日期时间 :%d\n",b[i].btime);
fprintf(fpgoods,"客户名 :%s\n",b[i].bname);
fprintf(fpgoods,"客户地址 :%s\n",b[i].baddress);
fprintf(fpgoods,"客户号 :%d\n\n\n",b[i].bnumber);
}
fclose(fpgoods);
//保存后信息的反馈
printf("\n\n\n\n\n\n\t\t\t\t信息保存成功!!!\n");
printf("\t\t\t\t");
return;
}