鱼C论坛

 找回密码
 立即注册
查看: 3369|回复: 9

做了个电话订餐管理系统,有点小BUG,c语言前辈帮帮忙

[复制链接]
发表于 2015-7-1 15:15:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;}
}       
}

运行时查询功能那里总是有那句:没有查询到编号。这句话。调试也调试不出来,大神帮忙看下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-7-1 15:18:28 | 显示全部楼层

这是运行错误的结果,

这是运行错误的结果,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-1 15:19:06 | 显示全部楼层

这是我运行错误的结果,总是找不出毛病
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-1 15:47:49 From FishC Mobile | 显示全部楼层
有人吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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[i].number==number)
                {
                        printf("姓名:%s",GuestList[i].name);
                        printf("人数:%d",GuestList[i].sum);        
                        printf("用餐时间:%s",GuestList[i].time);
                        return;
                }
        }
        printf("没有查找到该编号!!");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-1 17:55:17 From FishC Mobile | 显示全部楼层
估计这么长,也不会有人看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-1 20:24:24 | 显示全部楼层
Python只为乐趣 发表于 2015-7-1 17:55
估计这么长,也不会有人看

看上边
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-3 13:38:36 From FishC Mobile | 显示全部楼层
哥斯拉不说话 发表于 2015-7-1 20:24
看上边

谢谢咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-4 18:55:00 | 显示全部楼层

你所说的这个bug可以详细点吗,主要是哪一方面不符合你的要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-6 23:43:24 | 显示全部楼层
其实我看了!!只是看不懂……刚学:cry视频也只是刚看到函数而已……
顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 04:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表