//5.29 #include<iostream> using namespace std; class Circle{ public: void setr(int x) { r=x; } virtual void show()=0; protected: int r; }; class Area:public Circle { public: void show() {cout<<"这个圆的面积是:"<<3.14*r*r<<endl; } }; class Perimeter:public Circle { public: void show() {cout<<"这个圆的周长是:"<<2*3.14*r<<endl; } }; int main() { Circle *ptr; Area ob1; Perimeter ob2; ob1.setr(10); ob2.setr(10); ptr=&ob1; ptr->show(); ptr=&ob2; ptr->show(); return 0; }
时间: 2024-03-30 11:39:40 浏览: 94
这是一个使用C++语言实现的简单程序,定义了一个名为Circle的类,其中包含了一个成员变量r和一个虚函数show(),并且show()函数被声明为纯虚函数,即这个类为抽象类,不能被实例化。
程序还定义了两个派生类Area和Perimeter,它们分别继承了Circle类,并且实现了show()函数,分别用于计算圆的面积和周长。
在主函数中,定义了一个指向Circle对象的指针ptr,并且创建了Area和Perimeter对象ob1和ob2,分别设置它们的半径为10。然后将ptr指向ob1,调用show()函数计算并输出圆的面积;将ptr指向ob2,调用show()函数计算并输出圆的周长。
这个程序通过使用虚函数和多态性的特性,简单地实现了计算圆的面积和周长的功能。
相关问题
# 创建死循环,直至 用户自行 选择 退出 while True : # 分割线 print('*'*60) print('*'*10,'欢迎来到 孩子身高 预测系统','*'*10) # 功能选择 print('\t1、预测查询') print('\t2、退出系统') menus_select = input('请选择功能( 1、2 ):') # 对输入的内容进行判断 if menus_select == '1' or menus_select == '预测查询' : father_height = float(input('请输入父亲身高:')) mother_height = float(input('请输入母亲身高:')) children_gender = input('请输入孩子性别(女 或 男):') if children_gender == '男': # 固定的计算公式 boys_height_min = (45.99) + ((0.78 * (father_height + mother_height)) / 2) - (5.29) boys_height_max = (45.99) + ((0.78 * (father_height + mother_height)) / 2) + (5.29) boys_height_result = f'孩子的身高预估在: {boys_height_min}CM 与 {boys_height_max}CM 之间' print(boys_height_result) elif children_gender == '女': girls_height_min = (37.85) + ((0.75 * (father_height + mother_height)) / 2) - (5.29) girls_height_max = (37.85) + ((0.75 * (father_height + mother_height)) / 2) + (5.29) girls_height_result = f'孩子的身高预估在: {girls_height_min}CM 与 {girls_height_max}CM 之间' print(girls_height_result) else: print('请正确输入孩子性别') elif menus_select == '2' or menus_select == '退出系统' : break else : print('请选择正确的功能项') # 分割线 print('*' * 60) print() print()
这段代码创建了一个死循环,直到用户选择退出。在每次循环中,它打印出一个欢迎信息和功能菜单,然后要求用户输入一个选项。如果用户选择预测查询,则要求用户输入父母身高和孩子性别,并使用相应的公式计算孩子的身高范围。如果用户选择退出系统,则退出循环。如果用户输入了无效的选项,则要求用户重新输入。
这是一个完整的示例代码:
```python
while True:
# 分割线
print('*' * 60)
print('*' * 10, '欢迎来到 孩子身高 预测系统', '*' * 10)
# 功能选择
print('\t1、预测查询')
print('\t2、退出系统')
menus_select = input('请选择功能( 1、2 ):')
# 对输入的内容进行判断
if menus_select == '1' or menus_select == '预测查询':
father_height = float(input('请输入父亲身高:'))
mother_height = float(input('请输入母亲身高:'))
children_gender = input('请输入孩子性别(女 或 男):')
if children_gender == '男':
# 固定的计算公式
boys_height_min = (45.99) + ((0.78 * (father_height + mother_height)) / 2) - (5.29)
boys_height_max = (45.99) + ((0.78 * (father_height + mother_height)) / 2) + (5.29)
boys_height_result = f'孩子的身高预估在: {boys_height_min}CM 与 {boys_height_max}CM 之间'
print(boys_height_result)
elif children_gender == '女':
girls_height_min = (37.85) + ((0.75 * (father_height + mother_height)) / 2) - (5.29)
girls_height_max = (37.85) + ((0.75 * (father_height + mother_height)) / 2) + (5.29)
girls_height_result = f'孩子的身高预估在: {girls_height_min}CM 与 {girls_height_max}CM 之间'
print(girls_height_result)
else:
print('请正确输入孩子性别')
elif menus_select == '2' or menus_select == '退出系统':
break
else:
print('请选择正确的功能项')
# 分割线
print('*' * 60)
print()
print()
```
你可以将这段代码保存为一个 Python 文件并运行它,即可开始交互式的孩子身高预测系统。
编写一个matlab程序,氢原子的一个激发态波函数为 ψ(r)=2√2a3/2 4πEoh?≡1(即r以ao无量纲化),利用数值方法求 <r>.将答案存储到result中
在MATLAB中编写这样一个程序,我们需要首先理解题目给出的波函数表示的是一个量子力学系统中的氢原子激发态,其中`ψ(r)`是一个归一化的径向波函数,`a_0`是Bohr半径(通常用于无量纲化),`E_h`是哈伯能级。由于波函数形式简单,我们直接计算期望值 `<r>` 等于 `∫ψ*(r)*r*ψ(r) dr`。
以下是使用数值积分方法(例如梯形法或辛普森法则)计算平均径向距离的MATLAB代码示例:
```matlab
% 定义变量
a0 = 5.29e-11; % Bohr radius in meters (for normalization)
n = 1; % Hydrogen atom's principal quantum number for the excited state (usually 1 for first excited state)
% Normalize the wave function
sqrt_coefficient = sqrt(2) * sqrt(a0^3 / (2^(n - 1) * pi)); % √(2/a_0^(3/2)) factor
% The normalized radial wave function with r in atomic units (a0)
wave_function = @(r) sqrt_coefficient * exp(-r); % Assuming hydrogen-like wavefunction (Rydberg formula)
% Define a small step size for numerical integration
dx = 1e-5;
% Calculate the expectation value of r using numerical integration
result = 0;
for r = 0:dx:5*a0 % Choose a suitable upper limit based on typical range for integrand decay
result += dx * wave_function(r)^2 * r;
end
% Since we're integrating to infinity, divide by 2 in case of double-counting from both sides
result /= 2;
% Display the result
disp(['The expected average distance <r> is: ', num2str(result), ' atomic units']);
```
请注意,这个程序假设了氢原子的一维无限方势阱模型的波函数形式,对于实际的氢原子,波函数会更复杂一些。运行此代码后,结果会被存储在`result`变量中。
阅读全文