用C语言编程原题目为:一个教学系统至少有学生和教师两种类型的人员假设教师的数据有教师编号、姓名、年龄、性别、职称和系别学生的数据有学号、姓名、年龄、性别、班级和语文、数学、英语三门课程的成绩。编程完成学生和教师档案数据的输入和显示。要求如下: 设计三个类 Person 、 Teacher 、 Student Person 是 Teacher 和 Student 的基类具有此二类共有的数据成员姓名
解题思路:
1.设计一个基类 Person,包含姓名、年龄、性别等数据成员和输入输出函数。
2.设计一个教师类 Teacher,继承自 Person,并增加教师编号、职称、系别等数据成员和输入输出函数。
3.设计一个学生类 Student,继承自 Person,并增加学号、班级、语文、数学、英语成绩等数据成员和输入输出函数。
4.在 Person 的派生类中增加学生类,教师分为普通教师、院长和系主任三类,所有教师都有基本工资,普通教师的总收入由基本工资和课时费构成。一个教师要管理若干学生,而一个学生只有一位教师作导师。
5.院长和系主任都从普通教师中产生,院长的总收入由年薪和基本工资构成,系主任的总收入由基本工资和每有绩效构成。他们每年须完成指定课时的教学任务,但不计课时报酬。
6.各类中的 inputData、outData、getSalary、setSalary、getincome为虚函数,要求能够以 Person 为接口访问各类的inputData、outData虚函数,实现多态。
7.友元重载各类对象的输出运算符(operator <<),能够通过 cout 直接输出各对象的相应信息,输出信息与各类的outData成员函数的输出相同。
8.用 STL 中的 vector 或 list 管理 Person 对象指针或引用,管理继承体系中的对象,实现体现多态编程特征。同类对象可以按年龄排序。
9.用 STL 中的 vector、list、set、map 等容器(选择其中的一类或几类)实现5名教师,5名学生,2名系主任,1名院长的信息管理,包括数据输入、输出、查询、删除,以及导师指导的学生信息管理(如增加、删除、查询指导的学生)和学生的导师信息管理(如增加、删除、查询、更改导师信息等)。
数据成员和成员函数设计:
Person 类:
数据成员:姓名、年龄、性别
成员函数:构造函数、析构函数、输入数据函数、输出数据函数、获取姓名函数、获取年龄函数、获取性别函数
Teacher 类:
数据成员:教师编号、姓名、年龄、性别、职称、系别、基本工资、课时费、总收入
成员函数:构造函数、析构函数、输入数据函数、输出数据函数、获取教师编号函数、获取职称函数、获取系别函数、获取基本工资函数、获取课时费函数、获取总收入函数、设置基本工资函数、设置课时费函数、设置总收入函数
Student 类:
数据成员:学号、姓名、年龄、性别、班级、语文成绩、数学成绩、英语成绩、导师
成员函数:构造函数、析构函数、输入数据函数、输出数据函数、获取学号函数、获取班级函数、获取语文成绩函数、获取数学成绩函数、获取英语成绩函数、获取导师函数、设置导师函数
Chancellor 类:
数据成员:姓名、年龄、性别、基本工资、年薪、总收入
成员函数:构造函数、析构函数、输入数据函数、输出数据函数、获取职称函数、获取基本工资函数、获取年薪函数、获取总收入函数、设置基本工资函数、设置年薪函数、设置总收入函数
Dean 类:
数据成员:姓名、年龄、性别、基本工资、绩效、总收入
成员函数:构造函数、析构函数、输入数据函数、输出数据函数、获取职称函数、获取基本工资函数、获取绩效函数、获取总收入函数、设置基本工资函数、设置绩效函数、设置总收入函数
主函数设计:
1.定义一个 Person 类指针或引用的 vector 或 list,用于存储所有的人员信息。
2.循环输入教师、学生、院长、系主任的信息,将其存储在 vector 或 list 中。
3.对 vector 或 list 中的各类对象进行排序,按年龄从小到大排序。
4.输出所有人员的信息。
5.循环查询和修改各类人员的信息,包括导师指导的学生信息管理和学生的导师信息管理。
6.循环删除各类人员的信息。
7.结束程序。
注意事项:
1.在输入数据时,要进行输入数据的合法性检查,如年龄不得小于0或大于150,成绩不得小于0或大于100等。
2.在输出数据时,要注意数据的格式和排版,使其易于阅读和理解。
3.在进行查询和修改操作时,要进行输入数据的合法性检查,如查询对象是否存在,修改的数据是否合法等。
4.在进行删除操作时,要注意删除的对象是否存在,以及是否影响到其他对象的关系
原文地址: https://www.cveoy.top/t/topic/fhik 著作权归作者所有。请勿转载和采集!