影院管理系统Cinema Management System

一、项目简介

为了加强影院放映及售票管理,降低运营成本,有序安排电影放映,通过影院管理系统的开发,将现有的人工管理排场及售票放映等模式改为系统自动化操作及售票模式,特开发此套系统 国内电影院的售票系统不完善,有很多问题存在,售票效率低下,管理混乱。现今社会是个讲究效率的社会,时间就是金钱。开发简单,便于操作的的软件不仅可以节省时间,还可以节省人力,物理,财力等。建立的影院售票系统,要把影院的售票管理、订票管理,财务管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。 通过本系统软件,能帮助售票人员利用计算机,快速方便地对影院售票情况,订票情况,等进行高效的管理。

二、关键技术 

  1. 开发环境:eclipse
  2. 数据库:Navicat Premium
  3. 框架:Spring  + Mybatis +SpringMVC 

三、具备功能

1.用户:可以查看个人信息和电影信息,可以购买电影票

     用户需输入密码和账号才可登录,登录成功后可选择“查看电影”和“查看个人信息”。

     查看电影:里面有影院相关的电影信息(电影名,放映时间,票价)

     查看个人信息:里面有用户的购买信息(用户名,购买的电影,座位号,放映时间)

     用户如没有账号,可以注册账号,注册页面有姓名,电话,密码

2.管理员:可以查看用户信息(可删除用户购票信息)和查看电影信息(可增加电影信息)

     管理员需输入账号和密码可登录,登录成功后可选择查看“顾客信息”和添加“电影信息”

     顾客信息:里面有顾客名及购买电影票信息,也可以删除顾客信息

     电影信息:管理员可以查看影院和电影信息也可增加电影信息

四、实现效果 

 五、数据库

 六、相关代码

 1.controller

package controller;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import entity.Movie;
import entity.Movies;
import entity.Ticket;
import entity.User;
import service.UserService;
@Controller
public class UserController {
	@Resource
	private UserService userService;
	/*用户登录*/
	
	@RequestMapping("/login1")
	public String login1(String usercode,String userpassword,Model model,HttpSession session){
		//通过账号和密码查询用户
		User user=userService.findUser(usercode, userpassword);
		if(user!=null){
			//将用户添加到Session
			session.setAttribute("USER_SESSION", user);
			//跳转页面
			return "user/get1";
		}
		
		return "user/login1";
	}
	@RequestMapping("/showMoviesList")
	public String showMoviesList(Model model)
	{
		System.out.println("Controller");
		//List<Goods> goodsList=goodsService.getGoodsListForMapper();
		List<Map<String,Object>> moviesList=userService.showMoviesList();
		model.addAttribute("moviesList", moviesList);
		System.out.println("moviesList="+moviesList);
		return "user/moviesList";
	}
	@RequestMapping("/getTicketList")
	public String getTicketList(Model model,HttpSession session)
	{
		System.out.println("Controller");
		User au=(User)session.getAttribute("USER_SESSION");
		//List<Goods> goodsList=goodsService.getGoodsListForMapper();
		List<Map<String,Object>> ticketList=userService.getTicketList(au.getUsercode());
		model.addAttribute("ticketList", ticketList);
		System.out.println("ticketList="+ticketList);
		
		return "user/ticketList";
	}
	
	//注册
	@RequestMapping("/registerUser")
	public String registerUser()
	{
		System.out.println("in register");
		return "user/registerUser";
	}
	@RequestMapping("/insertUser")
	public String registerUser(User user,Model model)
	{
		System.out.println("in registerUser");
		boolean result=userService.registerUser(user);
		System.out.println("resu="+result);
		if(result)
			return "user/login1";
		else
		{
			model.addAttribute("msg","用户名重复!");
			return "user/registerUser";
		}
	}
	//返回
		@RequestMapping("/getLogin1")
		public String getLogin1(Model model)
		{
			
			return "user/login1";
		}
		//更新
		@RequestMapping("/updateTicket")
		public String updateTicket(int id,Model model)
		{
			System.out.println("id="+id);
			model.addAttribute("id",id);
			return "user/updateTicket";
		}
		@RequestMapping("/saveTicket")
		public String saveTicket(Ticket ticket)
		{
			System.out.println("in saveTicket"+ticket.getId());
			userService.updateTicket(ticket);
			return "redirect:getTicketList";
		}
		//添加
		@RequestMapping("/addTicket")
		public String addTicket()
		{
			System.out.println("in addMovies");
			return "user/addTicket";
		}
		
		@RequestMapping("/insertTicket")
		public String insertTicket(Ticket ticket,Model model)
		{
			System.out.println("in insertTicket");
			boolean result=userService.addTicket(ticket);
			System.out.println("resu="+result);
			if(result)
				return "redirect:getTicketList";
			else
			{
				model.addAttribute("msg","电影名重复!");
				return "user/addTicket";
			}
		}
		//删除
		 @RequestMapping("/deleteTicket")
		    public String deleteTicket(Ticket ticket)
		    {
			 System.out.println("in deleteTicket"+ticket.getId());
				userService.deleteTicket(ticket);
				return "redirect:getTicketList";

		    }		
     //评论
		 @RequestMapping("/checkMovie")
	        public String checkMovie()//页面跳转
	        {
	          System.out.println("in checkMovie");
	          return "user/checkMovie";
	        }
		
		
}

2.service

