基于Java的航空售票管理系统
源码下载 http://www.byamd.xyz/hui-zong-1/
摘 要
本课题设计的是航空购票管理系统。
本系统主要设计了三个类,分别是Infor类、gongneng类和测试(Test)类。在Infor类里面主要定义了数组,分别是name[]、IDcard[]、phoneNum[]用来存放用户的姓名,身份证号和电话号码。用Hangxian[],Time[]存放航线和时间。在gongneng类里继承了Infor类从而调用infor类中的成员变量,且里面定义了五种方法有add():用于增加用户的个人信息(姓名,身份证号和电话号码)。Air_line():判断输入的航线是否存在。add1():选择您要选择的机票类型,查看机票价格。seat():判断是否有余票,若有余票则
添加座位信息、个人信息。check():按需要查询内容用来实现乘客信息的记录。在测试(Test)类中,通过继承gongneng类,来调用其成员方法,从而该管理系统。
关键词:数组,继承,面向对象。
航班售票管理系统课程设计报告
一、开发背景
当前中国航空市场迅速扩大,随着人们生活水平的提高,越来越多的人选择飞机出行,人们对航空服务业的要求也越来越高。但是手工操作不仅不能保证数据的准确性和安全性,而且耗时、耗力且记录信息的效率也很低。
为了适应快速发展的需求,有效且稳定地管理航空公司,便于管理员准确、迅速、可靠地记录下乘客的信息,使乘客能够高效且快捷地查询航班信息,我们要为某航空公司设计一套售票管理系统,要求能在该公司的各个营业网点为顾客提供航班查询、购票及退票等服务。
本课题就是针对上述问题所设计的航空售票管理系统。
二、需求分析
本系统的主要目的就是实现公司数据高效化管理,满足人们对航空业的高要求,同时给顾客提供一个更加方便、快捷的服务平台。
三、模块说明
依据需求分析结果,通讯录管理系统可以分为3个模块:用户信息模块、功能模块,测试模块。
1、用户信息模块
功能描述:此模块的主要功能是创建数组,使用数组存放个人信息(姓名、身份证号、电话号码)和航班信息(航线、时间)
输入:无
输出:无
2、功能模块
功能描述:此模块的主要功能是实现添加、查找、修改用户信息和航班信息
输入:用户的姓名、身份证、电话号码和航班的航线、时间
输出:用户的姓名、身份证、电话号码和航班的航线、时间 、价格、余票
3、测试模块
功能描述:此模块的主要功能是对系统进行测试
输入:各个功能的编号。
输出:通讯录管理系统界面
四、详细设计
1、信息(Infor)类
类名:Infor
继承父类:无
实现接口:无
概述:定义用于存放用户信息的数组和航班信息的数组
属性及说明:
static String name[] = new String[100]; // 姓名
static String IDcard[] = new String[100]; // 身份证
static String phoneNum[] = new String[100]; // 电话号码
static String Hangxian[] = { “长沙—上海”,“广州—杭州”,“长沙—深圳” };
static String Time[] = {“7:30—11:30”,“22:00—02:30”,“12:30—15:00”};
static int Price1 [] = new int[100] ; //经济舱,商务舱,头等舱的价格
static String state[] = new String[100] ; //经济舱,商务舱,头等舱
方法及说明:无
2、.功能(gongneng)类
类名:gongneng
继承父类:Infor
实现接口:无
概述:用于实现个人信息的增加、查询、修改、显示
属性及说明:
hangxian[] = new String[100] ; //存放航班的航线
time[] = new String[100] ; //存放航班的时间
Ticker_num[] = {50,1,20}; //存放经济舱,商务舱,头等舱的票数
方法及说明:
add():实现增加用户的个人信息(姓名、身份证、电话号码)的功能
Air_line():实现输入的航线是否存在的判断功能
add1():实现您要选择的机票类型,查看机票价格的功能
seat():实现判断是否有余票,若有余票则添加座位信息、个人信息的功能
check():实现查询功能
3、测试(Test)类
类名:Test
继承父类:gongneng
实现接口:无
概述:通过Infor p1和gongneng p2对象存放初始值
属性及说明:
Infor p1 = new Infor(); //创建Infor对象p2
gongneng p2 = new gongneng(); //创建gongneng对象p2
方法及说明:无
五、系统实现
航班售票管理系统的界面设计主要遵循方便易用、界面友好的原则,具体设计如下:
1、主界面(Test类)
图1
图1 输入相应的功能编号,执行各功能。
2、功能模块
图2
图2根据你输入的航线判断是否有此航线。如果存在此航线,就显示此航线及时间
图3
图3选择你要购买的机票查看此航线是否有余票,如果有余票就选择你要购买的机票类型

