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

本文详细介绍了基于C语言开发的学生成绩管理系统,涵盖了系统的主要功能,包括学生信息的录入、输出、查询、增加、修改、删除及成绩排序等。系统采用Visual Studio 2019作为开发工具,数据存储在txt文件中,便于操作和查询。通过这个项目,可以深入理解和应用C语言的文件操作、指针、结构体和函数等核心概念。
摘要由CSDN通过智能技术生成

一、前言

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

在各类学校中,学生成绩管理都是一个非常重要的问题,传统的成绩管理记录和保存都非常困难,而
且容易出错,查询也非常不方便。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在这里插入图片描述

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

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

学生成绩管理系统项目使用Visual Studio 2019作为开发工具。
在这里插入图片描述

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

  1. 打开VS2019,选择语言为C++,所属平台为Windows,项目类型为控制台项目,并选择空项目,如下图所示
    在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  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. 退出系统

所以学生成绩管理系统的主要流程图如下所示
在这里插入图片描述

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;
}

调试结果如下所示

在这里插入图片描述

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时,就可以退出系统了

调试结果如下所示

在这里插入图片描述

5.4、学生成绩管理系统的录入功能模块

  • 学生成绩管理系统的录入功能是实现学生信息录入的功能
  • 采用文件存储方式
  • 将学生数据存储与文件中
  • 可以方便使用学生的信息
  • 录入的功能是系统运行时,第一步要进行的操作
  • 本系统的录入功能是实现系统初始化登入时,将学生的信息录入文件中的功能。

在头文件中定义学生结构体的代码如下

#include <string.h>

#define SIZE 10000

typedef struct  tagStudent
{
   
	int n;                    /*顺序号*/

	int sNum;                 /*学号*/
	char sName[10];            /*姓名*/

	int sCn;                  /*语文成绩*/
	int sMaths;               /*数学成绩*/
	int sEn;                  /*英语成绩*/
	int sPhy;                 /*物理成绩*/
	int sCom;                 /*计算机成绩*/

	double sAvage;             /*平均成绩*/
} Student, *pStudent;

Student stu[SIZE];

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

// 录入信息功能
void stuInput()
{
   
    int i;      // 定义变量
    FILE* fp;   // 定义文件指针

    fp = fopen("studentfile.txt", "wb");        // 打开二进制文件

    while(1)
    {
   
        printf("\n\r请输入序号i(当输入i=-1时,返回), i = ");        

        scanf("%d", &i);        // 输入学生的序号

        if
  • 41
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 37
    评论
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程爱好者-阿新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值