鱼C论坛

 找回密码
 立即注册
查看: 1542|回复: 3

C语言求助

[复制链接]
发表于 2014-7-3 19:54:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"io.h"

#define N 90

struct cipher

{char account[6];

char code[6];

}m[10];

cipher()                                                      /*密码模块*/

{ system("color 9f");

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

  char account[6];                                       

  char code[6],code1[6];  

  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[i].account,account)) flag1=0;

                            else flag1=1;

                           if(!strcmp(m[i].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[0].account);

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

                    gets(m[0].code);

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

                    gets(code1);

                    if(!strcmp(m[0].code,code1))

                        {fwrite(&m[0],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[20];         /*学生姓名*/

        char dorm[7];          /*宿舍号*/

        char num[10];          /*学号*/

        char sex[5];           /*性别*/

        char age[4];           /*年龄*/

        char major[20];        /*专业*/

        char classs[8];        /*班级*/

}st[N],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[i],sizeof(struct st_message),1,fp);

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

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

          if(strcmp(st[i].num,st[j].num)>0)

          {t=st[i];

           st[i]=st[j];

           st[j]=t;

          }

  rewind(fp);

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

          fwrite(&st[i],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[i].name);

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

  gets(st[i].classs);

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

  gets(st[i].dorm);

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

  gets(st[i].num);

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

  gets(st[i].sex);

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

  gets(st[i].age);

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

  gets(st[i].major);

  fwrite(&st[i],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[N];

   system ("cls");

   getchar();

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

   gets(st[i].name);

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

  gets(st[i].classs);

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

  gets(st[i].dorm);

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

  gets(st[i].num);

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

  gets(st[i].sex);

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

  gets(st[i].age);

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

  gets(st[i].major);

  fwrite(&st[i],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[20],s[20];

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[i],sizeof(struct st_message),1,fp);

          if(!strcmp(re_name,st[i].name))

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

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

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

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

                        st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].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[i].num);break;

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

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

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

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

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

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

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

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

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

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-3 20:25:36 | 显示全部楼层
给出一堆代码让人来帮你找错......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-3 20:27:50 | 显示全部楼层
看你的错误提示说的是 有文件没找到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-4 15:05:52 | 显示全部楼层
尽量把问题简化,一大堆代码让别人帮你找BUG,不太合适
能把问题简化的同时说明你已经去思考了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表