java+jsp+mysql电影订票管理系统,特别适合做期末作业和毕业设计

1.1需求分析

       随着Internet的迅猛发展,当今社会已进入网络时代,计算机网络已经成为社会和经济发展的强大动力。与此同时,国内娱乐行业特别是电影行业也发展迅猛,电影票房屡创新高,为了能使大众更为便捷的购买到电影票,使影迷购票能够有更多可选择的方式,网上购票方式营运而生,一个完善的电影院网上售票系统已经成为各个电影院的心的追求目标。随着电影在众人的娱乐生活中占据越来越重要的地位,传统手动售票方式繁琐。统计账户的时候一张一张的记录进入到账户簿里面,容易出现错误,所以研究一个电影院售票系统已经非常重要了。设计电影售票院系统,能方便的订票、退票、查询财务售票状况,极大的提高了工作效率。同时用户可以根据其提供的信息及时了解售票的情况,及时买票。

本网站的设计与开发后的主要是对影视公司宣传影片,方便客户购买影票,更好的做好电影票的管理,以及资源的共享,便捷客户的需求,节省客户的时间让客户得到优厚服务。本系统可以很好的帮助影院提高工作效率,进一步提高工作效益和影院现代化水平具有很高的开发价值和使用价值。

这里不方便上传源码,需要源码联系我的扣 扣:2551449109,代码有数据库sql文件和javaweb源码。可以在tomcat7 tomcat8 tomcat9  运行,jdk环境没有要求,任意一个版本都可以。开发工具可以使用eclipse,IntelliJ IDEA ,MyEclipse 都可以。

1.2数据流图

电影购票系统数据流程图;

 

电影购票系统数据流程图

电影信息表

字段名

类型

宽度

电影编号(mid)[主键]

int

11

电影名称(price)

varchar

50

上映时间(starttime)

varchar

50

图片(image)

varchar

50

演员 明星(star)

varchar

200

票价(price)

int

11

票数(num)

int

11

电影简介(jianjie)

text

1000

是否可购买(status)

varchar

255

创建时间(createTime)

timestamp

0

 

用户表

字段名

类型

宽度

用户编号(id)[主键]

int

11

用户名(usersname)

varchar

50

登录密码(password)

varchar

50

真实姓名(realname)

varchar

50

电话(phone)

varchar

50

邮箱(email)

varchar

50

管理员或者客户(status)

varchar

50

注册时间(regTime)

timestamp

0

 

电影信息表

字段名

类型

宽度

购票编号(bid)[主键]

int

11

用户表主键(uid)[外键]

int

11

电影表主键(mid)[外键]

int

11

购买张数(buynum)

int

11

消费金额(buymoney)

int

11

电影票状态(buystatus)

varchar

50

购买时间(buyTime)

timestamp

0

 

2系统设计

2.1 系统模块设计

本系统的设计的最大的特色是采用了分层的设计思想,系统界面采用Web页面作为表现层和数据粘合层,为了进行一些常用的逻辑处理的需要还创建了业务逻辑层,为了为逻辑处理提供数据有创建了数据层,同时为了数据访问创建了数据模型层。在本节中示例的功能代码,都比较短并且不具体,那是因为很多功能都封装的功能类库里了,这里说明一下。具体请看系统源代码。各个功能层关系如下图:

网上订票数据流程图第二层如图所示:

 

2.2 数据库设计

       此处介绍数据库设计,包括ER图和表结构

数据库结构

 

电影信息表ER图

 

用户表ER图

 

 

购票表ER图

 

 3系统实现

2.1 电影添加模块功能实现

电影管理包括电影信息的添加操作,添加电影信息包括电影名称,电影图片,电影明星(演员),上映时间,票数,和价格还有电影内容简介等等。

实现效果图:

 

实现主要逻辑代码:

