| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:新手求解,如何改,还有那有错误
只看楼主 加入收藏
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:3 
新手求解,如何改,还有那有错误
#include<stdio.h>
#include<string.h>
#define SIZE 10
    struct hotel
    {
        int jiage;/*价格*/
        int id;/*房间号码*/
        int kk;/*用来检测是否有人居住*/
    }room[]={{100,101,0},{100,102,0},{100,103,0},{100,104,0},{100,105,0},{100,201,0},{100,202,0},{100,203,0},{100,204,0},{100,205,0}};
    struct people
    {
        char name[10];
        char ID[20];
        char sex[2];
        int time;/*入住的时间*/
    }ke[SIZE];
    void main()
    {
        void Insert();
        void Search();
        void Show();
        int i;
        printf("***********************************\n");
        printf("*******欢迎登入酒店管理系统********\n");
        printf("***********************************\n");
        printf("        0.登记入住(Insert)                 \n");
        printf("        1.查询房间的入住境况(Search)      \n");
        printf("        2.查询费用(Show)             \n");
        printf("        3.退出程序                 \n");
        scanf("%d",&i);
        switch(i)
        {
           case 0:Insert();
                break;
           case 1:Search();
                    break;
           case 2:Show();
               break;
           case 3:
               break;
           default:printf("错误选择:请重新选");break;
        }
    }

void Insert()
{
    int a,b;
    for(a=0;a<SIZE;a++)
    {
        if(room[a].kk==0)
          printf("可选房间:%d\n",room[a].id);
        else
            printf("房间已住满:\n");
    }
    printf("请选择你的房间\n");
    scanf("%d",room[b].kk);
    printf("请输入你的名字:\n");
        scanf("%s\n",ke[b].name);
    printf("请输入你的身份证号码\n");
    scanf("%s",ke[b].ID);
    if((strlen ke[b].ID==18)||(strlen ke[b].ID)==15)
    {
        printf("请输入你的性别:\n");
        scanf("%s",ke[b].sex);
        printf("请输入入住天数:\n");
        scanf("%d",ke[b].time);
        room[b].kk=1;
    }
    else
        printf("输入错误:请重新输入");
}
void Search()
{
    int l;
    void look2;/*按名字查询*/
    void look1;/*按房间号码查询*/
    printf("请输入你要查询的方式:0按房间号码查询,1按名字查询\n");
    csanf("%d",l);
    switch(l)
    case 0:look1;break;
    case 1;look2;break;
    default:printf("输入错误:\n");break;
}
void look1()
{
    int z;
    printf("请输入你的房间号码\n");
    scanf("%d",room[z].id);
    printf("名字:%s\n",ke[z].name);
    printf("身份证号码:%s\n",ke[z]. ID);
    printf("性别:%s\n",ke[z].sex);
}
void look2()
{
    int w,n,y;
    char name[10];
    printf("请输入你的名字:\n");
    scanf("%s\n",name);
    for(n=0;n<SIZE;n++)
    {
        if(strcmp(name,ke[n].name)==0);
        printf("你的身份证号码是:%s\n",ke[n].ID);
        printf("你的房间号码是:%d\n",room[n].id);
        printf("性别:%s",ke[n].sex);
    }
}
void Show()
{
    int i;
    printf("请选择要查询人的房间号码:\n");
    scanf("%d",room[i].kk);
    printf("入住的天数:%d\n",ke[i].time);
    printf("所用费用:%d\n",ke[i].time*room[i].jiage);
}


C:\Program Files\Microsoft Visual Studio\MyProjects\1233\123.c(61) : error C2146: syntax error : missing ')' before identifier 'ke'
C:\Program Files\Microsoft Visual Studio\MyProjects\1233\123.c(69) : error C2059: syntax error : 'else'
C:\Program Files\Microsoft Visual Studio\MyProjects\1233\123.c(71) : error C2059: syntax error : '}'
执行 cl.exe 时出错.
搜索更多相关主题的帖子: void hotel include people 如何 
2013-04-15 10:32
Han_FlyB
Rank: 6Rank: 6
等 级:侠之大者
帖 子:143
专家分:424
注 册:2013-3-25
收藏
得分:10 
if((strlen ke[b].ID==18)||(strlen ke[b].ID)==15)
这个strlen后应该要括号括起来的吧,像 strlen(s)
2013-04-15 14:01
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
主要问题出在void Insert()
{
    int a,b;
    for(a=0;a<SIZE;a++)
    {
        if(room[a].kk==0)
          printf("可选房间:%d\n",room[a].id);
        else
            printf("房间已住满:\n");
    }
    printf("请选择你的房间\n");
    scanf("%d",room[b].kk);
    printf("请输入你的名字:\n");
        scanf("%s\n",ke[b].name);
    printf("请输入你的身份证号码\n");
    scanf("%s",ke[b].ID);
    if((strlen ke[b].ID==18)||(strlen ke[b].ID)==15)
    {
        printf("请输入你的性别:\n");
        scanf("%s",ke[b].sex);
        printf("请输入入住天数:\n");
        scanf("%d",ke[b].time);
        room[b].kk=1;
    }
    else
        printf("输入错误:请重新输入");
}
1、对于for循环,如果房间满了就应该退出,而不能继续输入房间号等相关信息,可以在加入头文件"stdlib.h"的情况下作如下修改:
if(room[a].kk==0)
          printf("可选房间:%d\n",room[a].id);
        else
        {printf("房间已住满:\n");
        exit(0);}
