景点门票销售管理系统.docx

上传人:牧羊曲112 文档编号:5332919 上传时间:2023-06-27 格式:DOCX 页数:24 大小:231.10KB
返回 下载 相关 举报
景点门票销售管理系统.docx_第1页
第1页 / 共24页
景点门票销售管理系统.docx_第2页
第2页 / 共24页
景点门票销售管理系统.docx_第3页
第3页 / 共24页
景点门票销售管理系统.docx_第4页
第4页 / 共24页
景点门票销售管理系统.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《景点门票销售管理系统.docx》由会员分享,可在线阅读,更多相关《景点门票销售管理系统.docx(24页珍藏版)》请在三一办公上搜索。

1、%m女史季科轻土章#祯专税XfAN university of architecture and technology huaqing college软件开发实验课程设计题 目:景点门票销售管理系统院(系):机械电子工程系专业班级:计算机1101姓 名:李永康学 号:2指导教师: 马睿2014年7月7日的我丈筑稀核大修华倩修船课程设计(论文)任务书专业班级:学生姓名:指导教师(签名):一、课程设计(论文)题目景点门票销售管理系统二、本次课程设计(论文)应达到的目的通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相 关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综 合

2、开发能力和创新意识、创新能力。赢盘曲寥莅新商竦 羸赢遍T1S呆参数、设计要求等)系统功能基本要求:1. 票价管理(分老年、小孩、成人、团体、节假日等);2. 营业员人员管理;3. 门票查询;4. 售票及退票管理;5. 统计门票销售情况(按时间段统计、按营业员统计及按门票类别统计等);Ii i.数据库:原理编程与性能(影印版)(第2版),高等教育出版社,j Parick ONeil, Elizabeth ONeil编著,2005.7;Ii 2.数据库系统概论(第4版),高等教育出版社,王珊,萨师帽编著,:2006. 05; I五、审核批准意见教研室主任(签字)设计总说明随着科技的不断发展,景点门

3、票销售管理信息己经摒弃了以往的手工文件管 理阶段,进化成为了高科技、高效率的数据库应用程序来进行管理。使用学生信 息管理系统可以更高效、准确地进行学生选课、查询、记录和添加等各种操作, 大大减少信息管理人员的负担。关键字:查询、添加、删除、修改1. 问题描述41.1开发背景41.2开发目的41.3开发运行环境41 4系统功能42. 需求分析42. 1可行性分析42. 2系统要求52. 3功能需求52 4系统管理53. 概要设计63. 1系统类的设计63. 2系统包含的类64. 详细设计74. 1系统包含的函数74. 2数据库的连接85. 程序运行结果96. 感想与心得体会147. 参考文献14

4、8. 源代码151 .问题描述1.1开发背景随着我国市场经济的快速发展,景点门票销售管理系统在日常管理中发挥着 越来越重要的作用。景点门票销售管理系统可以进行景点门票的管理,方便处理营业员、门票、销 售相关信息。此外Internet的迅速发展普及,使Internet成为Inter技术在景点门票销 售管理系统中的应用和延伸形成了集计算机,计算机网络,数据库,分布式计算 等于一体的信息技术综合体,使信息交流变得快捷、准确,为建立现代旅游管理 系统提供了充足的条件。1.2开发目的传统的员工信息管理不仅复杂,而且牵涉了很多劳动力,对管理业造成了诸 多不便,而选用景点门票销售管理系统,管理人员可以不受地

5、点和时间限制对门 票销售进行查询,方便管理员的管理和控制,提高工作效率。1. 3开发运行环境系统环境:windows 7 32位数据库环境:Microsoft access软件环境:MyEclipselO. 0, PowerDesignerlo. 1, Java1. 4系统功能(1) 查询功能(2) 添加,修改,删除功能2. 需求分析2.1可行性分析本系统主要采用Java和Microsoft access来开发,而当前的Java的Microsoft access应用技术己经比较成熟,和其他应用开发语言比起来有很大的优势,所以 利用这些技术是完全可以完成这些功能的。景点门票销售管理系统的工作主要

6、是 在景点管理者和景点之间架起一座桥梁,能相互沟通信息和处理信息。这一特点 非常适合计算机特点,发挥计算机的信息传输速度快、准确度高的优势。计算机 硬件和软件技术的飞速发展,为系统的建议提供了技术条件。本系统的开发是考虑管理者易于管理,提高工作效率,界面友好,操作简单 方便,能完全满足用户的使用要求。2.2系统要求 实现票价管理(应分老年、小孩、成人、团体等);实现营业员管理; 实现门票销售、退票管理;创建存储过程统计指定日期的门票销售情况;创建存储过程统计指定月份的门票销售情况;创建存储过程统计指定日期各种价格的门票销售情况;创建存储过程统计指定营业员指定日期的收费情况;创建表间关系。2.

