c语言程序设计实验报告
一、实验目的:
1、掌握C语言的数据类型和变量的声明。
2、掌握不同类型数据之间赋值的规律。
3、掌握C语言的运算符和表达式的使用。
4、熟悉C程序的编辑、编译、连接和运行的过程。
二、学习要求
(1)了解继承在面向对象程序设计中的重要作用。
(2) 理解继承与派生的概念。
(3)掌握派生类构造函数的定义。
三、实验内容
要求定义一个基类Person,它有3个protected的数据成员:姓名、性别、年龄;创建Person类的公有派生类Employee,增加两个数据成员: 基本工资 basicSalary, 请假天数leaveDays。为它们定义构造函数和显示数据成员信息的成员函数show()。
四、基本知识
什么是继承
继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
什么是派生
在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(derived class)”或“子类(son class )”。
一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。类的继承是用已有的类来建立专用类的编程技术。派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。一代一代地派生下去,就形成类的继承层次结构。相当于一个大的家族,有许多分支,所有的子孙后代都继承了祖辈的基本特征,同时又有区别和发展。与之相仿,类的每一次派生,都继承了其基类的基本特征,同时又根据需要调整和扩充原 有的特征。
以上介绍的是最简单的情况:一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构,如图所示。
一个派生类不仅可以从一个基类派生,也可以从多个基类派生。也就是说,一个派生类可以有一个或者多个基类。一个派生类有两个或多个基类的称为多重继承(multiple inheritance)。关于基类和派生类的关系,可以表述为派生类是基类的具体化,而基类则是派生类的抽象。
五、实验步骤
代码如下:
首先,我们先写person类:
#include <iostream> using namespace std; class Person { public: void get_value() { cin>>name>>sex>>age; } void show() { cout << "name: " << name << endl; cout << "sex: " << sex << endl; cout << "age: " << age << endl; } protected: char name; char sex; int age; };
下面就是主函数及作用域:
class Employee:public Person { public: void get_value1(); void show1(); private: float basicSalary; int leaveDays; }; void Employee::get_value1() { get_value(); cin>>basicSalary>>leaveDays; } void Employee::show1() { show(); cout << "basicSalary: " <<basicSalary << endl; cout << "leaveDays: " <<leaveDays << endl; } int main() { Employee p; p.get_value1(); p.show1(); return 0; }
实验结果
cin和cout是c++中的标准输入输出流。
一、cin
cin的一般用法:
cin>>变量a>>变量b>>变量c;
cin会自动辨别变量的类型,如a可以是char,b可以是int,c可以是float。
接收字符串时,遇到空格,tab键和换行符都会结束接收。
cin.getline()可以接收空格,cin.getline(char*,int,char),内有三个参数,第一个表示要接收的字符串,第二个表示接收字符个数,第三个表示结束字符。当第三个省略时默认结束字符为'\0'。
二、cout
cout的一般用法:
cout<<表达式1<<表达式2<<表达式3;
如要换行可使用 cout<<endl;语句。
和cin一样,cout会自动检测表达式类型输出。