- 前言
- 一、要求
- 二、分析
- 三、代码
- 四、 结果
一、要求本文章是 【C++笔记】 专栏的文章,主要是C++黑马的笔记、自己的实验与课设
C++笔记 传送门
提示:源码已在github整理
设计一个学生类,学生的基本信息有学号、姓名、年龄、性别和班级职务(班长、学习委员、团支书和学生)等,通过增加构造函数,使对象在定义时能够对其数据成员进行初始化。其中,性别的默认值为“男”,班级职务默认为“学生”。具体要求如下:
-
设计构造函数,完成对对象数据成员的初始化。其中,数据成员初始化采用成员初始化列表
-
设计一个加分函数,针对学生的班级职务进行加分。如果是普通学生不加分,班长加5分,学习委员加3分,团支书加2分
-
设计输出函数,输出的基本信息,以及该生应该加的分数。
数据成员使用成员初始化列表,所以使用构造函数,在构造函数中利用this指针对每一个参数赋值。addscore()函数利用if判断对学生的班级职务加分,之后调用show()函数输出学生信息
三、代码提示:所有实验源码已在github整理
#include四、 结果using namespace std; #include class Student { public: Student(); Student(string stu_id,string stu_name,int stu_age,string stu_sex,string stu_job) { this->stu_id = stu_id; this->stu_name = stu_name; this->stu_age = stu_age; this->stu_sex = stu_sex; this->stu_job = stu_job; } void addscore();//职务加分 void show();//输出函数 private: string stu_id; string stu_name; int stu_age; string stu_sex="男"; string stu_job="学生"; int stu_score=0; }; void Student::addscore() { string job = stu_job; if (job == "学生") this->stu_score += 0; else if (job == "班长") this->stu_score += 5; else if (job == "学习委员") this->stu_score += 3; else if (job == "团支书") this->stu_score += 2; } void Student::show() { cout << "学号t" << stu_id << "t姓名 " << stu_name << "t年龄 " << stu_age << "t性别 " << stu_sex << "t职务 " << stu_job << "t分数 " << stu_score << endl; } int main() { Student s1( "192062116","张帆", 22, "男", "班长"); Student s2("192062117", "张凡", 21, "女", "学生"); s1.addscore(); s1.show(); s2.addscore(); s2.show(); system("pause"); return 0; }
通过利用构造函数的重载,实现利用初始化列表对数据成员赋值



