写一个java程序【问题描述】 (①)设计—个Manager类并编写代码,Manager类的厲性有姓名,工号,基本工资,小时工资(元/小时)。自定义方法:至少包括计算月工资的方法:calSalary0。 (2编写一个GU类,输入manager的姓名、工号,基本工资,月工作时间(小时),创建对象,调用calSalary0方法计算出该manager的月工资,并显示在用户界面上。 组件位置、布局方式自行设置。
时间: 2024-03-21 10:39:03 浏览: 41
以下是符合题目要求的Java程序:
Manager类:
```java
public class Manager {
private String name; // 姓名
private String id; // 工号
private double basicSalary; // 基本工资
private double hourlySalary; // 小时工资
public Manager(String name, String id, double basicSalary, double hourlySalary) {
this.name = name;
this.id = id;
this.basicSalary = basicSalary;
this.hourlySalary = hourlySalary;
}
public double calSalary(int hours) { // 计算月工资方法
return basicSalary + hours * hourlySalary;
}
// getter 和 setter 方法省略
}
```
GUI类:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ManagerGUI extends JFrame implements ActionListener {
private JLabel nameLabel, idLabel, basicSalaryLabel, hoursLabel, salaryLabel;
private JTextField nameField, idField, basicSalaryField, hoursField, salaryField;
private JButton calculateButton;
public ManagerGUI() {
// 创建组件
nameLabel = new JLabel("姓名:");
idLabel = new JLabel("工号:");
basicSalaryLabel = new JLabel("基本工资:");
hoursLabel = new JLabel("月工作时间(小时):");
salaryLabel = new JLabel("月工资:");
nameField = new JTextField(10);
idField = new JTextField(10);
basicSalaryField = new JTextField(10);
hoursField = new JTextField(10);
salaryField = new JTextField(10);
salaryField.setEditable(false); // 设置月工资文本框不可编辑
calculateButton = new JButton("计算月工资");
calculateButton.addActionListener(this); // 注册计算月工资按钮的事件监听器
// 添加组件到面板
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(nameLabel);
panel.add(nameField);
panel.add(idLabel);
panel.add(idField);
panel.add(basicSalaryLabel);
panel.add(basicSalaryField);
panel.add(hoursLabel);
panel.add(hoursField);
panel.add(salaryLabel);
panel.add(salaryField);
panel.add(calculateButton);
// 设置窗口属性
setTitle("Manager月工资计算");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(panel);
pack();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == calculateButton) { // 如果点击了计算月工资按钮
String name = nameField.getText();
String id = idField.getText();
double basicSalary = Double.parseDouble(basicSalaryField.getText());
int hours = Integer.parseInt(hoursField.getText());
Manager manager = new Manager(name, id, basicSalary, 50); // 假设小时工资为50元
double salary = manager.calSalary(hours);
salaryField.setText(String.valueOf(salary));
}
}
public static void main(String[] args) {
new ManagerGUI();
}
}
```
该程序中含有一个Manager类,表示一个管理人员,具有姓名、工号、基本工资、小时工资等属性,以及一个计算月工资的方法。另外还有一个GUI类,用于创建用户界面,输入manager的信息并计算月工资,然后显示在界面上。
阅读全文