| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:帮忙看下下面这个代码问题出在哪
只看楼主 加入收藏
xking717
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-11-7
结帖率:66.67%
收藏
已结贴  问题点数:8 回复次数:4 
帮忙看下下面这个代码问题出在哪
程序代码:
#include<stdio.h>
#include<direct.h>
#include<string.h>
#include<stdlib.h>
#define TYPE1 "T123"
#define TYPE2 "T456"
#define MAX_T123 40
#define MAX_T456 90
#define LEN_train sizeof(struct train)
#define LEN_char sizeof(char)
#define TRUE 1
#define FALSE 0
struct train
{
    char type[5];
    char ID[6];
    int price;
    char date[11];
    char s_station[20];
    char t_station[20];
    int num_passenger;
    int MAX_passenger;
    char b_seat[91];
};
struct passenger
{
    char name[20];
    char ID[6];
    char payment[5];
    char re_date[5];
    char seat[4];
    int num_ticket;
};

short strequal(char *str1, char* str2)
{
    int i=0;
    if (strlen(str1)!=strlen(str2))
        return 0;
    for (i;*(str1+i)!='\0';i++)
    {
        if (*(str1+i)!=*(str2+i))
            return 0;
    }
    return 1;
}
void re_ID()
{
    short b_test=FALSE;
    FILE *p1;
    FILE *p2;
    int num_ticket;
    int i;
    struct train *pt=NULL;
    struct passenger *pp=NULL;
    printf("\nPlease enter the train ID:\n");
    fflush(stdin);
    scanf("%s",&pp->ID);
    printf("Please enter the reservation date:\n");
    fflush(stdin);
    scanf("%s",&pp->re_date);
    printf("Please enter the number of tickets you want");
    fflush(stdin);
    scanf("%d",&num_ticket);
    p1=fopen("data_train.dat","wb+");
    p2=fopen("data_passenger.dat","wb+");
    if((p1=fopen("data_train.dat","rb+"))&&(p2=fopen("data_passenger.dat","rb+"))==NULL)
    {
        printf("Fail to load the database,tap to exit...");
        getchar();
        exit(1);
    }
    while(!feof(p1)&&!feof(p2))
    {
        pt=(struct train*)malloc(LEN_train);
        fread(pt,sizeof(struct train),1,p1);
        if((strequal(pt->ID,pp->ID)==1)&&((num_ticket < (pt->MAX_passenger - pt->num_passenger))==1))
        {
            b_test=TRUE;
            pp->num_ticket=num_ticket;
            pt->num_passenger+=num_ticket;
            for (i=1;i<pt->num_passenger;i++)
            {  
                if(pt->b_seat[i]=0)
                {
                   pt->b_seat[i]=1;
                   break;
                }
                else
                {
                  break;
                }
             }
          }
    fclose(p1);
    fclose(p2);
    if(b_test==FALSE)
    {
        printf("\n Train not found, tap to retry......");
        getchar();
        search_ID();
    }
    else
    {
    printf("\n Tap to continue......");
    getchar();
    }
   }
}
2012-12-20 16:08
麦香
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:65
专家分:163
注 册:2011-10-18
收藏
得分:2 

你们要进窄门,因为引向灭亡的门是宽的,路是大的,进去的人也多。
2012-12-20 16:09
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:2 
喷血,这张代码真干净

小小战士,战士中的战斗机!
2012-12-20 16:33
炎黄宇宙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:104
注 册:2012-11-12
收藏
得分:2 
好歹说一下你遇到的问题啊,或者你想实现什么,这样谁给你看啊
2012-12-20 16:34
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
收藏
得分:2 
回复 4楼 炎黄宇宙
正答
2012-12-20 16:41
快速回复:帮忙看下下面这个代码问题出在哪
数据加载中...
 
   



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

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