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()+"所需商品无货");
}
}