第一题看的脑壳疼,但是和第二题的意思差不多,我帮你做了第二题
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.BigDecimalpublic 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提示:请输入正确的两个数字")
}
}
}
测试