赞
踩
构造Person类。包括姓名(name),性别(sex)和年龄(age)。提供所有属性的set和get函数,提供print函数打印其信息
输入描述:
姓名(name),性别(sex)和年龄(age)
输出描述:
用户信息
裁判测试程序样例:
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); String name = scan.next(); String sex = scan.next(); int age = scan.nextInt(); Person p = new Person(); p.setName(name); p.setSex(sex); p.setAge(age); p.print(); scan.close(); } } /* 你的代码被嵌在这里 */
输入样例:
在这里给出一组输入。例如:
Lucy male 23
输出样例:
在这里给出相应的输出。例如:
name:Lucy; sex:male; age:23
static class Person { private String name; private String sex; private int age; public void setName(String name) { this.name=name; } public void setSex(String sex) { this.sex=sex; } public void setAge(int age) { this.age = age; } public void print() { System.out.print("name:"+name+"; "); System.out.print("sex:"+sex+"; "); System.out.print("age:"+age); } }
在Person类的基础上,添加一个带参数的构造函数,参数分别为姓名,性别,年龄,提供print函数打印其信息
输入描述:
姓名(name),性别(sex)和年龄(age)
输出描述:
用户信息
裁判测试程序:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String name = scan.next();
String sex = scan.next();
int age = scan.nextInt();
Person p = new Person(name,sex,age);
p.print();
scan.close();
}
}
/* 你的代码被嵌在这里*/
输入样例:
在这里给出一组输入。例如:
Lucy male 23
输出样例:
在这里给出相应的输出。例如:
name:Lucy; sex:male; age:23
ans:
class Person { public Person(String name,String sex,int age) { this.name=name; this.sex=sex; this.age=age; } private String name; private String sex; private int age; public void setName(String name) { this.name=name; } public void setSex(String sex) { this.sex=sex; } public void setAge(int age) { this.age = age; } public void print() { System.out.print("name:"+name+"; "); System.out.print("sex:"+sex+"; "); System.out.print("age:"+age); } }
有一个学生类的结构如下:
class Student { private int no; private String name; private int score; public Student(int _no, String _name, int _score) { no = _no; name = _name; score = _score; } public int getNo() {return no;} public String getName() {return name;} public int getScore() {return score;} public void print(){ System.out.println(no + " "+name+" "+score); } }
请构造main函数完成如下功能: 从键盘中读入三个学生的信息,比较他们的成绩,按照成绩由高到低排列输出
输入描述:
三个学生的学号、姓名、成绩
输出描述:
由高到低排列输出的三个学生信息
裁判测试程序样例:
/*你的代码被嵌在这里*/ class Student { private int no; private String name; private int score; public Student(int _no, String _name, int _score) { no = _no; name = _name; score = _score; } public int getNo() {return no;} public String getName() {return name;} public int getScore() {return score;} public void print(){ System.out.println(no + " "+name+" "+score); } }
输入样例:
在这里给出一组输入。例如:
1 wang 89
2 liu 78
3 ma 90
输出样例:
在这里给出相应的输出。例如:
3 ma 90
1 wang 89
2 liu 78
ans:
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); Student[] arr=new Student[3]; int[] b=new int[3]; for(int i=0;i<3;i++) { int no = s.nextInt(); String name = s.next(); int score = s.nextInt(); arr[i] = new Student(no, name, score); b[i]=score; } //修改冒泡排序 //控制多少轮 for (int i = 1; i < arr.length; i++) { //控制每一轮的次数 for (int j = 0; j <= arr.length - 1 - i; j++) { if (b[j]> b[j+1]) {//冒泡排序,b[j]与b[j+1]比较的是交换后的值 Student temp=new Student(0,"0",0);//Student temp,error,未赋值 temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; int t;//成绩排序 t=b[j];b[j]=b[j+1];b[j+1]=t; } } } for(int j=2;j>=0;j--) { arr[j].print(); } } }
构建家具类Furniture,包括长、宽、高,均为整数(cm)。提供相应的构造函数和get、set函数。 Main函数里构造家具对象,并调用相应的函数。
输入描述:
家具对象的长宽高
输出描述:
家具对象的相关属性
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Furniture f = new Furniture(sc.nextInt(),sc.nextInt(),sc.nextInt());
System.out.println(f.getHeight());
System.out.println(f.getLength());
System.out.println(f.getWidth());
}
}
/* 你的代码被嵌在这里*/
输入样例:
在这里给出一组输入。例如:
50 60 100
输出样例:
在这里给出相应的输出。例如:
100
50
60
class Furniture { int length; int width; int height; public Furniture(int a,int b,int c) { length=a; width=b; height=c; } void setHeight(int a) { height=a; } void setLength(int b) { length=b; } void setWidth(int c) { width=c; } int getHeight() { return height; } int getLength() { return length; } int getWidth() { return width; } }
构造日期类MyDate类,包含年月日,提供相应的get和set函数,提供void print()函数打印日期,提供int compare(MyDate d)测试当前对象和参数对象d的早晚,如果早则返回-1,晚则返回1,相等则返回0 在main函数中,读入两个日期对象,输出第一个日期对象的信息,输出两个对象的比较结果
输入格式:
两个日期对象,第一个为当前日期对象的年月日,第二个为待比较日期对象的年月日
输出格式:
当前日期对象的信息,当前对象和待比较日期对象的比较结果
输入样例:
在这里给出一组输入。例如:
2008 6 12 2009 6 22
输出样例:
在这里给出相应的输出。例如:
6/12/2008 -1
ans:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int year1=sc.nextInt(); int month1=sc.nextInt(); int day1=sc.nextInt(); MyDate d1= new MyDate(year1,month1,day1); int year2=sc.nextInt(); int month2=sc.nextInt(); int day2=sc.nextInt(); MyDate d2=new MyDate(year2,month2,day2); int flag; if(d1.getYear()>d2.getYear()||d1.getMonth()>d2.getMonth()||d1.getDay()>d2.getDay()) flag=1; else if(d1.getYear()==d2.getYear()&&d1.getMonth()==d2.getMonth()&&d1.getDay()==d2.getDay()) flag=0; else flag=-1; d1.print(); System.out.print(" "+flag); sc.close(); } static class MyDate { int year; int month; int day; public MyDate(int year,int month,int day) { this.year=year; this.month=month; this.day=day; } void setYear(int y) { year=y; } void setMonth(int m) { month=m; } void setDay(int d) { day=d; } int getYear() { return year; } int getMonth() { return month; } int getDay() { return day; } void print() { System.out.print(getMonth()+"/"+getDay()+"/"+getYear()); } } }
在Person类的基础上,添加一个静态变量avgAge表示所有Person对象的平均年龄(整数),提供方法getAvgAge能够读取该静态变量。 main函数中,构造三个Person类的对象,读入他们的信息,并输出他们的平均年龄
输入格式:
多个用户信息
输出格式:
平均年龄
输入样例:
在这里给出一组输入。例如:
a male 23
b female 21
c male 22
输出样例:
在这里给出相应的输出。例如:
22
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); //int n=scan.nextInt(); for(int i=0;i<3;i++) { String name = scan.next(); String sex = scan.next(); int age = scan.nextInt(); Person p = new Person(name,sex,age); } System.out.print(Person.getAverage()); scan.close(); } public static class Person { public Person(String name,String sex,int age) { this.name=name; this.sex=sex; this.age=age; average+=age; aver = average/3; } private String name; private String sex; private int age; private static int average=0; private static int aver; public void setName(String name) { this.name=name; } public void setSex(String sex) { this.sex=sex; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } public static int getAverage() { return aver; } } }
编写汽车类,其功能有启动(start),停止(stop),加速(speedup)和减速(slowDown),启动和停止可以改变汽车的状态(on/off),初始时状态为off,速度为0,speedUp和slowDown可以调整汽车的速度,每调用一次汽车速度改变10(加速增10,减速减10),汽车启动后才能加减速,加速上限为160,减速下限为0,汽车速度减为0后才能停止,给出汽车类的定义。 Main函数中构造一个汽车对象,并对该对象进行操作,各个操作的编号为:
1.start
2.stop
3.speedup
4.slowdown 操作完成后打印出汽车的状态和速度。
输入描述:
操作
输出描述:
汽车的状态和速度
裁判测试程序样例:
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); Car c = new Car(); for (int i=0;i<n;i++) { int a = s.nextInt(); switch (a) { case 1: c.start(); break; case 2: c.stop(); break; case 3: c.speedUp(); break; case 4: c.slowDown(); break; } } System.out.print(c.status + " "); System.out.println(c.speed); } } /* 你的代码被嵌在这里 */
输入样例:
在这里给出一组输入。例如:
8
1 3 3 4 3 4 4 2
输出样例:
在这里给出相应的输出。例如:
off 0
class Car { int speed=0; String status="off"; public void start() { status="on"; } public void stop() { if(speed==0) status="off"; } public void speedUp() { if(status=="on") speed+=10; if(speed>=160) { speed=160; } } public void slowDown() { if(status=="on") speed-=10; if(speed<=0) { speed=0; } } }
6-2 设计直线类 (20分)
两点可以确定一条直线,请设计一个直线类Line,需要通过两个点Point对象来确定。
设计类Point,包含两个坐标值,提供必要的构造函数和其他辅助函数
设计类Line,包含两个点,提供必要的构造函数和其他辅助函数
为Line提供一个getLength方法返回直线的长度
在Main类的main方法中,读入2对Point的坐标,输出2对Point所表示的直线的长度,保留两位小数(可用System.out.printf)
裁判测试程序样例:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Point p1 = new Point(sc.nextDouble(),sc.nextDouble());
Point p2 = new Point(sc.nextDouble(),sc.nextDouble());
Line l = new Line(p1,p2);
System.out.printf("%.2f",l.getLength());
}
}
/* 请在这里填写答案 */
输入样例:
23.2 22.1 12.2 3.2
输出样例:
21.87
class Point { double x,y; public Point(double x,double y) { this.x=x; this.y=y; } public void SetX(double x) { this.x=x; } public void SetY(double y) { this.y=y; } public double GetX() { return x; } public double GetY() { return y; } } class Line { Point p1,p2; public Line(Point p1,Point p2) { this.p1=p1; this.p2=p2; } public double getLength() { return Math.sqrt(Math.pow((p1.x-p2.x), 2)+Math.pow((p1.y-p2.y), 2)); } }
构造类Student,包含姓名,性别,年龄。提供必要的构造函数和其他成员函数。
提供静态函数getMaleCount,getFemaleCount,能够获得所有在main函数中构造的Student对象中男生和女生的数量。
main函数中先读取学生个数n,而后构造n个学生对象,最后分别打印其中男生和女生的人数。(输入的三个字段用空格分开,名字内部没有空格,性别用数字表示,1为男生,0为女生)
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0;i<n;i++){
Student s = new Student(sc.next(),sc.nextInt(), sc.nextInt());
}
System.out.println("number of male students:" + Student.getMaleCount() );
System.out.println("number of female students:" + Student.getFemaleCount() );
}
}
/* 请在这里填写答案 */
输入样例:
5
LiuMing 0 20
FangDa 1 19
DaShan 0 20
ChenHuang 0 21
DeLi 0 20
输出样例:
number of male students:1
number of female students:4
统计男生和女生个数在构造函数中进行
class Student { public Student(String name,int sex,int age) { this.name=name; this.sex=sex; this.age=age; if(getSex()==1) malenumber++; if(getSex()==0) femalenumber++; } private String name; private static int sex; private int age; static int malenumber=0; static int femalenumber=0; public void setName(String name) { this.name=name; } public void setSex(int sex) { this.sex=sex; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public static int getSex() { return sex; } public int getAge() { return age; } public static int getMaleCount() { return malenumber; } public static int getFemaleCount() { return femalenumber; } }
设计一个BankAccount类,这个类包括:
(1)一个int型的balance表时账户余额。
(2)一个无参构造方法,将账户余额初始化为0。
(3)一个带一个参数的构造方法,将账户余额初始化为该输入的参数。
(4)一个getBlance()方法,返回账户余额。
(5)一个withdraw()方法:带一个amount参数,并从账户余额中提取amount指定的款额。
(6)一个deposit()方法:带一个amount参数,并将amount指定的款额存储到该银行账户上。
提供main函数,构造一个账户对象,并对其进行存取款操作。
其中操作类型类型为1表示存款,2表示取款,每次操作后都打印余额
输入格式:
账户余额 操作个数 操作类型 操作金额
输出格式:
每次操作后的余额
输入样例:
在这里给出一组输入。例如:
0
4
1 100
1 200
2 100
2 100
输出样例:
在这里给出相应的输出。例如:
100
300
200
100
import java.util.Scanner; class BankAccout { int balance; public BankAccout() { balance=0; } public BankAccout(int b) { this.balance=b; } public int getBalance() { return balance; } public int withdraw(int amount) { if(amount<=this.balance) this.balance -= amount; return this.balance; } public int deposit(int amonut) { this.balance+=amonut; return this.balance; } } class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int b = s.nextInt(); BankAccout account=new BankAccout(b); int n = s.nextInt(); for (int i=0;i<n;i++) { int a = s.nextInt(); int money=s.nextInt(); switch (a) { case 1: account.deposit(money);break; case 2: account.withdraw(money);break; default:break; } System.out.println(account.getBalance()); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。