两道JAVA程序设计题

【题目1】设计一个表示二维平面上点的类Point,包括表示坐标位置的成员变量x、y及获取x、y值的方法。
设计一表示圆的类Circle,它继承类Point,还包括成员变量r表示圆半径,设置和获取半径r值的方法及计算圆面积(保留2位小数)的方法。
设计一表示圆柱体的类Cylinder,它继承类Circle,还包括成员变量h表示圆柱体的高,设置和获取高h值的方法及计算圆柱体体积(保留2位小数)的方法。
在主方法中,建立若干个Cylinder对象,输出其轴心坐标、半径、高及底面积和体积。

/*…源代码…*/
publicclass exp05 {
publicstaticvoidmain(String[] args) {
Cylinderc1=new Cylinder(1,1,2,4);
Cylinderc2=new Cylinder(0,0,4,6);
System.out.println("圆柱体1:");
printout(c1);
System.out.println("圆柱体2:");
printout(c2);
}
staticvoidprintout(Cylinder c){ System.out.println("x="+c.getX()+",Y="+c.getY()+",Radius="+c.getR()+",Height="+c.getH());
System.out.println("Area="+c.area()+",Volume="+c.volume());
}
}
输出:
圆柱体1:
x=1.0,Y=1.0,Radius=2.0,Height=4.0
Area=12.57,Volume=50.28
圆柱体2:
x=0.0,Y=0.0,Radius=4.0,Height=6.0
Area=50.27,Volume=301.62

【题目2】设计一个职员类(Employee),包含成员变量:姓名(name),入职日期(hireday),月薪(salary),以及显示职员信息(show)和计算年纳税额(tax)的方法。其中月纳税额计算:salary<=3000不计税;3000<salary<=5000 5%;5000< salary<=10000 10%;10000<salary<=15000 15%;salary<15000 20%;累进计算,如某职员月薪12500,月纳税:2000*0.05+5000*0.1+(12500-10000)*0.15=975,年纳税=月纳税*12
设计一个管理层类(Manager),继承Employee,新增成员变量年度奖金(bonus),同样包含显示信息和计算年纳税额的方法,年纳税额计算除按月薪纳税外,增加年度奖金的纳税额(税率20%)
在主方法中,建立Employee和Manager对象,输出信息及年纳税金额
publicclass List {
publicstaticvoidmain(String[] args) {
Employeee1=new Employee("张强","2010/09/01",6890);
e1.show("普通");
System.out.println();
System.out.println("年纳税:"+e1.tax());
Managerm1=new Manager("朱慧","2003/07/06",18530,38000);
m1.show("管理");
System.out.println();
System.out.println("年纳税:"+m1.tax());
}
}
class Employee{
/*…源代码…*/
}
class Manager/*…源代码…*/
输出:
岗位:普通
姓名:张强,入职日期:2010/09/01,月薪:6890
年纳税:3468.0
岗位:管理
姓名:朱慧,入职日期:2003/07/06,月薪:18530,奖金:38000
年纳税:32272.0

第一题看的脑壳疼,但是和第二题的意思差不多,我帮你做了第二题

public class List {
public static void main(String[] args) {
Employee e1 = new Employee("张强","2010/09/01",6890);
e1.show("普通");
System.out.println("年纳税:"+e1.tax());
Manager m1 = new Manager("朱慧","2003/07/06",18530,38000);
m1.show("管理");
System.out.println("年纳税:"+m1.tax());
}
}
//下面是补全的代码
class Employee{
String name,date;
double salary,bonus;
Employee(String name,String date,double salary){
this.name = name;
this.date = date;
this.salary = salary;
}
public void show(String str){
System.out.println("岗位:"+str);
System.out.println("姓名:"+name+",入职时间:"+date+",月薪:"+salary);
}
public double tax(){
if(salary <= 0){
throw new RuntimeException("工资不允许小于等于0");
}
else if(salary>3000 && salary<=5000){
salary = salary*0.05*12; //纳税这里我也不知道他们具体是怎么个算法,反正意思差不多,套进去就行了
}
else if(salary>5000 && salary<=10000){
salary = salary*0.1*12;
}
else if(salary>10000 && salary<=15000){
salary = salary*0.15*12;
}
else if(salary>15000){
salary = salary*0.2*12;
}
return salary+(bonus*0.2);
}
}
class Manager extends Employee{

Manager(String name,String date,double salary,double bonus){
super(name,date,salary);
super.bonus = bonus;
}
public void show(String str){
System.out.println("岗位:"+str);
System.out.println("姓名:"+name+",入职时间:"+date+",月薪:"+salary+",奖金:"+bonus);
}
}

温馨提示:答案为网友推荐,仅供参考
相似回答