标题:求解做课程设计搜索职工信息总是出错,找不出错在哪里了。代码都是我自己打 ...
只看楼主
哀啼小新淫
Rank: 1
等 级:新手上路
帖 子:22
专家分:2
注 册:2013-1-12
结帖率:62.5%
 问题点数:0 回复次数:1 
求解做课程设计搜索职工信息总是出错,找不出错在哪里了。代码都是我自己打的绝非求作业的。
程序代码:
void search()
{
    int i,n;
    char sea[5];
    char point[10];
    int x;
    FILE *fp;
    int index=0;
    system("cls");
    if((fp=fopen("staff.txt","rb"))==NULL)
    {
        printf("打开文件失败!\n");
    }
    while(!feof(fp))
    {
        fread(&staff[index],sizeof(struct Date),1,fp);
        if(index >= 1000)
        {
            break;
        }
        index++;
    }   
    if(fclose(fp)!=0)
    {
        printf("关闭文件失败!");
    }
    printf("请选择你要选择的搜索方式(name/numb):");
    scanf("%s",sea);
    if(strcmp(sea,"name")==0)
    {
        printf("请输入您要查询的职工姓名:");
        scanf("%s",point);
        for(i=0;i<(index-1);i++)
        {
            if(strcmp(staff[i].name,point)==0)
            {
                printf("职工编号   姓名   性别   职称   部门   身份证号   婚否   出生年月   学历   工资   住址   电话\n");/*运行到这里就会出错,提示中断程序*/
                printf("%d %s %s %s %s %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name,staff[i].sex,staff[i].title,
                    staff[i].department,staff[i].id,staff[i].marry,staff[i].birthday,staff[i].education,staff[i].wage,
                    staff[i].address,staff[i].tel);
                printf("按任意键返回菜单\n");
                getch();
                menu;
            }
        }
        printf("查无此人,请重新确认信息!\n");
    }
    else if(strcmp(sea,"numb")==0)
    {
        for(i=0;i,100;i++)
        {
            printf("请输入您要查询的职工信息:");
            scanf("%d",&n);
            if(staff[i].num==n)
            {
                printf("职工编号   姓名   性别   职称   部门   身份证号   婚否   出生年月   学历   工资   住址   电话\n");
                printf("%d %s %c %s %s %s %c %s %s %d %s %s\n",staff[i].num,staff[i].name,staff[i].sex,staff[i].title,
                    staff[i].department,staff[i].id,staff[i].marry,staff[i].birthday,staff[i].education,staff[i].wage,
                    staff[i].address,staff[i].tel);
                printf("按任意键返回菜单\n");
                getch();
                menu;
            }
        }
    }
    else
    {
        printf("您的输入有误,请重新输入。\n");
        Sleep(1000);
        search();
    }
}
这是搜索部分的代码,求大神点明错在哪里。
搜索更多相关主题的帖子: search system 课程 信息 
2013-07-10 10:56
哀啼小新淫
Rank: 1
等 级:新手上路
帖 子:22
专家分:2
注 册:2013-1-12
得分:0 
刚刚找到了错误在哪里,主要错误是输出语句里
程序代码:
void search()
{
    int i,n;
    char sea[5];
    char point[10];
    FILE *fp;
    int index=0;
    system("cls");
    if((fp=fopen("staff.txt","rb"))==NULL)
    {
        printf("打开文件失败!\n");
    }
    while(!feof(fp))
    {
        fread(&staff[index],sizeof(struct Date),1,fp);
        if(index >= 1000)
        {
            break;
        }
        index++;
    }   
    if(fclose(fp)!=0)
    {
        printf("关闭文件失败!");
    }
    printf("请选择你要选择的搜索方式(name/numb):");
    scanf("%s",sea);
    if(strcmp(sea,"name")==0)
    {
        printf("请输入您要查询的职工姓名:");
        scanf("%s",point);
        for(i=0;i<(index-1);i++)
        {
            if(strcmp(staff[i].name,point)==0)
            {
                printf("职工编号   姓名   性别   职称   部门   身份证号   婚否   出生年月   学历   工资   住址   电话\n");
                printf("%d %s %s %s %s %s %s %s %s %d %s %d\n",staff[i].num,staff[i].name,staff[i].sex,staff[i].title,
                    staff[i].department,staff[i].id,staff[i].marry,staff[i].birthday,staff[i].education,staff[i].wage,
                    staff[i].address,staff[i].tel);
                printf("按任意键返回菜单\n");
                getch();
                menu();
            }
        }
        printf("查无此人,请重新确认信息!\n");
    }
    else if(strcmp(sea,"numb")==0)
    {
        for(i=0;i<(index-1);i++)
        {
            printf("请输入您要查询的职工信息:");
            scanf("%d",&n);
            if(staff[i].num==n)
            {
                printf("职工编号   姓名   性别   职称   部门   身份证号   婚否   出生年月   学历   工资   住址   电话\n");
                printf("%d %s %s %s %s %s %s %s %s %d %s %d\n",staff[i].num,staff[i].name,staff[i].sex,staff[i].title,
                    staff[i].department,staff[i].id,staff[i].marry,staff[i].birthday,staff[i].education,staff[i].wage,
                    staff[i].address,staff[i].tel);
                printf("按任意键返回菜单\n");
                getch();
                menu();
            }
        }
        printf("查无此人,请重新确认信息!\n");
    }
    else
    {
        printf("您的输入有误,请重新输入。\n");
        Sleep(1000);
        search();
    }
}
的最后一个应该是%d而不是%s。把我修改之后的代码传上来,大家一定要引以为戒。
2013-07-10 11:08



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




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

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