C++计算机课程设计 学生成绩管理系统 研究报告

news2025/1/19 2:56:57
  • 课程设计内容

2.1 学生成绩管理系统

2.1.1 内容

  1. 主菜单模块

该模块主要用来实现整个系统的流程。主界面提供用户选择并调用各个子模块。

  1. 输入模块

当初次使用系统时,学生信息需要从键盘逐个输入。学生信息由学生的学号、姓名、性别、高等数学、英语、计算机和平均成绩等信息构成。

  1. 查询模块

用户可以按照学生的学号或姓名进行查找。若查找到该学生的相关信息记录,则输出相关信息,否则提示未找到。

  1. 更新模块

主要完成对学生信息的维护。包括增加记录、删除记录、修改成绩。当完成更新记录后,需要将修改的数据存入数据文件中。

  1. 排序模块

根据键盘输入的升序或降序选择按平均成绩对学生记录进行排序,并输出排序后的结果。

  1. 统计模块

统计各个分数段的人数及不及格人数。

  1. 输出模块

将学生信息显示在屏幕上,并根据键盘输入的选择,如“是否保存到文件?(Y/N)”,可以将学生信息写入文件中。

  • 技术路线

这是一个综合性很强的课程设计,需要灵活运用本学期学的《C++程序设计基础》中的各种运算、逻辑、函数,如数据类型、常量变量、运算符与表达式、选择控制、循环控制、其他控制、函数调用、参数传递、数组、结构体、字符串、指针、宏、文件读写等等。

主菜单模块是整个程序的主要部分,在main函数中体现,其他模块分别用不同函数体现。

输入模块需要向结构体数组中输入学生有关信息,涉及到不同数据类型,需要在引用和传递中格外注意。

查询模块需要寻找不同学生的特征(学号,因为不会重复)来找到学生,进而输出与该生有关的所有数据,使用循环控制实现。

更新模块需要增加、删除、修改成绩,只需要先确定是哪一个学生,再改变学生成绩这一变量的值即可。要注意的是不要发生数组越界的情况,这也在编程过程中是一个需要注意的问题。

排序模块使用冒泡排序即可。

统计模块使用switch函数可以方便我们将成绩的不同分数段进行有效的分类。

输出模块需要使用学过的文件操作,要注意的是输出的数据一定要对齐显示,中文和字符串不要发生让系统崩溃的情况。

各个函数和变量、输入与输出之间的完美结合是这个课程设计的重中之重,只有经过不断的调试和运行,才能清除所有bug和程序崩溃、数组越界、结果错误的情况,达到成功的目标。

整个程序使用C++语言完成。

另外,在必须完成的任务之外,我的程序还有以下4个创新亮点:

1.随着IT行业的发展,对外开放和多种操作系统语言的适应成为了程序的重要功能。在刚刚打开程序时,会弹出选择语言的提示,有中文和英文两种系统语言可以选择,两种语言的功能和提示意义是完全相同的。

2.在日常生活中,我们经常可以看到各种软件和网页在使用时,为了防止外挂导致程序错误和服务器崩溃等情况,通常会让用户以不同的方式验证身份,如输入图片上的随机数、鼠标拖动滑块、选择图片上的物品等。在这个程序中,我在欢迎使用页面增加了验证码模块。本程序一共支持4种不同的验证方式,使用随机函数实现,分别是输入一个随机四位数、输入4个随机整数中的偶数、回答一道简单的计算题以及输入一个大写字母后面紧接的字母(如提示D输入E,提示U输入V)。

3.程序会让用户输入一个用户名,这个名字会在最后的文件中以“操作员:XXX”的形式体现。

4.在输出到文件时,文件中除了会整齐、正确地显示所有学生的信息和操作员名称,还会显示一个当前的系统时间,格式如“2018-01-02 10:11:12”。

  • 测试结果

为了保证打印质量,.exe文件运行界面使用Photoshop进行了黑白颠倒处理。

  • 系统使用说明

1.请在Windows或Mac OS下运行.exe程序,在版本高于或等于Visual C++ 6.0的编译环境中运行.cpp程序。

2.输入姓名时,请不要输入过长的姓名(如Professor Name Surname The Expert),以免出现输出格式不整齐的问题。

3.第一次使用程序时,务必先输入至少1个学生的信息,以免发生计算空值的错误。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt基于CTK Plugin Framework搭建插件框架--CTK服务工厂

一、前言 注册服务的时候能够用服务工厂来注册; 访问服务getServeice中的plugin参数是执行ctkPluginContext::getService(const ctkServiceReference&)的插件,从而工厂根据执行的不同插件名称返回不同的服务实现 服务工厂的作用 在服务中可以知道…

达摩院2023十大科技趋势发布,生成式AI将进入应用爆发期

1月11日,达摩院2023十大科技趋势发布,生成式AI、Chiplet模块化设计封装、全新云计算体系架构等技术入选。达摩院认为,全球科技日趋显现出交叉融合发展的新态势,尤其在信息与通信技术(ICT)领域酝酿的新裂变&…

【关于Linux中----进程间通信方式之管道】

文章目录一、什么是管道二、匿名管道三、命名管道一、什么是管道 进程间通信主要目的为以下几点 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息…

STL forward_list 模拟实现

forward_list 概述 forward_list 是 C 11 新增的容器,它的实现为单链表。 forward_list 是支持从容器中的任何位置快速插入和移除元素的容器,不支持快速随机访问。forward_list 和 list 的主要区别在于,前者的迭代器属于单向的 Forward Ite…

二分法讲解