7、3功能需求满足管理员对营业员信息的基本信息的添加修改和删除操作。系统包括三张表, 分别是营业员表、销售表、门票表。用户界面主要包含18个类,其中包括主界面,营业员添加界面,营业员修改和删 除界面,销售界面,销售修改和删除界面,门票界面,门票修改和删除界面,方 便管理者对门票信息、销售信息和门票信息的添加修改和删除操作,节省管理者 的时间,提高效率。2. 4系统管理3. 概要设计3.1系统类的设计本系统采用MyeclipselO. 0开发,使用的编程语言是Java,数据库使用的是 Microsoft access,整个系统共有4个包,分别是dao包,model包,util包,view 包。每个包

8、有着不同的作用,其中model包中主要是对应数据库中的表,每个类 中的定义的变量在数据库中的表中都有对应的属性,并且每个类都有各自的构造 函数以及相应变量的get和set方法,便于设置和获取数据。da。包中的类主要完 成model中类的操作包括对数据库中表的操作。util包中是连接数据库的类,完 成数据库和程序之间的连接。view包中主要是一些界面包括登录界面,主界面, 添加数据界面,查询,修改,删除数据界面。3.2系统包含的类系统类的详细设计系统共有18个类,其中view包中含有8个类,分别是Log inFrame, java登陆界面,包含登录验证:MainFrame. java主界面,有一

9、个菜 单栏可以对相关操作进行检查以及退出系统;MenpiaoAddlnteralFrame. java门票信息添加界面,对门票信息进行添加;MenpiaoManagelnteralFrame. java门票信息管理界面,对门票的信息进行查询, 修改和删除操作;XiaoshouAddlnteralFrame. java销售信息添加界面,对销售信 息进行添加;XiaoshouManagelnteralFrame. java销售信息管理界面,对销售的 信息进行查询,修改和删除操作;YingyeyuanAddlnteralFrame. java营业员信息 添加界面,对营业员信息进行添加;Yingyey

10、uanManagelnteralFrame. java营业 员信息管理界面,对营业员信息进行查询,修改和删除操作;model包中含有4个类,分别是Menpiao. java门票信息类,定义了门票的基本 信息;User, java管理者登录类,定义了管理者登录时的验证;Xiaoshou. java 销售信息类,定义了销售的属性,Yingyeyuan. java营业员信息类,定义了营业 员的基本信息;这些类都有相应的构造函数,方便创建实例。util包中含有2个类,分别是Database, java连接数据库的类和 StringUtil. java对字符串判读是否为空的类。其中dao包中含有4个类,

11、分别是MenpiaoDao. java门票信息操作类, UserDao. java管理员操作类,XiaoshouDao. java销售信息操作类, Yingyeyuan. java营业员信息操作类,各个类都与数据库相连,通过使用SQL语 句,完成了对员工基本信息的查询,添加,修改和删除操作。4. 详细设计4.1系统包含的函数Public Menpiao( (String id, String didian, String jiage. String leixing? String fenlei) ) ; /门票定义函数 public Xiaoshou (String id, String di

12、dian, String fenlei, Stringleixing, String jiage, String riqi) ): /销售定义函数 public Yingyeyuan( (String id. String name, String sex.String age. String didian): /营业员定义函数public int MenpiaoAdd(Connection conn, Menpiao menpiao) throws Exception。/门票添加函数,对编号,地点,价格,分类,类型进 行添加public ResultSet MenpiaoList(Conne

13、ction conn, Menpiao menpiao) throws Exception)门票查询函数,通过编号来查询门票中存储 的数据public int MenpiaoDelete(Connection conn , String id) throwsException。门票删除函数,通过对删除编号里面的那一行数据public int MenpiaoModify(Connection conn, Menpiao menpiao) throws Exception。门票修改函数,除主键编号,可以对地点,价格,分 类,类型进行修改public Connection getCon(); 获得数

