第二次作业

[实验目的]

1.掌握软件开发的基本流程

2.掌握常用的软件开发方式和工具:eclipse。

[实验内容]

设计一个包含登录界面的计算器软件,该软件可以实现第一次作业中的全部功能,同时可以保存用户的历史计算记录(保存数据最好使用数据库)。

【具体操作】

 2.登录界面及计算器代码

登录界面代码

package jisuanji;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginFrame extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;

public LoginFrame() {
setTitle("登录界面");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(9, 2));

JLabel usernameLabel = new JLabel("姓名:");
usernameField = new JTextField(20);
JLabel passwordLabel = new JLabel("密码:");
passwordField = new JPasswordField(20);
JButton loginButton = new JButton("登录");

panel.add(usernameLabel);
panel.add(usernameField);
panel.add(passwordLabel);
panel.add(passwordField);
panel.add(new JLabel());
panel.add(loginButton);

add(panel);

loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = String.valueOf(passwordField.getPassword());

if (username.equals("田丽娟") && password.equals("1108")) {
dispose();
CalculatorFrame calculatorFrame = new CalculatorFrame();
calculatorFrame.setVisible(true);
} else {
JOptionPane.showMessageDialog(LoginFrame.this, "用户名或密码错误!", "登录失败", JOptionPane.ERROR_MESSAGE);
}
}
});
}
public static void main(String[] args) {
LoginFrame loginFrame = new LoginFrame();
loginFrame.setVisible(true);
}
}

计算器代码:

package jisuanji;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CalculatorFrame extends JFrame {
private JTextField num1Field;
private JTextField num2Field;
private JButton addButton;
private JButton subtractButton;
private JButton multiplyButton;
private JButton divideButton;
private JLabel resultLabel;

public CalculatorFrame() {
setTitle("计算器");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 2));

JLabel num1Label = new JLabel("数字1:");
num1Field = new JTextField(10);
JLabel num2Label = new JLabel("数字2:");
num2Field = new JTextField(10);
addButton = new JButton("相加");
subtractButton = new JButton("相减");
multiplyButton = new JButton("相乘");
divideButton = new JButton("相除");
resultLabel = new JLabel();

panel.add(num1Label);
panel.add(num1Field);
panel.add(num2Label);
panel.add(num2Field);
panel.add(addButton);
panel.add(subtractButton);
panel.add(multiplyButton);
panel.add(divideButton);

add(panel, BorderLayout.CENTER);
add(resultLabel, BorderLayout.SOUTH);

addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 + num2;
resultLabel.setText("结果:" + result);
}
});

subtractButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 - num2;
resultLabel.setText("结果:" + result);
}
});

multiplyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 * num2;
resultLabel.setText("结果:" + result);
}
});

divideButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
if (num2 != 0) {
double result = num1 / num2;
resultLabel.setText("结果:" + result);
} else {
resultLabel.setText("除数不能为0!");
}
}
});
}

public static void main(String[] args) {
CalculatorFrame calculatorFrame = new CalculatorFrame();
calculatorFrame.setVisible(true);
}
}

3.登录界面及计算器测试结果

登录界面:

 登录失败界面:

 登录成功后直接跳转到计算器界面:

 4.登录界面及计算器流程图

 

 

posted @ 2023-11-16 13:32  麦小小  阅读(99)  评论(0)    收藏  举报