帮我编制这两个c++的代码。1、带异常处理嵌套的求一元二次方程的解,从键盘输入系数a,b,c ,构成一元二次方程aX2+bX+c=0,并求出解x1,x2的值进行输出 . 2、定义一个基类person,包含数据成员姓名、性别、年龄。基类派生出teacher类,它包含数据成员职称,成员函数check),该成员函数可根据职称检测年龄是否正确,检测标准是,教授的年龄大于30岁,副教授的年龄大于26岁,讲师的年龄大于23岁,助教的年龄大于20岁。
时间: 2023-12-03 12:45:45 浏览: 126
编写求解一元二次方程的程序C++
5星 · 资源好评率100%
1. 一元二次方程求解代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double a,b,c,x1,x2,delta;
try {
cout<<"请输入a,b,c的值:";
cin>>a>>b>>c;
if(a==0)
throw "a不能为0!"; // 抛出异常
delta = b*b-4*a*c;
if(delta<0)
throw "方程无实根!"; // 抛出异常
x1 = (-b+sqrt(delta))/(2*a);
x2 = (-b-sqrt(delta))/(2*a);
cout<<"x1="<<x1<<", x2="<<x2<<endl;
} catch (const char *msg) { // 捕获异常
cerr << "Error: " << msg << endl;
}
return 0;
}
```
2. person、teacher 类的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class person {
protected:
string name;
char sex;
int age;
public:
person(string n, char s, int a): name(n), sex(s), age(a) {}
virtual void show() {
cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
}
};
class teacher: public person {
private:
string title;
public:
teacher(string n, char s, int a, string t): person(n, s, a), title(t) {}
void show() {
person::show();
cout<<"职称:"<<title<<endl;
}
void check() {
if(title=="教授" && age<=30)
cout<<name<<"教授的年龄不符合要求!"<<endl;
else if(title=="副教授" && age<=26)
cout<<name<<"副教授的年龄不符合要求!"<<endl;
else if(title=="讲师" && age<=23)
cout<<name<<"讲师的年龄不符合要求!"<<endl;
else if(title=="助教" && age<=20)
cout<<name<<"助教的年龄不符合要求!"<<endl;
else
cout<<name<<"的年龄符合要求。"<<endl;
}
};
int main() {
teacher t("张三", 'M', 32, "教授");
t.show();
t.check();
return 0;
}
```
阅读全文