
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 5
/*定义结构体类型student*/
struct student
{
char name[12]; /*姓名*/
int math;
int English;
int c; /*三门课程成绩*/
float personal_avg; /*个人平均成绩*/
char str6[8]; /*个人等级*/
}stud[SIZE];
/*定义结构体类型student3*/
struct student3
{
float math_average; /*高数平均分*/
float English_average; /*英语平均分*/
float c_average; /*c语言平均分*/
float class_average; /*班级平均分*/
char str7[8]; /*班级等级*/
}stud3[SIZE];
void main()
{ FILE*fp;
int i ,s;
float a;
char str1[]="优秀",str2[]="良好",str3[]="中等",str4[]="及格",str5[]="不及格",str6[8],str7[8];
for(i=0;i<SIZE;i++) /*输入学生信息*/
{ printf("请输入第%d个学生的信息:",i+1);
scanf("%s%d%d%d",stud[i].name,&stud[i].math,&stud[i].English,&stud[i].c );
stud[i].personal_avg=(float)(stud[i].c+stud[i].English+stud[i].math)/3.0; /*强制转换*//*计算个人平均分*/
s=stud[i].personal_avg/10; /*用switch语句来判断个人平均分的等级*/
switch(s)
{
case 9:strcpy(stud[i].str6,str1);break; /*用一个strcpy函数把等级复制到str6中*/
case 8:strcpy(stud[i].str6,str2);break;
case 7:strcpy(stud[i].str6,str3);break;
case 6:strcpy(stud[i].str6,str4);break;
default:
strcpy(stud[i].str6,str5);
}
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","w"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1) /*将结构体数组stud1 姓名和三科成绩 个人平均分和等级 保存到文件中*/
printf("file write error\n");
fclose(fp); /*关闭文件*/
}
stud3[0].math_average=(stud[0].math+stud[1].math+stud[2].math+stud[3].math+stud[4].math)/SIZE; /*计算高数平均成绩*/
stud3[0].English_average=(stud[0].English+stud[1].English+stud[2].English+stud[3].English+stud[4].English)/SIZE; /*计算英语平均成绩*/
stud3[0].c_average=(stud[0].c+stud[1].c+stud[2].c+stud[3].c+stud[4].c)/SIZE; /*计算c语言平均成绩*/
stud3[0].class_average=(stud3[0].math_average+stud3[0].English_average+stud3[0].c_average)/3.0; /*计算班级平均成绩*/
s=stud3[0].class_average/10; /*用switch语句来判断班级平均分的等级*/
switch(s)
{
case 9:strcpy(stud3[i].str7,str1);break; /*用一个strcpy函数把等级复制到str7中*/
case 8:strcpy(stud3[i].str7,str2);break;
case 7:strcpy(stud3[i].str7,str3);break;
case 6:strcpy(stud3[i].str7,str4);break;
default:
strcpy(stud3[i].str7,str5);
}
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","w"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
if(fwrite(&stud3,sizeof(struct student3),1,fp)!=1) /*将结构体数组stud3 高数平均分 英语平均分 c语言平均分 班级平均分 班级等级 保存到文件中*/
printf("file write error\n");
fclose(fp); /*关闭文件*/
printf("\n");
printf("\n");
printf("\n");
printf("\t学生成绩表\n");
printf("姓名\t高数\t英语\tc语言\t");
printf("平均分\t等级");
printf("\n");
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","r"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
{fread(&stud[i],sizeof(struct student),1,fp);
printf("%s\t%d\t%d\t%d\t%.1f\t%s",stud[i].name,stud[i].math,stud[i].English,stud[i].c,stud[i].personal_avg,stud[i].str6);
printf("\n");
}
printf("平均分\t");
fread(stud3,sizeof(struct student3),1,fp);
printf("%.1f\t%.1f\t%.1f\t%.1f\t%s",stud3[0].math_average,stud3[0].English_average,stud3[0].c_average,stud3[0].class_average,stud3[0].str7);
system("pause");
}
#include<stdlib.h>
#include<string.h>
#define SIZE 5
/*定义结构体类型student*/
struct student
{
char name[12]; /*姓名*/
int math;
int English;
int c; /*三门课程成绩*/
float personal_avg; /*个人平均成绩*/
char str6[8]; /*个人等级*/
}stud[SIZE];
/*定义结构体类型student3*/
struct student3
{
float math_average; /*高数平均分*/
float English_average; /*英语平均分*/
float c_average; /*c语言平均分*/
float class_average; /*班级平均分*/
char str7[8]; /*班级等级*/
}stud3[SIZE];
void main()
{ FILE*fp;
int i ,s;
float a;
char str1[]="优秀",str2[]="良好",str3[]="中等",str4[]="及格",str5[]="不及格",str6[8],str7[8];
for(i=0;i<SIZE;i++) /*输入学生信息*/
{ printf("请输入第%d个学生的信息:",i+1);
scanf("%s%d%d%d",stud[i].name,&stud[i].math,&stud[i].English,&stud[i].c );
stud[i].personal_avg=(float)(stud[i].c+stud[i].English+stud[i].math)/3.0; /*强制转换*//*计算个人平均分*/
s=stud[i].personal_avg/10; /*用switch语句来判断个人平均分的等级*/
switch(s)
{
case 9:strcpy(stud[i].str6,str1);break; /*用一个strcpy函数把等级复制到str6中*/
case 8:strcpy(stud[i].str6,str2);break;
case 7:strcpy(stud[i].str6,str3);break;
case 6:strcpy(stud[i].str6,str4);break;
default:
strcpy(stud[i].str6,str5);
}
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","w"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1) /*将结构体数组stud1 姓名和三科成绩 个人平均分和等级 保存到文件中*/
printf("file write error\n");
fclose(fp); /*关闭文件*/
}
stud3[0].math_average=(stud[0].math+stud[1].math+stud[2].math+stud[3].math+stud[4].math)/SIZE; /*计算高数平均成绩*/
stud3[0].English_average=(stud[0].English+stud[1].English+stud[2].English+stud[3].English+stud[4].English)/SIZE; /*计算英语平均成绩*/
stud3[0].c_average=(stud[0].c+stud[1].c+stud[2].c+stud[3].c+stud[4].c)/SIZE; /*计算c语言平均成绩*/
stud3[0].class_average=(stud3[0].math_average+stud3[0].English_average+stud3[0].c_average)/3.0; /*计算班级平均成绩*/
s=stud3[0].class_average/10; /*用switch语句来判断班级平均分的等级*/
switch(s)
{
case 9:strcpy(stud3[i].str7,str1);break; /*用一个strcpy函数把等级复制到str7中*/
case 8:strcpy(stud3[i].str7,str2);break;
case 7:strcpy(stud3[i].str7,str3);break;
case 6:strcpy(stud3[i].str7,str4);break;
default:
strcpy(stud3[i].str7,str5);
}
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","w"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
if(fwrite(&stud3,sizeof(struct student3),1,fp)!=1) /*将结构体数组stud3 高数平均分 英语平均分 c语言平均分 班级平均分 班级等级 保存到文件中*/
printf("file write error\n");
fclose(fp); /*关闭文件*/
printf("\n");
printf("\n");
printf("\n");
printf("\t学生成绩表\n");
printf("姓名\t高数\t英语\tc语言\t");
printf("平均分\t等级");
printf("\n");
if((fp=fopen("D:\\实训\\201935010535王国玺\\王国玺F\\Debug\\学生成绩.txt","r"))==NULL) /*打开文件学生成绩.dat*/
{printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
{fread(&stud[i],sizeof(struct student),1,fp);
printf("%s\t%d\t%d\t%d\t%.1f\t%s",stud[i].name,stud[i].math,stud[i].English,stud[i].c,stud[i].personal_avg,stud[i].str6);
printf("\n");
}
printf("平均分\t");
fread(stud3,sizeof(struct student3),1,fp);
printf("%.1f\t%.1f\t%.1f\t%.1f\t%s",stud3[0].math_average,stud3[0].English_average,stud3[0].c_average,stud3[0].class_average,stud3[0].str7);
system("pause");
}
只有本站会员才能查看附件,请 登录
[此贴子已经被作者于2020-6-15 18:03编辑过]