两道JAVA程序设计题

Python018

两道JAVA程序设计题,第1张

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

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)

}

}

import java.math.BigDecimal

public class Accout {

private String name

private String accoutNo

private BigDecimal balance

public String getName() {

return name

}

public void setName(String name) {

this.name = name

}

public String getAccoutNo() {

return accoutNo

}

public void setAccoutNo(String accoutNo) {

this.accoutNo = accoutNo

}

public BigDecimal getBalance() {

return balance

}

public void setBalance(BigDecimal balance) {

this.balance = balance

}

public Accout(String name, String accoutNo, BigDecimal balance) {

super()

this.name = name

this.accoutNo = accoutNo

this.balance = balance

}

@Override

public String toString() {

return "Accout [name=" + name + ", accoutNo=" + accoutNo + ", balance=" + balance + "]"

}

public synchronized void add(BigDecimal amout) {

balance = balance.add(amout)

}

public synchronized void sub(BigDecimal amount){

if(balance.compareTo(amount)>=0){

balance = balance.subtract(amount)

}

}

public BigDecimal queryBalance(){

return this.balance

}

public static void main(String[] args) {

Accout accout = new Accout("张三","1234567890",new BigDecimal(10000))

accout.add(new BigDecimal(10000))

accout.sub(new BigDecimal(5000))

System.out.println(accout)

}

}

参考代码

import java.awt.*

import java.awt.event.*

import javax.swing.*

//jdk1.8 通过测试

public class DemoFrame extends JFrame implements ActionListener{

JTextField jtf1,jtf2,jtf3

public DemoFrame() {

jtf1 = new JTextField(5)//文本框

JLabel jl = new JLabel("+")

jtf2 = new JTextField(5)

JButton jb1 = new JButton("=")

jb1.addActionListener(this)

jtf3 = new JTextField(5)

jtf3.setEditable(false)//文本框不许编辑

add(jtf1)add(jl)add(jtf2)add(jb1)add(jtf3)

setLayout(new FlowLayout())//流式布局

setTitle("Computer")

setSize(300,100)//大小

setLocationRelativeTo(null)//居中

setDefaultCloseOperation(EXIT_ON_CLOSE)

setVisible(true)

}

public static void main(String[] args) {//main方法,启动窗口

new DemoFrame()

}

public void actionPerformed(ActionEvent e) {

try{

double d1 = Double.parseDouble(jtf1.getText())

double d2 = Double.parseDouble(jtf2.getText())

jtf3.setText((d1+d2)+"")

}catch(Exception ex){

jtf3.setText("Error")//如果输入字母等.就在第三个文本框提示

//JOptionPane.showMessageDialog(this, "非法输入!!\n提示:请输入正确的两个数字")

}

}

}

测试