14、据库连接的函数public void closeCon(Connection conn) ; /关闭数据库连接的函数public class StringUtil ( public static boolean isEmpty(String str) if equals (str) | | str = null) (return true; else (return false; 判断字符串是否为空的函数public static boolean isNotEmpty(String str) (if (!. equals (str) & str != null) (return true; e

15、lse (return false:)/ 判 断字符串是否不为空的函数private void jb_resetActionPerformed(java. awt. event. ActionEvent evt); 清空函数4. 2数据库的连接数据库使用的是Microsoft access,通过JDBC与作为桥接器,实现数据库与java 程序连接,需要使用3个连接数据库的包,才能加载数据库的驱动到程序中。连 接数据库的代码:package com.util;miport j a va. sql. C oimection;unport j ava .sql. DnveiManager;publi

16、c class Database (private Stung url = j dbc:odbc:jingdian;DBQ=F:li.mdbM;/相连数据库的端 口,以及要连接的数据库的名称private Stung useiName = 相连数据库的用户名private Stung password = *;/相连数据库的密码private Stung driver = sun.jdbc.odbc.JdbcOdbcDiivein;连接数据库的驱动public Connection getConQ tluows Exception (/获取数据库连接的函数Class.forNanie(driv

17、er);/ 加载驱动Connection coim = DiiverManagei;getCoimection(uil, useiName, password);/建立到给定数据库URL的连接。letum conn;public void closeCon(Coimecnon coim) tluows Exception (if (conn != null) (conn.close();关闭数据库的连接public static void main(Strmg aigs) (Database database = new Database();trydatabase.getConQ;Syste

18、m.out.printing连接成功! ”); catch (Exception e) (/ TODO: handle exceptione .pimtStackTiaceO;5程序运行结果(1)初始界面图5.1景点门票销侈管理系统主界面(2)营业员管理图5.1营业员添加编号:姓名二性别:。女地点,查向偏号姓名性别年龄地点2杨蒙男22迪拜3陈凡21鄂尔多斯9何金哲28西安4朱彼女235刘雯瑜女21延安6高丹女23临潼B营业员维护W魏密您纂表单操作编号:I姓荐I住别,男。女 地点:I年龄:I修改删除图5.2营业员的维护门票管理图5-3门票添加图54门票维护(4)售票管理图5-5销售添加图5-6销

19、售维护6、感想与心得体会作为大三的最后一门课程设计,数据库课程设计作业的完成,我大学前三年 年的学习生活也将告一段落。我所做的景点门票销售管理系统,用的是 access+javao整个程序,是完完全全、一点一点自己编写出来的。很不容易,但 是也很有成就感。刚开始的入手很难,因为之前很长时间没有使用关于java的 程序,也不知道该怎样在java里把access连进去。后来,连上了数据库,开始 在access里建表,这三张表,可谓是千锤百炼了,删了建、建了删,每一次新建, 都是一次改进,都代表我对自己的系统有了更进一步的了解。建立表之后是在表 中插入一些数据,就是所谓的数据库了。当所有的表和表中的

20、数据都没有问题了, 就开始着手在java里,将我的系统以图形的界面显示出来了。从添加窗体开始, 然后是Datagndview、labek textbox等等,规划出一个大体的模型。然后是添加 botton,其实每一个form里的botton无非就是这样儿个功能:插入、删除、查找、 修改、退出。不过form之间有些许差别罢了。但是,就是这样的三个form我改 了一天的时间,最后才知道,错误点在于第一个form的主码只有一个,而后两 个的form都不是单个的主码,所有在更新、插入、删除的时候语句是不完全一 样的。之后是存储过程的创建,在access里实现了。然后在java里,要能成功 调用你创建的

21、存储。完成这个课程设计的过程虽然很不容易,但是却让人受益匪浅。让我学会了 如何从零开始完成一个自己之前没接触过的语言、让我知道了调试程序的重要 性、让我享受了和同学一起研充、最后获取成功的满足。最后,感谢老师在这学期理论上的讲授,让我对数据库课程设计有了良好的 理论基础支持!7、参考文献1. 数据库:原理编程与性能(影印版)(第2版),高等教育出版社,Parick ONeil, Elizabeth ONeil编著,2005. 7;2. 数据库系统概论(第4版),高等教育出版社,王珊,萨师埴编著,2006. 05;8、源代码以营业员管理模块为例,部分源代码如下:1. YingyeyuanDao.

22、 java package com. dao;import java.sql.*;importcom. mode I. Yingyeyuan; importcom. util. Str ingllt i I ;pub IicclassYingyeyuanDao (/营业员 操作类添加pub Iicinty i ngyeyuanAdd (Connect io n conn, Yingyeyuan yingyeyuan) throws Except i on /营业员添加 函数Str ing sqI = MINSERT INTO Yingyeyuan values(?, ?,?,?, ?);Pre

23、paredStatement pstm=conn. prepareStatement (s ql);pstm. setStr ing(1, yingyeyuan. get I d ();pstm. setStr ing(2, y ingyeyuan. getname ();pstm. setStr ing(3, y ingyeyuan. getSex ();pstm. setStr i ng (4, y i ngyeyuan. getage ();pstm. setStr ing(5, y i ngyeyuan. getd idianO).return pstm. executellpdate

24、 ();)/查询pub IicstaticResultSetyingyeyuanLi st (Connection conn, Yingyeyuan yingyeyuan) throv/s Exception /营业员查询 函数Str ingBuffer sb =newStringBuffer (SELECT * FROM Yingyeyuan”); if(Str ingUt iI. i sNotEmpty ( yingyeyuan. get I d () sb. append ( and 编号 like+yingyeyuan. get I d ()+W);1PreparedStatement

25、 pstm=conn. prepareStatement (s b. toStr ing(). rep I ace (Ma nd, where):return pstm. executeQuery ();删除pub Iicinty i ngyeyuanDeIete (Connec tion conn. String id)throws Exception /营业PreparedStatementprivate String sex;员删除函数pstm=private String age;conn.prepareStatement(sprivate String didian;Str ing

26、sql =ql);public Yingyeyuan() (DELETE FROM Yingyeyuansuper();WHERE 编号*;pstm. setStr ing(1,y ingyeyuan. getname ();publicPreparedStatementYingyeyuan(String id.pstm=pstm. setStr ing(2,String name? Stringconn. prepareStatement (sy ingyeyuan. getSex ();sex.ql);String age.pstm. setStr ing(3,String didian)

27、 营业pstm. setStr ing(1,yingyeyuan. getage();员定义函数id);super();returnpstm. setStr i ng (4,this.id = id;pstm. executeUpdate ();yingyeyuan. getdidianO)this.name = name;1. 1this.sex = sex;修改this.age = age;publicintpstm. setStr ing(5,this.didian = didian;y i ngyeyuanMod i fy (Connecyingyeyuan. get 1 d ();t

28、 ion conn, Yingyeyuanreturnpublicyingyeyuan)throwspstm. executeUpdate ();Yingyeyuan(StringExcept ion /营业员修改)bookName, String函数author String sex) (2、Yingyeyuan. javasuper();Str ing sql =package com.model;this.name = bookName;nUPDATE Yingyeyuan SETpublicclass Yingyeyuanthis.sex = sex;姓名=?,性别二?,年龄二?,地/

29、营业员定义类public String getld() (点二? WHERE编号*;private String id;returnid; private String name;publicvoidsetId(String id) this.id = id;public String getname() returnname; publicvoidsetBookName(String bookName) (this.name = bookName; public String getSex() returnsex; publicvoidsetSex(String sex) ( this.se

30、x = sex; public String getage() returnage; publicvoidsetage(String age) ( this.age = age; public String getdidian() ( returndidian; publicvoid setdidian(String didian) (this.didian = didian; )3、 Database.java package com. util; importjava. sql. Connection; importjava. sql. DriverManager;public class

31、 Database数据库连接类private String url = jdbc:odbc:jingdian:DBQ 二 F:Ui.mdb;private String userName =;privateStringpqssword = ;privateStringdriver=sun jdbc. odbc. JdbcOdbc Driver7;/*获取数据库连接*/publie Connection getConOthrowsException /获得数据库 连接的函数Class. forName(drive r);Connection connDriverManager. getConne

32、c tion(url, userName, pqssword);return conn;publicvoidcloseCon(Connection conn) throws Exception 关闭 数据库连接的函数if (conn != null) conn, close 0 ;public static void main(String args) Databasedatabase = newDatabase 0;try database. getConO ;System, out. printlnC 连接成功!);catch(Exception e) / TODO: handle exc

33、eptione.printStackTrace 04、 StringUtil.java package com.util;publicclass StringUtil /判断字符串是否为空的 函数publicstaticboolean isEmpty(String str) ( if (,H .equals(str) | | str = null) ( returntrue;) else ( returnfalse; publicstaticboolean isNotEmpty(String str) 判断字符串是否不为空 的函数if (!.equals(str) & str != null)

34、 ( returntrue;) else ( returnfalse; 5、YingyeyuanAddlnt eralFra me.formprivatevoiddidianActi onPerformed(j ava . awt . event.ActionEvent evt) / TODO add your handling code here:)privatevoidjButton2Ac tionPerformed(java.aw t event.ActionEvent evt) this.resetValues();)privatevoidj ButtonlAc tionPerform

35、ed(j ava. aw t event.ActionEvent evt) String id = thisidText.getText()Jif(StringUtil.isEmpty(i d) DOptionPane.shoil essageDia Log (null 编 号名称不能为空”); return;)String name = this.nameText.getText 0;if(StringUtil.isEmpty(i d) OOptionPane.showM essageDiaLog(null,姓 名名称不能为空”); return;String sex =if(this.jr

36、b_male.isSele cted() sex = “男“;) elseif(this.jrb_female.isSe lected() (sex = “女“;String age = thisageText.getText( );if(StringUtil.isEmpty(n ame) (JOptionPane. shoh/M essageDia Log (null,年 龄不能为空”); return;String didian = this.didianText.getTe xt();if(StringUtil.isEmpty(a ge) JOptionPane. shoiM essag

37、eDia Log (null 地 点不能为空”); return;Yingyeyuan yingyeyuan = new Yingyeyuan(id, name, sex age didian);Connection conn = null;try conn = database.getCon();int addNum = yingyeyuanDao yingyey uanAdd(connyingyeyuan);if (addNum = 1) (JOptionPane. shoiM essageDia Log (null ”营 业员添加成功!”); this.resetValues(); el

38、se (JOptionPane. shoiM essageDia Log (null ”营 业员添加失败!”);) catch(Exception e) (/ TODO Auto-generated catch blocke printStackTrace 0;JOptionPane. shoiM essageDia Log (null ”营 业员添加失败!”); finally try database closeCon(con n);) catch(Exception e) (/ TODO Auto-generated catch blocke.printStackTrace 0;)pri

39、vatevoidresetValues() (this.idText.setText( “);thisnameText.setText(”);thisjrb_male.setSele cted(true);this.ageText.setText(6、YingyeyuanManagelnter alFrame.formprivatevoidjb_modifyActionPerfor med(java.awt.event.Ac tionEvent evt) (String id =thisidText.getText()(Stringlltil. isEmpty(i d) JOptionPane

40、.showM essageDiaLog(null, ”请 选择要修改的记录! ”); return;String name = this nameText.getText 0;if(Stringlltil. isE/npty(n ame) (JOptionPane.showM essageDiaLog(null,营 业员姓名不能为空“); return;String sex =jif(this.jrb_male.isSele cted() sex = ”男“; ) elseif(this.jrb_female.isSe lected() (sex = ”女“;)String age = thi

41、sageText.getText( );if(StringUtil.isEmpty(a ge) DOptionPane. shoM essageDia Log (null ”营 业员年龄不能为空“); return;)String didian = thisdidianText.getTe Xt();if(StringUtil.isEmpty(d idian) (DOptionPane.shoil essageDia Log (null, ”地 点不能为空“); return;)Yingyeyuan yingyeyuan = new Yingyeyuan(id name, sex age, d

42、idian);Connection conn = null;try conn = database.getCon();int ModifyNum = yingyeyuanDao.yingyey uanModify(conn yingyeyuan);if (ModifyNum = 1) (DOptionPane.showM essageDiaLog(null, ”修 改成功! ”);thisresetValue();this.fillTable(new YingyeyuanO);) else (DOptionPane.showM essageDiaLog(null, ”修 改失败! ”);) c

43、atch(Exception e) (e , printStackTrace 0;JOptionPane.showM essageDiaLog(null,修改失败! ”);JOptionPane.shoConfi0;) finally rmDiaLog(null, ”确定要try 删除这条记录吗? ”);DOptionPane.showMdatabase.closeCon(conif (result = 0) (essageDiaLog(null,删n);Connection除失败! ”);) catchconn = null; finally (Exception e) try try co

44、nn =database.closeCon(cone.printStackTracedatabase.getCon();n);0;int deleteNum =) catchyingyeyuanDao.yingyey(Exception e) (uanDelete(conn, id);if (deleteNum = 1) (e.printStackTraceprivatevoid0;jb_deleteActionPerforDOptionPane. shoivMmed(java.awt.event.AcessageDiaLog(null, ”删tionEvent evt) (除成功! ”);String id =thisresetValue();this.idText.getText()this.fillTable(newprivatevoid.Yingyeyuan();resetValue() if) else (this.idText.setText(Stringlltil. isEmpty(i“);d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号