#include <iostream>
#include <string>
using namespace std;
//學生結構體
struct Student {
private:
string s_name;//學生姓名
public:
//構造函數
Student(string name) {
s_name = name;
}
//setter&getter
void setName(string name) {
s_name = name;
}
string getName() {
return s_name;
}
//自我介紹
void selfIntroduction() {
cout << "嗨,大家好,我是" << s_name << endl;
}
};
//老師結構體
struct Teacher {
private:
string t_name;//教師姓名
struct Student* m_stus;//教師指導的學生,這里用指針,如果是數組得指明長度,但是數組名不可變,不能set
int m_stus_size;//教師指導的學生的個數
public:
//構造函數
Teacher(string name, struct Student* stus, int stus_size) {
t_name = name;
m_stus = stus;
m_stus_size = stus_size;
}
//setter&getter
void setName(string name) {
t_name = name;
}
string getName() {
return t_name;
}
void setStus(struct Student stus[]) {//其實以指針形式接收
m_stus = stus;
}
Student* getStus() {
return m_stus;
}
void setStusSize(int stus_size) {//其實以指針形式接收
m_stus_size = stus_size;
}
int getStusSize() {
return m_stus_size;
}
//自我介紹
void selfIntroduction() {
cout << "大家好,我是" << t_name <<"老師,我帶有"
<<m_stus_size<<"個學生,";
if (m_stus_size >= 2) {
cout << "分別是";
}
for (int i = 0; i < m_stus_size; i++) {
if (i == m_stus_size - 1) {
cout << m_stus[i].getName() <<",";
}
else if (i == m_stus_size - 2) {
cout << m_stus[i].getName() << "和";
}
else {
cout << m_stus[i].getName() << "、";
}
}
cout << "希望大家努力學習,不負韶華。" << endl;
}
};
int main() {
struct Student stus[] = {
{"張三"},
{"李四"},
{"王五"}
};
int len = sizeof(stus) / sizeof(stus[0]);
Teacher t = {"羅翔",stus,len};
t.selfIntroduction();
system("pause");
return 0;
}