基于C语言学生成绩管理系统的设计与开发(上)

简介: 基于C语言学生成绩管理系统的设计与开发(上)

一、前言


  • 学生成绩管理系统的开发与设计的背景


在各类学校中,学生成绩管理都是一个非常重要的问题,传统的成绩管理记录和保存都非常困难,而

且容易出错,查询也非常不方便。


因此,在当今信息时代,学生成绩管理系统应运而生。它主要提供学生资料的输入、输出、查询、删除以及学生信息的排序等功能。


本文基于C语言来开发和设计出写学生成绩管理系统程序,来达到学习C语言之后的综和的实际应用。


二、学生成绩管理系统的主要功能介绍


  • 本系统基于C语言的应用,该系统要实现的功能主要有学生信息的增加、修改、查询、保存和排序等,具体如下。


1、主要功能显示菜单,并有选择提示,可以根据提示输入不同字符以选择相应功能。


2、建立学生信息数据,包括学号,姓名,5门课(语文、数学、英语、物理和计算机)的成绩。


3、能实现学生信息的增加、删除。


4、统计每个学生的平均成绩。


5、按照平均分从大到小排序输出信息。


6、任意输入一个学号,能够查出该学生的相关信息。


7、学生的信息可以保存在txt文件中


三、学生成绩管理系统的主要功能结构图


  • 学生成绩管理系统整采用函数封装具体功能的办法。


将学生成绩管理系统的整体功能,划分为几个具体的模块。


各个模块实现相应的功能。

最后将各个的模块功能的函数,在主函数中调用即可实现学生成绩管理系统 的功能。


  • 学生成绩管理系统的各个模块如下图所示。


1795ddd285e648c0a5ae8059e34e6d8b.png


四、学生成绩管理系统的开发工具以及创建项目的过程


4.1、学生成绩管理系统的开发工具


学生成绩管理系统项目使用Visual Studio 2019作为开发工具。



8d57ce27e8fa4c6abedf273dd74a37fe.png


4.2、学生成绩管理系统项目创建的过程


  1. 打开VS2019,选择语言为C++,所属平台为Windows,项目类型为控制台项目,并选择空项目,如下图所示



bd6194d4f03b47a482dacb8172140a36.png


  1. 然后输入项目的名称和选择项目的路径如下图所示



69369e071ff94708bb2c7bc58c869b1b.png


  1. 创建好项目后,向项目中添加头文件和源文件如下所示


ccf007f443a04f35956cbe3b75bacda8.png


  1. 编写相关的代码如下
  • Student.h头文件代码
#ifndef STUDENT_H
#define STUDENT_H
#include <stdio.h>
#include <stdlib.h>
#endif


  • Student.c源文件代码
#include "Student.h"
int main()
{
  system("color 3E");
  system("pause");
  return 0;
}


五、学生成绩管理系统的设计与开发的步骤

5.1、学生成绩管理系统的主要程序流程图


学生成绩管理系统

主要功能如下


  1. 录入信息
  2. 输出信息
  3. 增加信息
  4. 查询信息
  5. 修改信息
  6. 输出信息
  7. 成绩排序
  8. 退出系统

所以学生成绩管理系统的主要流程图如下所示



eee4d294368c49ccbccca6b956123104.png


5.2、学生成绩管理系统的主菜单设计模块


  • 主菜单功能是起到提供给用户选择相应功能的提示的作用
  • 主菜单模块用来实现学生信息管理系统的主界面。
  • 主要完成的功能有主菜单显示、主菜单选项的输入选择、不同功能模块的调用,从而达到用户与该系统交互的目的。


学生成绩管理系统的主菜单设计模块的代码如下


