2022年大作业参考报告-使用C++语言开发小学生成绩管理系统、中学生成绩管理系统、大学生成绩管理系统【240621更新】

本文主要是介绍2022年大作业参考报告-使用C++语言开发小学生成绩管理系统、中学生成绩管理系统、大学生成绩管理系统【240621更新】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:

目录

第一章 需求分析    2
1.1    问题描述    2
6.1    功能需求    2
6.2    开发环境    2
6.3    开发过程    2
第二章 概要设计    3
2.1    总体设计    3
2.2    类的定义    3
2.3    接口设计    5
2.4    运行界面设计    6
第三章 详细设计    7
3.1    输入模块设计    7
3.2    查找、编辑模块设计    8
3.3    删除模块设计    8
3.4    文件读写模块设计    9
3.5    显示(含排序)模块设计    10
第四章  测试分析    12
4.1    测试程序执行情况    12
第六章 课程设计总结    13
附录:程序代码    13

第一章 需求分析

1.1问题描述
2学生信息包括:学号、姓名、性别、年龄、班级等信息。
3小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。
4中学生除了包括小学生所有信息外,还包括地理、历史成绩。
5大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数学等课程。
6设计一程序能够对学生成绩进行管理。

6.1功能需求
(1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
(9)排序功能:可按总分和单科成绩排名次。

6.2开发环境
Code::Blocks是一个免费、开源、跨平台的集成开发环境,使用C++开发,并且使用wxWidgets做为GUI函式库。Code::Blocks使用了外挂程式架构,其功能可以使用外挂程式自由地扩充。目前,Code::Blocks主要针对开发C/C++程式而设计。Code::Blocks目前支援Windows、Linux及Mac OS X数种平台,能够在FreeBSD环境中架设Code::Blocks。
6.3开发过程
第一天  选择课程设计题目,分析课题的要求
第二天  编程
第三天  编程及调试
第四天  写课程设计报告
第五天  提交课程设计报告

第二章概要设计

2.1总体设计

根据需求分析,由于学生种类包括小学生、中学生、大学生,所以设计了三个类(Ele_Student_System /Senior_Student_System /Uni_Student_System),用于封装不同种类的学生信息与成员函数。
其主要功能模块有:
(1)键盘输入
(2)屏幕输出
(3)文件读取
(4)文件写入
(5)统计
(6)排序
(7)编辑
(8)删除
各功能模块的调用应通过菜单进行选取。
为了让程序看起来更简洁明了,一级菜单。

2.2类的定义
由于小学生、中学生、大学生三种不同分类的信息组需要用到的函数大同小异,所以中学生类和大学生类是在小学生类的基础上进行添加与修改的。
    
类定义以小学生类为例展示:

11  class Ele_Student_System

 12  {

 13    private:

 14  

 15    int number;

 16    string name;

 17    int age;

 18    string sex;

 19    string class_info;

 20  

 21    float English;

 22    float Math;

 23    float Chinese;

 24    float Total;

 25  

 26    public:

 27  

 28    //Ele_Student_System();

 29    void Recording();

 30    float Counting_English( int Amount );

 31    float Counting_Math( int Amount );

 32    float Counting_Chinese( int Amount );

 33    void Writting();

 34    void Reading();

 35  

 36    void Sorting_English( int Amount );

 37    void Sorting_Total( int Amount );

 38    void Sorting_Math( int Amount );

 39    void Sorting_Chinese( int Amount );

 40  

 41    void Showing_All();

 42    void Removing();

 43    void Searching( string name, int Amount );

 44    void Searching( int number, int Amount );

 45    void Modifing ( int i );

 46  

 47  };

 48  

 49  Ele_Student_System Student[101];

2.3接口设计 

2.4运行界面设计

第三章 详细设计

3.1输入模块设计

55  void Ele_Student_System :: Recording()

 56  {

 57    int n = Ele_Amount;

 58    char Choice = 'Y';

 59    while ( Choice == 'Y' )

 60    {

 61      cout << " 输入å¦å·: ";

 62      cin >> Student[n].number;

 63      int i = 0;

 64      for ( i=0; i<Ele_Amount; i++ )

 65      {

 66        if ( Student[i].number == Student[n].number )

 67        {

 68          cout << " æ¤å¦å·å·²å˜åœ¨!" << endl;

 69          goto End;

 70        }

 71        else continue;

 72      }

 73      cout << " 输入姓å: " ;

 74      cin >> Student[n].name;

 75      cout << " 输入年龄: " ;

 76      cin >> Student[n].age;

 77      cout << " 输入性别: " ;

 78      cin >> Student[n].sex;

 79      cout << " 输入ç级: " ;

 80      cin >> Student[n].class_info;

 81      cout << " 英è¯æˆç»©: " ;

 82      cin >> Student[n].English;

 83      cout << " æ•°å¦æˆç»©: " ;

 84      cin >> Student[n].Math;

 85      cout << " è¯æ–‡æˆç»©: " ;

 86      cin >> Student[n].Chinese;

 87      Student[n].Total = Student[n].English + Student[n].Math + Student[n].Chinese;

 88      cout << " 总æˆç»©:   " << Student[n].Total << endl;

 89      n++;

 90      Ele_Amount++;

 91      Ele_Surplus--;

 92      End: cout << '\n' << " 继ç»è¾“å…¥æ–°çºªå½•å— ? (Y/N) :      " ;

 93      cin >> Choice ;

 94    }

 95    cout << " [ Finished ] " << endl;

 96  }

3.2查找、编辑模块设计

284  void Ele_Student_System :: Searching ( string name, int Amount )

285  {

286    int i = 0;

287    int Result = 0;

288    for ( i=0; i<Amount; i++ )

289    {

290      if ( name == Student[i].name )

291      {

292        cout << " 查找到记录: " << Student[i].number << "  " << Student[i].name << "  " << Student[i].age << " " << Student[i].sex << " " << Student[i].class_info << " " << Student[i].English << " " << Student[i].Math << " " << Student[i].Chinese << endl;

293        Result = 1;

294        cout << " 进行修改å—? Y/N :    ";

295        char Modification='N';

296        cin >> Modification;

297        if ( Modification=='Y' ){ Modifing( i );}

298        break;

299      }

300      else continue;

301    }

302    if ( Result == 1 ) {cout << " [ Finished ] " << endl;}

303    else  {cout << " [ The record not exist! ]" << endl;}

304  }

305  

……..
添加其它模块

第四章  测试分析

4.1测试程序执行情况

再添加各种测试截图


第六章课程设计总结

这学期通过学习C++,对C语言和C++语言都有了更深刻的认识,也学习到了面向对象程序设计的思想与方法。
C++主要在类、对象以及一些stream上有了扩充,这使得它更加能够适应各种编程需要,但是也是难度提升的一些知识点,我在编写类这块内容时,有时自己思路结构不清晰的话写出来的东西报错就很严重。。。。。。。。。。。。。。。。。


附录:程序代码

过程:

Dev-C++使用C++语言开发

系统包含小/中/大学生成绩管理三个子系统,此处以小学生成绩管理系统举例

小学生成绩管理系统主界面

插入学生信息

显示所有学生信息

根据姓名查询学生信息

通过学号查询学生信息

通过数学成绩排序

通过英语成绩排序

通过语文成绩排序

统计学生成绩

通过学号修改学生记录

删除学生记录

源码、报告获取

欢迎大家点赞、收藏、关注、评论、批评啦 、查看👇🏻👇🏻获取联系方式👇🏻👇🏻

这篇关于2022年大作业参考报告-使用C++语言开发小学生成绩管理系统、中学生成绩管理系统、大学生成绩管理系统【240621更新】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1084759

相关文章

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下: