会议厅系统实现与管理.doc

上传人:牧羊曲112 文档编号:1618934 上传时间:2022-12-11 格式:DOC 页数:22 大小:670.50KB
返回 下载 相关 举报
会议厅系统实现与管理.doc_第1页
第1页 / 共22页
会议厅系统实现与管理.doc_第2页
第2页 / 共22页
会议厅系统实现与管理.doc_第3页
第3页 / 共22页
会议厅系统实现与管理.doc_第4页
第4页 / 共22页
会议厅系统实现与管理.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《会议厅系统实现与管理.doc》由会员分享,可在线阅读,更多相关《会议厅系统实现与管理.doc(22页珍藏版)》请在三一办公上搜索。

1、长沙理工大学城南学院数据库原理课程设计报告 学 院 城南 专 业 班 级 学 号 学生姓名 指导教师 刘翌南 课程成绩 完成日期 2013年9月28日课程设计成绩评定学 院 城南 专 业 班 级 学 号 学生姓名 指导教师 刘翌南 完成日期 2013年9月28日 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 2013年 月 日课程设计任务书城南学院 计算机科学与技术专业 课程名称数据库课程设计时间20132014学年

2、第1学期3-4周学生姓名指导老师刘翌南题 目会议厅管理系统的设计与实现主要内容: 运用数据库原理知识,该实验是MySQL数据库结合JAVA语言设计一个会议厅管理系统,进行对会议厅的预定以及对会议厅的设施进行调整的一些基本功能,并用MySQL数据库对会议厅的信息进行简单的储存与修改,使得此系统的功能更加完善。要求:(1)要求能独立地运用SQL语言、JAVA相关知识和MySQL数据库,编制一个简单的会议厅管理系统。(2)学生按要求编写课程设计报告书,能正确阐述设计和实验结果。(3)通过课程设计培养学生严谨的科学态度和团队协作精神。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应

3、文献以及实现,给出个人分析、设计以及实现。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是源程序)。会议厅管理系统摘 要 本课程设计主要解决Eclipse环境系统下MySQL的安装与配置实现问题,建立一个会议厅系统并对其进行配置与访问,再用几种方式对其文件进行下载。这里介绍了系统工作原理、中MySQL服务器的配置方法、Eclipse客户端常用命令的使用方法、与在不同系统中户端常用软件的与MySQL服务器的连接方法。通过对MySQL的学习,初步掌握MySQL服务器的安装、启动、设置方法。关键词 JAVA;会议厅;MySQL1 引 言为了更好的让我们在学习数据库语言的过程中,充分

4、了解和运用数据库语言。本程序设计可以更好的让我们去直观的了解数据库中的概念结构与关系模型的建立,在对实际问题的分析过程中编写数据字典,也给我们提供了一个很好的锻炼平台。1.1 课题设计目的在我们日常学习数据库与JAVA的过程中,我们总是对数据库的结构模型、概念模型感到陌生,对数据库的关系模型感到困惑。此次课程设计的目的就是要让我们解决以上这些在平时学习中觉得晦涩的部分进行详细的实现,在设计的过程中,会详细的掌握数据库访问的方法,并用高级语言来实现,进而熟悉数据库的知识,了解实际问题的求解效率与采用怎样的数据库储存的密切联系,最终使我们能够更好的了解与学习数据库系统与数据库语言。1.2 课题设计

5、任务如今不管学校还是其他机构处理会议厅预定信息是一个棘手的事情,本课程系统的开发主要包括后台数据库的建立和维护以及前端应用程序界面开发两个方面。对于后台数据库的建立和维护要求建立起数据的一致性和完整性、数据安全性好、符合3NF范式库。而前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。通过学生宿舍管理系统的设计,熟练掌握JAVA、MYSQL等工具软件,系统地掌握需求分析、数据库设计、测试等软件开发的流程,提高自身分析问题、解决问题能力。本课程设计任务是通过开发一个学生宿舍信息管理系统,学习数据库系统的设计与开发,采用JAVA和MySQL等软件为开发工具。通

6、过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践,使得设计的数据库系统能够实现一般数据库的管理。2 系统结构分析与设计2.1功能需求分析会议厅管理系统是适应时代发展的需要,提高管理的效率而开发设计的。通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,实现了会议厅的预定管理的简单化和规划化,提高了工作效率,从而使能够更好的管理。经过综合分析,确定了会议厅预定管理系统的主要包括以下功能:(1). 系统设置功能系统设置包括预定者姓名、职位、时间段、会议设备、会议人数等基本信息,管理模块可以实现以下功能:添加、修改、删除和查看用户名

7、信息、用户职位、年龄;添加、修改、删除和查看用户名信息、所需设备、会议室号;(2). 会议厅预定管理功能此模块的主要功能包括:会议厅已预订管理,包括添加、修改、删除和查看预定信息;会议厅预定管理,包括添加、修改、删除和查看预定信息;(3). 会议厅预定信息统计查询管理本模块用于对会议厅预定信息进行统计和查询,主要功能包括:会议厅的安排状况查询功能;2.2性能需求分析1硬件环境处理器:AMD Athlon II X2 245或是更高。内存:1GB。硬盘空间:300GB。2软件环境操作系统: Windows Xp/Vista/72.3数据字典Book(类):保存有关会议室预订的情况,包括bookI

8、D、listDetailId、meetingRoomId、userId、isFinished、isCancel、isEnsure等属性。bookID:book记录ID。listDetailId:会议记录ID。meetingRoomId:会议室ID。userId:预订者ID。isFinished:标示会议室预订是否完成。isCancel:标示会议室预订是否取消。isEnsure:标示会议室预订是否确定。MeetingList(类):会议信息类。保存有关会议的信息。含有属性:listId、userId、partNumber。listId:会议记录ID。userId:用户ID。 partNumber

9、:会议参加人数。 MeetingRoom(类):保存有关会议室的信息,包括属性:meetingRoomId、meetingRoomName、seatingAmount。meetingRoomId:会议室编号。meetingRoomName:会议室名称。seatingAmount:会议室座位容量。2.4数据库的创建(1)在该系统中数据库的连接使用MySQL驱动。在Eclipse软件中将驱动添加到工程中,然后在系统中装上MySQL的数据库,我们采用的是MySQL-Front的应用软件来查看数据库中的表以及数据,当进入图中的按钮时,其即将添加MySQL在Eclipse中的驱动程序,然后只需要在代码中

10、加入数据库与编译平台编译的代码就可以让编译平台就和MySQL可以联系起来。图2.1成功添加数据库驱动包图图2.2添加驱动界面图(2)在系统中打开MySQL数据库,可以在DOS界面中可以很清楚的看到MySQL数据库的运行状况。图2.3在DOS界面中的运行状况(3)打开MySQL-Front软件,在登录命令中运用localhost服务器并采用gbk的字符集点击进入即可。图2.4MySQL-Front登录界面 (4)打开MySQL-Front软件,可以再localhost下面创建自己的数据库名称,然后把创建表的SQL语言在编辑器中输入即可创建自己所需的表格。图2.5MySQL-Front中创建数据库

11、表2.5数据库的连接打开Eclipse,在主程序中输入以下代码即可完成连接。图3.6Eclipse中连接数据库代码2.6数据库备份和恢复方案(1)应用辅助工具进行备份和恢复应用数据库辅助工具(如sqlbackuptools)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。(2)分离数据库法在企业管理器中右击需要备份的数据库,选择“所有任务”,“分离数据库”,执行分析操作,拷贝数据库MDF文件和LDF文件。 2.7安全性要求访问数据库时需要输入一些基本的详细信息。有必须填写的信息与可以选填的信息,如果必须填写的信息没有填

12、写,系统将会自动报错。2.8 一致性要求在管理系统相关的表之间,有较强的关联性。为了实现一致性的需求,各个表之间均建立起了相应的一致性约束。2.8 完整性要求根据会议厅预定管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。3 会议厅系统的实现3.1 设计情况在此次会议厅管理系统程序开发过程中,有很多东西值得我们思考并总结。开发过程大体可分为以下几个步骤:(1)思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块和其中用到的JAVA语言与SQL语言基本操作符、语句等。(2)画出总体设计方案流程图:用流程图的形式展现基

13、本编程思想。(3)流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现并想好实现的关键代码。(4)编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中我发现总体设计和模块思想会存在很多问题,我会不断改进如何实现各函数功能,达到预期效果。(5)代码的调试:在JAVA环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。3.2 小组合作情况由于系统规模较小,所

14、以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。该程序实现了会议室管理系统应有的功能,即系统设置功能、信息管理功能、查询信息功能。我主要负责登录主界面的设计与数据库会议室列表数据界面的设计,功能实现如图所示,(1)登录主界面图3.1 CRRS登陆主界面(2)数据库会议室列表数据图3.2数据库会议室列表数据(3) 数据库会议室的增、删、改。 图3.3数据库会议室列表的新增 图3.4数据库会议室列表的修改 图3.5数据库

15、会议室列表的删除4 总结为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期两周的方向综合课程设计,并安排了指导刘翌南知道老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。通过这次课程设计,使我们更加熟悉的掌握了图的运用。帮助我们熟悉了更多数据库的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。参考文献1Y.Daniel Liang. Java语言程序设计基础篇M

