博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.2 构造函数和析构函数•对象数组排序
阅读量:37441 次
发布时间:2020-12-04

本文共 2679 字,大约阅读时间需要 8 分钟。

实验目的:

1.理解类和对象的概念,掌握声明类和定义对象的方法

2.掌握构造函数和析构函数的实现方法
3.初步掌握使用类和对象编制C++程序

实验内容:

创建一个Score类,完成以下功能:

1.连续输入多位学生的float成绩(成绩=科目A成绩+科目B成绩+科目C成绩);
2.学生数目可以由用户自定义(默认为2个,最多为100个。提示:使用变量。);
3.显示每位同学的每科成绩和平均分;
4.显示每门科目的平均成绩;
5.对每门成绩进行排序并由高到低显示;O对整个项目(所有源代码)进行打包。

6.画流程图

流程图:

 

代码:

#include
#include
using namespace std; class StudentScore {public: StudentScore() {student_nr = 2;} StudentScore(int student_count) {student_nr = student_count;} void InputStudentNameAndScore() { for (int student_id = 0; student_id < student_nr; student_id++) { cout << "请输入学生姓名:" << endl; cin >> name_array[student_id]; cout << "请输入科目A成绩:" << endl; cin >> score_table[student_id][1]; cout << "请输入科目B成绩:" << endl; cin >> score_table[student_id][2]; cout << "请输入科目C成绩:" << endl; cin >> score_table[student_id][3]; } } void ShowStudentNameAndScore() { for (int student_id = 0; student_id < student_nr; student_id++) { cout << "姓名:" << name_array[student_id] << "科目A成绩:" << score_table[student_id][1] << "科目B成绩:" << score_table[student_id][2] << "科目C成绩:" << score_table[student_id][3] << endl; } } void ShowStdentAvgScore(int student_id) { cout << "姓名:" << name_array[student_id] << "平均成绩:" << (score_table[student_id][1] + score_table[student_id][2] + score_table[student_id][3]) / 3 << endl; } void ShowCourseAvgScore(string course_name) { float sum=0; cout << "课程名称:" << course_name << "平均成绩:"; for (int student_id = 0; student_id < student_nr; student_id++) { sum += score_table[student_id][1]; } cout << sum / student_nr << endl; } void orderScoreByCourse(string course_name) { string v; cout << "课程名称:" << course_name << endl; for (int student_id = 0,t; student_id < student_nr-1; student_id++) for (int sco = 0; sco < student_nr - 1 - student_id; sco++) { t = score_table[sco][2]; score_table[sco][2] = score_table[sco + 1][2]; score_table[sco + 1][2] = t; v= name_array[sco]; name_array[sco] = name_array[sco + 1]; name_array[sco + 1] = v; } for (int student_id = 0; student_id < student_nr; student_id++) cout << "姓名:" << name_array[student_id] << "成绩:" << score_table[student_id][2] << endl; }private: float score_table[100][3], score_table1[100][3]; string name_array[100], name_array1[100]; int student_nr; };int main(){ StudentScore x; x.InputStudentNameAndScore(); x.ShowStudentNameAndScore(); x.ShowStdentAvgScore(1); x.ShowCourseAvgScore("A"); x.orderScoreByCourse("B"); return 0;}

运行结果:

请输入学生姓名:徐元请输入科目A成绩:90请输入科目B成绩:92请输入科目C成绩:93.5请输入学生姓名:孔政请输入科目A成绩:91请输入科目B成绩:95请输入科目C成绩:93姓名:徐元科目A成绩:90科目B成绩:92科目C成绩:93.5姓名:孔政科目A成绩:91科目B成绩:95科目C成绩:93姓名:孔政平均成绩:93课程名称:A平均成绩:90.5课程名称:B姓名:孔政成绩:95姓名:徐元成绩:92

转载地址:http://ibpowy.baihongyu.com/

你可能感兴趣的文章
博客开篇:为什么开始?
查看>>
《数据库系统概论》第一章 绪论
查看>>
第一讲 Android概述
查看>>
第二讲 Activity详解
查看>>
变量命名规范,看这个就够了
查看>>
第三讲 UI控件使用
查看>>
第四讲 布局管理器
查看>>
利用Dism修复系统步骤,以及dism找不到源文件解决方案
查看>>
AnswerGame答案解析
查看>>
《大话数据结构》读书笔记——第1章 数据结构绪论
查看>>
《大话数据结构》读书笔记——第2章 算法
查看>>
ThinkPad Tablet2升级Windows10(各种故障及解决方案)
查看>>
《大话数据结构》读书笔记——第3章 线性表 顺序存储结构知识点及代码实现【带注释】
查看>>
第3章 线性表 链式存储结构知识点及代码实现【带注释】
查看>>
积化和差公式记忆口诀
查看>>
TensorFlow__Slim的使用(TensorFlow的精简版)
查看>>
数学基础 | 线性代数 —— 线性代数学习框架(思维导图)
查看>>
Google浏览器截图方法
查看>>
机器学习 | 算法模型——自然语言处理:Word2Vector - CBOW和Skip-gram
查看>>
《孙子兵法》——读书笔记
查看>>