用Java做一个简单饭卡管理系统
时间: 2024-01-21 12:03:50 浏览: 206
好的,我们可以设计一个简单的饭卡管理系统,包括以下几个功能:
1. 学生信息管理:包括学生的姓名、学号、余额等信息。
2. 饭卡充值:输入学生学号和充值金额,系统自动更新学生余额。
3. 饭卡消费:输入学生学号和消费金额,系统自动更新学生余额并记录消费记录。
4. 查询余额:输入学生学号,系统自动查询学生余额并显示。
5. 查询消费记录:输入学生学号,系统自动查询学生消费记录并显示。
下面是一个简单的 Java 代码实现:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class CardManagementSystem {
private ArrayList<Student> students = new ArrayList<>();
// 添加学生信息
public void addStudent(Student student) {
students.add(student);
}
// 根据学号获取学生信息
public Student getStudent(String id) {
for (Student s : students) {
if (s.getId().equals(id)) {
return s;
}
}
return null;
}
// 饭卡充值
public void recharge(String id, double amount) {
Student s = getStudent(id);
if (s != null) {
s.setBalance(s.getBalance() + amount);
System.out.println("充值成功,当前余额:" + s.getBalance());
} else {
System.out.println("学号不存在!");
}
}
// 饭卡消费
public void consume(String id, double amount) {
Student s = getStudent(id);
if (s != null) {
if (s.getBalance() >= amount) {
s.setBalance(s.getBalance() - amount);
s.addRecord(new Record("消费", amount));
System.out.println("消费成功,当前余额:" + s.getBalance());
} else {
System.out.println("余额不足!");
}
} else {
System.out.println("学号不存在!");
}
}
// 查询余额
public void queryBalance(String id) {
Student s = getStudent(id);
if (s != null) {
System.out.println("当前余额:" + s.getBalance());
} else {
System.out.println("学号不存在!");
}
}
// 查询消费记录
public void queryRecords(String id) {
Student s = getStudent(id);
if (s != null) {
ArrayList<Record> records = s.getRecords();
if (records.size() > 0) {
System.out.println("消费记录:");
for (Record r : records) {
System.out.println(r.getType() + " " + r.getAmount());
}
} else {
System.out.println("暂无消费记录!");
}
} else {
System.out.println("学号不存在!");
}
}
public static void main(String[] args) {
CardManagementSystem system = new CardManagementSystem();
Scanner sc = new Scanner(System.in);
// 添加测试数据
system.addStudent(new Student("张三", "001", 100));
system.addStudent(new Student("李四", "002", 200));
system.addStudent(new Student("王五", "003", 300));
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 饭卡充值");
System.out.println("2. 饭卡消费");
System.out.println("3. 查询余额");
System.out.println("4. 查询消费记录");
System.out.println("5. 退出");
int choice = sc.nextInt();
if (choice == 1) {
System.out.println("请输入学号:");
String id = sc.next();
System.out.println("请输入充值金额:");
double amount = sc.nextDouble();
system.recharge(id, amount);
} else if (choice == 2) {
System.out.println("请输入学号:");
String id = sc.next();
System.out.println("请输入消费金额:");
double amount = sc.nextDouble();
system.consume(id, amount);
} else if (choice == 3) {
System.out.println("请输入学号:");
String id = sc.next();
system.queryBalance(id);
} else if (choice == 4) {
System.out.println("请输入学号:");
String id = sc.next();
system.queryRecords(id);
} else if (choice == 5) {
break;
} else {
System.out.println("输入有误,请重新选择!");
}
}
}
}
class Student {
private String name;
private String id;
private double balance;
private ArrayList<Record> records = new ArrayList<>();
public Student(String name, String id, double balance) {
this.name = name;
this.id = id;
this.balance = balance;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public ArrayList<Record> getRecords() {
return records;
}
public void addRecord(Record record) {
records.add(record);
}
}
class Record {
private String type;
private double amount;
public Record(String type, double amount) {
this.type = type;
this.amount = amount;
}
public String getType() {
return type;
}
public double getAmount() {
return amount;
}
}
```
上述代码中,我们定义了三个类:`CardManagementSystem`、`Student`和`Record`。其中,`CardManagementSystem`是饭卡管理系统的主类,负责实现所有功能;`Student`表示学生信息,包括姓名、学号、余额和消费记录等;`Record`表示一次消费记录,包括消费类型和消费金额。
在主类 `CardManagementSystem` 中,我们定义了一个 `ArrayList` 类型的变量 `students`,用于存储所有学生的信息。在 `addStudent` 方法中,我们可以将新的学生信息添加到 `students` 中;在 `getStudent` 方法中,我们可以根据学号获取对应的学生信息。其他方法中,我们根据用户输入的学号和金额,更新学生的余额和消费记录等。
在主函数中,我们首先添加了一些测试数据,然后利用一个循环来实现用户交互。用户可以输入数字来选择不同的操作,直到选择退出为止。
这只是一个简单的饭卡管理系统,实际的应用场景可能更加复杂,需要更多的功能和优化。但是这个示例代码可以帮助你了解如何使用 Java 编写一个简单的管理系统。
阅读全文
相关推荐













