Java常见编程习题

  • 1.用面向对象思想求矩形面积
  • 2.用面向对象思想求两点间的距离
  • 3.猜数字
  • 4.定义一个交通工具类

有什么错误或者需要改进的地方请各位多多指教,感谢。

1.用面向对象思想求矩形面积

import java.util.Scanner;

public class RecArea {
	public static void main(String[] args) {
		//用面向对象思想求矩形面积
		
		Rec rec=new Rec();
		//创建矩形对象
		Scanner sc=new Scanner(System.in);
		System.out.println("enter length");
		//输入长度
		double length=sc.nextDouble();
		System.out.println("enter width");
		//输入宽度
		double width=sc.nextDouble();
		//将输入的长宽传给矩形对象
		rec.setLength(length);
		rec.setWidth(width);
		//调用成员方法求面积
		double area=rec.area();
		//格式输出保留3位小数
		System.out.printf("area is %.3f",area);
	}
}
class Rec{
	private double length;//矩形长度
	private double width;//矩形宽度
	//定义长宽对应的get,set方法
	public double getLength() {
		return length;
	}
	public void setLength(double length) {
		this.length = length;
	}
	public double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width = width;
	}
	//定义求面积的方法
	public double area(){
		return this.length*this.width;
	}
}

运行结果

enter length
3.4
enter width
5.6
area is 19.040

2.用面向对象思想求两点间的距离

import java.util.Scanner;

public class DistanceDemo {
	public static void main(String[] args) {
		//用面向对象思想求两点间的距离
		
		Scanner sc=new Scanner(System.in);
		System.out.println("enter first x");
		//输入第一个点的横坐标
		double x1=sc.nextDouble();
		System.out.println("enter first y");
		//输入第一个点的纵坐标
		double y1=sc.nextDouble();
		System.out.println("enter second x");
		//输入第二个点的横坐标
		double x2=sc.nextDouble();
		System.out.println("enter second y");
		//输入第二个点的纵坐标
		double y2=sc.nextDouble();
		//创建两个点并把输入的横纵坐标传入
		Distance d1=new Distance(x1,y1);
		Distance d2=new Distance(x2,y2);
		//调用方法求两点的距离
		double distanceGap=calculate(d1,d2);
		//格式输出保留三位小数
		System.out.printf("two distance gap is %.3f",distanceGap);
	}
	//定义求两点间距离的方法
	public static double calculate(Distance dot1,Distance dot2){
		double gap1=Math.pow(dot1.getY()-dot2.getY(), 2);
		//计算(y2-y1)的平方
		double gap2=Math.pow(dot1.getX()-dot2.getX(), 2);
		//计算(x2-x1)的平方
		return Math.sqrt(gap1+gap2);
		//计算根号(gap1+gap2)并返回
	}
}
class Distance{
	private double x;//点的横坐标
	private double y;//点的纵坐标
	//无参构造
	public Distance(){
		
	}
	//带参构造
	public Distance(double x,double y){
		this.x=x;
		this.y=y;
	}
	//x,y对应的get,set方法
	public double getX() {
		return x;
	}
	public void setX(double x) {
		this.x = x;
	}
	public double getY() {
		return y;
	}
	public void setY(double y) {
		this.y = y;
	}
	
}

运行结果

enter first x
4.3
enter first y
5.7
enter second x
3.8
enter second y
7.6
two distance gap is 1.965

3.猜数字

import java.util.Random;
import java.util.Scanner;

public class GuessNum {
	public static void main(String[] args) {
		//猜数字
		
		Guess g=new Guess();
		//创建猜数字对象
		Random r=new Random();
		g.setNum(r.nextInt(100)+1);
		//给对象成员变量赋一个1到100间的随机整数
		guess(g);
		//调用方法进行猜测
	}
	public static void guess(Guess g){
		while(true){
			Scanner sc=new Scanner(System.in);
			System.out.println("enter your guess number(1~100)");
			//输入你猜的数字
			int num=sc.nextInt();
			if(num>g.getNum()){
				System.out.println("your number is big");
				//你猜的大了
			}else if(num<g.getNum()){
				System.out.println("your number is small");
				//你猜的小了
			}else{
				System.out.println("your number is right");
				//你猜对了,猜对则跳出循环,结束游戏
				break;
			}
		}
	}
}
class Guess{
	private int num;
	//要猜的数
	
	//num的set,get方法
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	
}

运行结果

enter your guess number(1~100)
50
your number is big
enter your guess number(1~100)
25
your number is small
enter your guess number(1~100)
35
your number is small
enter your guess number(1~100)
45
your number is small
enter your guess number(1~100)
47
your number is small
enter your guess number(1~100)
49
your number is big
enter your guess number(1~100)
48
your number is right

4.定义一个交通工具类

import java.util.Scanner;

public class VehicleDemo {
	public static void main(String[] args) {
		//定义一个交通工具类
		
		Vehicle ve=new Vehicle(30,400);
		//创建一个交通工具并初始化
		Scanner sc=new Scanner(System.in);
		while(true){
			System.out.println("1.move start");
			//开始移动
			System.out.println("2.move end");
			//停止移动
			System.out.println("3.set speed");
			//修改速度
			System.out.println("4.set size");
			//修改交通工具大小
			System.out.println("5.speed up");
			//加速
			System.out.println("6.speed down");
			//减速
			System.out.println("7.show vehicle");
			//显示交通工具信息
			System.out.println("0.exit system");
			//退出
			int use=sc.nextInt();
			//接收用户输入
			switch(use){
			case 1:
				ve.moveStart();
				break;
			case 2:
				ve.moveEnd();
				break;
			case 3:
				System.out.println("enter speed");
				double speed=sc.nextDouble();
				ve.setSpeed(speed);
				break;
			case 4:
				System.out.println("enter size");
				double size=sc.nextDouble();
				ve.setSize(size);
				break;
			case 5:
				ve.speedUp();
				break;
			case 6:
				ve.speedDown();
				break;
			case 7:
				ve.show();
				break;
			case 0:
				System.exit(0);
			default:
				System.out.println("wrong number");
				break;
			}
		}
		
	}
}
class Vehicle{
	private double speed;//速度
	private double size;//大小
	public Vehicle(){
		
	}//无参构造
	public Vehicle(double speed,double size){
		this.speed=speed;
		this.size=size;
	}//带参构造
	public void moveStart(){
		System.out.println("move start……");
	}//开始移动
	public void moveEnd(){
		System.out.println("move end……");
	}//结束移动
	public void setSpeed(double speed){
		this.speed=speed;
		System.out.println();
	}//修改速度
	public void speedUp(){
		System.out.println("speed up……");
		this.speed++;
	}//加速
	public void speedDown(){
		System.out.println("speed down……");
		this.speed--;
	}//减速
	public void setSize(double size){
		this.size=size;
		System.out.println();
	}//修改大小
	public void show(){
		System.out.printf("speed is %.2f,size is %.2f\n",this.speed,this.size);
	}//显示信息
}

运行结果

1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
7
speed is 30.00,size is 400.00
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
1
move start……
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
3
enter speed
60

1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
4
enter size
600

1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
5
speed up……
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
7
speed is 61.00,size is 600.00
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
6
speed down……
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
7
speed is 60.00,size is 600.00
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
2
move end……
1.move start
2.move end
3.set speed
4.set size
5.speed up
6.speed down
7.show vehicle
0.exit system
0