用C++编写一个教师和学生数据的输入和显示程序
根据给定的C++代码,我们可以总结出以下关键知识点: ### 1. 文件包含与预处理指令 在C++程序的开头,我们看到有两行预处理指令:`#include <iostream.h>` 和 `#include <string.h>`。 - **`#include <iostream.h>`**:这里应该是一个笔误,因为C++标准库中的头文件是 `<iostream>` 而不是 `<iostream.h>`。`<iostream>` 头文件包含了用于输入输出流操作的类和函数定义,例如 `std::cin` 和 `std::cout`。 - **`#include <string.h>`**:该头文件提供了C语言字符串处理函数,如 `strcpy` 和 `strlen` 等。在C++中,通常推荐使用 `<cstring>` 头文件来替代 `<string.h>`。 ### 2. 类的声明与定义 代码中定义了三个类:`Person`、`Student` 和 `Teacher`。 - **`Person` 类**:这是其他两个类的基础类,包含了人的基本属性(如ID和姓名)以及相应的构造函数和成员函数。 - **私有成员变量**:`int id` 和 `char name[20]`,分别表示人的ID和姓名。 - **构造函数**:`Person(int x, char *p)`,用于初始化人的ID和姓名。 - **成员函数**: - `show(Student s)`:用于显示学生的相关信息。 - `show(Teacher t)`:用于显示教师的相关信息。 - **`Student` 类**:继承自 `Person` 类,添加了学生特有的属性和方法。 - **私有成员变量**:`int classid` 和 `double score`,分别表示班级ID和成绩。 - **成员函数**: - `setclassid(int x)`:设置班级ID。 - `setscore(double y)`:设置成绩。 - `getclassid()` 和 `getscore()`:获取班级ID和成绩。 - **`Teacher` 类**:同样继承自 `Person` 类,添加了教师特有的属性和方法。 - **私有成员变量**:`char zhicheng[10]` 和 `char bumen[10]`,分别表示职称和部门。 - **成员函数**: - `setzhicheng(char *p)` 和 `setbumen(char *p)`:设置职称和部门。 - `getzhicheng()` 和 `getbumen()`:获取职称和部门。 ### 3. 主函数 `main` 主函数中实例化了 `Person`、`Student` 和 `Teacher` 类的对象,并调用了相应的成员函数。 - **实例化对象**: - `Person s1(1, "Сǿ")`:创建了一个 `Person` 对象 `s1`。 - `Student p1`:创建了一个 `Student` 对象 `p1`。 - **设置属性值**: - `p1.setclassid(15)`:设置学生的班级ID为15。 - `p1.setscore(90.8)`:设置学生的成绩为90.8分。 - **调用成员函数**: - `s1.show(p1)`:通过 `s1` 对象显示 `p1` 学生的信息。 ### 4. 总结 这段代码演示了如何使用C++面向对象编程的基本概念,包括类的定义、继承、成员函数的实现等。通过这个简单的例子,我们不仅了解了如何组织代码结构,还学习了如何通过继承来复用基类的功能,同时增加子类特有的功能。这对于理解C++中的面向对象编程是非常有帮助的。





























#include<string.h>
class Student; //学生类
class Teacher; //教师类
class Person //人类
{
private:
int id;
char name[20];
public:
Person(int x,char *p)
{
id=x;
strcpy(name,p);
}
void show(Student s)
{
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "班号:" << s.getclassid() << endl;
cout << "成绩:" << s.getscore() << endl;
}
void show(Teacher t) //show函数的重载
{
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "职称:" << t.getzhicheng() << endl;
cout << "部门:" << t.getbumen() << endl;
}
};


- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- JAVA3006一个简单的即时通讯工具的方案设计书与开发2.doc
- Gabor小波变换与CS—LBP算法在人脸识别中改进和应用.doc
- 物联网技术在智能农业中的应用分析.docx
- 基于单片机的交通灯控制系统的方案设计书.doc
- 浅议信息技术在中职计算机平面设计课程中的应用.docx
- 对项目管理应急预案的探究.doc
- 大学设计VBACCESS公司管理设计.doc
- 通信行业工程财务管理中存在的问题与对策.docx
- 无人机与人工智能融合-洞察研究.pptx
- 目标检测测试模型个数据
- AutoCAD2010机械制图基础教程课后习题答案.doc
- 东北农业大学本科实验课程教学大纲-THEOL网络教学综合.doc
- 基于J2ME手机网络商店的方案设计书与实现(客户端的开发).doc
- 实用家庭报警系统的软件研究设计开题报告.doc
- 图书借阅信息管理系统设计方案(VB开发-ACCESS数据库).doc
- (无线通信设备安装定额).doc


