万急,请高手进来改错,谢谢啦!(随便帮忙把汉字变一下英文)
#include<stdio.h> #include<stdlib.h>
#include<string.h>
/****************************结构体类型*****************************/
struct student
{
char name[20];
int num;
char sex[2];
int month[3];
int day[3];
int classno[3];
int attend[3];
}stu[2];
void menu();
void select();
void input();
void save();
void search();
void modify();
void calculate();
void quit();
FILE *fp;
/********************************主函数******************************/
main()
{
int i=1;
do{
select();
}
while(i!=0);
}
/******************************目录函数******************************/
void menu()
{
printf("\t\t*****************************************\n");
printf("\t\t\t 欢迎使用学生考勤系统\n");
printf(" 1.添加学生信息\n");
printf(" 2.查询学生信息\n");
printf(" 3.修改学生信息\n");
printf(" 4.计算考勤分数\n");
printf(" 5.退出考勤系统\n");
printf(" ###############请选择相应的数字#################\n");
printf("\t\t*****************************************\n");
}
/*****************************输入函数******************************/
void input()
{
int i,j;
for (i=0;i<2;i++)
{
printf("请输入学生姓名:\n");
scanf("%s",stu[i].name);
printf("请输入学生学号:\n");
scanf("%d",&stu[i].num);
printf("请输入学生性别(m:男生f:女生):\n");
scanf("%s",stu[i].sex);
for(j=0;j<3;j++)
{
printf("请输入上课日期(月-日):\n");
scanf("%d-%d",&stu[i].month[j],&stu[i].day[j]);
printf("请输入上课节次:\n");
scanf("%d",&stu[i].classno[j]);
printf("请输入到勤情况(1:到勤,0:缺勤)\n");
scanf("%d",&stu[i].attend[j]);
}
save();
}
}
/******************************保存函数******************************/
void save()
{
int i;
FILE *fp;
if((fp=fopen("stu.txt","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<2;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf("已保存学生信息到文件中\n");
}
/*******************************修改函数*****************************/
void modify()
{
int i,j,c,k,b,d;
FILE *fp;
if((fp=fopen("stu.txt","rb"))==NULL)
{
printf("cannot open file\n");
return ;
}
printf("\n请输入要修改学生的学号:");
scanf("%d",&k);
printf("\n请输入要修改学生的节次:");
scanf("%d",&b);
for(i=0;i<2;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
for(j=0;j<3;j++)
{
if (k==stu[i].num)
c=i;
if (b==stu[i].classno[j])
d=j;
fclose(fp);
}
}
printf("请输入新修改的内容:\n");
//下面输入该学生新信息
printf("请输入学生姓名:\n");
scanf("%s",stu[c].name);
printf("请输入学生学号:\n");
scanf("%d",&stu[c].num);
printf("请输入学生性别(m:男生f:女生):\n");
scanf("%s",stu[c].sex);
printf("请输入上课日期(月-日):\n");
scanf("%d-%d",&stu[c].month[d],&stu[c].day[d]);
printf("请输入上课节次:\n");
scanf("%d",&stu[c].classno[d]);
printf("请输入到勤情况(1:到勤,0:缺勤)\n");
scanf("%d",&stu[c].attend[d]);
save();
}
/******************************考勤函数******************************/
void calculate()
{
}
/******************************退出函数******************************/
void quit()
{
exit(0);
printf("谢谢使用本系统!\n");
}
/******************************选择函数******************************/
void select()
{
int m;
char ch='a',ch1;
while(ch=' ')
{
menu();
scanf("%d",&m);
ch1=getchar();
if (m>=1&&m<=6)
switch(m)
{
case 1: input(); break;
case 2: search(); break;
case 3: modify(); break;
case 4: calculate();break;
case 5: quit(); break;
}
}
printf("操作完毕,请再次选择\n");
ch=getchar();
}
/********************************查询函数****************************/
void search()
{
int i,j;
FILE *fp;
int no;
printf("请输入您要查找的学生学号:\n");
scanf("%d",&no);
if((fp=fopen("stu.txt","r"))==NULL)
{
printf("cannot open file!\n");
exit(0);
}
rewind(fp);
for(i=0;i<2;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
for(j=0;j<3;j++)
{
if(no==stu[i].num)
{
printf("学生的信息为:姓名 学号 性别 月-日 节次 到勤\n");
printf("学生基本信息:%-5s,%-5d,%-3s,%2d-%2d,%3d,%3d\n",stu[i].name,stu[i].num,stu[i].sex
,stu[i].month[j],stu[i].day[j],stu[i].classno[j],stu[i].attend[j]);
}
}
}
fclose(fp);
}