m0_59053346 2021-06-06 12:58 采纳率: 100%
浏览 35
已采纳

查询结果输不出来(急)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 300
struct date
{ char year[6]; 
char month[4]; 
char day[4];};
struct st
{ char num[13];
 char name[15]; 
int age;
 char work[20]; 
char sex[6]; 
char add[30]; 
char phone[10];
 struct date hiredate; };
void lr()
{ FILE *p; 
struct st s1; 
char ans='y'; p=fopen("staff.dat","a"); if(p==NULL) 
{ printf("file open
error!\n");
 exit(-1); } while(ans=='y'||ans=='Y') { printf("请输入工号:"); scanf("%s",s1.num); printf("请输入姓名:"); scanf("%s",s1.name); printf("请输入年龄:"); scanf("%d",&s1.age); printf("请输入工作:"); scanf("%s",s1.work); printf("请输入性别:"); scanf("%s",s1.sex); printf("请输入地址:"); scanf("%s",s1.add); printf("请输入电话:"); scanf("%s",s1.phone); printf("请输入入职时间(年月日):"); scanf("%s%s%s",s1.hiredate.year,s1.hiredate.month,s1.hiredate.day); fwrite(&s1,sizeof(struct st),1,p); getchar(); printf("继续输入吗?(y/n)"); scanf("%c",&ans); } fclose(p);}void cx(){ FILE *p; struct st s[N]; char num[13]; char name[15]; char phone[10]; int i,w,c,n=0,m=1; if(m>0) { do{ printf("\n"); printf("************************\n"); 
printf("******按1 工号查询******\n"); printf("******按2 姓名查询******\n"); printf("******按3 电话查询******\n"); printf("******按0 退出系统******\n"); printf("************************\n"); printf("请输入你的选择:\n"); scanf("%d",&c); switch(c) { case 1: p=fopen("staff.dat","rb"); if(p==NULL) { printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) { n++; } fclose(p); printf("请输入工号:"); scanf("%s",num); printf("\n"); for(i=0;i<n;i++) { if(strcmp(num,s[i].num)==0) break; if(i>=n) { printf("不存在该工号!\n"); }
 else 
{ printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } } 
p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); 
fclose(p); 
system("pause"); break; 
case 2: p=fopen("staff.dat","rb"); if(p==NULL) 
{ printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) 
{ n++; } 
fclose(p); 
printf("请输入姓名:"); scanf("%s",name); printf("\n"); for(i=0;i<n;i++) { if(i>=n) { printf("不存在该姓名!\n"); } else { printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } } 
p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); 
fclose(p); system("pause"); break;
 case 3: p=fopen("staff.dat","rb"); if(p==NULL)
 { printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) 
{ n++; } 
fclose(p); 
printf("请输入电话:"); scanf("%s",phone); printf("\n"); for(i=0;i<n;i++) { if(i>=n) { printf("不存在该电话!\n"); } else { printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } }
 p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); 
fclose(p); 
system("pause"); break; } } while(c!=0); 
}
}
int main()
{ int choice; 
printf("\n"); 
while(1) { printf("*************************************************************\n"); 
printf("**------------------欢迎进入企业员工管理系统---------------**\n"); 
printf("**--------------------按1,录入员工信息--------------------**\n"); 
printf("**--------------------按2,更新员工信息--------------------**\n");
 printf("**--------------------按3,查询员工信息--------------------**\n");
 printf("**--------------------按4,排列员工信息--------------------**\n");
 printf("**--------------------按5,统计员工信息--------------------**\n");
 printf("**--------------------按6,输出员工信息--------------------**\n"); 
printf("**--------------------按0,退出系统------------------------**\n"); printf("**----------------------------------制作者:3组--**\n"); printf("*************************************************************\n");
 printf("请输入你的选项:"); scanf("%d",&choice); switch(choice) { case 0:
printf("运行结束,谢谢使用!\n");
system("pause");
return 0; 
case 1:lr();break; /*case 2:gx();break;*/ case 3:cx();break; /*case 4:pl();break; case 5:tj();break; case 6:sc();break;*/ default:printf("输入错误,请重新选择!\n"); } 
} system("pause"); 
return 0;}

