航空订票系统设计(java、数据库、通信联合项目)
最近帮高中同学做的一个学校项目,这个项目主要是用Java写的,。
前期主要搭建五个类,Order(选择)、Passenger(乘客)、Route(路线)、Tiketbooking(订票)、Main(主函数入口).
前期搭建好整个项目框架,我开始先用Java搭建整个项目逻辑,这里只用了基本的逻辑语句,后续完善需要用到继承和线程。
代码分别如下:
package com.航空订票系统;
import java.util.ArrayList;
import java.util.Scanner;
public class Order {
private int n;//把人数传进来方便查询
private static int DinDanid;
private String DinDanZhuanTai="正常起飞";//如果需要判断某些特定位置不可以起飞或者天气问题,可以再做一个if判断,题目里没要求我就直接给允许了;
private static int HanBanid;
private String GetTime;
private int JiaGe;
private String StartPlace;
private String EndPlace;
private String StartTime;
private String BackTime;
private String Cang;
private static ArrayList HanBanid2=new ArrayList();
public Order(int n,String StartPlace,String EndPlace,String StartTime,String BackTime,String Cang) {
this.n=n;
this.StartPlace=StartPlace;
this.EndPlace=EndPlace;
this.StartTime=StartTime;
this.BackTime=BackTime;
this.Cang=Cang;
}
public void show1() {
System.out.println("久等了,已经为你生成订单信息:");
System.out.println("你的订单号是:"+(++DinDanid));
System.out.println("你的订单状态是:"+DinDanZhuanTai);
System.out.println("你的航班号是:"+(++HanBanid));
HanBanid2.add(HanBanid);
System.out.println(HanBanid2.get(DinDanid-1));
System.out.println("你的起飞时间是:"+StartTime);
System.out.println("你的到达时间是:"+BackTime);
if(Cang.equals("经济舱")) {
System.out.println("你乘坐的是经济舱,这次价格很实惠,只需要:"+200+"元"+" "+"欢迎下次再来!");
}else if(Cang.equals("头等舱")){
System.out.println("尊敬的大佬,你乘坐的是头等舱,价格是:"+1000+"元"+" "+"下次送你精美礼品!");
}else {
System.out.println("舱位选择错误,本系统很菜,需要关闭重启重新输入信息才能成功约票,你不爽就自己走到目的地。");
}
System.out.println("请问你还需要查询航班信息吗?每次订单后都只有一次查询机会哦。(请填入yes或no):");
Scanner input=new Scanner(System.in);
String p=input.next();
if(p.equals("yes")) {
Route r=new Route(n,HanBanid2,StartTime,BackTime);
r.show2();
}else if(p.equals("no")) {
System.out.println("好的,已经为你跳过查询。");
}else{
System.out.println("yes和no都填错,好吧,自动为你跳过查询,想查询下次订单后面可以查。");
}
}
}
package com.航空订票系统;
import java.util.Scanner;
public class Passenger {
private String []name=new String[1000];//这里给一千个空间保存用户数据当数据库,到时候vip能用上去
private String []ShenFenid=new String[1000];
private String []phonenumber=new String[1000];
private String []address=new String[1000];
private long[] JiFen=new long[1000];
public void passenger() {
System.out.println("请问你要注册几人?");
Scanner in=new Scanner(System.in);
int n=in.nextInt();
for(int i=1;i<=n;i++) {
System.out.println("请输入第"+i+"位用户的信息,我们帮你在系统里注册账号:");
System.out.println("请输入你的姓名:");
name[i]=in.next();
System.out.println("请输入你的身份证号码:");
ShenFenid[i]=in.next();
System.out.println("请输入你的电话号码:");
phonenumber[i]=in.next();
System.out.println("请输入你的常住地址:");
address[i]=in.next();
JiFen[i]=0;
System.out.println("恭喜成为我们公司的会员!你现在的积分是0,但是只要多坐我们公司的航班积分很快就会上去哦。积分充足的话可以打折!");
}
}
}
package com.航空订票系统;
import java.util.ArrayList;
import java.util.Scanner;
public class Route {
Scanner in=new Scanner(System.in);
private static ArrayList HanBanid=new ArrayList();
private int n;
private String HanKongGongSi="南方航天航空";//统一
private String JiXin="国产919大飞机";//这里统一型号,需要改变可以加判断
private int number=500;//猜测919能坐500人就统一了,到时候跟着判断改变
private String StartTime;
private String EndTime;
private int KongYuZuoWei=500;//本系统只租用了一辆飞机,就按照满座位500来算了
private int id;
public Route(int n,ArrayList HanBanid2,String StartTime,String EndTime) {
this.n=n;
this.KongYuZuoWei-=n;
this.HanBanid=HanBanid2;
this.StartTime=StartTime;
this.EndTime=EndTime;
}
public void show2() {
System.out.println("请输入你的订单id,我们帮你查询航班信息,本系统很菜,忘记了订单id了就查不出来了。");//因为是简易系统,这里的订单id只用来判断航单id
Scanner in=new Scanner(System.in);
id=in.nextInt();
System.out.println("正在查询你的航班信息,请耐心等待!");
System.out.println("你的航班id是:"+HanBanid.get(id-1));
System.out.println("你本次航班的航空公司是:"+"南方航天航空");
System.out.println("你的飞机型号是:"+JiXin);
System.out.println("飞机最大载客量是:"+number+"人");
System.out.println("空余座位还有:"+KongYuZuoWei+"个");
System.out.println("你的起飞时间是:"+StartTime);
System.out.println("你的达到时间是:"+EndTime);
}
}
package com.航空订票系统;
import java.util.Scanner;
public class Tiketbooking extends 统一输入{
public static void YongHuShuRu() {
Scanner in=new Scanner(System.in);
System.out.println("你要注册会员吗?虽然麻烦一点,但是成为我们公司的VIP有好处哦(请填写yes或no):");
String p2=in.next();
if(p2.equals("yes")) {
Passenger psg=new Passenger();
psg.passenger();
}else if(p2.equals("no")) {
System.out.println("已经为你跳过注册,直接进入订票环节...");
}else {
System.out.println("没有正确填写,本系统自动为你跳过,直接进入订票环节...");
}
System.out.println("欢迎乘坐我们公司航班!");
System.out.println("请输入乘客人数:");
int n=in.nextInt();
for(int i=0;i<n;i++) {
System.out.println("请输入起点:");
String StartPlace=in.next();
System.out.println("请输入目的地:");
String EndPlace=in.next();
System.out.println("请输入出发时间:");
String StartTime=in.next();
System.out.println("请输入返回时间:");
String BackTime=in.next();
System.out.println("你想坐经济舱还是头等舱(有钱就坐头等舱,送你会员)(填写“经济舱”或者“头等舱”):");
String Cang=in.next();
Order or=new Order( n,StartPlace, EndPlace, StartTime, BackTime, Cang) ;
or.show1();
}
System.out.println("订单信息汇报完毕,恭喜订票成功!");
}
}
最后写一个主函数代码调用 YongHuShuRu()就行
public class Main{
public static void main(String[] args){
Main m=new Main();
m.YongHuShuRu();
}
}
接下来还需要完善继承机制和线程系统,这一部分是其他同学在做,我之后补上。
我们需要搭建一个简单的数据库,这里先做一个简单的模型。
#drop table passenger;
create table passenger(
id char(20) PRIMARY key,
name char(20),
canwei char(20)
);
insert into passenger VALUES(1,"小明","头等仓");
insert into passenger VALUES(2,"小红","头等仓");
insert into passenger VALUES(3,"张三","经济仓");
insert into passenger VALUES(4,"李四","经济仓");
insert into passenger VALUES(5,"王五","经济仓");
模型效果
接下来一个星期内我们继续继承线程机制完善,sock通信机制连接,数据库搭建以及完善。
未完待续…(感谢支持)