第五章

编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。

#include <iostream>
#include <string> 
using namespace std; 
class person 
{
private:
	int no; 
string name; 
public:
	void input()
	{
		cout<<"请输入编号和姓名:";
		cin>>no>>name;
	} 
	void display() 
	{cout<<"编号: "<<no<<endl;
	cout<<"姓名:"<<name<<endl;} 
}; 
class student:public person 
{private:
int bh;
int score;
 public:
	 void get()  {
         input(); 
		 cout<< "请输入班号和成绩:";
         cin>>bh>>score;
} 
	 void show()
	 {
		 display();
	 cout<<"班号:"<<bh<<endl; 
	 cout<<"成绩: "<<score<<endl;} 
};
 class teacher:public person 
 {
 private:
 string title,department;
 public: 
	 void get()
	 {
		 input(); 
cout<< "请输入职称和部门:";
		 cin>>title>>department;
} 
	 void show( ) 
	 {
		 display();
		 cout<<"职称:"<<title<<endl;
       cout<<"部门:"<<department<<endl;} 
 };
		 int main( ) 
		 {
			 student s;
			 teacher t; 
			 s.get( );
			 s.show( );
			 t.get( );
			 t.show( );
			 return 0; }

设计一个虚基类base,包括姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,包含职称和专业私有数据成员以及相关的成员函数;然后由leaderengieer,派生出主任工程师类chairman.采用相关数据进行测试。

 

#include<iostream>
#include<string>
using namespace std;

class base 
{
public:
 base(string name1,int age1)
 {	name=name1;
	age=age1;
 }
void print()
{
	cout<<"姓名:"<<name<<endl;
	cout<<"年龄:"<<age<<endl;
}
protected:
	string name;
	int age;
};


class leader:virtual public base 
{
public:
	leader(string name1,int age1,string job1,string dep1):base(name1,age1)
	  {job=job1;
	   dep=dep1;
	}

	  void print()
	  {
	  base::print();
	  cout<<"职务:"<<job<<endl;
	  cout<<"部门:"<<dep<<endl;
	  }
protected:
	string job;
	string dep;
};

class engineer:virtual public base 
{public:
engineer(string name1,int age1,string prof1,string major1):base(name1,age1)
	  {prof=prof1;
	   major=major1;
  }
	  void print()
	  {
	  base::print();
	  cout<<"职称:"<<prof<<endl;
	  cout<<"专业:"<<major<<endl;
	  }
protected:
	string prof;
	string major;
	};

class chairman:public leader,public engineer 
{chairman(string name1,int age1,string job1,string dep1,string prof1,string major1)
:base(name1,age1),leader(name1,age1,job1,dep1),engineer(name1,age1,prof1,major1)
{;}	 
	  void print()
	  {
	leader::print();
	engineer::print();
	  }
};
void main()
{
chairman my_chairman("lili","22","laoshi","jiaowuchu","gaojijiaoshi","huaxue");
my_chairman.print();
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你的问题我已经记下了,现在来回答你的问题。 为了方便您的阅读,我将第五章的补充案例和多线程部分分别介绍。 第五章补充案例: 在 PHP 中,我们可以通过 PHPMailer 库来实现邮件发送功能。PHPMailer 库是一个用于 PHP 的邮件发送类,它可以让我们方便地发送邮件并添加附件。下面是一个使用 PHPMailer 发送邮件的案例: ```php // 引入 PHPMailer 类文件 require_once('PHPMailer/PHPMailerAutoload.php'); // 实例化 PHPMailer 类 $mail = new PHPMailer(); // 设置邮件服务器的主机名、用户名和密码 $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = '你的 Gmail 邮箱'; $mail->Password = '你的 Gmail 密码'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; // 设置发件人信息 $mail->setFrom('发件人邮箱', '发件人名称'); // 设置收件人信息 $mail->addAddress('收件人邮箱', '收件人名称'); // 添加附件 $mail->addAttachment('附件文件路径', '附件文件名'); // 设置邮件主题和内容 $mail->Subject = '邮件主题'; $mail->Body = '邮件内容'; // 发送邮件 if ($mail->send()) { echo '邮件发送成功!'; } else { echo '邮件发送失败:' . $mail->ErrorInfo; } ``` 多线程部分: PHP 支持多线程编程,通过多线程可以提高程序的并发性和处理能力。在 PHP 中,我们可以使用 pthreads 扩展来实现多线程编程。pthreads 是一个开源的 PHP 扩展,它提供了多线程编程的基本功能,包括线程创建、同步、锁等。 下面是一个使用 pthreads 扩展创建线程的案例: ```php class MyThread extends Thread { public function __construct($name) { $this->name = $name; } public function run() { for ($i = 1; $i <= 10; $i++) { echo $this->name . ': ' . $i . "\n"; sleep(1); } } } $t1 = new MyThread('Thread 1'); $t2 = new MyThread('Thread 2'); $t1->start(); $t2->start(); ``` 在上面的案例中,我们定义了一个 MyThread 类,它继承自 Thread 类,并重写了 run() 方法。在 run() 方法中,我们输出线程的名称和计数器的值,并让线程休眠一秒钟。然后我们创建了两个 MyThread 对象,并分别启动了它们。最后,两个线程会同时执行,并输出各自的计数器值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值