目录 一、前言 二、二分法理论 1、引导:猜数游戏 2、理论背景:非线性方程的求根问题 1)非线性方程的近似解 2)搜索法和二分法 3、用二分的两个条件 4、二分法复杂度 三、整数二分 1、在单调递增序列中找 x 或者 x 的后继…

使用python-pptx创建PPT演示文档功能实践

python对PPT演示文档读写,是通过第三方库python-pptx实现的,python-pptx是用于创建和更新 PowerPoint(.pptx)文件的 Python 库。 关于PPT演示文档与幻灯片模板的内容不是本文的重点,在此略过。 1. PPT基本结构在pyth…

Sophus降维、升维与欧拉角、旋转向量的爱恨情仇

0. 简介 在面对二维与三维之间的转换时,我们常常会困惑该如何去转换,在G2O中存在有理想的坐标转换工具,但是在Sophus中却缺乏这样的手段。之前在Sophus处简要的介绍了一下SE(2)与SE(3)的转换,最近发现之前的文章这部分需要拿出来…

Leetcode:654. 最大二叉树(C++)

目录 问题描述: 实现代码与解析: 直接模拟(递归): 原理思路: 索引版本: 问题描述: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&a…

Thymeleaf从入门到清晰使用

文章目录什么是thymeleaf?第一个Thymeleaf程序Thymeleaf详解配置常用标签最后什么是thymeleaf? 模板引擎: 前端交给我们的页面,是html页面,如果是以前开发,我们需要把他们转成jsp页面,jsp的好处…

ABB AC500 系列 PLC 与上位机iFix 的通讯配置

ABB PLC IP 及 MODBUS TCP/IP 协议设置 通过 IP config tool 配置设备 IP 在 软件中,有 3 种方式可以进入 IP config tool 的配置界面  双击 IP_settings,点击 IP config tool,即可进入 IP config tool 界面 点击菜单栏的 Tool→IP confi…

k8s 微服务spring boot JVM 监控

目录 1.前言 1.1 JVM监控方案 1.2 接入操作步骤 2. 服务开启actuator prometheus监控 2.1 示例参考添加依赖 2.2 配置prometheus监控 3 配置 prometheus 监控 4 配置jvm grafana dashboard 1.前言 服务 部署环境 监控 spring-demo k8s v1.22 Prometheus Operator …

进程相关概念

1、什么是程序,什么是进程,有什么区别 程序是静态的概念。例如:gcc xxx.c -o pro,磁盘中生成pro文件,叫做程序(还未运行起来) 进程是程序的一次运行活动,也就是程序跑起来了&#xf…

【Linux】信号机制(非实时信号)

目录 前言 一.信号的概念以及产生 1.什么是信号 2.信号分为两类 3.查看信号的命令 4.信号如何产生 1).通过软件产生 2).通过硬件产生 3).通过键盘组合键产生 二.信号的发送以及保存 1.信号如何发送 2.信号如何保存 1).概念 2).底层实现结构&&内核中的实现…

WampServer服务器设置控件

WampServer服务器设置控件 WampServer是一个web开发环境,是一个用于Windows操作系统的类似服务器的软件,由Romain Bourdon构建。该工具允许您开始构建web应用程序,并在Windows上使用Apache服务器2、PHP编程语言和MySQL数据库在本地网络上启动…

java 实现 springboot项目 使用socket推送消息,前端实时进行接收后端推送的消息

1 后端 1.1 添加依赖 在我们的springboot项目里面&#xff0c;添加依赖&#xff1b; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.0</version>…

企业微信在职继承功能如何理解?怎么使用?

企业微信的在职继承功能就是企业管理员将在职员工的客户分配给其他在职员工跟进的一种方式&#xff0c;很方便&#xff0c;可以在工作出现变更时使用。 前言 企业微信之前的离职继承功能受到很多企业的青睐&#xff0c;企业能够将离职员工的客户分配给其他员工接手&#xff0c…

云天励飞在科创板获准注册:计划募资30亿元,陈宁为实际控制人

2023年1月10日&#xff0c;证监会发布公告&#xff0c;同意深圳云天励飞技术股份有限公司&#xff08;下称“云天励飞”&#xff09;首次公开发行股票注册。据贝多财经了解&#xff0c;云天励飞于2020年12月8日在科创板递交上市申请&#xff0c;2021年8月6日过会。 本次冲刺上市…

蓝队攻击的四个阶段(一)

蓝队的攻击是一项系统的工作&#xff0c;整个攻击过程是有章可循、科学合理的涵盖了从前期准备、攻击实施到靶标控制的各个步骤和环节。按照任务进度划分&#xff0c;一般可以将蓝队的工作分为4个阶段:准备工作、目标网情搜集、外网络向突破和内网横向拓展。第一阶段准备工作&a…

App开发提效法宝之插件技术

近年来技术革新频率越来越高&#xff0c;最近工作中经常有小伙伴问到插件技术的相关内容&#xff0c;今天就来跟大家系统的说清楚什么是插件技术以及它的好处。欢迎评论区交流哦&#xff01; 什么是插件技术&#xff1f; 插件技术指的是一种应用程序&#xff0c;遵循程序接口…

高温热水解预处理对厌氧消化期间污泥腐殖化的调控机制

期刊&#xff1a;Water Research 影响因子&#xff1a;9.13 发表时间&#xff1a;2022样本类型&#xff1a;污泥客户单位&#xff1a;同济大学凌恩生物客户同济大学发表在《Water Research》上的文章“The neglected effects of polysaccharide transformation on sludge humif…