大一java课程设计_航班查询系统(我是小白)
备注:第一个java程序有借鉴别人的成分,因为忘了在哪个大佬上面借鉴的,所以在此备注,如有侵权,请联系删除,(仅用于学习使用,并未想盈利)
-
框体介绍
一共分为3个类AirInfo,AirInfoManager,TestAirInfo,
第一个类是对象类,存储航班信息,第二个类是操作类,负责对航班信息进行操作,第三个类是测试类,也是主类,用于执行程序。思路:在主类中先创建对象,创建对象就要有定义对象操作,即产生了AirInfo对象类,在主类中创立对象后,就要实现对这些信息的操作,所以产生了AirInfoManager操作类,专门存储对AirInfo对象的操作,当然AirInfoManager也是一个对象,所以在主类中也要创建对象。这里要注意的是为了使 操作类 确定 操作的对象,所以AirInfoManager需要传入一个实参。
-
代码
第一个类AirInfo如下:
public class AirInfo {
//设置id(编号)
private int id;
//设置flight_number(航班号)
private String flight_number;
//设置destination(地点)
private String destination;
//设置flight_date(飞行日期)
private String flight_date;
public AirInfo(final int id, final String flight_number, final String destination, final String flight_date) {
this.id = id;
this.flight_number = flight_number;
this.destination = destination;
this.flight_date = flight_date;
}
public int getId() {
return id;
}
public void setId(final int id) {
this.id = id;
}
public String getFlight_number() {
return flight_number;
}
public void setFlight_number(final String flight_number) {
this.flight_number = flight_number;
}
public String getDestination() {
return destination;
}
public void setDestination(final String destination) {
this.destination = destination;
}
public String getFlight_date() {
return flight_date;
}
public void setFlight_date(final String flight_date) {
this.flight_date = flight_date;
}
}
第二个类 AirInfoManager 代码如下
import java.util.*;
public class AirInfoManager {
//列出所有航班的方法
public void all_flight(ArrayList<AirInfo> flight){
System.out.println("编号\t航班号\t目的地\t 起飞日期");
for(AirInfo e:flight)
System.out.println(e.getId()+"\t"+e.getFlight_number()+"\t"+e.getDestination()+" "+e.getFlight_date());
}
//按起飞时间查询的方法
public void inquiry_date(ArrayList<AirInfo> flight){
System.out.print("请输入日期:");
Scanner in=new Scanner(System.in);
String date=in.next();
for(AirInfo e:flight)
{
if(e.getFlight_date().equals(date)){
System.out.println("编号\t 航班号\t目的地\t\t起飞日期");
System.out.println(e.getId()+"\t"+e.getFlight_number()+"\t"+e.getDestination()+" "+e.getFlight_date());
}
}
}
//按目的地查询的方法
public void inquiry_destination(ArrayList<AirInfo> flight){
System.out.print("请输入目的地:");
Scanner in=new Scanner(System.in);
String destination=in.next();
for(AirInfo e:flight)
{
if(e.getDestination().equals(destination)){
System.out.println("编号\t 航班号\t目的地\t\t起飞日期");
System.out.println(e.getId()+"\t"+e.getFlight_number()+"\t"+e.getDestination()+" "+e.getFlight_date());
}
}
}
//删除航班的方法
// 用removeAll(Collection<?> c)方法将其删除
public void delete_flight(ArrayList<AirInfo> flight){
System.out.print("请输入需要删除的航班编号:");
Scanner in=new Scanner(System.in);
List delList = new ArrayList();
int id=in.nextInt();
for(AirInfo e:flight)
{
if(e.getId()==(id))
delList.add(e);
}
flight.removeAll(delList);
System.out.println("删除成功!");
}
//更新航班的方法
public void update_flight(ArrayList<AirInfo> flight){
Scanner in=new Scanner(System.in);
int id;
String flight_number,destinaton,flight_date;
System.out.print("请输入需要更新的航班编码:");
id=in.nextInt();
System.out.print("请输入新的航班号:");
flight_number=in.next();
System.out.print("请输入新的目的地:");
destinaton=in.next();
System.out.print("请输入新的起飞时间:");
flight_date=in.next();
flight.add(new AirInfo(id,flight_number,destinaton,flight_date));
System.out.println("更新成功!");
}
//退出系统的方法
public void exit(){
System.out.println("成功退出系统!");
System.exit(0);
}
}
第三个类 TestAirInfo
import java.util.ArrayList;
import java.util.Scanner;
public class TestAirInfo {
public static void main(String[] args) {
AirInfoManager airInfoManager=new AirInfoManager();
//用Arraylist表示航班信息
ArrayList<AirInfo> flight=new ArrayList<>();
//为数组增加记录
flight.add(new AirInfo(1,"001","beijing","2016-1-1"));
flight.add(new AirInfo(2,"002","shanghai","2016-2-20"));
flight.add(new AirInfo(3,"003","guangzhou","2016-2-24"));
Scanner in=new Scanner(System.in);
while(true){
System.out.print("请选择操作(1.列出所有航班,2.按起飞时间查询,3.按目的地查询,4.删除航班,5.更新航班,6.退出系统)");
switch(in.nextInt()){
case 1:
airInfoManager.all_flight(flight);
break;
case 2:
airInfoManager.inquiry_date(flight);
break;
case 3:
airInfoManager.inquiry_destination(flight);
break;
case 4:
airInfoManager.delete_flight(flight);
break;
case 5:
airInfoManager.update_flight(flight);
break;
case 6:
airInfoManager.exit();
default:System.out.println("对不起,您输入的数字无效。请输入1~6之间的数字:");
}
System.out.println();
}
}
}
- 运行操作
在eclipse中创建3个类,名字分别名为AirInfo,AirInfoManager,TestAirInfo。然后将相应的代码粘贴然后运行即可。
卑微小白
。。。。。。。。。我是分割线。。。。。。。。。。。。。。。。好长。。。。。。。。。。。啊啊。。。。。。。。。。。。。。。。。。
然后接下来是我自己添加swing技术后创作的航班查询系统
1. 框架:
一共有4个类AirInfo(和原来的那个一样),AirInfoManager(和原来的那个不一样),frame1,Main 。frame1是主图像框,AirinfoManager是方法类,其中还包含了窗口,主方法中创建对象,产生了实参,还有建立了一个ArrayList数组存储AirInfo对象,这个ArrayList数组创建的名字(实参)是flight.在方法类中使用ArrayList的.add和.removeall方法进行添加和删除对象。用.getText方法获取文本域中的内容
2.代码
AirInfo类
package upair;
public class AirInfo {
private String id;
private String flight_number;
private String destination;
private String flight_date;
public AirInfo(final String id, final String flight_number, final String destination, final String flight_date) {
this.id = id;
this.flight_number = flight_number;
this.destination = destination;
this.flight_date = flight_date;
}
public AirInfo() {
// TODO 自动生成的构造函数存根
}
public String getId() {
return id;
}
public void setId(final String id) {
this.id = id;
}
public String getFlight_number() {
return flight_number;
}
public void setFlight_number(final String flight_number) {
this.flight_number = flight_number;
}
public String getDestination() {
return destination;
}
public void setDestination(final String destination) {
this.destination = destination;
}
public String getFlight_date() {
return flight_date;
}
public void setFlight_date(final String flight_date) {
this.flight_date = flight_date;
}
}
AirInfoManager类
package upair;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
public class AirInfoManager extends JFrame {
// 列出所有航班的方法
public void all_flight(ArrayList<AirInfo> flight) {
// !---设置窗口j
JFrame f1 = new JFrame("所有航班显示如下");
f1.setBackground(Color.GRAY);
f1.setBounds(300, 200, 510, 500);
f1.setVisible(true);
f1.setResizable(false);
//设置窗口关闭规则
f1.setDefaultCloseOperation(f1.DISPOSE_ON_CLOSE);
// !====设置窗口
// 设置容器c1
Container c1 = f1.getContentPane();
//设置流布局样式
c1.setLayout(new FlowLayout(1, 30, 20));
JButton j1 = new JButton("编号");
JButton j2 = new JButton("航班号");
JButton j3 = new JButton("目的地");
JButton j4 = new JButton("起飞日期");
c1.add(j1);
c1.add(j2);
c1.add(j3);
c1.add(j4);
// 设置容器c2
Container c2 = f1.getContentPane();
for (AirInfo a : flight) {
c1.add(new JLabel("编号是:" + a.getId()));
c1.add(new JLabel("航班号是:" + a.getFlight_number()));
c1.add(new JLabel("目的地是:" + a.getDestination()));
c1.add(new JLabel("起飞日期是:" + a.getFlight_date()));
}
// !====
}
// 按起飞时间查询的方法
public void inquiry_date(ArrayList<AirInfo> flight) {
// 设置窗口
JFrame f2 = new JFrame("查询窗口");
f2.setVisible(true);
f2.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f2.setBounds(300, 200, 510, 500);
// 设置容器
Container c1 = f2.getContentPane();
c1.setLayout(new FlowLayout());
JLabel j1 = new JLabel("请输入查询的起飞时间:");
j1.setFont(new Font("楷体", Font.PLAIN, 20));
JTextArea ta1 = new JTextArea("", 1, 10);
c1.add(j1);
c1.add(ta1);
// 设置按钮
Container c2 = f2.getContentPane();
c2.setLayout(new FlowLayout());
JButton j2 = new JButton("确定");
c2.add(j2);
// 设置监控
j2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
/*
用文本域的.getText方法得到文本域中的内容,注意这一行代码的位置,要放在监控里面,即
点击完j2之后才得到文本域中的内容
*/
String s = ta1.getText();
// 创建窗口
JFrame ff2 = new JFrame("查询结果:");
ff2.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
ff2.setBounds(300, 200, 510, 500);
ff2.setVisible(true);
// 创建容器
Container c1 = ff2.getContentPane();
c1.setLayout(new FlowLayout(1, 30, 20));
// 创建标签
JButton j1 = new JButton("编号");
JButton j2 = new JButton("航班号");
JButton j3 = new JButton("起飞目的地");
JButton j4 = new JButton("起飞日期");
c1.add(j1);
c1.add(j2);
c1.add(j3);
c1.add(j4);
// 查询
Container c2 = ff2.getContentPane();
for (AirInfo a : flight) {
if (a.getFlight_date().equals(s)) {
JLabel j5 = new JLabel("编号是: " + a.getId());
JLabel j6 = new JLabel("航班号: " + a.getFlight_number());
JLabel j7 = new JLabel("起飞目的地: " + a.getDestination());
JLabel j8 = new JLabel("起飞日期: " + a.getFlight_date());
c2.add(j5);
c2.add(j6);
c2.add(j7);
c2.add(j8);
}
}
}
});
}
// 按目的地查询的方法
public void inquiry_destination(ArrayList<AirInfo> flight) {
// 设置窗口
JFrame f2 = new JFrame("查询窗口");
f2.setVisible(true);
f2.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f2.setBounds(300, 200, 510, 500);
// 设置容器
Container c1 = f2.getContentPane();
c1.setLayout(new FlowLayout());
JLabel j1 = new JLabel("请输入查询的目的地:");
j1.setFont(new Font("楷体", Font.PLAIN, 20));
JTextArea ta1 = new JTextArea("", 1, 10);
c1.add(j1);
c1.add(ta1);
// 设置按钮
Container c2 = f2.getContentPane();
c2.setLayout(new FlowLayout());
JButton j2 = new JButton("确定");
c2.add(j2);
// 设置监控
j2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String s = ta1.getText();
// 创建窗口
JFrame ff2 = new JFrame("查询结果:");
ff2.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
ff2.setBounds(300, 200, 510, 500);
ff2.setVisible(true);
// 创建容器
Container c1 = ff2.getContentPane();
c1.setLayout(new FlowLayout(1, 30, 20));
// 创建标签
JButton j1 = new JButton("编号");
JButton j2 = new JButton("航班号");
JButton j3 = new JButton("起飞目的地");
JButton j4 = new JButton("起飞日期");
c1.add(j1);
c1.add(j2);
c1.add(j3);
c1.add(j4);
// 查询
Container c2 = ff2.getContentPane();
for (AirInfo a : flight) {
if (a.getDestination().equals(s)) {
JLabel j5 = new JLabel("编号是: " + a.getId());
JLabel j6 = new JLabel("航班号: " + a.getFlight_number());
JLabel j7 = new JLabel("起飞目的地: " + a.getDestination());
JLabel j8 = new JLabel("起飞日期: " + a.getFlight_date());
c2.add(j5);
c2.add(j6);
c2.add(j7);
c2.add(j8);
}
}
}
});
}
// 删除航班的方法
public void delete_flight(ArrayList<AirInfo> flight) {
// 创建窗体
JFrame f4 = new JFrame("请在下表中填入删除的信息: ");
f4.setVisible(true);
f4.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f4.setBounds(300, 200, 400, 500);
f4.setResizable(false);
// 创建容器
Container c1 = f4.getContentPane();
c1.setLayout(new FlowLayout(FlowLayout.LEFT));
// 创建标签
JLabel j1 = new JLabel("请输入需要删除的航班班号:");
c1.add(j1);
JTextArea ta1 = new JTextArea("", 1, 10);
c1.add(ta1);
// 创建容器
Container c2 = f4.getContentPane();
JButton j2 = new JButton("确定");
c2.add(j2);
// 创建监控
j2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = ta1.getText();
ArrayList<AirInfo> ls = new ArrayList<>();
for (AirInfo a4 : flight) {
if (a4.getId().equals(s)) {
ls.add(a4);
}
}
flight.removeAll(ls);
JFrame ff4 = new JFrame("这是新窗口");
ff4.setVisible(true);
ff4.setBounds(200, 200, 300, 300);
ff4.setDefaultCloseOperation(ff4.DISPOSE_ON_CLOSE);
Container c3 = ff4.getContentPane();
JLabel jl1 = new JLabel(" 删除成功");
jl1.setFont(new Font("楷体", Font.PLAIN, 35));
ff4.setResizable(false);
c3.add(jl1);
}
});
}
// 添加航班的方法
public void update_flight(ArrayList<AirInfo> flight) {
// 创建窗口
JFrame f5 = new JFrame("请在下表中添加航班: ");
f5.setVisible(true);
f5.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f5.setBounds(300, 200, 400, 500);
f5.setResizable(false);
// 创建容器
Container c1 = f5.getContentPane();
c1.setLayout(new FlowLayout(FlowLayout.LEFT));
JLabel jj1 = new JLabel("请输入需要添加的航班编号:");
jj1.setFont(new Font("楷体", Font.PLAIN, 20));
c1.add(jj1);
JTextArea ta1 = new JTextArea("", 1, 10);
c1.add(ta1);
// 创建标签
JLabel jj2 = new JLabel("请输入新添加的航班号:");
jj2.setFont(new Font("楷体", Font.PLAIN, 20));
c1.add(jj2);
JTextArea ta2 = new JTextArea("", 1, 10);
c1.add(ta2);
// 创建标签
JLabel jj3 = new JLabel("请输入新添加的目的地:");
jj3.setFont(new Font("楷体", Font.PLAIN, 20));
c1.add(jj3);
JTextArea ta3 = new JTextArea("", 1, 10);
c1.add(ta3);
// 创建标签
JLabel jj4 = new JLabel("请输入新添加的起飞时间:");
jj4.setFont(new Font("楷体", Font.PLAIN, 20));
c1.add(jj4);
JTextArea ta4 = new JTextArea("", 1, 10);
c1.add(ta4);
// 创建按钮
Container c2 = f5.getContentPane();
c2.setLayout(new FlowLayout());
JButton jj5 = new JButton("确定");
jj5.setFont(new Font("楷体", Font.PLAIN, 20));
c2.add(jj5);
// 监控触发窗口
jj5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 神奇的位置
AirInfo air = new AirInfo(ta1.getText(), ta2.getText(), ta3.getText(), ta4.getText());
flight.add(air);
//
// 创建窗口
JFrame ff5 = new JFrame("这是新窗口");
ff5.setVisible(true);
ff5.setBounds(200, 200, 300, 300);
ff5.setDefaultCloseOperation(ff5.DISPOSE_ON_CLOSE);
Container c3 = ff5.getContentPane();
JLabel jl1 = new JLabel(" 修改成功");
jl1.setFont(new Font("楷体", Font.PLAIN, 35));
ff5.setResizable(false);
c3.add(jl1);
}
});
}
// 退出系统的方法
public void exit() {
System.exit(0);
}
}
frame1类
package upair;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
public class frame1 {
public frame1(ArrayList<AirInfo> flight, AirInfoManager airInfoManager) {
// !----1最外层背景j
JFrame j = new JFrame("航班记录查询系统");
j.setBounds(500, 200, 450, 500);
j.setBackground(Color.CYAN);
j.setVisible(true);
j.setDefaultCloseOperation(j.DISPOSE_ON_CLOSE);
j.setResizable(false);
// !====1
// !----2容器c1
Container c1 = j.getContentPane();
c1.setLayout(new GridLayout(6, 6));
// !====2
// !----3设立6个按钮
JButton j1 = new JButton("列出所有航班");
j1.setFont(new Font("楷体", Font.PLAIN, 30));
JButton j2 = new JButton("按起飞日期查询");
j2.setFont(new Font("楷体", Font.PLAIN, 30));
JButton j3 = new JButton("按目的地查询");
j3.setFont(new Font("楷体", Font.PLAIN, 30));
JButton j4 = new JButton("删除航班");
j4.setFont(new Font("楷体", Font.PLAIN, 30));
JButton j5 = new JButton("添加航班");
j5.setFont(new Font("楷体", Font.PLAIN, 30));
JButton j6 = new JButton("退出系统");
j6.setFont(new Font("楷体", Font.PLAIN, 30));
c1.add(j1);
c1.add(j2);
c1.add(j3);
c1.add(j4);
c1.add(j5);
c1.add(j6);
c1.validate();
// !====3
// ----4监控
// 1
j1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
airInfoManager.all_flight(flight);
}
});
// 2
j2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
airInfoManager.inquiry_date(flight);
}
});
// 3
j3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
airInfoManager.inquiry_destination(flight);
}
});
j4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
airInfoManager.delete_flight(flight);
}
});
j5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
airInfoManager.update_flight(flight);
}
});
j6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
airInfoManager.exit();
}
});
// ====4
}
}
Main类
package upair;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<AirInfo> flight = new ArrayList<>(10);
AirInfoManager airInfoManager = new AirInfoManager();
frame1 f = new frame1(flight, airInfoManager);
flight.add(new AirInfo("001", "A-32", "北京", "2020-7-3"));
flight.add(new AirInfo("002", "B-14", "郑州", "2020-7-4"));
}
}
卑微小白