编写一个学生和职工数据输入和输出程序,学生数据要有学号、姓名、性别、专业、年级等,职工数据要有职工号、姓名、性别、年龄、部门、职称、工资等。要求将姓名、性别和数据输出设计成一个类person,学生类student和职工类employee,由类person来派生。要求程序完整(包含主函数)。
时间: 2023-06-14 10:08:08 浏览: 110
以下是一个简单的C++程序,实现了学生和职工数据输入和输出。程序使用了三个类:person、student和employee。person类包含姓名和性别的数据成员,student类和employee类继承自person类,并且还包含了各自的数据成员。程序通过向对象数组中添加学生和职工对象来实现数据的输入和输出。
```c++
#include <iostream>
#include <string>
using namespace std;
class person {
protected:
string name;
char gender;
public:
void set_info() {
cout << "请输入姓名:";
cin >> name;
cout << "请输入性别(M/F):";
cin >> gender;
}
void disp_info() {
cout << "姓名:" << name << endl;
cout << "性别:" << gender << endl;
}
};
class student : public person {
private:
int id;
string major;
int grade;
public:
void set_info() {
person::set_info();
cout << "请输入学号:";
cin >> id;
cout << "请输入专业:";
cin >> major;
cout << "请输入年级:";
cin >> grade;
}
void disp_info() {
person::disp_info();
cout << "学号:" << id << endl;
cout << "专业:" << major << endl;
cout << "年级:" << grade << endl;
}
};
class employee : public person {
private:
int id;
int age;
string department;
string title;
double salary;
public:
void set_info() {
person::set_info();
cout << "请输入职工号:";
cin >> id;
cout << "请输入年龄:";
cin >> age;
cout << "请输入部门:";
cin >> department;
cout << "请输入职称:";
cin >> title;
cout << "请输入工资:";
cin >> salary;
}
void disp_info() {
person::disp_info();
cout << "职工号:" << id << endl;
cout << "年龄:" << age << endl;
cout << "部门:" << department << endl;
cout << "职称:" << title << endl;
cout << "工资:" << salary << endl;
}
};
int main() {
const int MAX_NUM = 100;
student stu[MAX_NUM];
employee emp[MAX_NUM];
int num_stu = 0, num_emp = 0;
char choice;
while (true) {
cout << "请输入要操作的类型(S-学生,E-职工,Q-退出):";
cin >> choice;
switch (choice) {
case 'S':
if (num_stu < MAX_NUM) {
cout << "请输入第" << num_stu + 1 << "个学生的信息:" << endl;
stu[num_stu].set_info();
num_stu++;
}
else {
cout << "已达到最大学生数,无法添加新学生。" << endl;
}
break;
case 'E':
if (num_emp < MAX_NUM) {
cout << "请输入第" << num_emp + 1 << "个职工的信息:" << endl;
emp[num_emp].set_info();
num_emp++;
}
else {
cout << "已达到最大职工数,无法添加新职工。" << endl;
}
break;
case 'Q':
cout << "程序已退出。" << endl;
return 0;
default:
cout << "输入有误,请重新输入。" << endl;
break;
}
}
return 0;
}
```
这个程序可以根据用户的选择来添加学生或职工对象,直到达到最大数量为止。用户输入的数据可以通过调用对象的disp_info方法来输出。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)