JAVA实验二

JAVA实验二


实验二一共10题,附上题目及完整代码。

7187
题目內容:
创建一个立方体类,类中有3个成员变量:长、宽、高,共有两个功能方法,一个是setDemo(int x,int y,int z),为长宽高赋值;另一个实现计算体积的功能,编写主类,在主方法中,创建一个立方体类的对象,从键盘输入其成员变量,求该立方体对象的体积,结果显示在屏幕上。
输入输出说明:
输入:1 2 3
输出:体积=6
代码编辑:

import java.util.Scanner;
class Cube{
    int length;
    int width;
    int height;
    public void setDemo(int x,int y,int z)
    {
        length= x;
        width= y;
        height= z;
    }
    public int volume(){
        return length*width*height;
    }
}
public class Main {
    public static void main(String args[]){
        Scanner reader=new Scanner(System.in);
        Cube cube=new Cube();
        int x= reader.nextInt();
        int y= reader.nextInt();
        int z= reader.nextInt();
        cube.setDemo(x,y,z);
        System.out.println("体积="+cube.volume());
    }
}

7190
题目內容:
编写一个类Add,该类静态方法完成计算等差数列和的功能,在主类中,通过键盘输入差数列的首项、项数和公差,使用该方法,求该等差数列的和。
输入输出说明:
输入:1 10 1
输出内容 和=55
代码编辑:

import java.util.Scanner;
class Add{
    int a1,n,d;
    public void setadd(int x,int y,int z)
    {
        a1=x;
        n=y;
        d=z;
    }
    public int sum()
    {
        return n*a1+n*(n-1)*d/2;
    }
}
public class Main {
    public static void main(String args[])
    {
        Add add=new Add();
        Scanner reader= new Scanner(System.in);
        int x= reader.nextInt();
        int y= reader.nextInt();
        int z= reader.nextInt();
        add.setadd(x,y,z);
        System.out.println("和="+add.sum());
    }
}

7188
题目內容:
定义一个学生类(Student),具有属性:名字name和年龄age,方法有构造方法、setName()方法、getName()方法、setAge()方法和getAge()方法;定义主类和main()方法,在main()方法中创建学生对象,过键盘输入其成员变量,并通过对象调用它的方法,输出学生的名字name和年龄age。
输入输出说明:
输入:林林 18
输出:该生姓名:林林,年龄:18
代码编辑:

import java.util.Scanner;
class Student{
    String name;
    int age;
    void setName(String name){
        this.name=name;
    }
    String getName(){
        return name;
    }
    void setAge(int age){
        this.age=age;
    }
    int getAge(){
        return age;
    }
}
public class Main {
    public static void main(String args[])
    {
        Student s=new Student();
        Scanner reader=new Scanner(System.in);
        String name= reader.next();
        int age= reader.nextInt();
        s.setName(name);
        s.setAge(age);
        System.out.printf("该生姓名:"+s.getName()+",");
        System.out.printf("年龄:"+s.getAge());
    }
}

7202
题目內容:
定义并实现一个复数类Complex,要求实现复数的加法和减法。
类拥有两个成员变量a和b,分别代表复数的实部和虚部。类有默认构造方法(a和b的默认值为0),也有拷贝构造方法(参数为复数类对象的引用)。另外还应该有一个Print方法打印复数,打印格式为a+bi,若实部虚部都为0,则输出0。两个复数的实部、虚部在main方法中由键盘输入。
输入输出说明:
输入:
3 4 1 2
输出:
4+6i
2+2i
代码编辑:

import java.util.*;
public class Main{
    public static void main(String[] args) {
    	int m,n;    //第一个数的实部和虚部
		int p,q;    //第二个数的实部和虚部
		Scanner scanner =new Scanner(System.in);
		m=Integer.parseInt(scanner.next());
		n=Integer.parseInt(scanner.next());
		p=Integer.parseInt(scanner.next());
		q=Integer.parseInt(scanner.next());
		Complex t =new Complex(m,n);
		Complex s =new Complex(t);
		Complex r=new Complex(p,q);
	    (s.Add(r)).Print();
	    (t.Sub(r)).Print();
	}
}
class Complex{
    int a,b;
    Complex(){}
    Complex(int x,int y)
    {
        a=x;
        b=y;
    }
    Complex(Complex c){
        this.a=c.a;
        this.b=c.b;
    }
    Complex Add(Complex c)
    {
        return new Complex(a+c.a,b+c.b);
    }
    Complex Sub(Complex c)
    {
        return new Complex(a-c.a,b-c.b);
    }
    public void Print()
    {
        if(a==0&&b==0) System.out.println(0);
        else System.out.println(a+" "+b+"i");
    }
}

