航班管理系统

该博客探讨了实现航班管理系统的关键技术,包括使用工厂模式进行对象创建,采用MVC模式进行架构设计,利用反射进行动态操作,以及XML文件解析和I/O流处理TXT文件存取。内容涵盖flights.xml、flight.txt、applicationContext.xml等文件的应用,以及ObjectFactory、FlightDaoImp、FlightServiceImp等组件的角色。
摘要由CSDN通过智能技术生成

知识点:工厂模式,MVC模式,反射,xml文件解析存取,I/O流txt文件存取。
flights.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 航班信息 -->
<flights> 
  <fight flightNo="AB1234">
    <departureCity>大连</departureCity>
    <departureTime>2019-05-06 19:33:00</departureTime>
    <arrivalCity>上海</arrivalCity>
    <arrivalTime>2019-05-06 19:33:00</arrivalTime>
  </fight>
  <fight flightNo="CA1234">
    <departureCity>北京</departureCity>
    <departureTime>2019-08-02 12:28:00</departureTime>
    <arrivalCity>上海</arrivalCity>
    <arrivalTime>2019-08-02 12:28:00</arrivalTime>
  </fight>
  <fight flightNo="NA1234">
    <departureCity>北京</departureCity>
    <departureTime>2019-08-02 15:28:00</departureTime>
    <arrivalCity>上海</arrivalCity>
    <arrivalTime>2019-08-02 15:28:00</arrivalTime>
  </fight>
</flights>

flight.txt

CA1234,北京,2019-08-02 10:30:00,上海,2019-08-02 12:28:00
NA1234,北京,2019-08-02 13:30:00,上海,2019-08-02 15:28:00
CZ1234,北京,2019-08-02 17:03:00,上海,2019-08-02 19:28:00

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans >
	<bean id="dao" class="cn.kgc.tangcco.chengxiangjian.dao.impl.FlightDaoImp"></bean>
	<bean id="ser" class="cn.kgc.tangcco.chengxiangjian.service.impl.FlightServiceImp"></bean>
</beans>

test

package cn.kgc.tangcco.chengxiangjian.test;

import cn.kgc.tangcco.chengxiangjian.action.FlightAction;

public class test {
   
	//创建main方法
	public static void main(String[] args) {
   
		//实例化FlightAction
		FlightAction flightAction = new FlightAction();
		//调用menu()方法
		flightAction.menu();
	}
}

Constant

package cn.kgc.tangcco.chengxiangjian.common;

import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Constant {
   
	//创建map集合,用于解析applicationContext.xml后存放数据
	private static Map<String, String> map = new ConcurrentHashMap<String, String>();
	//设定常量值
	public static final String DAO = "dao";
	public static final String SER = "ser";
	//解析applicationContext.xml文件,数据存入map集合
	static {
   
		SAXReader saxReader = new SAXReader();
		try {
   
			Document document = saxReader.read(new File("src/files/applicationContext.xml"));
			Element root = document.getRootElement();
			List<Element> list = root.elements();
			for (Element element : list) {
   
				String key = element.attributeValue("id");
				String value = element.attributeValue("class");
				map.put(key, value);
			}
		} catch (Exception e) {
   
			e.printStackTrace();
		}
	}
	//根据键,返回对应的值
	public static String getUrl(String key) {
   
		return map.get(key);
	}

}

ObjectFactory

package cn.kgc.tangcco.chengxiangjian.common;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
//工厂模式
public class ObjectFactory {
   
	//创建map集合
	private static Map<String, Object> map = new ConcurrentHashMap<String, Object>();
	//反射模式创建对象
	public static <E> E getInstence(String key) {
   
		E object
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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.要求代码规范,命名正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值