图4
图4根据要购买的机票数量添加个人信息(姓名、身份证、电话号码。若你输入的身份证和电话号码有错会提示你的输入有错误重新输入)

图5

图6
图5和图6是按你的需要查询(姓名、航线),按姓名查询就输入你要查找的姓名,显示你的姓名,身份证,电话号码,航线,时间
总 结
本次课程设计虽然只有短短几天的时间,但课程内容较为丰富,虽然其中所包含的知识点不多,但仅靠我们书本所学的知识也是远远不够的,这就需要我们去查找大量课外书籍和资料。Java设计主要目的是加深和巩固之前所学的知识,培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力。我们之前太过于把重心放在书本上,而忽略了实践的重要性。在本次课程设计过程中不可避免地出现了一些问题,比如因知识掌握水平不一,各个组员编写的程序无法完美兼容,表现出我们的基础知识的缺乏,同时体现出我们沟通的缺乏,我们掌握的知识是有限的,需要不断的进行学习和补充。
同时在这一次的课程设计中,也懂得了对题目进行分析的重要性。如果在做一个课程设计的时候不把所需的问题分析清楚,就会造成一种迷茫感,不知道从何下手的感觉。其次,此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。
此次课程设计最终顺利完成,虽然过程中出现很多问题,但在老师和同学的帮助下完美解决。在以后的发展和学习实践过程中,我们一定要不懈努力,不厌其烦的发现问题所在,然后一一进行解决,只有这样才能达到最终的目的。
参考文献
邢如意.Java语言中对象的理解与应用[J].软件工程,2017,20(4):9-11.
杨晓燕,李选平.Java面向对象程序设计实践教程[M].人民邮电出版社,2015.
张利锋,孙丽.Java语言与面向对象程序设计[M].清华大学出版社,2015.
姚骏屏,何桂兰.Java面向对象程序设计与系统开发[M].西安电子科技大学出版社,2015.
王娟.基于计算机软件开发的JAVA编程语言分析[J].数字通信世界,2017(12).
刘学波.浅谈项目教学法在JAVA语言教学中的应用[J].电大理工,2018(1):40-41
李蔚妍,耿霞,孙未,等.Java语言程序设计教学中构造方法的研究[J].福建电脑,2018(3)
高阳.JAVA编程语言在计算机软件开发中的应用[J].电脑迷,2018,No.94(5):55
李书卿.浅析JAVA语言的开发平台及J2EE编程技术[J].数码世界,2017(8):21-21
[10]. CayS.Horstmann.写给大忙人看的Java核心技术[M].2016.
附录:系统源代码
1、Infor类
package Hangban;
public class Infor {
public int seat; // 座位总数
public int ticket_price; // 机票价格
static String name[] = new String[100]; // 姓名
static String IDcard[] = new String[100]; // 身份证
static String phoneNum[] = new String[100]; // 电话号码
static String Hangxian[] = { “长沙—上海”,“广州—杭州”,“长沙—深圳” };
static String Time[] = {“7:30—11:30”,“22:00—02:30”,“12:30—15:00”};
static int Price1 [] = new int[100] ; //经济舱,商务舱,头等舱的价格
static String state[] = new String[100] ; //经济舱,商务舱,头等舱
}
2、gongneng类
package Hangban;
import java.util.*;
/*添加、查询、更改
add():用于增加用户的个人信息(姓名)
Air_line():判断输入的航线是否存在
add1():选择您要选择的机票类型,查看机票价格
seat():判断是否有余票,若有余票则 添加座位信息、个人信息
check():按需要查询内容*/
public class gongneng extends Infor {
static String hangxian[] = new String[100] ;
static String time[] = new String[100] ;
static int Price1 [] = new int[100] ; //经济舱,商务舱,头等舱的价格
static String state[] = new String[100] ; //经济舱,商务舱,头等舱
public void add(){
Scanner input = new Scanner(System.in);
System.out.println(" 请输入添加人数");
int n = input.nextInt(); //输入的人数
int m = 0; // 计算添加的人数
for (int i = 0;i<name.length;i++){
if(name[i] != null){
continue;
}
System.out.println(“请输入姓名:”);
name[i] = input.next();
System.out.println(“请输入身份证号码:”);
IDcard[i] = input.next();
while(IDcard[i].length() != 18){
System.out.println(“身份证号码输入错误!!请重新输入”);
IDcard[i] = input.next();
}
System.out.println(“请输入电话号码:”);
phoneNum[i] = input.next();
while(phoneNum[i].length() != 11){
System.out.println(“电话号码输入错误!!请重新输入”);
phoneNum[i] = input.next();
}
System.out.println(“姓名\t身份证号码\t\t\t电话号码\t\t航线\t\t时间\t”);
System.out.println(name[i] +"\t"+ IDcard[i] +"\t" + phoneNum[i] +"\t" +
hangxian[i] +"\t" + time[i]);
if(++m >= n) break; //跳出for()
}
}
public void Air_line()
{
Scanner input = new Scanner(System.in);
System.out.println(“请输入您的航线:”);
String hx ;
hx = input.next();
for (int i = 0;i < name.length;i++){
if(name[i] != null){
continue;
}
int k = 1; //不存在
while(true){ //
for(int j = 0 ;j < Hangxian.length;j++){ //j记录有几条航线
if(hx.equals( Hangxian[j])){ //判断航线存在
hangxian[i] = Hangxian[j];
time[i] = Time[j];
k = 0;
}
}
if( k == 0){
System.out.println(“航线:” + “\t” + hangxian[i]);
System.out.println(“时间” + “\t” + time[i]);
break;
}
else{
System.out.println(“没有此航线!!请重新输入”);
hx = input.next();
}
}
break;
}
}
public void add1(){
Scanner input = new Scanner(System.in);
for (int i = 0;i<name.length;i++){
if(name[i] != null){
continue;
}
System.out.println(“请选择您要购买的机票类型:”);
System.out.println("**********");
System.out.println(“1.经济舱”);
System.out.println(“2.商务舱”);
System.out.println(“3.头等舱”);
System.out.println("**********");
int t = input.nextInt();
switch(t){
case 1:
state[i] = “经济舱”;
Price1[i] =500;
break;
case 2:
state[i] = “商务舱”;
Price1[i] =700;
break;
case 3:
state[i] = “头等舱”;
Price1[i] =1000;
break;
}
break;
}
}
public void seat(){
Scanner input = new Scanner(System.in);
int Price [] = {500,700,1000}; //经济舱,商务舱,头等舱的价格
int Ticker_num[] = {50,0,20}; //经济舱,商务舱,头等舱
/*System.out.println(“请选择您要查看的座位类型:”);
System.out.println(“1.经济舱” + “\t” + “2.商务舱” + “\t” + “3.头等舱” );
System.out.println("------");*/
int k = 1;
while(true){
if(k == 0) break;
System.out.println(“请选择您要查看的座位类型:”);
System.out.println(“1.经济舱” + “\t” + “2.商务舱” + “\t” + “3.头等舱” );
System.out.println("------");
int t = input.nextInt();
switch(t){
case 1: //经济舱
if(Ticker_num[0]==0){
System.out.println(“经济舱暂无余票,请重新选择”);
System.out.println("------");
break;
}
else {
System.out.println(“经济舱剩余” + “\t” + Ticker_num[0]-- + “票”);
add(); // 添加个人信息
add1(); // 添加座位信息
k = 0;
}
break;
case 2: //经济舱
if(Ticker_num[1]==0){
System.out.println(“商务舱暂无余票,请重新选择”);
System.out.println("------");
break;
}
else {
System.out.println(“商务舱剩余” + “\t” + Ticker_num[1]-- + “票”);
add(); // 添加个人信息
add1(); // 添加座位信息
k = 0;
}
break;
case 3: //经济舱
if(Ticker_num[2]==0){
System.out.println(“头等舱暂无余票,请重新选择”);
System.out.println("------");
break;
}
else {
System.out.println(“头等舱剩余” + “\t” + Ticker_num[2]-- + “票”);
add(); // 添加个人信息
add1(); // 添加座位信息
k = 0;
}
break;
}
}
}
public void check(){ //查找
Scanner input = new Scanner(System.in);
System.out.println("*********");
System.out.println(“请输入你要查找的编号:”);
System.out.println(“1.按名字查询:”);
System.out.println(“2.按航线查询:”);
System.out.println("*********");
int s = input.nextInt();
switch(s){
case 1:
System.out.println(“请输入你要查询的名字:”);
String name1= input.next();
for(int i = 0;i<name.length;i++){
/*if(name[i] != null){
continue;
}*/
if(name1.equals(name[i])){
System.out.println("姓名\t身份证号码\t\t\t电话号码\t\t航线\t\t时间\t\t
");
System.out.println(name[i] +"\t"+ IDcard[i] +"\t" + phoneNum[i] +"\t" +
hangxian[i] +"\t" + time[i]);
System.out.println("\t\t\t");
break;
}
}
break;
case 2:
System.out.println(“请输入你要查询的航线:”);
String pho = input.next();
for(int i = 0;i<Hangxian.length;i++){
if(pho.equals(Hangxian[i])){
System.out.println("姓名\t身份证号码\t\t\t电话号码\t\t航线\t\t时间\t
");
System.out.println(name[i] +"\t"+ IDcard[i] +"\t" + phoneNum[i] +"\t" +
hangxian[i] +"\t" + time[i]);
System.out.println("\t\t\t");
}
if(name[i] == null){
break;
}
}
}
}
}
3、Test类
package Hangban;
import java.util.Scanner;
public class Test extends gongneng {
public static void main(String[] args) {
Infor p1 = new Infor();
gongneng p2 = new gongneng();
p1.name[0] = “小白”;
p1.phoneNum [0] = “13649685525”;
p1.IDcard [0] = “433135199906052525”;
p2.hangxian[0] = “长沙—上海”;
p2.time[0] = “7:30—11:30”;
p1.state[0] = “经济舱”;
p1.Price1 [0] = 500;
p1.name[1] = “小红”;
p1.phoneNum [1] = “13525645635”;
p1.IDcard [1] =“436458200103045351”;
p2.hangxian[1] = “长沙—深圳”;
p2.time[1] = “22:00—02:30”;
p1.state[1] = “商务舱”;
p1.Price1 [1] = 700;
Scanner input = new Scanner(System.in);
int num = -1; //用户输入0返回主菜单,否则退出系统
/*boolean isExit = false; //标志用户是否退出系统:true为退出系统
*/ do{
System.out.println("\n欢迎进入航班售票系统!!!");
System.out.println("*************");
System.out.println(“1.查看票余量”);
System.out.println(“2.添加个人信息”);
System.out.println(“3.查询个人信息”);
System.out.println(“4.退出系统”);
System.out.println("*************");
System.out.println(“请选择:”);
int choise = input.nextInt();
switch(choise){
case 1:
p2. Air_line();
p2.seat();
break;
case 2:
p2.Air_line();
p2.add();
break;
case 3:
p2.check();
break;
case 4:
num = 0;
break;
default:
System.out.println(“输入错误,请输入1-4之间的数!”);
}
}while(num == -1);
}
}

图1
图2