本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
🎬本文章是 【C++笔记】 专栏的文章,主要是C++黑马的笔记、自己的实验与课设
🔗C++笔记 传送门
一、要求
设计一个学生类,学生的基本信息有学号、姓名、年龄、性别和班级职务(班长、学习委员、团支书和学生)等,通过增加构造函数,使对象在定义时能够对其数据成员进行初始化。其中,性别的默认值为“男”,班级职务默认为“学生”。具体要求如下:
-
设计构造函数,完成对对象数据成员的初始化。其中,数据成员初始化采用成员初始化列表
-
设计一个加分函数,针对学生的班级职务进行加分。如果是普通学生不加分,班长加5分,学习委员加3分,团支书加2分
-
设计输出函数,输出的基本信息,以及该生应该加的分数。
二、分析
数据成员使用成员初始化列表,所以使用构造函数,在构造函数中利用this指针对每一个参数赋值。addscore()函数利用if判断对学生的班级职务加分,之后调用show()函数输出学生信息
三、代码
💻提示:所有实验源码已在github整理
#include <iostream>
using namespace std;
#include <string>
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;
}
四、 结果
通过利用构造函数的重载,实现利用初始化列表对数据成员赋值