R6-2 从抽象类shape类扩展出一个正n边形 分数 10 作者 张德慧 单位 西安邮电大学 在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长a作为私有成员,类中包含初始化边数n和边长a的构造方法。 public abstract class shape {// 抽象类 public abstract double getArea();// 求面积 public abstract double getPerimeter(); // 求周长 } 计算正n边形的面积公式为: Area=n×a×a/(tan((π/n))×4); 注意:需要将角度转换成弧度后再计算三角函数。 类名:RegularPolygon
时间: 2023-06-24 20:05:34 浏览: 119
代码如下:
```
public class RegularPolygon extends shape {
private int n; // 边数
private double a; // 边长
public RegularPolygon(int n, double a) {
this.n = n;
this.a = a;
}
@Override
public double getArea() {
double radian = Math.toRadians(180.0 / n); // 角度转弧度
return n * a * a / (4 * Math.tan(radian));
}
@Override
public double getPerimeter() {
return n * a;
}
}
```
在正n边形类中,我们定义了私有成员变量n和a来存储正n边形的边数和边长。RegularPolygon类继承了shape抽象类,并实现了getArea()和getPerimeter()方法。在getArea()方法中,我们根据公式计算正n边形的面积,先将角度转换成弧度,然后使用Math库中的tan()方法计算正切值。在getPerimeter()方法中,我们直接返回正n边形的周长,即n*a。
相关问题
r6-2 最大值函数重载 分数 10 作者 杨军 单位 四川师范大学 编写重载函数mymax可
重载函数是指同一个函数名可以在不同的参数类型下进行定义和使用。在一个程序中,如果需要对不同类型的数据进行比较,就可以使用函数重载来定义不同参数类型的比较函数。
在解决r6-2题目中的最大值函数重载问题时,我们可以根据题目要求,实现一个可以比较分数大小的重载函数mymax。
首先,我们需要定义一个结构体来表示分数,该结构体包含两个整型的成员变量,分别表示分子和分母。然后,重载函数mymax,使用该结构体作为参数类型。
mymax的实现思路如下:
1. 首先,比较两个分数的分子值的大小,如果分子值不相等,则分子大的分数大。
2. 如果分子值相等,那么比较两个分数的分母值的大小,分母小的分数大。
3. 如果分子和分母的值都相等,那么两个分数相等。
下面是mymax的具体实现:
```
struct Fraction{
int numerator;
int denominator;
};
Fraction mymax(Fraction a, Fraction b){
if(a.numerator != b.numerator){
return a.numerator > b.numerator ? a : b;
}
else if(a.denominator != b.denominator){
return a.denominator < b.denominator ? a : b;
}
else{
return a; //或者返回b,因为两个分数相等
}
}
```
通过以上的实现,我们可以在程序中调用mymax函数来比较两个分数的大小,根据返回值即可得到最大的分数。
以上就是如何用300字回答r6-2题目中的最大值函数重载问题的方法。
R6-3 jmu-python-发牌 分数 10 作者 蔡莉白 单位 集美大学 从键盘输入一个整数作为随机种子,随机生成一副扑克牌(去掉大小王),循环分给4位牌手,每人5张牌(第1、5、9、13、17张牌给第一个玩家,第2、6、10、14、
18张牌给第二个玩家,以此类推),输出每位玩家手中的牌和对应的点数(计算点数时,将A作为1,J、Q、K作为10,其余按牌面点数计算)。
示例输入:
```
123
```
示例输出:
```
player 1: ['♠️9', '♣️K', '♥️J', '♠️3', '♥️7'],total points: 30
player 2: ['♥️6', '♦️10', '♦️Q', '♠️A', '♦️4'],total points: 31
player 3: ['♠️10', '♠️5', '♠️J', '♠️8', '♠️6'],total points: 39
player 4: ['♣️4', '♠️2', '♥️4', '♦️5', '♣️3'],total points: 18
```
提示:
1. 生成一副扑克牌可以使用列表推导式,如 `cards = [f'{rank}{suit}' for rank in ranks for suit in suits]` ,其中 `ranks` 和 `suits` 分别是大小和花色的列表。
2. 可以使用 `random.shuffle()` 方法将列表中的元素随机排序。
3. 分发牌时可以使用循环和取模运算。
4. 计算点数时可以使用字典或者条件判断语句。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)