.火车卖票Ticket类(车票) private Integer ticketNum; //票号 private String trainNum; //车次 private String Or

该博客演示了一个Java程序,用于模拟两个售票员在同一个票库中卖票的过程。通过创建两个子线程`Ticketer`,每个售票员从票库列表中删除票,实现了并发售票。程序中使用了ArrayList存储票信息,包括票号、车次、始发地和目的地。当票售完时,线程自动停止。
摘要由CSDN通过智能技术生成
package dome9;

import java.util.ArrayList;
import java.util.List;

/**
 * 测试类中创建两个子线程进行卖票
 */
public class Test {
    public static void main(String[] args) {
        List<Ticket> tickets = new ArrayList<>();
        for (int i = 1; i <= 20 ; i++) {
            Ticket ticket = new Ticket(i,"G2022","郑州","重庆");
            tickets.add(ticket);
        }
        Ticketer t1 = new Ticketer();
        t1.setName("小红");
        Ticketer t2 = new Ticketer();
        t2.setName("小丽");
        //给两个售票员设置同一个票库
        t1.setTickets(tickets);
        t2.setTickets(tickets);

        //开始子线程进行售票
        t1.start();
        t2.start();
    }
}
package dome9;

/**
 * private Integer ticketNum; //票号
 * 	private String trainNum; //车次
 * 	private String Origin; //始发地
 * 	private String destination; //目的地
 */
public class Ticket {
    private Integer ticketNum;
    private String trainNum;
    private String Origin;
    private String destination;

    public Integer getTicketNum() {
        return ticketNum;
    }

    public void setTicketNum(Integer ticketNum) {
        this.ticketNum = ticketNum;
    }

    public String getTrainNum() {
        return trainNum;
    }

    public void setTrainNum(String trainNum) {
        this.trainNum = trainNum;
    }

    public String getOrigin() {
        return Origin;
    }

    public void setOrigin(String origin) {
        Origin = origin;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination;
    }

    public Ticket() {
    }

    public Ticket(Integer ticketNum, String trainNum, String origin, String destination) {
        this.ticketNum = ticketNum;
        this.trainNum = trainNum;
        Origin = origin;
        this.destination = destination;
    }
}
package dome9;

import java.util.List;

/**
 * 子线程类(售票员)
 */
public class Ticketer extends Thread{
    private List<Ticket> tickets;//票库
    //卖票方法(从集合中删除一张票)
    public void sellingTickets(){
        for (int i = 0; i <=tickets.size() ; i++) {
            tickets.remove(i);
        }



    }

    public List<Ticket> getTickets() {
        return tickets;
    }

    public void setTickets(List<Ticket> tickets) {
        this.tickets = tickets;
    }

    @Override
    public void run() {
        for (int i = 1; i <=10; i++) {
            if (i==10){
                System.out.println("票已售完"+i);
                this.stop();
            }
            System.out.println(this.getName()+i);
        }
    }
}

好的,以下是一个简单的火车票管理系统的C++代码: ```cpp #include <iostream> #include <vector> #include <string> using namespace std; class Train { private: string trainNumber; //车次 string startStation; //起点站 string endStation; //终点站 string departureTime; //出发时间 int seatNum; //座位数 int ticketNum; //余票数 public: Train(string num, string start, string end, string time, int seat, int ticket) { trainNumber = num; startStation = start; endStation = end; departureTime = time; seatNum = seat; ticketNum = ticket; } void display() { //显示车次信息 cout << trainNumber << "\t" << startStation << "\t" << endStation << "\t" << departureTime << "\t" << seatNum << "\t" << ticketNum << endl; } string getTrainNumber() { //获取车次 return trainNumber; } string getStartStation() { //获取起点站 return startStation; } string getEndStation() { //获取终点站 return endStation; } string getDepartureTime() { //获取出发时间 return departureTime; } int getSeatNum() { //获取座位数 return seatNum; } int getTicketNum() { //获取余票数 return ticketNum; } void setTicketNum(int num) { //设置余票数 ticketNum = num; } }; class TrainManager { private: vector<Train> trainList; //存放火车信息的列表 public: TrainManager() {} void addTrain(Train train) { //添加火车信息 trainList.push_back(train); } void displayAllTrain() { //显示所有车次信息 cout << "车次\t起点站\t终点站\t出发时间\t座位数\t余票数" << endl; for (int i = 0; i < trainList.size(); i++) { trainList[i].display(); } } Train* searchTrain(string num) { //查找车次信息 for (int i = 0; i < trainList.size(); i++) { if (trainList[i].getTrainNumber() == num) { return &trainList[i]; } } return NULL; } }; int main() { TrainManager trainManager; //添加火车信息 trainManager.addTrain(Train("G1234", "北京", "上海", "08:00", 100, 80)); trainManager.addTrain(Train("G5678", "上海", "广州", "10:00", 120, 100)); trainManager.addTrain(Train("D1234", "北京", "上海", "09:00", 80, 60)); trainManager.addTrain(Train("D5678", "上海", "广州", "11:00", 100, 80)); //显示所有车次信息 trainManager.displayAllTrain(); //查询车次信息 string num; cout << "请输入要查询的车次:"; cin >> num; Train* train = trainManager.searchTrain(num); if (train != NULL) { cout << "车次\t起点站\t终点站\t出发时间\t座位数\t余票数" << endl; train->display(); } else { cout << "没有找到该车次!" << endl; } return 0; } ``` 代码实现的功能包括:添加火车信息、显示所有车次信息、查询车次信息。运行程序后,可以在控制台输入要查询的车次,程序会输出该车次的详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值