⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xingming.hh.c

📁 C语言成绩管理系统
💻 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 + -