我需要做一个简单的命令行输出的java程序,题目是食堂收银系统,我只需要支付记录的增删查,需要用数组作为容器
时间: 2024-02-12 07:04:51 浏览: 16
好的,以下是一个简单的命令行输出的Java程序,实现了食堂收银系统中支付记录的增删查功能,使用了数组作为容器。
```java
import java.util.Scanner;
public class CashierSystem {
// 定义一个数组作为容器,存储支付记录
private static Payment[] payments = new Payment[100];
// 定义一个计数器,记录当前数组中支付记录的数量
private static int count = 0;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("\n欢迎使用食堂收银系统,请输入对应的数字进行操作:");
System.out.println("1. 添加支付记录");
System.out.println("2. 删除支付记录");
System.out.println("3. 查看支付记录");
System.out.println("4. 退出程序");
int choice = scanner.nextInt();
switch (choice) {
case 1:
addPayment(scanner);
break;
case 2:
deletePayment(scanner);
break;
case 3:
showPayments();
break;
case 4:
System.out.println("感谢使用食堂收银系统,再见!");
System.exit(0);
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
// 添加支付记录
private static void addPayment(Scanner scanner) {
System.out.println("请输入支付金额:");
double amount = scanner.nextDouble();
System.out.println("请输入支付时间:");
String time = scanner.next();
Payment payment = new Payment(amount, time);
payments[count++] = payment;
System.out.println("添加成功!");
}
// 删除支付记录
private static void deletePayment(Scanner scanner) {
System.out.println("请输入要删除的支付记录的编号:");
int index = scanner.nextInt();
if (index < 1 || index > count) {
System.out.println("输入有误,请重新输入!");
return;
}
for (int i = index - 1; i < count - 1; i++) {
payments[i] = payments[i + 1];
}
payments[--count] = null;
System.out.println("删除成功!");
}
// 查看支付记录
private static void showPayments() {
System.out.println("当前支付记录如下:");
System.out.println("编号\t金额\t时间");
for (int i = 0; i < count; i++) {
Payment payment = payments[i];
System.out.println((i + 1) + "\t" + payment.getAmount() + "\t" + payment.getTime());
}
}
}
// 定义一个支付记录类
class Payment {
private double amount; // 支付金额
private String time; // 支付时间
public Payment(double amount, String time) {
this.amount = amount;
this.time = time;
}
public double getAmount() {
return amount;
}
public String getTime() {
return time;
}
}
```
在这个程序中,我们定义了一个Payment类来表示支付记录,其中包括支付金额和支付时间两个属性。我们使用一个数组来作为容器,存储所有的支付记录。在程序中,我们实现了三个方法:
- addPayment方法:用于添加支付记录,通过Scanner从命令行输入支付金额和支付时间,创建一个Payment对象,并将其存储在数组中。
- deletePayment方法:用于删除支付记录,通过Scanner从命令行输入要删除的支付记录的编号,将该编号对应的Payment对象从数组中删除。
- showPayments方法:用于查看所有的支付记录,将数组中所有的Payment对象都输出到命令行。
在程序中,我们使用了一个计数器count来记录当前数组中支付记录的数量,每次添加或删除支付记录时,都需要更新该计数器。