// 菜单功能
void stuMenu()
{
    printf("********************************************\n");
    printf("*                                          *\n");
    printf("*             学生信息管理系统             *\n");
    printf("*                  主菜单                  *\n");
    printf("*                                          *\n");
    printf("*                1:录入信息                *\n");
    printf("*                                          *\n");
    printf("*                2:输出信息                *\n");
    printf("*                                          *\n");
    printf("*                3:增加信息                *\n");
    printf("*                                          *\n");
    printf("*                4:查询信息                *\n");
    printf("*                                          *\n");
    printf("*                5:修改信息                *\n");
    printf("*                                          *\n");
    printf("*                6:删除信息                *\n");
    printf("*                                          *\n");
    printf("*                7:成绩排序                *\n");
    printf("*                                          *\n");
    printf("*                0:退出系统                *\n");
    printf("*                                          *\n");
    printf("********************************************\n");
}


在主函数中调用主菜单显示函数


int main()
{
  system("color 3E");
    while (1)
    {
        stuMenu();          // 主菜单
        break;
    }
  system("pause");
  return 0;
}

调试结果如下所示


4810be2ba81342de8a1dca3a3fbeab94.png


5.3、学生成绩管理系统的退出功能模块


  • 学生成绩管理系统的退出功能模块主要是实现系统退出
  • 当用户更加主菜单的提示选择退出系统时,会退出学生成绩管理系统


学生成绩管理系统的退出功能模块的代码如下


// 退出功能
void stuSystemQiut()
{
    printf("***********************************************************************\n");
    printf("*                                                                     *\n");
    printf("*                           欢迎在一次使用                            *\n");
    printf("*                               退出!                                 *\n");
    printf("*                                                                     *\n");
    printf("***********************************************************************\n");
}


  • 在主函数中定义一个select变量
  • 该变量提供给用户进行选择的存储功能选择。
  • 在主函数中使用while循环、Switch选择功能来实现系统的功能

主函数中while循环、Switch选择功能来实现系统的功能的代码如下所示


int main()
{
  system("color 3E");
    int select = 0;
    while (1)
    {
        stuMenu();          // 主菜单
        printf("请输入选择项(0-7):");
        scanf("%d", &select);
        printf("\n");
        if (select > 0 && select < 8)
        {
            switch (select)
            {
            case 1: stuInput();       break;               // 录入信息
            case 2:        break;               // 输出信息
            case 3:      break;                 // 增加信息
            case 4:      break;                 // 查询信息
            case 5:          break;             // 修改信息
            case 6:       break;                // 删除信息
            case 7:        break;               // 成绩排序
            }
        }
        else if (select == 0)
        {
            stuSystemQiut();                    // 系统退出功能
            break;
        }
        else
        {
            printf("输入有误, 请重新输入!!!\n");
            system("pause");
            system("cls");
        }
    }
  system("pause");
  return 0;
}


可以看到,在系统运行的时候,当用户输入0时,就可以退出系统了

调试结果如下所示


9ee8b884d53043a3aa26fa09eaf6eb67.png

相关文章
|
22天前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
4天前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
18天前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
|
1月前
|
C语言
大学生期末C语言实验(学生成绩和鞍点)
大学生期末C语言实验(学生成绩和鞍点)
180 0
大学生期末C语言实验(学生成绩和鞍点)
|
1月前
|
存储 编译器 C语言
【C语言】学生管理系统:完整模拟与实现(一)
【C语言】学生管理系统:完整模拟与实现
|
2月前
|
存储 传感器 物联网
结合物联网开发探讨C语言的变量
在物联网(IoT)开发中,C语言的变量起着至关重要的作用。由于物联网设备资源有限,C语言的高效性和对硬件的直接控制使其成为开发嵌入式系统的首选。
|
1月前
|
存储 C语言
手把手教你用C语言实现通讯录管理系统
手把手教你用C语言实现通讯录管理系统
|
1月前
|
测试技术 C语言
【C语言】学生管理系统:完整模拟与实现(三)
【C语言】学生管理系统:完整模拟与实现
|
1月前
|
C语言
【C语言】学生管理系统:完整模拟与实现(二)
【C语言】学生管理系统:完整模拟与实现
|
3月前
|
数据采集 自动驾驶 算法
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
98 0