设计一个停车场信息管理系统,能够实现对停车位的信息管理(车位号、车主姓名、性别、年龄、 车牌号)。最后,停车信息输出到out.txt中。用Java设计一个这个程序的gui...
时间: 2024-02-07 13:03:10 浏览: 44
好的,我会尽力回答你的问题。
首先,停车场信息管理系统需要有以下功能:
1. 添加车位信息
2. 编辑车位信息
3. 删除车位信息
4. 查询车位信息
5. 输出所有车位信息到文件
为了实现这些功能,我们需要设计一个类来表示车位信息,例如:
```java
public class ParkingSpot {
private int id; // 车位号
private String ownerName; // 车主姓名
private String gender; // 性别
private int age; // 年龄
private String licensePlate; // 车牌号
// 构造函数
public ParkingSpot(int id, String ownerName, String gender, int age, String licensePlate) {
this.id = id;
this.ownerName = ownerName;
this.gender = gender;
this.age = age;
this.licensePlate = licensePlate;
}
// getter 和 setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getLicensePlate() {
return licensePlate;
}
public void setLicensePlate(String licensePlate) {
this.licensePlate = licensePlate;
}
}
```
然后,我们需要设计一个类来管理所有的车位信息,例如:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class ParkingLot {
private List<ParkingSpot> spots;
// 构造函数
public ParkingLot() {
this.spots = new ArrayList<>();
}
// 添加车位信息
public void add(ParkingSpot spot) {
spots.add(spot);
}
// 编辑车位信息
public void edit(int id, String ownerName, String gender, int age, String licensePlate) {
for (ParkingSpot spot : spots) {
if (spot.getId() == id) {
spot.setOwnerName(ownerName);
spot.setGender(gender);
spot.setAge(age);
spot.setLicensePlate(licensePlate);
break;
}
}
}
// 删除车位信息
public void delete(int id) {
for (int i = 0; i < spots.size(); i++) {
if (spots.get(i).getId() == id) {
spots.remove(i);
break;
}
}
}
// 查询车位信息
public ParkingSpot query(int id) {
for (ParkingSpot spot : spots) {
if (spot.getId() == id) {
return spot;
}
}
return null;
}
// 输出所有车位信息到文件
public void outputToFile(String filename) throws FileNotFoundException {
PrintWriter pw = new PrintWriter(new File(filename));
for (ParkingSpot spot : spots) {
pw.println(spot.getId() + "," + spot.getOwnerName() + "," + spot.getGender() + "," + spot.getAge()
+ "," + spot.getLicensePlate());
}
pw.close();
}
}
```
最后,我们需要设计一个 GUI 界面来操作这些功能,例如:
```java
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ParkingLotGUI extends JFrame {
private ParkingLot parkingLot;
// GUI 元素
private JTextField idField;
private JTextField ownerNameField;
private JTextField genderField;
private JTextField ageField;
private JTextField licensePlateField;
public ParkingLotGUI() {
// 初始化停车场
parkingLot = new ParkingLot();
// 创建 GUI 元素
JLabel idLabel = new JLabel("车位号:");
JLabel ownerNameLabel = new JLabel("车主姓名:");
JLabel genderLabel = new JLabel("性别:");
JLabel ageLabel = new JLabel("年龄:");
JLabel licensePlateLabel = new JLabel("车牌号:");
idField = new JTextField(10);
ownerNameField = new JTextField(10);
genderField = new JTextField(10);
ageField = new JTextField(10);
licensePlateField = new JTextField(10);
JButton addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(idField.getText());
String ownerName = ownerNameField.getText();
String gender = genderField.getText();
int age = Integer.parseInt(ageField.getText());
String licensePlate = licensePlateField.getText();
ParkingSpot spot = new ParkingSpot(id, ownerName, gender, age, licensePlate);
parkingLot.add(spot);
}
});
JButton editButton = new JButton("编辑");
editButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(idField.getText());
String ownerName = ownerNameField.getText();
String gender = genderField.getText();
int age = Integer.parseInt(ageField.getText());
String licensePlate = licensePlateField.getText();
parkingLot.edit(id, ownerName, gender, age, licensePlate);
}
});
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(idField.getText());
parkingLot.delete(id);
}
});
JButton queryButton = new JButton("查询");
queryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(idField.getText());
ParkingSpot spot = parkingLot.query(id);
if (spot != null) {
ownerNameField.setText(spot.getOwnerName());
genderField.setText(spot.getGender());
ageField.setText(Integer.toString(spot.getAge()));
licensePlateField.setText(spot.getLicensePlate());
}
}
});
JButton outputButton = new JButton("输出到文件");
outputButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
parkingLot.outputToFile("out.txt");
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
});
// 布局
JPanel inputPanel = new JPanel(new GridLayout(5, 2));
inputPanel.add(idLabel);
inputPanel.add(idField);
inputPanel.add(ownerNameLabel);
inputPanel.add(ownerNameField);
inputPanel.add(genderLabel);
inputPanel.add(genderField);
inputPanel.add(ageLabel);
inputPanel.add(ageField);
inputPanel.add(licensePlateLabel);
inputPanel.add(licensePlateField);
JPanel buttonPanel = new JPanel();
buttonPanel.add(addButton);
buttonPanel.add(editButton);
buttonPanel.add(deleteButton);
buttonPanel.add(queryButton);
buttonPanel.add(outputButton);
setLayout(new BorderLayout());
add(inputPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new ParkingLotGUI();
}
}
```
上述代码实现了一个基本的停车场信息管理系统,并且提供了一个简单的 GUI 界面来操作。你可以根据需要进行修改和完善。