16、. 北京: 机械工业出版社, 2008.2严蔚敏. 数据结构(C语言版)M. 北京: 清华大学出版社, 2006.3邓一凡, 余勇, 罗云峰. JFC SwingM. 北京: 电子工业出版社, 2005.4萨师煊, 王珊. 数据库系统概论(第三版)M. 北京: 高等教育出版社, 2005.附录:程序清单MainFrame:public class MainFrame extends JFrameJLabel lab;JButton but1;public MainFrame() lab = new JLabel(new ImageIcon(d:/Blue hills.jpg);lab.setB

17、ounds(0, 0, 800, 600);but1 = new JButton(会议厅管理);but1.setBounds(250, 180, 300, 100);but1.setFont(new Font(华文彩云,Font.BOLD,50);but1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new SalFrame();dispose(););this.add(but1);this.add(lab);this.setLayout(null);this.setTitl

18、e(主界面);this.setSize(800, 600);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setResizable(false);this.setVisible(true);AddUserFramepublic class AddUserFrame extends JDialog/定义注册信息相关组件JLabel lab1;JLabel lab2;JLabel lab3;JTextField aid;JTextField aname;JTextField seat;JButton but;SalFrame sf;public

19、 AddUserFrame(SalFrame sf) /设置窗口显示不能切换super(sf,true);this.sf = sf;/创建相应的组件lab1 = new JLabel(会议厅编号:);lab2 = new JLabel(会议厅名称:);lab3 = new JLabel(座位数:);aid = new JTextField(20);aname = new JTextField(20);seat = new JTextField(20);but = new JButton(提交);but.addActionListener(new ActionListener() public

20、void actionPerformed(ActionEvent e) String sql=insert into auditoria values(+aid.getText()+,+aname.getText()+,+seat.getText()+);/1、注册驱动try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e1) e1.printStackTrace();String url=jdbc:oracle:thin:localhost:1521:oracle;try /2、建

21、立链接Connection con = DriverManager.getConnection(url, scott, tiger);/3、创建SQL执行对象Statement sta = con.createStatement();/4、执行SQLsta.executeUpdate(sql);/5、关闭链接sta.close();con.close(); catch (SQLException e1) e1.printStackTrace();JOptionPane.showMessageDialog(AddUserFrame.this, 新增成功!);AddUserFrame.this.s

22、f.setTableDate();dispose(););/将基本组件添加到界面中this.add(lab1);this.add(aid);this.add(lab2);this.add(aname);this.add(lab3);this.add(seat);this.add(but);/设置界面布局为流式布局this.setLayout(new FlowLayout(FlowLayout.LEFT);this.setTitle(会议厅新增);this.setSize(240, 400);this.setResizable(false);this.setVisible(true);EditU

23、serFramepublic class EditUserFrame extends JDialog/定义注册信息相关组件JLabel lab1;JLabel lab2;JLabel lab3;JTextField aid;JTextField aname;JTextField seat;JButton but;SalFrame sf;public EditUserFrame(SalFrame sf) /设置窗口显示不能切换super(sf,true);this.sf = sf;/创建相应的组件lab1 = new JLabel(会议厅编号:);lab2 = new JLabel(会议厅名称:

24、);lab3 = new JLabel(座位数:);aid = new JTextField(sf.table.getValueAt(sf.table.getSelectedRow(), 0).toString(),12);aid.setEditable(false);aname = new JTextField(sf.table.getValueAt(sf.table.getSelectedRow(), 1).toString(),12);seat = new JTextField(sf.table.getValueAt(sf.table.getSelectedRow(), 2).toStr

25、ing(),12);but = new JButton(提交);but.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String sql=update auditoria set aname=+aname.getText()+,seat=+seat.getText()+ where aid=+aid.getText()+;/1、注册驱动try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoun

26、dException e1) e1.printStackTrace();String url=jdbc:oracle:thin:localhost:1521:oracle;try /2、建立链接Connection con = DriverManager.getConnection(url, scott, tiger);/3、创建SQL执行对象Statement sta = con.createStatement();/4、执行SQLsta.executeUpdate(sql);/5、关闭链接sta.close();con.close(); catch (SQLException e1) e1

27、.printStackTrace();JOptionPane.showMessageDialog(EditUserFrame.this, 修改成功!);EditUserFrame.this.sf.setTableDate();dispose(););/将基本组件添加到界面中this.add(lab1);this.add(aid);this.add(lab2);this.add(aname);this.add(lab3);this.add(seat);this.add(but);/设置界面布局为流式布局this.setLayout(new FlowLayout(FlowLayout.LEFT);

28、this.setTitle(会议厅修改);this.setSize(240, 400);this.setResizable(false);this.setVisible(true);LoginFramepublic class LoginFrame extends JFrameJLabel lab1;/定义文本显示(用户)JLabel lab2;/定义文本显示(密码)JTextField tcode;/定义文本输入框JPasswordField pwd;/定义密码输入框JButton but1;/登录按钮JButton but2;/注册按钮/构造方法public LoginFrame()lab

29、1 = new JLabel(用户:);/创建组件lab1.setBounds(80, 40, 80, 50);/定义组件的位置和大小lab2 = new JLabel(密码:);lab2.setBounds(80, 110, 80, 50);tcode = new JTextField(); tcode.setBounds(140, 50, 180, 30);pwd = new JPasswordField();pwd.setBounds(140, 120, 180, 30);but1 = new JButton(登录);but1.setBounds(100, 170, 90, 40);bu

30、t2 = new JButton(重置);but2.setBounds(210, 170, 90, 40);/为登录按钮添加点击事件but1.addActionListener(new ActionListener() /按钮点击后触发的方法public void actionPerformed(ActionEvent e) boolean flag = false;/1、注册驱动try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e1) e1.printStackTrace();S

31、tring url=jdbc:oracle:thin:localhost:1521:oracle;try /2、建立链接Connection con = DriverManager.getConnection(url, scott, tiger);/3、创建SQL执行对象Statement sta = con.createStatement();/4、执行SQL返回结果集String sql=select * from tuser where tcode=+tcode.getText()+ and pwd=+pwd.getText()+;ResultSet rs = sta.executeQu

32、ery(sql);/5、操作结果集while(rs.next()flag = true;/6、关闭链接rs.close();sta.close();con.close(); catch (SQLException e1) e1.printStackTrace();if(flag=true)/登录成功情况/打开主界面new MainFrame();/关闭登录窗口dispose();else/弹出框消息提示JOptionPane.showMessageDialog(LoginFrame.this, 账号或者密码错误!););/为注册按钮添加事件but2.addActionListener(new

33、ActionListener() public void actionPerformed(ActionEvent e) tcode.setText();pwd.setText(););/把所有组件添加到窗口中this.add(lab1);this.add(lab2);this.add(tcode);this.add(pwd);this.add(but1);this.add(but2);/设置窗口的布局(坐标定位布局,空布局)this.setLayout(null);/设置窗口标题this.setTitle(用户登录);/设置窗口大小this.setSize(400, 300);/设置窗口不可改

34、变大小this.setResizable(false);/设置窗口关闭时退出程序this.setDefaultCloseOperation(EXIT_ON_CLOSE);/设置窗口显示this.setVisible(true);public static void main(String args) LoginFrame lf = new LoginFrame();SalFramepublic class SalFrame extends JFrameJTable table;/表格显示组件JScrollPane spane;/滚动面板JButton but1;JButton but2;JBu

35、tton but3;JPanel panel;public SalFrame() table = new JTable(this.getData();spane = new JScrollPane(table);but1 = new JButton(新增);but1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new AddUserFrame(SalFrame.this););but2 = new JButton(修改);but2.addActionListener(new

36、ActionListener() public void actionPerformed(ActionEvent e) int row = table.getSelectedRow();if(row=-1)JOptionPane.showMessageDialog(SalFrame.this, 请先选择一行再进行修改!);elsenew EditUserFrame(SalFrame.this););but3 = new JButton(删除);but3.addActionListener(new ActionListener() public void actionPerformed(Acti

37、onEvent e) int row = table.getSelectedRow();if(row=-1)JOptionPane.showMessageDialog(SalFrame.this, 请先选择一行再进行删除!);elseString sql=delete auditoria where aid=+table.getValueAt(row, 0)+;/1、注册驱动try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e1) e1.printStackTrace();Stri

38、ng url=jdbc:oracle:thin:localhost:1521:oracle;try /2、建立链接Connection con = DriverManager.getConnection(url, scott, tiger);/3、创建SQL执行对象Statement sta = con.createStatement();/4、执行SQLsta.executeUpdate(sql);/5、关闭链接sta.close();con.close(); catch (SQLException e1) e1.printStackTrace();JOptionPane.showMessa

39、geDialog(SalFrame.this, 删除成功!);setTableDate(););panel = new JPanel(new GridLayout(1, 5);panel.add(new JLabel();panel.add(but1);panel.add(but2);panel.add(but3);panel.add(new JLabel();this.add(spane);this.add(panel,BorderLayout.SOUTH);this.setTitle(会议厅管理);this.setSize(800, 600);this.setDefaultCloseOpe

40、ration(EXIT_ON_CLOSE);this.setResizable(false);this.setVisible(true);public void setTableDate()this.table.setModel(this.getData();public DefaultTableModel getData()Vector data = new Vector();Vector column = new Vector();column.add(会议厅编号);column.add(会议厅名称);column.add(座位数);/1、注册驱动try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e1) e1.printStackTrace();String url=jdbc:oracle:thin:localhost:1521:oracle;try /2、建立链接

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号