2、你的b没有值,int a,b;你定义个int型变量b但是没有值,所以你后面的输入怎么进行呢?你的结构体数组都没有形成,怎么能有如下的代码
 printf("请选择你的房间\n");
    scanf("%d",room[b].kk);
    printf("请输入你的名字:\n");
        scanf("%s\n",ke[b].name);
    printf("请输入你的身份证号码\n");
    scanf("%s",ke[b].ID);
    if((strlen ke[b].ID==18)||(strlen ke[b].ID)==15)
    {
        printf("请输入你的性别:\n");
        scanf("%s",ke[b].sex);
        printf("请输入入住天数:\n");
        scanf("%d",ke[b].time);
        room[b].kk=1;
    }
3、你的strlen函数的括号是不能省略的,strlen ke[b].ID==18)||(strlen ke[b].ID)==15这样写是不对的,你改为:strlen(ke[0].ID==18)||(strlen(ke[0].ID)==15
4、void look2;/*按名字查询*/
    void look1;/*按房间号码查询*/
这样写是不对的,变量不能这样定义,我知道你定义的是函数,但是函数要有标记,改正如下:
void look2();/*按名字查询*/
    void look1();/*按房间号码查询*/
5、scanf("%s\n",name);单词拼写错误,正确:  scanf("%d",&l);
6、 case 1;look2;break;这样是不对的,中间不是分号,而是冒号,改正: case 1:look2();break;
7、你的switch函数的结构也不对,正确的如下:switch(l)
    {
    case 0: look1();break;
    case 1: look2();break;
    default:printf("输入错误:\n");break;
    }
整体代码修改后如下:因为你的b没改,所以我就给他们赋值为0;如果需要,你可以自己改,你参考下:
#include<stdio.h>
#include<string.h>
#include "stdlib.h"
#define SIZE 10
    struct hotel
    {
        int jiage;/*价格*/
        int id;/*房间号码*/
        int kk;/*用来检测是否有人居住*/
    }room[]={{100,101,0},{100,102,0},{100,103,0},{100,104,0},{100,105,0},{100,201,0},{100,202,0},{100,203,0},{100,204,0},{100,205,0}};
    struct people
    {
        char name[10];
        char ID[20];
        char sex[2];
        int time;/*入住的时间*/
    }ke[SIZE];
    void main()
    {
        void Insert();
        void Search();
        void Show();
        int i;
        printf("***********************************\n");
        printf("*******欢迎登入酒店管理系统********\n");
        printf("***********************************\n");
        printf("        0.登记入住(Insert)                 \n");
        printf("        1.查询房间的入住境况(Search)      \n");
        printf("        2.查询费用(Show)             \n");
        printf("        3.退出程序                 \n");
        scanf("%d",&i);
        switch(i)
        {
           case 0:Insert();
                break;
           case 1:Search();
                    break;
           case 2:Show();
               break;
           case 3:
               break;
           default:printf("错误选择:请重新选");break;
        }
    }

void Insert()
{
    int a,b=0;
    for(a=0;a<SIZE;a++)
    {
        if(room[a].kk==0)
          printf("可选房间:%d\n",room[a].id);
        else
        {printf("房间已住满:\n");
        exit(0);}
    }
    printf("请选择你的房间\n");
    scanf("%d",room[0].kk);
    printf("请输入你的名字:\n");
        scanf("%s\n",ke[0].name);
    printf("请输入你的身份证号码\n");
    scanf("%s",ke[0].ID);
    if((strlen(ke[0].ID)==18)||(strlen(ke[0].ID)==15))
    {
        printf("请输入你的性别:\n");
        scanf("%s",ke[0].sex);
        printf("请输入入住天数:\n");
        scanf("%d",ke[0].time);
        room[0].kk=1;
    }
    else
        printf("输入错误:请重新输入");
}
void Search()
{
    int l;
    void look2();/*按名字查询*/
    void look1();/*按房间号码查询*/
    printf("请输入你要查询的方式:0按房间号码查询,1按名字查询\n");
    scanf("%d",&l);
    switch(l)
    {
    case 0: look1();break;
    case 1: look2();break;
    default:printf("输入错误:\n");break;
    }
}
void look1()
{
    int z;
    printf("请输入你的房间号码\n");
    scanf("%d",room[z].id);
    printf("名字:%s\n",ke[z].name);
    printf("身份证号码:%s\n",ke[z]. ID);
    printf("性别:%s\n",ke[z].sex);
}
void look2()
{
    int w,n,y;
    char name[10];
    printf("请输入你的名字:\n");
    scanf("%s\n",name);
    for(n=0;n<SIZE;n++)
    {
        if(strcmp(name,ke[n].name)==0);
        printf("你的身份证号码是:%s\n",ke[n].ID);
        printf("你的房间号码是:%d\n",room[n].id);
        printf("性别:%s",ke[n].sex);
    }
}
void Show()
{
    int i;
    printf("请选择要查询人的房间号码:\n");
    scanf("%d",room[i].kk);
    printf("入住的天数:%d\n",ke[i].time);
    printf("所用费用:%d\n",ke[i].time*room[i].jiage);
}
 


[ 本帖最后由 邓士林 于 2013-4-15 15:01 编辑 ]

Maybe
2013-04-15 14:57
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
收藏
得分:0 

新手请多多指教
2013-04-16 14:35
快速回复:新手求解,如何改,还有那有错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022328 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved