## 大一java课程设计_航班查询系统(我是小白)

大一java课程设计_航班查询系统(我是小白)

备注:第一个java程序有借鉴别人的成分,因为忘了在哪个大佬上面借鉴的,所以在此备注,如有侵权,请联系删除,(仅用于学习使用,并未想盈利)

  1. 框体介绍
    一共分为3个类AirInfo,AirInfoManager,TestAirInfo,
    第一个类是对象类,存储航班信息,第二个类是操作类,负责对航班信息进行操作,第三个类是测试类,也是主类,用于执行程序。

    思路:在主类中先创建对象,创建对象就要有定义对象操作,即产生了AirInfo对象类,在主类中创立对象后,就要实现对这些信息的操作,所以产生了AirInfoManager操作类,专门存储对AirInfo对象的操作,当然AirInfoManager也是一个对象,所以在主类中也要创建对象。这里要注意的是为了使 操作类 确定 操作的对象,所以AirInfoManager需要传入一个实参

  2. 代码
    第一个类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();
 }
 }
}
  1. 运行操作
    在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"));
	}
}

卑微小白

OOP(机试)[具体要求在压缩文档中给出] 项目名称: Air Infomation System 基于控制台的航班信息系统,简称AIS 具体要求如下: (1)显示航班信息系统菜单,如图-1所示,括: 1)列出所有航班 2)按起飞时间查询 3)按目的地查询 4)删除航班 5)更新航班 6)退出系统 (2)列出所有航班:查出所有航班的信息,以列表形式显示,括:编号,航班号,目的地,起飞日期。 (3)按起飞时间查询:输入起飞时间(格式如2011-2-25),查出所有这一天的航班。 (4)按目的地查询:输入目的地,查出所有飞往此地的航班。 (5)删除航班:删除指定编号的航班。 (6)更新航班:更新指定编号的航班。 (7)退出系统。 三、的设计 需要定义如下 航班信息实体(AirInfo) 航班编号(id) 航班号(flight_number) 目的地(destination) 起飞日期(flight_date) 航班信息管理AirInfoManager 程序入口TestAirInfo 四、具体要求及推荐实现步骤 6.创建实体AirInfo,属性私有化,根据业务提供需要的构造方法和setter/getter方法。 7.创建航班管理AirInfoManager,在中提供列出所有航班方法,按起飞时间查询方法、按目的地查询方法、删除航班方法、更新航班方法、退出系统方法。 8.创建TestAirInfo,启动和运行系统。 9.航班的信息用ArrayList(或数组)保存。 10.要求代码规范,命名正确。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值