C语言实训——学生成绩管理系统(dos)

C语言实训——学生成绩管理系统(dos)

焦虑烧麦 60 2022-12-08

写在前面

《程序设计开发实训》作为独立的教学环节,是计算机类相关专业实践性环节系列之一。其目的在于加深对C程序设计与开发等相关知识和技能的理解和巩固。要求学生熟悉C程序设计的一般方法和步骤,能使用C语言开发dos界面、处理文件,具备初步的软件开发编程能力,从中提高学生分析问题、解决问题的实际能力,培养学生的专项技能、职业素养和团队协作精神。

开发环境

  • 操作系统:Windows 11 Pro
  • 编译器:CLion 2022.2.3
  • 开发语言:C

功能需求

  1. 编写一个学生信息管理系统。
  2. 在编写的系统中能实现:录入、查询、删除、修改、排序、统计学生信息。
  3. 学生的信息包括:学号、姓名、班级、性别、英语成绩,C语言成绩,平均成绩,总成绩
  4. 避免系统bug的出现,优化系统。
  5. 系统使用结构化程序设计

功能说明

  1. 录入学生信息:将学生的信息输入到学生信息管理系统中。
  2. 删除学生信息:将学生信息管理系统中不需要的学生信息删除。
  3. 修改学生信息:在学生信息管理系统中修改学生的部分信息。
  4. 查询学生信息:在学生信息管理系统中输入需求显示查询结果。
  5. 显示学生信息:在学生信息管理系统中按需求显示所有学生信息。
  6. 排序学生信息:按一定规律对学生信息进行排序。
  7. 显示最好成绩:显示所有学生中总成绩最高的同学。
  8. 分组统计成绩:按照总成绩进行分组统计。
  9. 清屏:清除以上操作结果。

程序结构

首先我们将程序的框架建立起来,根据功能需求我们大致需要以下的功能函数:

  1. void menu()
  2. void create()
  3. void delete()
  4. void update()
  5. void select()
  6. void print()
  7. void sort()
  8. void max()
  9. void grouping()
  10. void clear()

整体结构

首先将系统主要功能框架建立出来,先不编写功能代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 将结构体 student 的大小定义为符号常量 LEN。
#define LEN sizeof(struct student)


// 学生信息结构体
struct student
{
    int num;            // 学号
    char name[20];      // 姓名
    char clas[20];      // 班级
    char sex[5];        // 性别
    float englishScore; // 英语成绩
    float mathScore;    // 数学成绩
    float chineseScore; // 语文成绩
    float total;        // 总成绩
    float aver;         // 平均成绩
};

struct student stu[50];

//MainMethod
int main() 
{
    //函数调用声明
    void menu();
    void create();
    void delete();
    void update();
    void select();
    void print();
    void sort();
    void max();
    void grouping();
    void clear();

    menu();
    int n;
    // 打印菜单栏
    print("请选择功能(1-9):\n");
    scanf("%d",&n);

    while(n)
    {
        if (n>=1 && n<=9)
        {
            /* code */
            switch(n)
            {
                case 1: create();break;
                case 2: delete();break;
                case 3: update();break;
                case 4: select();break;
                case 5: print();break;
                case 6: sort();break;
                case 7: max();break;
                case 8: grouping();break;
                case 9: clear();break;
            }
            if (n == 9)
            {
                /* code */
                menu();
            }
            print("\n");
            print("请选择功能(1-9):");
            scanf("%d", &n);
        }

        else
        {
            printf("\n"); 
            printf("请重新输入:");
            scanf("%d",&n);
        }
    }

    return 0;
}

//主菜单
void menu()
{
    printf("\n\n\n");
     printf("\t\t-------------------------------------------------\n");
     printf("\t\t||              ----------------               ||\n"); 
     printf("\t\t||**************学生信息管理系统***************||\n");
     printf("\t\t||              ----------------               ||\n");
     printf("\t\t||                                             ||\n");
     printf("\t\t||~~~~~~~~~~~~~~~1.录入学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~2.删除学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~3.修改学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~4.查询学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~5.显示学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~6.排序学生信息~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~7.显示最好成绩~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~8.分组统计成绩~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||~~~~~~~~~~~~~~~9.~~~~~清屏~~~~~~~~~~~~~~~~~~~||\n");
     printf("\t\t||                                             ||\n");
     printf("\t\t||*********************************************||\n");
}


//输入学生信息
void create()
{

}

//删除学生信息
void delete()
{

}


//更新学生信息
void update()
{

}


//选择学生信息
void select()
{

}


//显示所有学生信息
void print()
{

}


//排序学生生信息
void sort()
{

}


//最高成绩
void max()
{

}


//分组统计
void grouping()
{

}


//清除
void clear()
{

}

功能代码编写

这里开始根据功能需求编写代码;实现录入、查询、删除、修改、排序、统计学生信息函数的主体逻辑代码。

录入学生信息

将学生的信息输入到学生信息管理系统中,并保存到文件中。


删除学生信息


修改学生信息


查询学生信息


显示学生信息


排序学生信息


显示最高成绩


分组统计成绩


清屏


源代码