7203
题目內容:
编写一个类ObjectCounter,用来统计程序中目前存在多少个该类的对象。测试代码已经在主函数中写出。
注意:
(1) 构造方法生成一个类对象
(2) 静态成员的定义与调用
输入输出说明:
输入:
6
输出:
6
代码编辑:

import java.util.Scanner;
class ObjectCounter {
public static int count=0;
    public ObjectCounter(){
        count++;
    }
    public static int getCount(){
        return count;
    }
}
public class Main {
    public static void main(String[] args) {
	    Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		for(int i=0;i<n;i++)
		{
			ObjectCounter str1 = new ObjectCounter();
		}
		System.out.println(ObjectCounter.getCount());
	}
}

7201
题目內容:
定义一个 point类,该类具有两个构造方法。
按顺序实现下属操作:
1.定义一个point类的对象A,用参数(x,y)初始化。(x,y从键盘输入)
2.定义一个point类的对象B,用A初始化B。
3.输出B.GetX()。
4.调用fun1(),对象B作为fun1的实参。
5.执行 B=fun2()。
6.输出 B.GetX()。
输入输出说明:
输入:
4 5
输出:
4
4
1
代码编辑:

import java.util.Scanner;
class Point {
    private  int x;
    private  int y;
    public Point(int xx,int yy) //构造方法
    {
        this.x=xx;
        this.y=yy;
    }
    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }
    Point(Point B) {
        this.x = B.x;
        this.y = B.y;
    }
    public static void fun1(Point p)
    {
        System.out.println(p.getX());
    }
    public static Point fun2()
    {
        Point A =new Point(1,2);
        return A;
    }
}
public class Main{
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int m = reader.nextInt();
        int n = reader.nextInt();
        Point A = new Point(m, n);
        Point B = new Point(A);
        System.out.println(B.getX());
        Point.fun1(B);
        B = Point.fun2();
        System.out.println(B.getX());
    }
}

7198
题目內容:
编写一个Dog类,其中的私有成员包括,name,color,age。请使用get,set方法访问私有变量。Dog类的无参构造方法,name=dog1,color=white,age=1。有参构造方法name,color,age从键盘上输入。请在主类中,创建dog1,用无参构造方法,dog2为有参构造方法。输出语句为:System.out.println(“name=” + d1.getName() + “,color=” +d1.getcolor()+",age="+d1.getAge());
输入输出说明:
输入:
peter
red
6
输出:
name=dog1,color=white,age=1
name=peter,color=red,age=6
代码编辑:

import java.util.Scanner;
class Dog {
    private String name;
    public String getName() {
        return name;
    }
    private String color;
    public String getcolor() {
        return color;
    }
    private int age;
    public int getAge() {
        return age;
    }
    Dog() {                 //无参数构造方法
        this.name = "dog1";
        this.color = "white";
        this.age = 1;
    }
    Dog(String name, String color, int age) {     //有参数构造方法
        this.name = name;
        this.color = color;
        this.age = age;
    }
}
public class Main {
    public static void main(String[] args) {
        Scanner reader =new Scanner(System.in);
        Dog d1=new Dog();
        String name = reader.nextLine();
        String color = reader.nextLine();
        int age = reader.nextInt();
        Dog d2 = new Dog(name,color,age);
        System.out.println("name=" + d1.getName() + ",color=" +d1.getcolor()+",age="+d1.getAge());
        System.out.println("name=" + d2.getName() + ",color=" +d2.getcolor()+",age="+d2.getAge());
    }
}

7200
题目內容:
创建一个类,为该类定义三个构造函数,从键盘输入两个int值,三个double值,两个字符串,分别执行下列操作:
1、传递两个整数值并找出其中较大的一个值
2、传递三个double值并求出其乘积
3、传递两个字符串值并检查其是否相同
4、在main方法中测试构造函数的调用
输入输出说明:
输入:
9 15
3.3 4.4 5.5
ab
ab
输出:
Larger value: 15
abc = 79.86
Are equal: true
代码编辑:

