火车车次信息管理试题讲解

火车车次信息管理试题

本试题使用Jsp+Spring+Mybatis+Mysql+Maven等技术实现火车车次信息管理。

题目:火车车次信息管理

语言和环境

A、实现语言
Java
B、环境要求
JDK1.8、Eclipse、Tomcat7、Spring、Mybatis、Mysql、Maven

功能要求

使用JSP+Servlet+Spring+Mybatis实现火车车次信息管理功能,MySql作为后台数据库,功能包括车次信息浏览、火车车次信息详情和车次信息删除两大功能。具体要求如下:
(1)打开火车车次信息管理首页,以列表方式显示所有车次信息,页面列表要求实现隔行变色效果,如下图所示。

在这里插入图片描述
(2)单击“删除”链接可以进行火车车次信息删除,如果没有复选框被选中,当单击“删除”链接时需要提示“请选择车次!”信息,如下图所示。
在这里插入图片描述
(3)如果选中复选框,单击“删除”链接,执行删除车次信息操作,并根据删除结果给出相应的信息提示,如下图所示。在这里插入图片描述
点击确定后,跳转至车次信息列表页面,并显示更新后的车次列表信息,如下图所示。
在这里插入图片描述
(4)单击车次超链接,则跳转至指定车次的火车车次详情页面,如下图所示。
在这里插入图片描述

数据库设计

数据库表名称及要求:
在这里插入图片描述

视频讲解及源码地址

https://download.youkuaiyun.com/download/pcbhyy/10763118

主要代码

数据库
create table train_info(
	train_no varchar(30) primary key,
	start_station varchar(30) not null,
	arrival_station varchar(30) not null,
	start_time varchar(30) not null,
	arrival_time varchar(30) not null,
	type varchar(30) not null,
	runtime varchar(30) not null,
	mile double(10,1)  not null
)

INSERT INTO `train_info` VALUES ('D73', '沈阳', '深圳', '10-24-16:40', '10-25-20:08', '特快', '20', '2000');
INSERT INTO `train_info` VALUES ('D74', '沈阳', '阜新', '10-24-16:40', '10-25-20:08', '特快', '2', '200');
INSERT INTO `train_info` VALUES ('D75', '沈阳', '北京', '10-24-16:40', '10-25-20:08', '高铁', '4', '1000');

INSERT INTO `train_info` VALUES ('D123', '沈阳北', '北京', '10:40', '16:05', '动车', '3d', '500');
INSERT INTO `train_info` VALUES ('G388', '沈阳北', '锦州', '16:40', '07:05', '高铁', '1d', '300');
INSERT INTO `train_info` VALUES ('k388', '沈阳北', '重庆北', '16:40', '07:05', '快', '39d', '1500');
INSERT INTO `train_info` VALUES ('K6206', '沈阳北', '成都北', '16:40', '07:05', '快', '39d', '1500');
INSERT INTO `train_info` VALUES ('Z17', '沈阳北', '北京北', '16:40', '09:05', '直达', '9d', '500');
Servlet
package com.yy.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.yy.eitity.TrainInfo;
import com.yy.service.TrainInfoService;

public class TrainInfoServlet extends HttpServlet {	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String method = request.getParameter("method");
		
		if("getTrainInfo".equals(method)) {
			doGetTrainInfo(request,response);
		}else if("getTrainById".equals(method)) {
			doGetTrainById(request,response);
		}else if("dels".equals(method)) {
			doDels(request,response);
		}
	}

	private void doDels(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String[] nos = request.getParameterValues("no");
		
		ServletContext sc = request.getServletContext();
		
		WebApplicationContext context = 
				WebApplicationContextUtils.getWebApplicationContext(sc);
		
		TrainInfoService service = context.getBean(TrainInfoService.class);
		
		int n = service.batchDelete(nos);
		
		doGetTrainInfo(request,response);		
	}

	private void doGetTrainById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String no = request.getParameter("no");
		
		ServletContext sc = request.getServletContext();
		
		WebApplicationContext context = 
				WebApplicationContextUtils.getWebApplicationContext(sc);
		
		TrainInfoService service = context.getBean(TrainInfoService.class);
		
		TrainInfo info = service.getById(no);
		
		request.setAttribute("train", info);
		
		request.getRequestDispatcher("/WEB-INF/train/getTrain.jsp").forward(request, response);		
	}

	private void doGetTrainInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ServletContext sc = request.getServletContext();
		
		WebApplicationContext context = 
				WebApplicationContextUtils.getWebApplicationContext(sc);
		
		TrainInfoService service = context.getBean(TrainInfoService.class);
		
		List<TrainInfo> list = service.getAll();
		
		request.setAttribute("list", list);
		
		request.getRequestDispatcher("/WEB-INF/train/getall.jsp").forward(request, response);		
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
mapper接口
package com.yy.mapper;

import java.util.List;

import com.yy.eitity.TrainInfo;

