7-3 类的定义与对象使用 (10分)

请定义一个学生类(Student),包含学号、姓名、年龄(7-60岁)三个私有成员。从键盘输入学生的成员值后生成对象,并按要求输出相应的结果。

输入格式:

第一行一个整数k,代表后面要生成的学生人数。 从第二行开始的连续k行,每行3个数据,分别表示一个学生的学号、姓名和年龄。

输出格式:

输出每个学生的基本情况。如果数据不符合要求则输出"bad"

输入样例:

3
20174042001 zhangsan 20
20174042030 lisi 2
20174042050 wangwu 17

输出样例:

zhangsan 20174042001 20
bad
wangwu 20174042050 17

代码块:

import java.util.Scanner;

public class PrintStudent {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		String[] arr = new String[num];
		for(int i=0;i<num;i++) {
			String id = sc.next();
			String name = sc.next();
			int age = sc.nextInt();
			Student si = new Student(id,name,age);
			arr[i] = si.printInfo();
		}
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
		sc.close();
	}
}

class Student{
	private String id;
	private String name;
	private int age;
	
	public Student() {}
	public Student(String id,String name,int age) {
		this.id = id;
		this.name = name;
		this.age = age;
	}
	
	public String printInfo() {
		if(age>=7 && age<=60)
			return name+" "+id+" "+age;
		else
			return "bad";
	}
	
}
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这道题目要求使用虚函数来计算各种图形的面积。虚函数是一种在基中声明的函数,它可以被派生重写,从而实现多态性。在这个问题中,我们可以定义一个基Shape,其中包含一个虚函数area(),用于计算图形的面积。然后,我们可以派生出各种图形的,如圆形、矩形、三角形等,这些都可以重写area()函数,以计算自己的面积。最后,我们可以创建这些对象,并调用它们的area()函数来计算它们的面积。这样,我们就可以使用虚函数来计算各种图形的面积了。 ### 回答2: 题目要求使用虚函数来计算各种图形的面积。虚函数是一种动态多态性的体现,它使得子重写父的方法,以便实现相同的行为呈现不同的结果。在计算图形面积的问题上,如果我们想要使用不同的公式来计算不同型的图形的面积,我们就可以利用虚函数来实现这个目的。 实现步骤: 1. 定义一个基'BaseShape',其中包含一个纯虚函数'virtual float area() = 0;',用于计算图形的面积。 2. 定义多个继承自'BaseShape'的子,分别对应不同型的图形,每个子中都需要重写基的区函数,并实现相应的计算面积的逻辑。 3. 在主函数中,可以通过基指针指向子对象,然后调用这个指针的'area()'函数,来计算选定图形的面积。 例如: class BaseShape { public: virtual float area() = 0; }; class Circle : public BaseShape { public: float radius; Circle(float r) : radius(r) {} virtual float area() { return 3.14f * radius * radius; } }; class Rectangle : public BaseShape { public: float length, width; Rectangle(float l, float w) : length(l), width(w) {} virtual float area() { return length * width; } }; int main() { BaseShape* circle1 = new Circle(5.5f); //定义一个型为圆形的对象 BaseShape* rectangle1 = new Rectangle(4.0f, 5.0f); //定义一个型为矩形的对象 std::cout << "面积为:" << circle1->area() << std::endl; //输出圆形对象的面积 std::cout << "面积为:" << rectangle1->area() << std::endl; //输出矩形对象的面积 delete circle1; delete rectangle1; return 0; } 在这个例子里,我们定义了两个子,圆形和矩形,每个子都有自己的计算面积的函数。在主函数中,我们通过基指针分别创建了一个圆形对象和一个矩形对象,并用同样的方式输出了它们的面积。这里需要注意的是,由于基的计算面积的函数是纯虚函数,所以被定义为抽象,只能被继承。这样,我们就可以利用虚函数来实现对不同图形型的面积计算,并能够实现代码的高效复用。 ### 回答3: 这道题目要求我们使用虚函数来计算各种图形的面积。虚函数是C++中的一种重要特性,它允许在父中声明一个虚函数,在子中进行重写,以便实现多态性。本题的解题思路就是通过抽象出一个图形,再派生出各种不同的子,利用多态性来计算不同形状的图形的面积。 对于这个图形,我们需要在其内部定义一个纯虚函数`virtual double area() = 0;`。记得在该纯虚函数前面加上关键字virtual,表示该函数是一个虚函数。并且要在最后面加上`= 0`,表示它是一个纯虚函数,不能被子继承而不重写。 接着派生出一个`Rectangle`(矩形)和一个`Circle`(圆形),并分别实现其`area()`函数。这些子的`area()`函数将override父的虚函数,具体实现不同的面积计算方法。例如矩形的面积计算公式是长乘以宽,圆形的面积计算公式是π乘以半径的平方。 下面我们需要一个计算各种图形面积的函数,这个函数的具体实现就要用到多态性了。这个函数的输入式一个指向图形的指针,运用虚函数的特性,直接调用该指针所指向的对象的`area()`函数。然后将计算出的面积打印出来即可。 当然,这个虚函数除了`area()`函数外,我们还可以在图像定义其他虚函数或普通成员函数,例如计算周长、获取名称等等。这样,我们就可以使用虚函数实现面向对象编程的多态性和抽象性,将代码设计得更加优雅和可扩展。 最后,在运行时,我们可以用指向子对象的基指针来代替子对象的名称,从而生成子对象的实例并调用相应的函数。这种方式也被称为向上型转换。例如: ``` Shape *shape = new Rectangle(5.0, 6.0); cout << "Rectangle area is: " << shape->area() << endl; ``` 这段代码将会生成一个`Rectangle`对象,并调用其`area()`函数,最终输出结果为矩形的面积。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值