当前位置: 代码迷 >> 综合 >> 7-11 sdut-oop-2 Shift Dot(类和对象) (10 分)
  详细解决方案

7-11 sdut-oop-2 Shift Dot(类和对象) (10 分)

热度:54   发布时间:2023-11-21 21:06:00.0

给出平面直角坐标系中的一点,并顺序给出n个向量,求该点根据给定的n个向量位移后的位置。
设计点类Point,内含:
(1)整型属性x和y,表示点的横坐标和纵坐标;
(2)带参构造方法,便于使用初始值构造该类对象;
(3)点移动的方法move(x1,y1),其 中x1和y1表示移动的向量,该方法返回移
(4)动后的新的点对象
(5)展示点对象的字符串方法toString(),以“(横坐标,纵坐标)”的形式。
输入格式:
多组输入。
第一行是三个整数x,y,n,表示点的坐标(x,y),和向量的个数n。
接下来n行,每行两个数xi,yi,表示第i个向量。
题目中所有数据不会超出整形范围。
输出格式:
对于每组输入,输出一行,形式为:"(x,y)",表示点的最终点位置的横坐标和纵坐标。

输入样例:
0 0 1
2 3
0 0 2
1 2
2 3
输出样例:
(2,3)
(3,5)

import java.util.Scanner;
class Point{
    int x,y;//成功后,试一下同时弄两个public Point(int x,int y){
    this.x=x;this.y=y;}public void Move(int x,int y){
    this.x+=x;this.y+=y;}public String toString(){
    return "("+this.x+","+this.y+")";}
}
public class Main{
    public static void main(String[] args){
    Scanner in=new Scanner(System.in);int x,y,n,xi,yi;while(in.hasNextLine()){
    Point a=new Point(in.nextInt(),in.nextInt());n=in.nextInt();while(n-->0){
    a.Move(in.nextInt(),in.nextInt());//a.莫忘莫忘}System.out.println(a.toString());}}
}

其实也可以不需要创建类,这个有点像C语言的函数
(然后我并没有按题目要求的,其中的Move方法去返回它的新的点对象)

  相关解决方案