标题:为什么总是不可written,还有那个地方可以改进,求意见
只看楼主
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
结帖率:62.5%
已结贴  问题点数:20 回复次数:8 
为什么总是不可written,还有那个地方可以改进,求意见
#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();
        void save();
        void jie();
        int i;
        printf("\t***********************************\n");
        printf("\t*******欢迎登入酒店管理系统********\n");
        printf("\t***********************************\n");
        printf("\t        0.登记入住(Insert)                 \n");
        printf("\t        1.查询房间的入住境况(Search)      \n");
        printf("\t        2.查询费用(Show)             \n");
        printf("\t        3.结账(jie)                   \n");
        printf("\t        4.退出程序                 \n");
        scanf("%d",&i);
        switch(i)
        {
           case 0:Insert();
                break;
           case 1:Search();
                    break;
           case 2:Show();
               break;
           case 3:jie();
               break;
           case 4:
               break;
           default:printf("错误选择:请重新选");break;
        }
    }
void save()
{
    FILE *fp;
    int i;
    if((fp=fopen("ke.dat","wb+"))==NULL)
    {
        printf("cannot open file\n");
            return;
    }
    for(i=0;i<SIZE;i++)
        if(fwrite(&ke[i],sizeof(struct people),1,fp)!=1)
            printf("file write error\n");
            fclose(fp);
}
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=0;
    printf("请输入你的房间号码\n");
    scanf("%d",room[0].id);
    printf("名字:%s\n",ke[0].name);
    printf("身份证号码:%s\n",ke[0]. ID);
    printf("性别:%s\n",ke[0].sex);
}
void look2()
{
    int n;
    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=0;
    printf("请选择要查询人的房间号码:\n");
    scanf("%d",room[0].kk);
    printf("入住的天数:%d\n",ke[0].time);
    printf("所用费用:%d\n",ke[0].time*room[0].jiage);
}
void jie()
{
    int j=0,k=0;
    printf("请输入你的房间号码\n");
    scanf("%d",j);
    printf("%s",ke[j].name);
    printf("%d",ke[j].time*room[j].jiage);
    printf("是否退房,是按1,不是按2\n");
        scanf("%d",k);
        while(k==1)
        {
            room[j].kk=0;
        };
        while(k==2)
            break;
}

搜索更多相关主题的帖子: void hotel written include people 
2013-04-17 15:44
liu_鹏
Rank: 2
等 级:论坛游民
帖 子:33
专家分:75
注 册:2013-4-16
得分:7 
你里面的房间号是int类型的。  所以输入时不能scanf("%d",room[0].kk);应该在room[0].kk前面加上&地址。正确的是scanf("%d",&room[0].kk);,其他的你自己慢慢改。

不懂就发帖。懂了就恢复。
2013-04-17 17:08
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:7 
printf("请选择你的房间\n");
    scanf("%d",&room[0].kk);
这样改正就对了,你的文件读写是对的,问题是你的取地址符号没有写

Maybe
2013-04-17 20:36
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
改了还是那个问题

新手请多多指教
2013-04-18 08:28
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分: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();
        void save();
        void jie();
        int i;
        printf("\t***********************************\n");
        printf("\t*******欢迎登入酒店管理系统********\n");
        printf("\t***********************************\n");
        printf("\t        0.登记入住(Insert)                 \n");
        printf("\t        1.查询房间的入住境况(Search)      \n");
        printf("\t        2.查询费用(Show)             \n");
        printf("\t        3.结账(jie)                   \n");
        printf("\t        4.退出程序                 \n");
        scanf("%d",&i);
        switch(i)
        {
           case 0:Insert();
                break;
           case 1:Search();
                    break;
           case 2:Show();
               break;
           case 3:jie();
               break;
           case 4:
               break;
           default:printf("错误选择:请重新选");break;
        }
    }
