📄 xingming.hh.c
字号:
#include "stdio.h"
#include "string.h"
#include "process.h"
#define SIZE 300
typedef struct stduent
{ char name [20];
int score[4];
}STUDENT;
typedef enum section
{ flilure=2,pass,satisfactory,good,excellent
}SECTION;
typedef enum bool
{ false,ture
}FLAG;
void show_data(STUDENT stu[],int grade[],int sum);
void query(STUDENT stu[],int sum);
void read_data(STUDENT stu[],int sum);
int read_grade(int grade[]);
void main()
{
int sum;
int i;
int grade[7]={0};
STUDENT stu[SIZE];
getch();
read_grade(grade); /*从文件中读grade数组*/
getch(); /*sum为总人数*/
printf("sum=%d",sum);
getch();
read_data(stu,sum);
getch();
show_data(stu,grade,sum);/*输入所有学生的姓名,期中,期末,和总评成绩*/
getch();
query(stu,sum);
getch();
}
void show_data(STUDENT stu[],int grade[],int sum)
{
int i,j;
char name;
char *sub_string[]={" ",",","Failure","Pass","satisfactory","Good","Excellent"};
for(i=0;i<sum;i++) /*输入所有学生的姓名,期中,期末,和总评成绩*/
{
printf("%20s ",stu[i].name);
for(j=0;j<3;j++)
printf("%4d ",stu[i].score[j]);
printf("%s ",sub_string[stu[i].score[3]]);
printf("\n");
}
printf("\nThere are %d students in this class",sum);
/*显示全部学生数*/
for(i=2;i<=6;i++) /*显示分数段人数*/
printf("\nThere are %d students in %s",grade[i],sub_string[i]);
}
void query(STUDENT stu[],int sum)
{
char temp_name[80];
int i;
printf("\nPlease input name of a student that you want to know his score:");
scanf("%s",temp_name); /*输入要查询的学生的姓名*/
for(i=0;i<sum;i++)
{
if (strcpy(stu[i].name,temp_name)==0)
{
printf("%s %d \n",stu[i].name,stu[i].score[2]);
/*查询成功输出总评成绩*/
break; /*跳出循环*/
}
}
if (i==sum) printf("not found\n");
/*查询失败输出失败信息*/
}
void read_data(STUDENT stu[],int sum)
{
int i;
FILE *f;
if ((f=fopen("c:\\STUDENT.dat","rb"))==NULL)
/*打开文件STUDENT.dat */
{ printf("\ncannot open file\n");
exit(1);
}
for(i=0;i<sum;i++)
if (fread(&stu[i],sizeof(STUDENT),1,f)!=1)
/*一次读入一个结构*/
{
printf("fele read erorr\n");
exit(1);
}
getch();
fclose(f);
}
int read_grade(int grade[])
{
int i,sum=0;
FILE *f;
if((f=fopen("c:\\GRADE.dat","rb"))==NULL)
/*打开文件GRADE.dat*/
{ printf("\ncannot open file\n");
exit(1);
}
if(fread(grade,sizeof(int),7,f)!=7)
/*读入数据到grade数组*/
{
printf("file read error\n");
exit(1);
}
for(i=2;i<7;i++) /*计算总人数*/
sum=sum+grade[i];
getch();
fclose(f);
return sum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -