| 
            
            
             
              #include <conio.h> #include <stdio.h> #include <stdlib.h>
  #define FILENAME "studentInfo.dat"
  struct student {     char id[13];     char name[50];     char sex;     int age;     struct     {         float c;         float en;         float math;     } grade; };
  void show_students(void) {     struct student stu;     FILE *fp = fopen(FILENAME, "rb");     system("cls");     if (fp == NULL)     {         puts("文件不存在或打不开!");         getch();         return;     }
      puts("学号\t\t姓名\t性别\t年龄\tC语言\t英语\t高数");     while (fread(&stu, sizeof(stu), 1, fp))         printf("%-16s%-8s%-8c%-8d%-8.1f%-8.1f%-8.1f\n", stu.id, stu.name, stu.sex, stu.age, stu.grade.c, stu.grade.en, stu.grade.math);     fclose(fp);
      getch(); }
  void add_student(void) {     struct student stu;     FILE *fp;
      system("cls");     printf("请输入学号: ");     fflush(stdin);     gets(stu.id);
      printf("请输入姓名: ");     fflush(stdin);     gets(stu.name);          printf("请输入性别(M或F): ");     fflush(stdin);     stu.sex = getchar();
      printf("请输入年龄: ");     scanf("%d", &stu.age);
      printf("请输入C语言成绩: ");     scanf("%f", &stu.grade.c);
      printf("请输入英语成绩: ");     scanf("%f", &stu.grade.en);
      printf("请输入高数成绩: ");     scanf("%f", &stu.grade.math);
      fp = fopen(FILENAME, "ab");     if (fp == NULL)         puts("录入失败, 文件打不开!");     else     {         fwrite(&stu, sizeof(stu), 1, fp);         fclose(fp);         puts("已录入数据!");     }     getch(); }
  int main(void) {     int i = 0;     while (i != 3)     {         system("cls");         printf("1: 查看\n2: 添加\n3: 退出\n请输入: ");         scanf("%d", &i);         switch (i)         {         case 1:             show_students();             break;         case 2:             add_student();             break;         }     }     return 0; }             
                       |