|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include "stdio.h"
#include "string.h"
#define MAXSIZE 20 //定义符号常量(即该系统能录入最多客户数据的个数)
struct guest_info //定义结构体,用于存放客户各种不同类型的数据
{
char name[8];
int sum;
char time[10];
int number;
}GuestList[MAXSIZE]; //定义结构体数组,用于存放客户用餐数据
void Insert(int *count);
void Search(int count);
void Update(int count);
void Delete(int *count);
void Show(int count);
void Sorted(int count);
int main()
{
int i,count=0; //count是计数器,记录已经登记的客户个数
do //显示一个简易菜单
{
printf("\n");
printf("1---插入(Insert) ");
printf("2---查询(Search)\n");
printf("3---修改(Update) ");
printf("4---删除(Delete)\n");
printf("5---显示(Show) ");
printf("6---排序(sort)\n");
printf(" 7---退出(Exit)\n");
scanf("%d",&i); //菜单按钮
switch(i)
{
case 1:Insert(&count);break;
case 2:Search(count);break;
case 3:Update(count);break;
case 4:Delete(&count);break;
case 5:Show(count);break;
case 6:Sorted(count);break;
case 7:break;
default:printf("错误选择!请重选");break;
}
} while(i!=7);
return 0;
}
void Insert(int *count) //定义输入客户订餐数据的函数
{
int i,in_number;
if(*count==MAXSIZE)
{printf("空间已满!");return;} //满人就不能输入客户订餐数据,退出函数
printf("请输入编号:");
scanf("%d",&in_number);
for(i=0;i<*count;i++)
{
if(GuestList[i].number==in_number)
{printf("已有相同编号:");return;}} //有相同编号就退出函数
GuestList[i].number=in_number;
printf("请输入姓名:");
scanf("%s",GuestList[i].name);
printf("请输入人数:");
scanf("%d",&GuestList[i].sum);
printf("请输入用餐时间:");
scanf("%s",GuestList[i].time);
(*count)++;
}
void Search(int count) //定义数据查询函数
{
int i,number;
printf("请输入要查询的编号:");
scanf("%d",&number);
for(i=0;i<count;i++)
if(GuestList[i].number==number)
{printf("姓名:%s",GuestList[i].name);
printf("人数:%d",GuestList[i].sum);
printf("用餐时间:%s",GuestList[i].time);}
else
printf("没有查找到该编号!!");
}
void Update(int count) //定义修改数据的函数
{
int i,number;
printf("请输入要修改数据编号:");
scanf("%d",&number);
for(i=0;i<count;i++)
if(GuestList[i].number==number){
printf("请输入人数:");
scanf("%d",&GuestList[i].sum);
printf("请输入用餐时间:");
scanf("%s",&GuestList[i].time);}
else
printf("没有查到可以修改的数据!!");
}
void Delete(int *count) //定义删除数据的函数
{int i,j,number;
printf("请输入要删除数据的编号:");
scanf("%d",&number);
for(i=0;i<*count;i++)
{
if(GuestList[i].number==number)
{
for(j=i;i<*count-1;j++)
GuestList[j]=GuestList[j+1];
(*count)--;
}
else printf("没有查询到可以删除的数据!!");
}
}
void Show(int count) //打印出所以订餐客户的数据
{
int i;
printf("\n");
printf("编号 姓名 人数 用餐时间\n");
for(i=0;i<count;i++)
{
printf("%10d",GuestList[i].number);
printf("%12s",GuestList[i].name);
printf("%10d",GuestList[i].sum);
printf("%12s\n",GuestList[i].time);
}
}
void Sorted(int count)
{
struct guest_info temp;
int i,j,k;
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1;j<count;j++)
{if(GuestList[j].number<GuestList[k].number) //用选择法按编号大小,从小到大排列客户订餐数据
k=j;
temp=GuestList[i];GuestList[i]=GuestList[k];GuestList[k]=temp;}
}
}
运行时查询功能那里总是有那句:没有查询到编号。这句话。调试也调试不出来,大神帮忙看下,谢谢 |
|