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到底哪里出错啊?求大神帮忙在线等
给出一堆代码让人来帮你找错...... 看你的错误提示说的是 有文件没找到 尽量把问题简化,一大堆代码让别人帮你找BUG,不太合适
能把问题简化的同时说明你已经去思考了
页:
[1]