java 公交管理系统 代码_java公交线路管理系统

展开全部

//写了两个小时啊,兄弟,要采纳我啊

//Site(站点类)

package transit;

import java.util.ArrayList;

import java.util.List;

public class Site

{

private Integer id; // 给每个站点分配一个ID

private String name; // 站点的名字62616964757a686964616fe4b893e5b19e31333332623933

private List list; // 经过该站点的线路

public Site()

{

super();

}

public Site(Integer id, String name)

{

super();

this.id = id;

this.name = name;

this.list = new ArrayList();

}

public Integer getId()

{

return id;

}

public void setId(Integer id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public List getList()

{

return list;

}

public void setList(List list)

{

this.list = list;

}

// 添加线路

public boolean addRoute(Route route)

{

return this.getList().add(route);

}

// 删除线路

public boolean removeRoute(Route route)

{

return this.getList().remove(route);

}

@Override

public String toString()

{

return name;

}

@Override

public boolean equals(Object obj)

{

if (obj instanceof Site)

{

Site s = (Site) obj;

return this.id == s.getId() && this.name.equals(s.getName());

}

return false;

}

}//线路类

package transit;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

public class Route

{

private Integer id; // 给每个线路分配一个ID

private String name; // 线路名称

private List list; // 线路所包含的站点

private Date startDate; // 发班时间,从首站点算起

private Date endDate; // 收班时间,从首站点算起

public Route()

{

super();

}

public Route(Integer id, String name, Date startDate, Date endDate)

{

super();

this.id = id;

this.name = name;

this.startDate = startDate;

this.endDate = endDate;

this.list = new ArrayList();

}

public Integer getId()

{

return id;

}

public void setId(Integer id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public List getList()

{

return list;

}

public void setList(List list)

{

this.list = list;

}

public Date getStartDate()

{

return startDate;

}

public void setStartDate(Date startDate)

{

this.startDate = startDate;

}

public Date getEndDate()

{

return endDate;

}

public void setEndDate(Date endDate)

{

this.endDate = endDate;

}

public boolean isHasThisSite(Site site)

{

for (Site l_site : this.getList())

{

if (l_site.equals(site))

{

return true;

}

}

return false;

}

// 添加站点,成功返回true

public boolean addSite(Site site)

{

return this.getList().add(site);

}

// 移除站点,成功返回true

public boolean removeSite(Site site)

{

return this.getList().remove(site);

}

@Override

public String toString()

{

return name;

}

}//公交系统类

package transit;

import java.util.ArrayList;

import java.util.List;

public class TransitSystem

{

/**

* 1)增加、修改、删除一个条公交线路信息。

* 2)增加、修改、删除公交站点信息。

* 3)按条件显示公交线路信息(条件有按线路名称、途经车站等)。

*/

private List routeList ;  //系统所管理的线路

private List siteList;  //系统所管理的站点

public TransitSystem(){

routeList = new ArrayList();

siteList = new ArrayList();

}

//增加一条线路

public void addRoute(Route route){

if(!routeList.add(route)){

throw new RuntimeException("系统中已存在该线路");

}

}

//修改一条线路

public void updateRoute(Route route){

//根据route 的id 获取已存在系统中的route

Route l_route = getRoute(route.getId());

if(l_route!=null){

//注入值

l_route.setName(route.getName());

l_route.setList(route.getList());

l_route.setStartDate(route.getStartDate());

l_route.setEndDate(route.getEndDate());

}else{

throw new RuntimeException("线路id不匹配,无法修改");

}

}

//获取该系统中的线路,根据id获取

public Route getRoute(Integer id){

Route route2 = null;

for (Route route : this.getRouteList())

{

if(route.getId().equals(id)){

route2 = route;

}

}

return route2;

}

//删除一条线路,根据对象删除

public void removeRoute(Route route){

if(!this.getRouteList().remove(route)){

throw new RuntimeException(route.getId()+"线路不存在");

}

}

//增加一条公交站点

public void addSite(Site site){

if(!this.siteList.add(site)){

throw new RuntimeException(site.getId()+"站点已存在");

}

}

//删除一条公交站点

public void removeSite(Site site){

if(!this.getSiteList().remove(site)){

throw new RuntimeException(site.getId()+"站点不存在");

}

}

//修改一条公交站点

public void updateSite(Site site){

//根据route 的id 获取已存在系统中的route

Site l_site = getSite(site.getId());

if(l_site!=null){

//注入值

l_site.setName(site.getName());

l_site.setList(site.getList());

}else{

throw new RuntimeException("站点id不匹配,无法修改");

}

}

//获取该系统中的公交站点,根据id获取

public Site getSite(Integer id){

Site site2 = null;

for (Site site : this.getSiteList())

{

if(site.getId().equals(id)){

site2 = site;

}

}

return site2;

}

//按线路名称查询公交线路信息

public Route getRouteByName(String name){

for (Route route : this.getRouteList())

{

if(route.getName().equals(name)){

return route;

}

}

return null;

}

//根据途经车站查询公交线路

public List getRouteBySite(Site site){

return site.getList();

}

public List getRouteList()

{

return routeList;

}

public void setRouteList(List routeList)

{

this.routeList = routeList;

}

public List getSiteList()

{

return siteList;

}

public void setSiteList(List siteList)

{

this.siteList = siteList;

}

}//测试类

package transit;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import java.util.Random;

public class _Test

{

public static void main(String[] args) throws ParseException

{

TransitSystem system = new TransitSystem();

SimpleDateFormat format = new SimpleDateFormat("hh:MM");

Date startDate = format.parse("07:30");

Date endDate = format.parse("22:30");

// 向系统中添加10条线路,20个站点

for (int i = 0; i 

{

if (i 

{

system.addRoute(new Route(i, "线路" + i, startDate, endDate));

}

system.addSite(new Site(i, "站点" + i));

}

List siteList = system.getSiteList();

// 为系统中的站点添加线路

for (Route route : system.getRouteList())

{

// 每条线路 随机添加N个站点

int n = new Random().nextInt(siteList.size());

for (int i = 0; i 

{

// 每个站点也是随机,如重复,则添加失败

int x = new Random().nextInt(siteList.size());

if (!route.isHasThisSite(siteList.get(x)))

{

route.addSite(siteList.get(x));

// 同时该站点也添加该线路

siteList.get(x).addRoute(route);

}

}

}

// 查询所有的线路所包含的站点

for (Route route : system.getRouteList())

{

System.out

.println(route.getName() + " :对应的站点集合:" + route.getList());

}

// 查询所有的站点对应的线路

for (Site site : system.getSiteList())

{

System.out.println("站点" + site.getName() + " :对应的线路集合: "

+ site.getList());

}

}

}

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值