欢迎光临散文网 会员登陆 & 注册

c语言学生管理系统

2023-07-24 20:24 作者:韵梦G  | 我要投稿

#include <stdio.h>

#include <stdlib.h>

typedef struct a

{

  int id;

  float chinese;

  float math;

  float english;

  float pingjun;

} stu;

stu a[99];

void mianban()

{

  printf("************************************\n");

  printf(" *  学生成绩管理系统————帮助菜单   \n");

  printf("************************************\n");

  printf(" *   H = 显示帮助菜单       \n");

  printf(" *   T = 成绩录入        \n");

  printf(" *   A = 计算学生平均分      \n");

  printf(" *   L = 列出成绩表        \n");

  printf(" *   P = 按平均成绩由高到低排序   \n");

  printf(" *   S = 按学号查询学生成绩     \n");

  printf(" *   M = 按学号修改学生成绩     \n");

  printf(" *   N = 按学号刪除学生成绩     \n");

  printf(" *   C = 请屏          \n");

  printf(" *   Q = 退出系统         \n");

  printf("************************************\n");

  printf(" * Copyright <c> 2023.07.24 By 姓名 \n");

  printf("************************************\n");

}

void A_T()

{

  int n;

  printf("请输入学生人数:");

  scanf("%d", &n);

  printf("请输入%d名学生的學號和三门课成绩\n", n);

  printf("学号 语文 数学 英语\n");

  for (int i = 0; i < n; i++)

  {

    // a[i].id = i + 1;

    // printf("%d ", a[i].id);

    scanf("%d %f %f %f", &a[i].id, &a[i].chinese, &a[i].math, &a[i].english);

  }

}

void A_A()

{

  int n = 0;

  for (int i = 0; i < 99; i++)

    if (a[i].chinese != '\0')

      n++;

  for (int i = 0; i < n; i++)

  {

    a[i].pingjun = (a[i].chinese + a[i].math + a[i].english) / 3.0;

  }

  printf("平均分已计算。请使用命令L查看\n");

}

void A_L()

{

  int n = 0;

  for (int i = 0; i < 99; i++)

    if (a[i].chinese != '\0')

      n++;

  printf("学生成绩如下:\n");

  printf("学号  语文  数学  外语  平均分\n");

  for (int i = 0; i < n; i++)

  {

    printf("%d\t%0.1f\t%0.1f\t%0.1f\t%0.1f\t\n", a[i].id, a[i].chinese, a[i].math, a[i].english, a[i].pingjun);

  }

}

void A_P()

{

  int n = 0;

  for (int i = 0; i < 99; i++)

    if (a[i].chinese != '\0')

      n++;

  stu temp;

  for (int i = 0; i < n - 1; i++)

  {

    for (int j = 0; j < n - 1 - i; j++)

    {

      if (a[j].pingjun < a[j + 1].pingjun)

      {

        temp = a[j];

        a[j] = a[j + 1];

        a[j + 1] = temp;

      }

    }

  }

  printf("完成排序。请使用命令L查看。\n");

}

void A_S()

{

  int n;

  printf("请输入要查询学生的学号:");

  scanf("%d", &n);

  for (int i = 0; i < 3; i++)

  {

    if (a[i].id == n)

    {

      printf("学号  语文  数学  外语  平均分\n");

      printf("%d\t%0.1f\t%0.1f\t%0.1f\t%0.1f\t\n", a[i].id, a[i].chinese, a[i].math, a[i].english, a[i].pingjun);

    }

  }

}

void A_M()

{

  int m = 0;

  for (int i = 0; i < 99; i++)

    if (a[i].chinese != '\0')

      m++;

  int n;

  printf("请输入要修改学生的学号:");

  scanf("%d", &n);

  printf("语文  数学  外语\n");

  for (int i = 0; i < m; i++)

  {

    if (a[i].id == n)

      scanf("%f %f %f", &a[i].chinese, &a[i].math, &a[i].english);

  }


  printf("完成修改。请使用命令L查看。\n");

}

void A_N()

{

  int m = 0;

  for (int i = 0; i < 99; i++)

    if (a[i].chinese != '\0')

      m++;

  int n;

  printf("请输入要刪除学生的学号:");

  scanf("%d", &n);

  for (int i = 0; i < m; i++)

  {

    if (a[i].id == n)

    {

      for (int j = i; j < m; j++)

        a[j] = a[j + 1];

      break;

    }

  }

  printf("完成刪除。请使用命令L查看。\n");

}

int main(int argc, char const *argv[])

{

  mianban();

  while (1)

  {

    printf("请输入命令= ");

    char ch;

    scanf(" %c", &ch);

    if (ch != 'T')

      printf("成绩表为空!请先使用命令T 录入学生成绩。\n");

    else

    {

      while (1)

      {


        switch (ch)

        {

        case 'H':

          mianban();

          break;

        case 'T':

          A_T();

          break;

        case 'A':

          A_A();

          break;

        case 'L':

          A_L();

          break;

        case 'P':

          A_P();

          break;

        case 'S':

          A_S();

          break;

        case 'M':

          A_M();

          break;

        case 'N':

          A_N();

          break;

        case 'C':

          system("clear");

          break;

        case 'Q':

          exit(0);

          break;

        }

        printf("请输入命令= ");

        scanf(" %c", &ch);

        while (getchar() != '\n')

          ;

      }

    }

  }

  return 0;

}

c语言学生管理系统的评论 (共 条)

分享到微博请遵守国家法律