用java写火车订票系统,包含增删改方法,接口继承
时间: 2023-12-28 22:06:01 浏览: 45
好的,以下是一个简单的火车订票系统的Java代码示例:
```
// TrainTicket类,表示火车票
public class TrainTicket {
private String trainNumber;
private String departure;
private String destination;
private String date;
public TrainTicket(String trainNumber, String departure, String destination, String date) {
this.trainNumber = trainNumber;
this.departure = departure;
this.destination = destination;
this.date = date;
}
// 省略getter和setter方法
@Override
public String toString() {
return "TrainTicket{" +
"trainNumber='" + trainNumber + '\'' +
", departure='" + departure + '\'' +
", destination='" + destination + '\'' +
", date='" + date + '\'' +
'}';
}
}
// TrainTicketDao接口,定义了增删改查操作
public interface TrainTicketDao {
void addTicket(TrainTicket ticket);
void deleteTicket(String trainNumber, String date);
void updateTicket(TrainTicket ticket);
TrainTicket getTicket(String trainNumber, String date);
}
// TrainTicketDaoImpl类,实现了TrainTicketDao接口
public class TrainTicketDaoImpl implements TrainTicketDao {
private List<TrainTicket> ticketList = new ArrayList<>();
@Override
public void addTicket(TrainTicket ticket) {
ticketList.add(ticket);
}
@Override
public void deleteTicket(String trainNumber, String date) {
Iterator<TrainTicket> iter = ticketList.iterator();
while (iter.hasNext()) {
TrainTicket ticket = iter.next();
if (ticket.getTrainNumber().equals(trainNumber) && ticket.getDate().equals(date)) {
iter.remove();
break;
}
}
}
@Override
public void updateTicket(TrainTicket ticket) {
for (int i = 0; i < ticketList.size(); i++) {
TrainTicket t = ticketList.get(i);
if (t.getTrainNumber().equals(ticket.getTrainNumber()) && t.getDate().equals(ticket.getDate())) {
ticketList.set(i, ticket);
break;
}
}
}
@Override
public TrainTicket getTicket(String trainNumber, String date) {
for (TrainTicket ticket : ticketList) {
if (ticket.getTrainNumber().equals(trainNumber) && ticket.getDate().equals(date)) {
return ticket;
}
}
return null;
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
TrainTicketDao ticketDao = new TrainTicketDaoImpl();
// 添加火车票
ticketDao.addTicket(new TrainTicket("G1234", "北京", "上海", "2021-01-01"));
ticketDao.addTicket(new TrainTicket("G5678", "上海", "北京", "2021-01-02"));
// 查询火车票
TrainTicket ticket1 = ticketDao.getTicket("G1234", "2021-01-01");
System.out.println(ticket1);
// 修改火车票
ticket1.setDestination("广州");
ticketDao.updateTicket(ticket1);
TrainTicket ticket2 = ticketDao.getTicket("G1234", "2021-01-01");
System.out.println(ticket2);
// 删除火车票
ticketDao.deleteTicket("G5678", "2021-01-02");
TrainTicket ticket3 = ticketDao.getTicket("G5678", "2021-01-02");
System.out.println(ticket3);
}
}
```
这里定义了一个TrainTicket类表示火车票,包含车次、出发地、目的地和日期四个属性,以及getter和setter方法和toString方法。定义了一个TrainTicketDao接口,包含添加、删除、修改和查询火车票的方法。实现了TrainTicketDao接口的TrainTicketDaoImpl类,使用List存储火车票信息,并实现了添加、删除、修改和查询火车票的方法。最后,编写了一个测试类Test,用于测试火车订票系统的功能。