11.JAVA实现简单的航班售票系统

本文通过一个具体的实例,展示了如何在JAVA中使用继承Thread类的方法实现多线程,模拟了三个售票窗口并发销售10张机票的过程。程序中每个窗口由一个线程表示,使用synchronized关键字保证了线程安全,避免了数据冲突。
摘要由CSDN通过智能技术生成

JAVA中有许多方法可以实现多线程,本例中笔者想通过一个具体的例程来分享完善本专栏第10篇文章中所提到的通过继承Tread类来实现多线程的方法.

题目重述

模拟航班售票系统,实现三个售票窗口发售某次航班的10张机票,一个售票窗口用一个线程来表示。

问题分析以及求解思路

待完善(请耐心等待)

程序代码

class Windows extends Thread
{
                public static int num=10;
                public static int flag=0;
	public void run( )
	{    
                    synchronized(""){
                     while(true)
                   {   
	     if(num>0)
                    {   
                        try{Thread.sleep((int)(1000*Math.random()));}
                        catch(Exception e){e.printStackTrace();}
                        System.out.println(this.getName()+"窗口卖出一张票!余票数量为 : " + --num);  
                        //if(flag==0){flag=1;break;}
                       // else if (flag==1){flag=0;break;}
                     }
                      else break;
                    }}
	}
}


public class SellTickets
{
	public static void main(String[ ] args)
	{               
                                int a=0,b=0,c=0;
                                while((a+b+c)!=10) 
                                { 
                                   a=(int)(5*(Math.random()+1))%8;
                                   b=8-a;
                                   c=10-a-b;
                                }     
                                 System.out.println(a+b+c);   
		Windows c1 = new Windows( );		
		c1.start( );
		Windows c2 = new Windows( );		
		c2.start( );
		Windows c3 = new Windows( );		
		c3.start( );
	}
}

目 录 前 言 1 第1章 需求分析 2 §1.1 开发必要性 2 §1.2 可行性分析 2 §1.2.1 经济可行性分析 2 §1.2.2 技术可行性分析 3 §1.2.3 现有系统的分析 3 第2章 系统分析 4 §2.1 系统逻辑模型的提出 4 §2.2 系统的功能介绍 4 §2.3 系统开发工具和开发语言 5 §2.3.1 开发工具 5 §2.3.2 开发语言 6 第3章 总体设计 7 §3.1 系统功能设计 7 §3.2 系统功能模块简介 7 第4章 数据库设计 10 §4.1 概念结构设计 10 §4.2 逻辑结构设计 11 §4.3 物理结构设计 12 第5章 详细设计 14 §5.1 关键业务流程描述 14 §5.1.1 航空售票管理 14 §5.1.2 管理员管理流程 14 §5.2 系统界面设计 15 §5.2.1 主功能界面 15 §5.2.2 其他功能界面 16 §5.3 模块代码实现 18 §5.3.1 航空订票查询模块 18 §5.3.2 航空售票管理模块 19 第6章 系统测试 21 §6.1 软件测试的目标 21 §6.2 具体测试 21 结 论 24 参考文献 25 致 谢 27 §5.3.1 航空订票查询模块 航空订票查询主要实现对票据信息种类的添加、修改和删除功能。票据信息种类是系统内容的最高级别,所以在添加、修改或删除票据信息时,也必须选择该票据信息所属的票据信息种类。下面是票据信息种类的添加、修改和删除功能的主要实现代码。 public void actionPerformed(ActionEvent e) { this.flightNumber = flightField.getText().trim(); if (flightNumber.length() == 0) //未输入信息 { JOptionPane.showMessageDialog(null,"请输入航班号或者从列表中选择", "错误信息",JOptionPane.ERROR_MESSAGE); return; } executeFlightQuery(); } public void executeFlightQuery() { String sqlString = "SELECT DISTINCT * FROM " +"flight " + "WHERE flight=" + "\'" + flightNumber + "\'"; ResultSet rs = sqlBean.executeQuery(sqlString); if (rs != null) showResult(rs); else JOptionPane.showMessageDialog(null,"没有连接上数据库!", "错误信息",JOptionPane.ERROR_MESSAGE); } 以上是对数据添加的程序代码,该段代码实现了获得用户数据输入,并把数据插入到数据库当中的功能。 。。。。。。。。。。。。。。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值