做了个电话订餐管理系统,有点小BUG,c语言前辈帮帮忙
#include "stdio.h"#include "string.h"
#define MAXSIZE 20 //定义符号常量(即该系统能录入最多客户数据的个数)
struct guest_info //定义结构体,用于存放客户各种不同类型的数据
{
char name;
int sum;
char time;
int number;
}GuestList; //定义结构体数组,用于存放客户用餐数据
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.number==in_number)
{printf("已有相同编号:");return;}}//有相同编号就退出函数
GuestList.number=in_number;
printf("请输入姓名:");
scanf("%s",GuestList.name);
printf("请输入人数:");
scanf("%d",&GuestList.sum);
printf("请输入用餐时间:");
scanf("%s",GuestList.time);
(*count)++;
}
void Search(int count)//定义数据查询函数
{
int i,number;
printf("请输入要查询的编号:");
scanf("%d",&number);
for(i=0;i<count;i++)
if(GuestList.number==number)
{printf("姓名:%s",GuestList.name);
printf("人数:%d",GuestList.sum);
printf("用餐时间:%s",GuestList.time);}
else
printf("没有查找到该编号!!");
}
void Update(int count) //定义修改数据的函数
{
int i,number;
printf("请输入要修改数据编号:");
scanf("%d",&number);
for(i=0;i<count;i++)
if(GuestList.number==number){
printf("请输入人数:");
scanf("%d",&GuestList.sum);
printf("请输入用餐时间:");
scanf("%s",&GuestList.time);}
else
printf("没有查到可以修改的数据!!");
}
void Delete(int *count) //定义删除数据的函数
{int i,j,number;
printf("请输入要删除数据的编号:");
scanf("%d",&number);
for(i=0;i<*count;i++)
{
if(GuestList.number==number)
{
for(j=i;i<*count-1;j++)
GuestList=GuestList;
(*count)--;
}
else printf("没有查询到可以删除的数据!!");
}
}
void Show(int count)//打印出所以订餐客户的数据
{
int i;
printf("\n");
printf("编号 姓名 人数 用餐时间\n");
for(i=0;i<count;i++)
{
printf("%10d",GuestList.number);
printf("%12s",GuestList.name);
printf("%10d",GuestList.sum);
printf("%12s\n",GuestList.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.number<GuestList.number) //用选择法按编号大小,从小到大排列客户订餐数据
k=j;
temp=GuestList;GuestList=GuestList;GuestList=temp;}
}
}
运行时查询功能那里总是有那句:没有查询到编号。这句话。调试也调试不出来,大神帮忙看下,谢谢 Python只为乐趣 发表于 2015-7-1 15:18
这是我运行错误的结果,总是找不出毛病 有人吗 void Search(int count)//定义数据查询函数
{
int i,number;
printf("请输入要查询的编号:");
scanf("%d",&number);
for(i=0;i<count;i++)
{
if(GuestList.number==number)
{
printf("姓名:%s",GuestList.name);
printf("人数:%d",GuestList.sum);
printf("用餐时间:%s",GuestList.time);
return;
}
}
printf("没有查找到该编号!!");
} 估计这么长,也不会有人看 Python只为乐趣 发表于 2015-7-1 17:55
估计这么长,也不会有人看
看上边 哥斯拉不说话 发表于 2015-7-1 20:24
看上边
谢谢咯 Python只为乐趣 发表于 2015-7-1 15:47
有人吗
你所说的这个bug可以详细点吗,主要是哪一方面不符合你的要求
其实我看了!!只是看不懂……刚学:cry视频也只是刚看到函数而已……
顶一下
页:
[1]