广告
淘宝内部优惠券
当前位置: 开发异常方案库» C/C++ » c++程序,构造函数

c++程序,构造函数

开发异常方案库  收集整理于:2020-05-27 19:19:00  浏览:66次
【项目一】设计一个学生类,学生的基本信息有学号、姓名、年龄、性别和班级职务(班长、学习委员、团支书和学生)等,通过增加构造函数,使对象在定义时能够对其数据成员进行初始化。其中,性别的默认值为“男”,班级职务默认为“学生”。具体要求如下: (1) 设计构造函数,完成对对象数据成员的初始化。其中,数据成员初始化采用成员初始化列表。 (2) 设计一个加分函数,针对学生的班级职务进行加分。如果是普通学生不加分,班长加5分,学习委员加3分,团支书加2分。 (3) 设计输出函数,输出的基本信息,以及该生应该加的分数。 求求了,不会啊,有没有大佬给个帮助。

------网友观点--------------------
太晚了,明天给你事例一下

------网友观点--------------------
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
	// id: 学号
	// sName: 姓名
	// iAge: 年龄
	// sXb: 性别, M:男,F:女
	// iZw: 职务, 0:学生,1:班长,2:学习委员,3:团支书
	Student(string id, string sName, int iAge, string sXb = "M", int iZhiwu = 0);
	void print();
private:
	int getScore(); //获得加分,没考虑担任多个职务的情况
	string m_sId;
	string m_sName;
	int	m_iAge;
	string	m_sXb;
	int m_iZw;
};
Student::Student(string id, string sName, int iAge, string sXb, int iZw) :
	m_sId(id), m_sName(sName), m_iAge(iAge), m_sXb(sXb), m_iZw(iZw)
{
}
void Student::print()
{
	cout << "ID: " << m_sId << " Name: " << m_sName << " Age: " << m_iAge << " Xb: " << m_sXb << " iZw: " << m_iZw << " Score: " << getScore() << endl;
}
int Student::getScore()
{
	static int scores[] = { 0,5,3,2 }; //得分表,与职务序号对应
	return scores[m_iZw];
}
int main(int argc, char *argv[])
{
	//例: 女,学习委员
	Student a("001", "Lili", 15, "F", 2);
	a.print();
	return 0;
}

------网友观点--------------------
引用 2 楼 SeRapHiw的回复:
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
	// id: 学号
	// sName: 姓名
	// iAge: 年龄
	// sXb: 性别, M:男,F:女
	// iZw: 职务, 0:学生,1:班长,2:学习委员,3:团支书
	Student(string id, string sName, int iAge, string sXb = "M", int iZhiwu = 0);
	void print();
private:
	int getScore(); //获得加分,没考虑担任多个职务的情况
	string m_sId;
	string m_sName;
	int	m_iAge;
	string	m_sXb;
	int m_iZw;
};
Student::Student(string id, string sName, int iAge, string sXb, int iZw) :
	m_sId(id), m_sName(sName), m_iAge(iAge), m_sXb(sXb), m_iZw(iZw)
{
}
void Student::print()
{
	cout << "ID: " << m_sId << " Name: " << m_sName << " Age: " << m_iAge << " Xb: " << m_sXb << " iZw: " << m_iZw << " Score: " << getScore() << endl;
}
int Student::getScore()
{
	static int scores[] = { 0,5,3,2 }; //得分表,与职务序号对应
	return scores[m_iZw];
}
int main(int argc, char *argv[])
{
	//例: 女,学习委员
	Student a("001", "Lili", 15, "F", 2);
	a.print();
	return 0;
}
十分感谢大佬

------网友观点--------------------
楼主我觉得你初始化的时候,要用引用,这样效率更高,特别是对于长字符串更是如此,否则你的拷贝不行的。

------网友观点--------------------
我回的2楼的,哈哈楼主!

------网友观点--------------------
引用 1 楼 Simple-Soft 的回复:
太晚了,明天给你事例一下
大哥们不需要这么劳累吧

------网友观点--------------------
真的感动我是个大一学生,期末交报告,真的感动。
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图