void save()
{
    FILE *fp;
    int i;
    if((fp=fopen("ke.dat","wb+"))==NULL)
    {
        printf("cannot open file\n");
            return;
    }
    for(i=0;i<SIZE;i++)
        if(fwrite(&ke[i],sizeof(struct people),1,fp)!=1)
            printf("file write error\n");
            fclose(fp);
}
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=0;
    printf("请输入你的房间号码\n");
    scanf("%d",room[0].id);
    printf("名字:%s\n",ke[0].name);
    printf("身份证号码:%s\n",ke[0]. ID);
    printf("性别:%s\n",ke[0].sex);
}
void look2()
{
    int n;
    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=0;
    printf("请选择要查询人的房间号码:\n");
    scanf("%d",&room[0].kk);
    printf("入住的天数:%d\n",ke[0].time);
    printf("所用费用:%d\n",ke[0].time*room[0].jiage);
}
void jie()
{
    int j=0,k=0;
    printf("请输入你的房间号码\n");
    scanf("%d",&j);
    printf("%s",ke[j].name);
    printf("%d",ke[j].time*room[j].jiage);
    printf("是否退房,是按1,不是按2\n");
        scanf("%d",k);
        while(k==1)
        {
            room[j].kk=0;
        };
        while(k==2)
            break;
}

新手请多多指教
2013-04-18 08:29
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:7 
回复 4楼 moyurongxu
2楼说的错误你理解了吗?代码里还有很多处,你都改了吗?

总有那身价贱的人给作业贴回复完整的代码
2013-04-18 09:12
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
printf("%s",ke[j].name);
    printf("%d",ke[j].time*room[j].jiage);这两句为什么不能执行;还有程序为什么没有记录信息谁来帮解决下;;;两个原因是什么

新手请多多指教
2013-04-18 09:18
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分: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();
        void save();
        void jie();
        int i;
        printf("\t***********************************\n");
        printf("\t*******欢迎登入酒店管理系统********\n");
        printf("\t***********************************\n");
        printf("\t        0.登记入住(Insert)                 \n");
        printf("\t        1.查询房间的入住境况(Search)      \n");
        printf("\t        2.查询费用(Show)             \n");
        printf("\t        3.结账(jie)                   \n");
        printf("\t        4.退出程序                 \n");
        scanf("%d",&i);
        switch(i)
        {
           case 0:Insert();
                break;
           case 1:Search();
                    break;
           case 2:Show();
               break;
           case 3:jie();
               break;
           case 4:
               break;
           default:printf("错误选择:请重新选");break;
        }
    }
void save()
{
    FILE *fp;
    int i;
    if((fp=fopen("ke.dat","wb"))==NULL)
    {
        printf("cannot open file\n");
            return;
    }
    for(i=0;i<SIZE;i++)
        if(fwrite(&ke[i],sizeof(struct people),1,fp)!=1)
            printf("file write error\n");
            fclose(fp);
}
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",ke[0].name);
     printf("请输入你的身份证号码:");
    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=0;
    printf("请输入你的房间号码\n");
    scanf("%d",&room[0].id);
    printf("名字:%s\n",ke[0].name);
    printf("身份证号码:%s\n",ke[0]. ID);
    printf("性别:%s\n",ke[0].sex);
}
void look2()
{
    int n;
    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=0;
    printf("请选择要查询人的房间号码:\n");
    scanf("%d",&room[0].kk);
    printf("入住的天数:%d\n",ke[0].time);
    printf("所用费用:%d\n",ke[0].time*room[0].jiage);
}
void jie()
{
    int j=0,k;
    printf("请输入你的房间号码\n");
    scanf("%d",&j);
    printf("%s",ke[j].name);
    printf("%d",ke[j].time*room[j].jiage);
    printf("是否退房,是按1,不是按2\n");
        scanf("%d",&k);
        switch(k)
        {
        case 1:room[j].kk=0;break;
        case 2:break;
        }
}
改成这样

新手请多多指教
2013-04-18 09:20
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
求大家帮下

新手请多多指教
2013-04-18 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404556-1-1.html




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

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