【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。然后,函数会输出表头,包括学号、姓名、语文、数学、英语和总成绩的标题。接下来,它通过循环遍历学生信息数组,逐行输出每个学生的具体信息,包括学号、姓名、语文成绩、数学成绩、英语成绩和总成绩。最后,函数会暂停程序的执行,等待用户按下任意键继续。这个函数的设计目的是清晰地展示整个学生信息,方便用户查看和分析。

相关推荐
土豆湿5 分钟前
拥抱极简主义前端开发:NoCss.js 引领无 CSS 编程潮流
开发语言·javascript·css
界面开发小八哥12 分钟前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具
qystca41 分钟前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
薯条不要番茄酱41 分钟前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
今天吃饺子1 小时前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
努力进修1 小时前
“探索Java List的无限可能:从基础到高级应用“
java·开发语言·list
Ajiang28247353043 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空3 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10226 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou6 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot