C++实现STL学生绩点统计程序
需积分: 10 5 浏览量
更新于2024-09-17
收藏 5KB TXT 举报
"STL_学生学分绩点统计"
这个程序是使用C++标准模板库(STL)来实现的一个学生学分绩点统计系统。它具有添加学生信息、按绩点排序、统计平均绩点以及删除学生信息的功能。通过结构体`student`存储每个学生的姓名、各科成绩和相应的绩点,然后利用`vector`容器存储所有学生的信息。同时,程序还定义了两个比较函数`myCompHigh`和`myCompLow`用于按照绩点降序或升序排列学生。
1. **结构体`student`**:结构体`student`包含了以下字段:
- `string s`:存储学生的姓名。
- `double score[15]`:存储学生的15门课程成绩。
- `double jd[15]`:计算出的对应15门课程的绩点。
- `double pjd`:学生的平均绩点(总绩点/总学分)。
2. **比较函数**:
- `bool myCompHigh(const student &s1, const student &s2)`:这个函数用于按照绩点降序排列学生,如果`s1`的平均绩点大于`s2`,则返回`true`,表示`s1`应该排在`s2`前面。
- `bool myCompLow(const student &s1, const student &s2)`:这个函数用于按照绩点升序排列学生,与`myCompHigh`相反,如果`s1`的平均绩点小于`s2`,则返回`true`。
3. **主函数`main`**:
- 首先,程序获取学生人数`n`和课程数量`m`,以及每门课程的学分数`xf[]`。
- 接着,循环输入`n`个学生的信息,包括姓名和`m`门课程的成绩。对于每门课程,根据成绩计算绩点(绩点=成绩/10-5),并累加学分乘以对应的绩点得到总绩点`sum`。
- 最后,计算总学分`zxf`,并根据总绩点和总学分计算平均绩点`pjd`。
4. **STL的使用**:
- `vector<student> vxs`:创建一个`student`类型的动态数组,用于存储所有学生的信息。
- 在输入完所有学生信息后,可以使用`sort`函数结合`myCompHigh`或`myCompLow`对`vxs`中的学生进行排序,例如:`sort(vxs.begin(), vxs.end(), myCompHigh);`
5. **统计和输出**:
- 统计过程中,可以添加功能来输出每个学生的具体信息,或者根据需求输出平均绩点最高的前N名学生等。
这个程序展示了STL在处理数据结构和算法上的灵活性,通过结构体、向量和自定义比较函数,可以方便地实现复杂的数据管理和操作。对于学习C++编程,尤其是STL的使用,这是一个很好的实践案例。
2010-10-16 上传
2018-10-21 上传
2023-07-13 上传
2023-07-13 上传
2023-06-13 上传
2023-07-11 上传
2023-05-22 上传
2023-09-19 上传
2023-06-01 上传
亚里斯
- 粉丝: 2
- 资源: 17
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