淡定一点 发表于 2014-7-3 19:54:02

C语言求助

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"io.h"

#define N 90

struct cipher

{char account;

char code;

}m;

cipher()                                                      /*密码模块*/

{ system("color 9f");

int i,k=0,flag,flag1,flag2,fno,fsize,fnum,choice;

char account;                                       

char code,code1;

FILE *fp1;                                                /*定义文件指针*/

        printf ("\n\n\n\n\n\n\n                  ***********学生宿舍管理系统**********\n"); /*登陆界面*/

        printf ("                  *            1.登陆               *\n");

        printf ("                  *            2.注册               *\n");

        printf ("                  *************************************\n");

        scanf("%d",&choice);

        system("cls");

        switch(choice)

        {case 1: fp1=fopen("code.txt","rt");                      /*打开文件*/

            if(fp1==NULL)

                        {printf("\n\n*****你还没有注册,按任意键退出!"); /*帐号错误*/

             getchar();

             exit(1);

                        }

                        fno=fileno(fp1);                                  /*登陆帐号*/

            fsize=filelength(fno);

            fnum=fsize/sizeof(struct cipher);

                while(k<3)

                {getchar();

                       system("cls");

                 printf("\n\n\n\n\t\t\t请输入账号:");

                 gets(account);

                       printf("\n\t\t\t请输入密码:");

                       gets(code);

                       for(i=0;i<fnum;i++)

                       { fread(&m,sizeof(struct cipher),1,fp1);

                           if(!strcmp(m.account,account)) flag1=0;

                          else flag1=1;

                           if(!strcmp(m.code,code)) flag2=0;

                          else flag2=1;

                          if(flag1==0&&flag2==0)

                          {   fclose(fp1);

                              printf("\n\n\t\t^0^登陆成功!欢迎进入西安邮电学院宿舍管理系统!^0^\n");                        /*登陆成功*/

                                  system("pause");

                  return 1;   

                          }

                       }

                       if(i==fnum)

                       {printf("\n\n\t\t\t输入的账号或密码有误,请重新输入!");

                          k++;

                       }

                        }

                printf("\n\n\t\t\t连续3次输入错误,退出!\n");                  /*登陆失败*/

            system("pause");

            exit(1);

       

        case 2:fp1=fopen("code.txt","at+");                           /*打开文件*/

            if(fp1==NULL)

                        {printf("\n\n*****文件打开错误。按任意键退出!");   /*打开失败信息*/

             getchar();

             exit(1);

                        }

                   do                                                   /*注册信息*/

                   {system("cls");

                  getchar();

                  printf("\n\n\n\n\t\t\t请输入注册账号:");

                  gets(m.account);

                        printf("\n\t\t\t请输入注册密码:");

                  gets(m.code);

                  printf("\n\t\t\t请再次输入注册密码:");

                  gets(code1);

                  if(!strcmp(m.code,code1))

                        {fwrite(&m,sizeof(struct cipher),1,fp1);

                     fclose(fp1);

                     flag=0;

                        }

                  else

                        {

                       printf("\n\t\t\t两次密码输入不同,请重新注册!");

                       getchar();

                       flag=1;

                        }

                   }while(flag==1);

                   printf("\n\t\t\t^0^注册成功!欢迎进入西安邮电学院宿舍管理系统!^0^\n");

                   getchar();

                   system("cls");

                   break;

        }

        return 1;

}



struct st_message          /*学生信息*/

{

    char name;         /*学生姓名*/

        char dorm;          /*宿舍号*/

        char num;          /*学号*/

        char sex;         /*性别*/

        char age;         /*年龄*/

        char major;      /*专业*/

        char classs;      /*班级*/

}st,t;


sort_message()                     /*排序模块*/

{int i,j,fno,fsize,fnum;

        FILE *fp;                     /*定义文件指针*/

        fp=fopen("student.txt","rt+");   /*打开文件*/

if(fp==NULL)

{printf("\n\n*****文件打开错误。按任意键退出!");

   getchar();

   exit(1);

}

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

for(i=0;i<fnum;i++)

          fread(&st,sizeof(struct st_message),1,fp);

for(i=0;i<fnum-1;i++)

          for(j=i+1;j<fnum;j++)

          if(strcmp(st.num,st.num)>0)

          {t=st;

           st=st;

           st=t;

          }

rewind(fp);

for(i=0;i<fnum;i++)

          fwrite(&st,sizeof(struct st_message),1,fp);

fclose(fp);

return 0 ;}



input_message()                                                       /*录入信息模块*/

{system("color 5f");

int i;

char choice;

FILE *fp;                                                            /*定义文件指针*/                                                      

fp=fopen("student.txt","at+");                                        /*打开文件*/

if(fp==NULL)                                             

{printf("\n\n*****库存文件不存在!请建立。按任意键退出!");

   getchar();

   exit(1);

}                                                                     /*打开失败信息*/

for (i=0;;i++)

{ system ("cls");

   getchar();

   printf("\n\n\n\t\t\t请输入学生姓名:");

   gets(st.name);

   printf("\n\t\t\t请输入学生班级:");

gets(st.classs);

printf("\n\t\t\t请输入学生宿舍号:");

gets(st.dorm);

printf("\n\t\t\t请输入学生学号:");

gets(st.num);

printf("\n\t\t\t请输入学生性别:");

gets(st.sex);

printf("\n\t\t\t请输入学生年龄:");

gets(st.age);

printf("\n\t\t\t请输入学生专业:");

gets(st.major);

fwrite(&st,sizeof(struct st_message),1,fp);

printf("\n\t\t\t输入成功!^0^\n\n\t\t\t是否继续录入(Y/N)?");

choice=getchar();

if(choice=='y'||choice=='Y')

continue;

else

{ fclose(fp);

       break;

}

}

return 0;}

append_message()                                                    /*添加模块*/

{system("color 6f");

int i;

char choice;

FILE *fp;                                                          /*定义文件指针*/                                                   

fp=fopen("student.txt","at+");                                    /*打开文件*/

if(fp==NULL)

{printf("\n\n*****库存文件不存在!请建立。按任意键退出!");

   getchar();

   exit(1);

}                                                                  /*打开失败信息*/

for (i=0;;i++)

{struct st_message st;

   system ("cls");

   getchar();

   printf("\n\n\n\t\t\t请输入所添加学生姓名:");

   gets(st.name);

   printf("\n\t\t\t请输入所添加学生班级:");

gets(st.classs);

printf("\n\t\t\t请输入所添加学生宿舍号:");

gets(st.dorm);

printf("\n\t\t\t请输入所添加学生学号:");

gets(st.num);

printf("\n\t\t\t请输入所添加学生性别:");

gets(st.sex);

printf("\n\t\t\t请输入所添加学生年龄:");

gets(st.age);

printf("\n\t\t\t请输入所添加学生专业:");

gets(st.major);

fwrite(&st,sizeof(struct st_message),1,fp);

printf("\n\n\t\t\t输入成功!^0^\n\n\t\t\t是否继续添加(Y/N)?");

choice=getchar();

if(choice=='y'||choice=='Y')

continue;

else

{fclose(fp);

       break;

}

}

return 0;}

revise_message()                                                   /*修改模块*/

{system("color 4f");

int i,choice,flag,fno,fsize,fnum;

char re_name,s;

FILE *fp;                                                         /*定义文件指针*/

do

{fp=fopen("student.txt","rt+");                                    /*打开文件*/

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

system("cls");

gets(s);

printf("\n\n\n\t\t\t请输入需要修改的学生姓名:");

gets(re_name);          

    for (i=0;i<fnum;i++)

        {



          fread(&st,sizeof(struct st_message),1,fp);

          if(!strcmp(re_name,st.name))

               { printf("\n\t\t             -----该学生信息-----\n\n");

         printf("\t   学号------姓名----班级--宿舍号--性别--年龄---专业------\n");

                   printf("\t   -------------------------------------------------------\n");

             printf("\t   %-8s%-6s%-4s%-6s%-4s%-4s%-20s\n",st.num,st.name,

                        st.classs,st.dorm,st.sex,st.age,st.major);

                   printf("\n\n\t\t\t您要修改哪一项?\n");

                   printf("\t\t\t1.学号\n");

                   printf("\t\t\t2.姓名\n");

                   printf("\t\t\t3.班级\n");

                   printf("\t\t\t4.宿舍号\n");

                   printf("\t\t\t5.性别\n");

                   printf("\t\t\t6.年龄\n");

                   printf("\t\t\t7.专业\n");

                   printf("\t\t\t8.返回主页\n");

         scanf("%d",&choice);

         switch(choice)

                     {case 1:printf("\n\t\t\t请输入修改后的学号:");

            scanf("%s",st.num);break;

            case 2:printf("\n\t\t\t请输入修改后的姓名:");

                      scanf("%s",st.name);break;

            case 3:printf("\n\t\t\t请输入修改后的班级:");

                      scanf("%s",st.classs);break;

            case 4:printf("\n\t\t\t请输入修改后的宿舍号:");

            scanf("%s",st.dorm);break;

            case 5:printf("\n\t\t\t请输入修改后的性别:");

                      scanf("%s",st.sex);break;

            case 6:printf("\n\t\t\t请输入修改后的年龄:");

                                  scanf("%s",st.age);break;
                  
                  
                  

                             
          fatal error C1004: unexpected end of file found到底哪里出错啊?求大神帮忙在线等

牡丹花下死做鬼 发表于 2014-7-3 20:25:36

给出一堆代码让人来帮你找错......

牡丹花下死做鬼 发表于 2014-7-3 20:27:50

看你的错误提示说的是 有文件没找到

戏++ 发表于 2014-7-4 15:05:52

尽量把问题简化,一大堆代码让别人帮你找BUG,不太合适
能把问题简化的同时说明你已经去思考了
页: [1]
查看完整版本: C语言求助