if (request.getParameter("type").equals("add")) {

            if (session.getAttribute("username") == null) { //用户没有登录

                ow.write("<script language=javascript>alert('你尚未登录,请登录!');window.location='login.jsp';</script>");

                ow.flush();

                ow.close();

                return;

            } else {

                String moviename = request.getParameter("moviename");

                String image = request.getParameter("image");

                String star = request.getParameter("star");

                String starttime = request.getParameter("starttime");

                String num = request.getParameter("num");

                String price = request.getParameter("price");

                String jianjie = request.getParameter("jianjie");

                movie.setImage(image);

                movie.setJianjie(jianjie);

                movie.setPrice(Integer.parseInt(price));

                movie.setNum(Integer.parseInt(num));

                movie.setJianjie(jianjie);

                movie.setStarttime(starttime);

                movie.setMoviename(moviename);

                movie.setStar(star);

                movie.setStatus("可购买");

                try {

                    movieDao.add(movie);

                    ow.write("<script language=javascript>alert('添加电影成功!');window.location='index.jsp';</script>");

                    ow.flush();

                    ow.close();

                } catch (Exception ex) {

                    ow.write("操作失败:" + ex.getMessage());

                    System.out.println("数据库连接失败:" + ex.getMessage());

                    ow.write("<script language=javascript>alert('添加电影失败!请重试');history.go(-1);</script>");

                    ow.flush();

                    ow.close();

                }

            }

        }

2.2 电影信息显示模块

电影显示分为两个地方,用户查看和后台管理员管理。普通用户可以浏览电影信息,方便购票时选择。后台可以对所有电影信息进行管理,删除不要的电影信息。

用户电影信息显示页面实现效果图:

 

实现主要逻辑代码:

  <div style="width: 450px; float: left; font-size: 20px; text-align: left;">

 <div>

<p>电影名称:《<%=moviename%>》 

<a href="goupiao.jsp?mid=<%=mid%>&price=<%=price%>">我要定票</a>

<a href="yuding.jsp?mid=<%=mid%>&price=<%=price%>">我要预定</a>

 </p>

<p>上映时间:<%=starttime%></p>

<p>票价¥:<%=price%></p>

<p>出售总票数:<%=num%></p>

  <p>电影简介:<%=jianjie%></p>

</div>

</div>

管理员管理电影信息实现效果图:

 

2.3 电影信息编辑模块

电影编辑,可以修改电影名称,电影图片,电影演员,上映时间,修改票数还有价格,修改电影简介。

实现效果图:

主要逻辑代码:

<form action="MovieServlet?type=update&amp;mid=&lt;%=mid%&gt;" method="post">

   <table border="2" width="600" style="margin: 10px auto;">

    <tbody>

     <tr>

      <td colspan="2">编辑电影</td>

     </tr>

     <tr>

      <td style="width: 200px;">电影名称:</td>

      <td><input type="text" name="moviename" class="input" value="&lt;%=moviename%&gt;" /></td>

     </tr>

     <tr>

      <td>电影图片:</td>

      <td><input type="text" name="image" class="input" value="&lt;%=image%&gt;" /></td>

     </tr>

     <tr>

      <td>演员、明星:</td>

      <td><input type="text" name="star" class="input" value="&lt;%=star%&gt;" /></td>

     </tr>

     <tr>

      <td>上映时间:</td>

      <td><input type="text" name="starttime" class="input" value="&lt;%=starttime%&gt;" /></td>

     </tr>

     <tr>

      <td>票数:</td>

      <td><input type="text" name="num" class="input" value="&lt;%=num%&gt;" /></td>

     </tr>

     <tr>

      <td>价格:</td>

      <td><input type="text" name="price" class="input" value="&lt;%=price%&gt;" /></td>

     </tr>

     <tr>

      <td>内容简介:</td>

      <td><textarea name="jianjie" cols="30" rows="6" class="input"> value=&quot;&lt;%=jianjie%&gt;&quot;</textarea></td>

     </tr>

     <tr>

      <td colspan="2"> <input type="submit" class="btn" value="添加" /> <input type="reset" class="btn" value="重置" /> </td>

     </tr>

    </tbody>

   </table>

  </form>