public interface TrainInfoMapper {
	public List<TrainInfo> getAll();
	public TrainInfo getById(String no);
	public int batchDelete(String[] nos);
}
mapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yy.mapper.TrainInfoMapper">
	<resultMap type="com.yy.eitity.TrainInfo" id="basicMap">
		<id property="trainNo" column="train_no" />
		
		<result property="arrivalStation" column="arrival_Station"/>
		<result property="arrivalTime" column="arrival_Time"/>
		<result property="mile" column="mile"/>
		<result property="runtime" column="runtime"/>
		<result property="startStation" column="start_Station"/>
		<result property="startTime" column="start_Time"/>
		<result property="type" column="type"/>
	</resultMap>
	<select id="getAll" resultMap="basicMap">
		select * from train_info
	</select>
	<select id="getById" resultMap="basicMap">
		select * from train_info where train_no = #{trainNo}
	</select>
	
	<delete id="batchDelete">
		delete from train_info 
		where train_no in
		<foreach collection="array" item="trainNo" open="(" close=")" separator=",">
			#{trainNo}
		</foreach>
	</delete>
</mapper>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.yy</groupId>
	<artifactId>spring_demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
		<plugins>
			<!-- 资源文件拷贝插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- java编译插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.2</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<!-- 部署路径,如:/e3mall,表明部署到/e3mall路径下 -->
					<path>/</path>
					<!-- 端口号 -->
					<port>8089</port>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.8.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>aopalliance</groupId>
			<artifactId>aopalliance</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.10</version>
		</dependency>
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>4.3.8.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.3.8.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>4.3.8.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.6</version>
		</dependency>
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>3.2.5</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.2</version>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.3.8.RELEASE</version>
		</dependency>
	</dependencies>
</project>
#include <iostream> #include <fstream> #include <string> #include<time.h> using namespace std; void welcome(); //欢迎子函数 void choose(); //选择子函数 void banciluru(); //班次录入子函数 void liulanbancixinxi(); //浏览班次信息子函数 void shoupiao(); //售票子函数 void tuipiao(); //退票子函数 void quit(); //退出子函数 void chaxun(); //查询子函数 int loading(); //文件载入子函数 const int MAX=20; //使数组最大值可调 const int N=50; struct time //时间结构体,为了与系统时间做比较. { int hour; int minutes; }; struct ticket //车票结构体,包含车次,时间结构体,起点,终点,行车时间,额定载客量,已订票人数 { int Number; struct time Setout; char Qidian[MAX]; char Zhongdian[MAX]; float Lasttime; int Fixnumber; int Fixednumber; }car[N]; //主函数 int main() { welcome(); return 0; } //欢迎子函数 void welcome() { cout<<"________________________________________________________"<<endl; cout<<"| 欢 * 迎 * 使 * 用 * 火 * 车 * 票 * 管 * 理 * 系 * 统 |"<<endl; cout<<"| |"<<endl; cout<<"| 本管理系统有以下功能: |"<<endl; cout<<"| |"<<endl; cout<<"| 1 班次录入 |"<<endl; cout<<"| 2 浏览班次信息 |"<<endl; cout<<"| 3 查询火车信息 |"<<endl; cout<<"| 4 购买火车票 |"<<endl; cout<<"| 5 退订火车票 |"<<endl; cout<<"| 6 退出系统 |"<<endl; cout<<"|______________________________________________________|"<<endl; cout<<"请输入所要执行功能前的数字: "<<endl; choose(); } //选择子函数 void choose() { string i; cin>>i; if(i=="1") banciluru(); if(i=="2") liulanbancixinxi(); if(i=="3") chaxun(); if(i=="4") shoupiao(); if(i=="5") tuipiao(); if(i=="6") quit(); else { cout<<"输入有误!请在数字1-5之间重新您的输入选择!"<<endl; choose(); } } //班次录入子函数 void banciluru() { string t="1"; ofstream outfile; outfile.open("班次信息.txt",ios::app); for(int i=0;t=="1";i++) { cout<<"请输入需要添加的火车班次:"<<endl; cin>>car[i].Number; cout<<"请输入此班次发车时间(格式:先输入小时,回车,再输入分钟):"<<endl; cin>>car[i].Setout.hour; cin>>car[i].Setout.minutes; cout<<"请输入出发站:"<<endl; cin>>car[i].Qidian; cout<<"请输入终点站:"<<endl; cin>>car[i].Zhongdian; cout<<"请输入行车时间:"<<endl; cin>>car[i].Lasttime; cout<<"请输入额定载客量:"<<endl; cin>>car[i].Fixnumber; cout<<"请输入已订票人数:"<<endl; cin>>car[i].Fixednumber; outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl; cout<<"是否继续录入?(是请输1,否请输任意键返回主菜单)"<<endl; cin>>t; if(t!="1") { welcome(); } } outfile.close(); cout<<"输入回车键返回"<<endl; getchar(); getchar(); welcome(); } //浏览班次子函数 void liulanbancixinxi() { int c; c=loading(); cout<<"班次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载客量"<<" "<<"已订票人数"<<endl; for(int i=0;i<c;i++) { cout<<car[i].Number<<" "<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl; time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval); if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||(now->tm_hour>car[i].Setout.hour)) cout<<"此车已发出"<<endl; } cout<<"输入回车键返回"<<endl; getchar(); getchar(); welcome(); } //车次查询子函数 void Numbersearch(); void Finalsearch(); void chaxun() { string t; cout<<"1.按班次查询"<<endl; cout<<"2.按终点站查询"<<endl; cout<<"请输入您想选择的查询方法前的数字:"<<endl; cin>>t; if(t=="1") Numbersearch(); if(t=="2") Finalsearch(); if(t!="1"||t!="2") { cout<<"输入有误,请重新输入"<<endl; chaxun(); } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值