package service;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import dao.MovieMapper;
import dao.TicketMapper;
import dao.UserDao;
import entity.Movie;
import entity.Movies;
import entity.Ticket;
import entity.User;
@Service
public class UserService {
	@Resource
	private UserDao userDao;
	public User findUser(String usercode,String userpassword){
		User user=this.userDao.findUser(usercode, userpassword);
		return user;
	}
	@Resource
	private TicketMapper ticketMapper;
	public List<Map<String,Object>> showMoviesList()
	{
		List moviesList=ticketMapper.showMoviesList();
		return moviesList;

	}
	public List<Map<String,Object>> getTicketList(String usercode)
	{
		List ticketList=ticketMapper.getTicketList(usercode);
		return ticketList;

	}
	
	//注册
	public boolean registerUser(User user) {
		User aUser=ticketMapper.getUserByUsername(user.getUsername());
		if(aUser==null)
		{	
			int i=ticketMapper.registerUser(user);
			if(i==1)
				return true;
			else
				return false;
		}else
		{
			return false;
		}
		
	}
	//更新
		public void updateTicket(Ticket ticket) {
			int rs=ticketMapper.updateTicket(ticket);
			System.out.println("rs="+rs);
		}
		 //添加
	  	public boolean addTicket(Ticket ticket) {
	  		Ticket aTicket=ticketMapper.getTicketByName(ticket.getName());
	  		if(aTicket==null)
	  		{	
	  			int i=ticketMapper.addTicket(ticket);
	  			if(i==1)
	  				return true;
	  			else
	  				return false;
	  		}else
	  		{
	  			return false;
	  		}
	  		
	  	}
	  //删除
		 
	      public void deleteTicket(Ticket ticket) {
	    	  int rr=ticketMapper.deleteTicket(ticket);
	  		System.out.println("rr="+rr);
		    }
  	}
  	
	
	
	

3.Dao

package dao;

import org.apache.ibatis.annotations.Param;

import entity.User;

public interface UserDao {
/*通过账号和密码查询用户*/
	public User findUser(@Param("usercode") String usercode,
			@Param("userpassword") String userpassword);
	
	 

	
}

4.Interceptor

package interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import entity.Customer;
import entity.User;

public class UserInterceptor implements HandlerInterceptor{
	@Override
	public boolean preHandle(HttpServletRequest request, 
		HttpServletResponse response, Object handler) throws Exception {
	    // 获取请求的URL  
        String url = request.getRequestURI();  
        // URL:除了login.jsp是可以公开访问的,其它的URL都进行拦截控制  
        if(url.indexOf("/login1")>=0||url.indexOf("/login2")>=0){  
            return true;  
        }  
        // 获取Session  
        HttpSession session = request.getSession();  
        User user = (User) session.getAttribute("USER_SESSION");
        Customer customer=(Customer) session.getAttribute("CUSTOMER_SESSION");
        // 判断Session中是否有用户数据,如果有,则返回true,继续向下执行
        if(user != null||customer !=null){
            return true;  
        }
         // 不符合条件的给出提示信息,并转发到登录页面
         request.setAttribute("msg", "您还没有登录,请先登录!");
         request.getRequestDispatcher("/WEB-INF/views/user/login1.jsp")
                                                .forward(request, response);
		return false;
	}
	
	@Override
	public void postHandle(HttpServletRequest request, 
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		System.out.println("postHandle");
	}
	@Override
	public void afterCompletion(HttpServletRequest request, 
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		System.out.println("afterHandle");
	}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style>
       
         body{
            
            background: #FAEBD7;
            text-align: center;
        }
        table{
            
            display: flex;
            justify-content: center;
            text-align: center;
        }
        
    </style>
<script type="text/javascript">
	function register()
	{
		window.location.href="registerUser";
	}
</script>
</head>
<body>
    用户登录
 ${msg}
   <form action="login1" method="post">
		<table>
		
			<tr>
				<td>用户名</td>
				<td><input name="usercode" type="text" ></td>
			</tr>
			<tr>
				<td>密码</td>
				<td><input name="userpassword" type="text" ></td>
			</tr>
			
		</table>
		<input type="submit" value="登录" >
		<tr>
			<td><input type="button" value="注册 " onclick="register()"></td>
		</tr>
	</form>

</body>
</html>

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
影院售票管理系统ER图是用于描述影院售票管理系统中各个实体及其之间关系的图表。下面是一个简单的影院售票管理系统ER图的介绍: - 实体: 1. 影院Cinema):表示一个影院,包含属性如影院编号、影院名称、地址等。 2. 影厅(Hall):表示一个影厅,包含属性如影厅编号、座位数等。 3. 电影(Movie):表示一部电影,包含属性如电影编号、电影名称、导演、主演等。 4. 放映计划(Showtime):表示一场电影的放映计划,包含属性如计划编号、放映时间、票价等。 5. 用户(User):表示一个用户,包含属性如用户编号、用户名、密码等。 6. 订单(Order):表示一个订单,包含属性如订单编号、购票数量、总金额等。 - 关系: 1. 影院与影厅之间存在一对多关系,一个影院可以有多个影厅,一个影厅只属于一个影院。 2. 影院与电影之间存在多对多关系,一个影院可以放映多部电影,一部电影可以在多个影院放映。 3. 影厅与放映计划之间存在一对多关系,一个影厅可以有多个放映计划,一个放映计划只属于一个影厅。 4. 放映计划与电影之间存在多对一关系,一个放映计划对应一部电影,一部电影可以有多个放映计划。 5. 用户与订单之间存在一对多关系,一个用户可以有多个订单,一个订单只属于一个用户。 6. 订单与放映计划之间存在多对一关系,一个订单对应一个放映计划,一个放映计划可以有多个订单。 以上是一个简单的影院售票管理系统ER图的介绍。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值