#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 300struct date{ char year[6]; char month[4]; char day[4];};struct st{ char num[13]; char name[15]; int age; char work[20]; char sex[6]; char add[30]; char phone[10]; struct date hiredate; };void lr(){ FILE *p; struct st s1; char ans='y'; p=fopen("staff.dat","a"); if(p==NULL) { printf("file open error!\n"); exit(-1); } while(ans=='y'||ans=='Y') { printf("请输入工号:"); scanf("%s",s1.num); printf("请输入姓名:"); scanf("%s",s1.name); printf("请输入年龄:"); scanf("%d",&s1.age); printf("请输入工作:"); scanf("%s",s1.work); printf("请输入性别:"); scanf("%s",s1.sex); printf("请输入地址:"); scanf("%s",s1.add); printf("请输入电话:"); scanf("%s",s1.phone); printf("请输入入职时间(年月日):"); scanf("%s%s%s",s1.hiredate.year,s1.hiredate.month,s1.hiredate.day); fwrite(&s1,sizeof(struct st),1,p); getchar(); printf("继续输入吗?(y/n)"); scanf("%c",&ans); } fclose(p);}void cx(){ FILE *p; struct st s[N]; char num[13]; char name[15]; char phone[10]; int i,w,c,n=0,m=1; if(m>0) { do{ printf("\n"); printf("************************\n"); printf("******按1 工号查询******\n"); printf("******按2 姓名查询******\n"); printf("******按3 电话查询******\n"); printf("******按0 退出系统******\n"); printf("************************\n"); printf("请输入你的选择:\n"); scanf("%d",&c); switch(c) { case 1: p=fopen("staff.dat","rb"); if(p==NULL) { printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) { n++; } fclose(p); printf("请输入工号:"); scanf("%s",num); printf("\n"); for(i=0;i<n;i++) { if(strcmp(num,s[i].num)==0) break; if(i>=n) { printf("不存在该工号!\n"); } else { printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } } p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); fclose(p); system("pause"); break; case 2: p=fopen("staff.dat","rb"); if(p==NULL) { printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) { n++; } fclose(p); printf("请输入姓名:"); scanf("%s",name); printf("\n"); for(i=0;i<n;i++) { if(i>=n) { printf("不存在该姓名!\n"); } else { printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } } p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); fclose(p); system("pause"); break; case 3: p=fopen("staff.dat","rb"); if(p==NULL) { printf("file open error.\n"); exit(-1); } while(fread(&s[n],sizeof(struct st),n,p)==1) { n++; } fclose(p); printf("请输入电话:"); scanf("%s",phone); printf("\n"); for(i=0;i<n;i++) { if(i>=n) { printf("不存在该电话!\n"); } else { printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); } } p=fopen("staff.dat","w"); fwrite(s,sizeof(struct st),n,p); fclose(p); system("pause"); break; } } while(c!=0); }}int main(){ int choice; printf("\n"); while(1) { printf("*************************************************************\n"); printf("**------------------欢迎进入企业员工管理系统---------------**\n"); printf("**--------------------按1,录入员工信息--------------------**\n"); printf("**--------------------按2,更新员工信息--------------------**\n"); printf("**--------------------按3,查询员工信息--------------------**\n"); printf("**--------------------按4,排列员工信息--------------------**\n"); printf("**--------------------按5,统计员工信息--------------------**\n"); printf("**--------------------按6,输出员工信息--------------------**\n"); printf("**--------------------按0,退出系统------------------------**\n"); printf("**----------------------------------制作者:3组--**\n"); printf("*************************************************************\n"); printf("请输入你的选项:"); scanf("%d",&choice); switch(choice) { case 0:printf("运行结束,谢谢使用!\n");system("pause");return 0; case 1:lr();break; /*case 2:gx();break;*/ case 3:cx();break; /*case 4:pl();break; case 5:tj();break; case 6:sc();break;*/ default:printf("输入错误,请重新选择!\n"); } } system("pause"); return 0;}

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-06-06 15:28
    关注

    修改如下,供参考:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define N 300
    struct date
    {
        char year[6];
        char month[4];
        char day[4];
    };
    struct st
    {
        char num[13];
        char name[15];
         int age;
        char work[20];
        char sex[6];
        char add[30];
        char phone[10];
        struct date hiredate;
    };
    void lr()
    {
        FILE *p;
        struct st s1;
        char ans='y';
        p=fopen("staff.dat","a");
        if(p==NULL)
        {
           printf("file openerror!\n");
           exit(-1);
        }
        while(ans=='y'||ans=='Y') {
              printf("请输入工号:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.num);
              printf("请输入姓名:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.name);
              printf("请输入年龄:");
              fflush(stdout);rewind(stdin);
              scanf("%d",&s1.age);
              printf("请输入工作:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.work);
              printf("请输入性别:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.sex);
              printf("请输入地址:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.add);
              printf("请输入电话:");
              fflush(stdout);rewind(stdin);
              scanf("%s",s1.phone);
              printf("请输入入职时间(年月日):");
              fflush(stdout);rewind(stdin);
              scanf("%s%s%s",s1.hiredate.year,s1.hiredate.month,s1.hiredate.day);
              fwrite(&s1,sizeof(struct st),1,p);
                                                          //getchar();
              printf("继续输入吗?(y/n)");
              fflush(stdout);rewind(stdin);
              scanf("%c",&ans);
        }
        fclose(p);
    }
    
    void cx()
    {
        FILE *p;
        struct st s[N];
        char num[13];
        char name[15];
        char phone[10];
        int i,w,c,n=0,m=1;
        
        p=fopen("staff.dat","rb");
        if(p==NULL) {
           printf("file open error.\n");
           exit(-1);
        }
        while(fread(&s[n],sizeof(struct st),1,p)==1)n++;
        fclose(p);
        //if(m>0) {
           do{
              printf("\n");
              printf("************************\n");
              printf("******按1 工号查询******\n");
              printf("******按2 姓名查询******\n");
              printf("******按3 电话查询******\n");
              printf("******按0 退出系统******\n");
              printf("************************\n");
              printf("请输入你的选择:\n");
              fflush(stdout);rewind(stdin);
              scanf("%d",&c);
              switch(c) {
                         case 1:
    
                                printf("请输入工号:");
                                fflush(stdout);rewind(stdin);
                                scanf("%s",num);
                                for(i=0;i<n;i++) {
                                    if(strcmp(num,s[i].num)==0) break;
                                }
                                if(i>=n) {
                                    printf("不存在该工号!\n");
                                }else{
                                    printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone);
                                }
                                //p=fopen("staff.dat","w");
                                //fwrite(s,sizeof(struct st),n,p);
                                //fclose(p);
                                system("pause");
                                break;
                         case 2:
                                printf("请输入姓名:");
                                fflush(stdout);rewind(stdin);
                                scanf("%s",name);
                                for(i=0;i<n;i++) {
                                    if(strcmp(name,s[i].name)==0) break;
                                }
                                if(i>=n){
                                    printf("不存在该姓名!\n"); }
                                else {
                                    printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone);
                                }
                                //p=fopen("staff.dat","w");
                                //fwrite(s,sizeof(struct st),n,p);
                                //fclose(p);
                                system("pause");
                                break;
                         case 3:
                                printf("请输入电话:");
                                scanf("%s",phone);
                                for(i=0;i<n;i++) {
                                    if(strcmp(phone,s[i].phone)==0) break;
                                }
                                if(i>=n) {
                                    printf("不存在该电话!\n");
                                }else {
                                    printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone);
                                }
                                //p=fopen("staff.dat","w");
                                //fwrite(s,sizeof(struct st),n,p);
                                //fclose(p);
                                system("pause");
                                break;
              }
           }while(c!=0);
        //}
    }
    
    int main()
    {
       int choice;
       printf("\n");
       while(1) {
            printf("*************************************************************\n");
            printf("**------------------欢迎进入企业员工管理系统---------------**\n");
            printf("**--------------------按1,录入员工信息--------------------**\n");
            printf("**--------------------按2,更新员工信息--------------------**\n");
            printf("**--------------------按3,查询员工信息--------------------**\n");
            printf("**--------------------按4,排列员工信息--------------------**\n");
            printf("**--------------------按5,统计员工信息--------------------**\n");
            printf("**--------------------按6,输出员工信息--------------------**\n");
            printf("**--------------------按0,退出系统------------------------**\n");
            printf("**---------------------制作者:3组-------------------------**\n");
            printf("*************************************************************\n");
            printf("请输入你的选项:");
            scanf("%d",&choice);
            switch(choice)
                        {
                          case 0:
                                printf("运行结束,谢谢使用!\n");
                                system("pause");
                                return 0;
                          case 1:
                                lr();
                                break;
                        /*case 2:gx();
                               break;*/
                          case 3:
                                cx();
                                break;
                        /*case4:
                               pl();
                               break;
                        case 5:
                              tj();
                              break;
                        case 6:
                              sc();
                              break;*/
                       default:
                              printf("输入错误,请重新选择!\n");
                              break;
            }
       }
       system("pause");
       return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)