3 电影信息删除模块

可以从这里删除不必要的电影信息。

主要逻辑代码:

else if (request.getParameter("type").equals("delete")) {

            String mid = request.getParameter("mid");

            try {

                movieDao.delete(Integer.parseInt(mid));

                ow.write("<script language=javascript>alert('删除电影成功!');window.location='index.jsp';</script>");

                ow.flush();

                ow.close();

            } catch (Exception ex) {

                ow.write("操作失败:" + ex.getMessage());

                System.out.println("数据库连接失败:" + ex.getMessage());

                ow.write("<script language=javascript>alert('删除电影失败!请重试');history.go(-1);</script>");

                ow.flush();

                ow.close();

            }

2.4 购票模块功能实现

用户可以预定电影票或者在线订购电影票,预定后或者购买后可以取消。被预定的门票存储数据库的状态是预定成功,被购买的电影票信息的状态是购买成功。在被预定或者被购买的同时,电影票的数量也会减少。同时用户的剩余金额也会随购票数量*单价减少。

购票模块流程图

 

预定或者购票信息查询:

 

2.3 用户登录模块功能实现

普通用户和管理员同时在一个地方登录,登录时候根据用户名的状态判断是否是管理员。

实现效果图:

2.3 用户注册模块功能实现

用户注册需要填写用户名,登录密码,真实姓名,电话和邮箱,注册后用户的等级是客户,不是管理员,不可以对电影信息等进行编辑。

实现效果图:

4系统评价(或 总结)

这个影院售票管理系统成功地实现了管理、售票和统计等功能,对影院的各项活动统筹管理,大大提高了管理者的效率,同样也减少了工作人员的工作量。系统的最大的特点是操作简单,部署方便,并且较好的防止错误操作发生,尽可能多的给用户提示信息。这样面对非计算机专业的教材科管理人员能很快上手,极大的提高教材科工作的效率和服务的质量。

虽然存在着以上优点,但本系统也存在设计上的不足。因为初次设计此类的系统,在初期阶段需求分析和考虑数据库设计的时候都做的不全面,以至不能很好的保证数据的完整性。另外,对教材科工作的了解不够深入,会有些功能和操作方式还没有考虑到。再者,由于实际考察商店的流程有限,以至于没有对整个流程做一个很好的规划,甚至造成了一些业务流程或是数据流程的疏漏。

通过本次课程设计,我更加深刻地了解了关于信息系统分析与设计的内容,使我有了更进一步的认识,相信自己以后在做开发系统工作的时候会有很大的优势。对于我们初做系统分析的人员来说,结果也许不是最重要的,重要的是享受其过程,并在过程中发现自己的错误与不足,总结经验。

众人拾柴火焰高,通过本次课程设计我真正地体会到了团结的力量。单单靠自己一个人是做不到一件完美的事儿的,只有互相合作,齐心协力,才能创造出奇迹。虽然结果不近乎完美,但是我们也付出了很大努力。感谢老师这几天的辛勤陪伴与谆谆教诲,这次课程设计,我们不仅仅学习的是知识,更是生存的本领以及昂扬的斗志,相信会为以后的发展创造更美好的财富!

 

5 附录

数据库连接工具类:

package util;

import java.sql.Connection;

import java.sql.DriverManager;

public class Conn {

    public Connection getConnection() {

        Connection con = null;

        try {

            String DBDRIVER = "com.mysql.jdbc.Driver";    //加载数据库驱动

            String DBURL = "jdbc:mysql://localhost:3306/db_movie?useUnicode=true&characterEncoding=gb2312";   //加载数据库URL

            String DBUSER = "root";       //登录用户名

            String DBPASSWORD = "root"; //登录密码

            Class.forName(DBDRIVER);

            con = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return con;

    }

}

 

 

 

需要源码或者相互交流需要帮助的加我扣扣 2551449109

可以远程教你运行程序和答疑解惑

猜你喜欢

转载自blog.csdn.net/laonayonghaifeisi/article/details/90450400