Python只为乐趣 发表于 2015-7-1 15:15:29

做了个电话订餐管理系统,有点小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:28

Python只为乐趣 发表于 2015-7-1 15:19:06

Python只为乐趣 发表于 2015-7-1 15:18


这是我运行错误的结果,总是找不出毛病

Python只为乐趣 发表于 2015-7-1 15:47:49

有人吗

哥斯拉不说话 发表于 2015-7-1 17:44: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:17

估计这么长,也不会有人看

哥斯拉不说话 发表于 2015-7-1 20:24:24

Python只为乐趣 发表于 2015-7-1 17:55
估计这么长,也不会有人看

看上边

Python只为乐趣 发表于 2015-7-3 13:38:36

哥斯拉不说话 发表于 2015-7-1 20:24
看上边

谢谢咯

mm_morning 发表于 2015-7-4 18:55:00

Python只为乐趣 发表于 2015-7-1 15:47
有人吗

你所说的这个bug可以详细点吗,主要是哪一方面不符合你的要求

mse9591 发表于 2015-7-6 23:43:24

其实我看了!!只是看不懂……刚学:cry视频也只是刚看到函数而已……
顶一下
页: [1]
查看完整版本: 做了个电话订餐管理系统,有点小BUG,c语言前辈帮帮忙