【C语言期末】基于VS2022的学生成绩管理系统(2)

诚接计算机专业编程任务(C语言、C++、Python、Java、HTML、JavaScript、Vue等)10/15R,如有需要请私信我,或者加我的企鹅号:1404293476

本文资源:https://download.csdn.net/download/weixin_47040861/88737450


1.题目要求

设计题目:学生成绩管理系统

〔问题描述〕学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。本项目是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:

  1. 输入学生数据;
  2. 输出学生数据;
  3. 学生数据查询;
  4. 修改学生数据;
  5. 删除学生数据。

〔基本要求〕本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除、排序等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。学生的考试成绩必须通过键盘输入,且需对输出进行格式控制。

2.实现效果

1.菜单

2.添加功能

3.显示功能

4.查询功能

5.修改功能

6.删除功能

7.排序功能

3.实现思路

1.添加函数:inputStudentData()

这个函数是为了方便用户录入学生信息而设计的。当我调用这个函数时,首先会看到一条提示信息,要求我输入学生的信息。接着,我需要提供学生的学号,函数会检查是否已存在相同学号的学生。如果存在,会输出错误信息,要求重新输入。然后,我需要输入学生的姓名、语文成绩、数学成绩和英语成绩。函数会自动计算总成绩,并将新的学生数据添加到学生信息数组中。最后,函数会输出添加成功的提示信息,并暂停程序执行,等待用户按下任意键继续。这个函数的设计旨在简化学生信息的录入过程,确保数据的准确性和唯一性。

2.删除函数:deleteStudentData

这个函数实现了删除学生信息的功能。当调用这个函数时,首先会检查传递给它的参数是否有效,包括学生信息数组 Info 和数组长度 len。接着,函数会要求用户输入要删除的学生信息的学号。

然后,函数会遍历学生数组,查找具有与用户输入学号相匹配的学生信息。如果找到匹配的学生,函数会输出该学生删除前的信息,包括学号、姓名、语文成绩、数学成绩、英语成绩和总成绩。随后,函数会通过将数组中的元素向前移动一个位置,实现删除该学生的信息,并更新数组长度。

如果未找到匹配的学生,函数会输出相应的提示信息。

最后,函数会暂停程序的执行,等待用户按下任意键继续。这个函数的设计目的是提供一种方便的方式,允许用户通过学号定位到要删除的学生信息,并执行删除操作。

3.修改函数:modifyStudentData

这个函数是一个用于修改学生信息的功能。当调用这个函数时,首先会检查传递给它的参数是否有效,包括学生信息数组 Info 和数组长度 len。接着,函数会要求用户输入要修改的学生信息的学号。

然后,函数会遍历学生数组,查找具有与用户输入学号相匹配的学生信息。如果找到匹配的学生,函数会调用 inputStudentData 函数,将修改后的学生信息输入到数组中。这样,实际上是通过重新输入新的学生信息来实现修改操作。

如果未找到匹配的学生,函数会输出相应的提示信息。

最后,函数会暂停程序的执行,等待用户按下任意键继续。这个函数的设计目的是提供一种方便的方式,允许用户通过学号定位到要修改的学生信息,并用新的信息进行更新。

4.查询函数:searchStudentData

这个函数实现了对学生数据的查询功能。调用这个函数时,首先会检查传递给它的参数是否有效,包括学生信息数组 Info 和数组长度 len。接着,函数会调用 searchShow 函数,显示查询选项的信息,让用户选择查询的项。用户输入要查询的编号后,函数会根据不同的查询项(学号、姓名、语文成绩、数学成绩、英语成绩、总成绩)接收用户输入的具体查询值。

然后,函数会遍历学生数组,根据用户选择的查询项进行匹配。如果找到符合条件的学生,函数会输出该学生的详细信息,包括学号、姓名、语文成绩、数学成绩、英语成绩和总成绩。如果未找到符合条件的学生,函数会输出提示信息。

最后,函数会暂停程序的执行,等待用户按下任意键继续。这个函数的设计旨在提供用户友好的学生信息查询功能,允许用户通过不同的查询项查找特定学生的信息。

5.排序函数:sort_info

这一段包含两个函数,一个是 swap 函数,用于交换两个学生信息结构体的内容;另一个是 sort_info 函数,用于根据用户选择的成绩项对学生信息进行排序。

swap 函数

swap 函数实现了两个学生信息结构体的内容交换,它通过引用传递两个结构体指针,将结构体内容进行交换。

sort_info 函数

sort_info 函数根据用户选择的成绩项(语文、数学、英语、总分),使用冒泡排序算法对学生信息进行排序。根据不同的成绩项,调用 swap 函数进行结构体内容的交换。最后,输出排序后的学生信息。

这样的设计使得用户能够选择不同的成绩项进行排序,提供了一种灵活的排序功能。

6.显示函数:outputStudentData

这个函数实现了输出学生信息的功能。当调用这个函数时,它首先检查传递给它的参数是否有效,包括学生信息数组 Info 和数组长度 len。然后,函数会输出表头,包括学号、姓名、语文、数学、英语和总成绩的标题。接下来,它通过循环遍历学生信息数组,逐行输出每个学生的具体信息,包括学号、姓名、语文成绩、数学成绩、英语成绩和总成绩。最后,函数会暂停程序的执行,等待用户按下任意键继续。这个函数的设计目的是清晰地展示整个学生信息,方便用户查看和分析。

相关推荐
椒颜皮皮虾྅1 小时前
让文档不止于文字:DeploySharp + PP-Structure,打通版面分析与表格重建
开发语言·学习·c#·.net·cuda
Eider19981 小时前
Python基础知识之并发相关-2
开发语言·前端·python
第九序言T1 小时前
Python 数据处理进阶(二十二)用 Pandas 做一次完整的用户行为分析
开发语言·python·数据分析·pandas
云和数据.ChenGuang1 小时前
再论深拷贝和浅拷贝
开发语言·人工智能·python·1024程序员节
晚风予卿云月2 小时前
【C++高并发内存池】 2.ThreadCache设计
开发语言·c++·高并发内存池·tcmalloc
Dovis(誓平步青云)3 小时前
拖动关键帧角色就抽动,动画编辑器怎样补齐中间状态
开发语言·前端·javascript·机器学习·编辑器
行走的陀螺仪3 小时前
Claude Code 从入门到实战(二):Bash工具、Plan模式与后台任务
开发语言·bash
努力努力再努力wz3 小时前
【Lua 入门系列】从执行模型到事件驱动:一文理解 Lua 有栈协程、挂起恢复与协作式调度
开发语言·lua
椒颜皮皮虾྅3 小时前
一套 C# 接口,解锁四类视觉任务:DeploySharp 分类、分割、关键点与旋转框实战
开发语言·分类·c#
2603_965896624 小时前
JavaScript 原型与原型链
开发语言·前端·javascript