!!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct takeout
{
int num;
char name[20];
char type;
int amount;
char time[10];
char addr[8];
}TAK;
TAK cus[20];
int i = 0, n = 0, d = 0, e = 0, f = 0;
int main()
{
void count();
void information();
void scan();
void revise();
void lookup();
int l;
do
{
printf("****** 欢迎使用本系统 ******\n");
printf("1--录入信息\n");
printf("2--信息显示\n");
printf("3--信息修改\n");
printf("4--信息查询\n");
printf("5--信息统计\n");
printf("6--退出系统\n");
printf("请根据你所选的内容输入对应的编号:");
scanf("%d", &l);
switch (l)
{
case 1:information(); ; break;
case 2:scan(); break;
case 3:revise(); break;
case 4:lookup(); break;
case 5:count(); break;
case 6:printf("****** 谢谢使用本系统 ******\n"); break;
default:printf("请输入合理的序号!\n");
}
} while (l != 6);
system("pause");
return 0;
}
void information()
{
printf("请输入下单的顾客人数:");
scanf("%d", &n);
do
{
printf("*****顾客信息的添加*****\n");
printf("订单编号:");
scanf("\t%d", &cus[i].num);
printf("顾客姓名:");
scanf("\t%s", cus[i].name);
printf("订餐种类(a,b,c):");
scanf("\t%c", &cus[i].type);
if (cus[i].type == 'a')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
d+=cus[i].amount;
}
if (cus[i].type == 'b')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
e+=cus[i].amount;
}
if (cus[i].type == 'c')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
f+=cus[i].amount;
}
printf("送餐时间:");
scanf("\t%s", cus[i].time);
printf("送餐地址:");
scanf("\t%s", cus[i].addr);
i++;
} while (i < n);
}
void scan()
{
if (n == 0)
printf("没有数据,请输入后在查看\n");
for (i = 0; i < n; i++)
{
printf("\n订单编号\t顾客姓名\t订单种类\t订单数量\t送餐时间\t送餐地址\n");
printf("\n%d\t\t%s\t\t%c\t\t%d\t\t%s\t\t%s\n", cus[i].num, cus[i].name, cus[i].type, cus[i].amount, cus[i].time, cus[i].addr);
}
}
void revise()
{
void alter();
void del();
void add();
int k;
do
{
printf("---请根据序号选择所需要的步骤---\n");
printf("1---删除订单\n");
printf("2---修改订单\n");
printf("3---添加订单\n");
printf("4---返回上一级\n");
scanf("%d", &k);
switch (k)
{
case 1:del(); break;
case 2:alter(); break;
case 3:add(); break;
case 4:break;
}
} while (k != 4);
}
void del()
{
int j;
int nums;
printf("请输入要删除的订单编号:");
scanf("%d", &nums);
for (i = 0; i < n; i++)
{
if (cus[i].num == nums)
{
for (j = i; j < n; j++)
cus[j] = cus[j + 1];
n--;
}
break;
}
printf("\n订单%d已成功删除\n", nums);
}
void lookup()
{
int nums;
printf("请选择想要查找的订单编号:");
scanf("%d", &nums);
if (nums = cus[i].num)
{
printf("\n订单编号\t顾客姓名\t订单种类\t订单数量\t送餐时间\t送餐地址\n");
printf("\n%d\t\t%s\t\t%c\t\t%d\t\t%s\t\t%s\n", cus[i].num, cus[i].name, cus[i].type, cus[i].amount, cus[i].time, cus[i].addr);
}
else
{
printf("没有此订单编号,请输入其他编号\n");
}
}
void add()
{
printf("*** 请输入所需要添加的订单 ***\n");
printf("订单编号:");
scanf("\t%d", &cus[i].num);
printf("顾客姓名:");
scanf("\t%s", cus[i].name);
printf("订单种类(a,b,c):");
scanf("\t%c", &cus[i].type);
if (cus[i].type == 'a')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
d += cus[i].amount;
}
if (cus[i].type == 'b')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
e += cus[i].amount;
}
if (cus[i].type == 'c')
{
printf("订餐数量:");
scanf("\t%d", &cus[i].amount);
f += cus[i].amount;
}
printf("送餐时间:");
scanf("\t%s", cus[i].time);
printf("送餐地址:");
scanf("\t%s", cus[i].addr);
cus[i] = cus[n+1];
}
void alter()
{
int s, j = 0;
int nums;
printf("选择所需要修改的订单编号:");
scanf("%d", &nums);
if (cus[i].num == nums)
{
printf("****** 这个编号信息如下 ******\n");
printf("\n订单编号\t顾客姓名\t订单种类\t订单数量\t送餐时间\t送餐地址\n");
printf("\n%d\t\t%s\t\t%c\t\t%d\t\t%s\t\t%s\n", cus[i].num, cus[i].name, cus[i].type, cus[i].amount, cus[i].time, cus[i].addr);
printf("*** 是否继续修改 ***\n");
printf("1---继续修改\n");
printf("2---退出修改\n");
scanf("%d", &s);
if (s == 1)
{
for (i = j; j< n; j++)
{
printf("订单编号:");
scanf("\t%d", &cus[j].num);
printf("顾客姓名:");
scanf("\t%s", cus[j].name);
printf("订单种类(a,b,c):");
scanf("\t%c", &cus[j].type);
if (cus[j].type == 'a')
{
printf("订餐数量:");
scanf("\t%d", &cus[j].amount);
d += cus[j].amount;
}
if (cus[j].type == 'b')
{
printf("订餐数量:");
scanf("\t%d", &cus[j].amount);
e += cus[j].amount;
}
if (cus[j].type == 'c')
{
printf("订餐数量:");
scanf("\t%d", &cus[j].amount);
f += cus[j].amount;
}
printf("送餐时间:");
scanf("\t%s", cus[j].time);
printf("送餐地址:");
scanf("\t%s", cus[j].addr);
printf("*** 修改信息成功 ***\n");
cus[j] = cus[i + 1];
break;
}
}
}
}
void count()
{
int s;
do
{
printf("****** 请选择所需要统计的数据 ******\n");
printf("1---a餐的订单数量\n");
printf("2---b餐的订单数量\n");
printf("3---c餐的订单数量\n");
printf("4---返回上一级\n");
scanf("%d", &s);
switch (s)
{
case 1:printf("a餐的订单数量为:%d\n", d); break;
case 2:printf("b餐的订单数量为:%d\n", e); break;
case 3:printf("c餐的订单数量为:%d\n", f); break;
case 4:break;
}
} while (s != 4);
}
就是我修改信息后前面所输入的信息就不见了,只显示修改后一个信息。求大佬相助!