import java.util.Scanner;
class Check {
    Check(int x,int y){
        if(x>y) System.out.println("Larger value: " + x);
        else System.out.println("Larger value: " + y);
    }
    Check(double a,double b,double c)
    {
        System.out.println("a*b*c = " + a*b*c);
    }
    Check(String s1,String s2){
        if(s1.equals(s2)) System.out.println("Are equal: true");
        else System.out.println("Are equal: false");
    }
}
public class Main {
    public static void main(String args[]) {
        Scanner reader= new Scanner(System.in);
        int x=reader.nextInt();
        int y= reader.nextInt();
        Check ch1=new Check(x,y);
        double a= reader.nextDouble();
        double b= reader.nextDouble();
        double c= reader.nextDouble();
        Check ch2=new Check(a,b,c);
        String s1= reader.next();
        String s2= reader.next();
        Check ch3=new Check(s1,s2);
    }
}

7199
题目內容:
定义Prime类中的静态方法prime。此方法功能判断输入参数是否是素数。如何是素数返回true,否则返回false。在main方法中调用prime静态方法,然后根据返回结果进行输出,如果返回true,则输出YES,否则输出NO。
(提示:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数)
输入输出说明:
输入:
4
输出:
NO
代码编辑:

import java.util.Scanner;
class Prime{
        int x;
        void setnum(int n){
            x=n;
        }
        int isprime()
        {
            if(x<2) return 0;
            for(int i=2;i<x;i++)
            {
                if(x%i==0) return 0;
            }
        return 1;
        }
}
    public class Main{
         public static void main(String[] args){
            Scanner in = new Scanner(System.in);
             int n = in.nextInt();
             Prime prime=new Prime();
             prime.setnum(n);
             if(prime.isprime()==0) System.out.println("NO");
             else System.out.println("YES");
    }
}

7191
题目內容:
编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。该程序涉及商品、超市、购物者三个类,具体要求如下:
(1)商品类Product,包含商品名属性和set及get方法;
(2)超市类Market,包含超市名属性、存放商品的Product类型数组属性,set、get超市名的方法,能够获取商品或者存入商品的get、set方法,卖货的方法sell(String ProductName),该方法的功能是查找超市是否有所要购买的商品,如果有,则返回商品名;如果没有则返回空;
(3)购物者类Person,包含购物者姓名,set、get姓名的方法;购物的方法shopping,要求把超市和商品作为参数,调用Market类的sell方法返回购物结果;
(4)定义测试类Shopping,创建电视机、洗衣机、豆浆机、打印机等商品;创建超市,并将商品存入超市中;创建购物者对象,并进行购物;输入超市名和要购买的商品名,根据购物结果给出结论。
输入输出说明:
输入:家乐福 计算机
输出:张乐所需商品无货
输入:家家乐福 电视机
输出:张乐买到了电视机
代码编辑:

import java.util.Scanner;
class Product{
    String proname;
    void setName(String name){
        proname=name;
    }
    String getName(){
        return proname;
    }
}
class Market{
    String marname;
    Product productArr[];
    void setName(String name){
        marname=name;
    }
    String getName(){
        return marname;
    }
    Product[] getProductArr()
    {
        return productArr;
    }
    void setProductArr(Product productArr[])
    {
        this.productArr=productArr;
    }
    Product sell(String name)
    {
        for(int i=0;i<productArr.length;i++)
        {
            if(name.equals(productArr[i].getName()))
                return productArr[i];

        }
        return null;
    }
}
class  Person{
    String name;
    public void setName(String name)
    {
        this.name=name;
    }
    public String getName()
    {
        return name;
    }
    Product shopping(Market market,String name)
    {
        return market.sell(name);

    }
}
public class Main {
    public static void main(String[] args)
    {
        Scanner reader =new Scanner(System.in);
        Product p1 = new Product();
        Product p2 = new Product();
        Product p3 = new Product();
        Product p4 = new Product();
        p1.setName("电视机");
        p2.setName("洗衣机");
        p3.setName("豆浆机");
        p4.setName("打印机");
        Market market=new Market();
        String name1= reader.next();
        market.setName(name1);
        market.setProductArr(new Product[]{p1,p2,p3,p4});
        Person p=new Person();
        p.setName("张乐");
        String name2= reader.next();
        Product result=p.shopping(market,name2);
        if(result!=null)
            System.out.println(p.getName()+"买到了"+result.getName());
        else
            System.out.println(p.getName()+"所需商品无货");
    }
}
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值