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

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行