会议预约管理信息系统(一)
2020级《JAVA语言程序设计》
上机考试试题
2021.12.09
考试要求
一、本试卷为2020级《JAVA语言程序设计》上机考试试卷;
二. 注意编程规范:
(1)通过Eclipse添加类的方式建立类;
(2)程序开头部分注释班级、作者、学号、日期;
(3)注意程序代码中必要的空格与缩进;
(4)注意类、变量、方法的命名原则;
三. 考试结束后,将整个项目工程文件夹中的文件源代码和数据库备份文件放入文件夹,以“班级学号姓名”方式命名,并压缩成同名的压缩包文件,考试结束后提交给课代表统一上交。
会议预约管理信息系统(50分)
1、项目背景:
会议是企业进行决策、协商的重要组织形式,是企业日常办公处理事务的重要手段,是办公流程中不可缺少的重要环节,作为企业,如何有效的进行会议组织,管理各种会议文档和会议资源,是关系到企业领导进行日常企业运作处理的大事。提高会议效率、发挥会议功能、规范会议文档流程、合理利用会议相关资源、严肃会议决议的贯彻,避免人力物力财力浪费、降低办公成本、达成人力资源效率化,是企业领导关注的一个重要课题,所以急切需要一套有效的“会议管理”系统。
此软件的主要用户包括会议管理员和职员,主要职责为:
(1)会议管理员:可以对会议室进行增、删、改、查的基本操作,并且审核职员注册和会议申请。
2、职员:浏览会议室、预约会议、浏览参会信息(只能查看自己的会议),会议签到。
2.系统要求与评分标准:
2.1 页面要求
(1)系统可以通过浏览器直接访问;(1分)
(2)各个功能页面整体风格统一;
(3)首页为用户登录页面,会议管理员、职员两种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密码两个文本框,以及登录和注册两个按钮;(4分)
(4)职员注册:点击用户登录页面的注册按钮,职员进入用户注册页面,注册信息包括姓名、性别、部门、手机号码、家庭住址。
(6)职员功能页:共包括查看个人信息、修改个人密码、浏览会议室信息、查询会议室、浏览参会信息、预约会议、六项功能模块。
(7)会议管理员功能页:新增会议室信息、修改会议室信息、删除会议室信息、审核职员注册、审核会议申请、密码重置六项功能模块。
图1 会议预约管理信息系统功能结构图
(8)
2.2 功能要求
(1)新增会议室信息:会议室编号(唯一性)(编码规则:会议室级别号 +两位顺序号,会议室级别包括A(大型会议室,容纳50人以上)、B(中型会议室,容纳20人—40人)、C(小型会议室,容纳10人以下)例如:A01)、会议室名称、会议室地址、可用状态(可用或者不可用)、目前状态(占用或者不占用)、容纳人数(需要根据编码判断容纳人数是否符合要求)。(5分)
(2)修改会议室信息:浏览会议室信息,可以修改会议室编号(唯一性),会议室名称、会议室地址,可用状态,目前状态,容纳人数基本信息。(2分)
(3)删除会议室信息:删除该会议室基本信息。(2分)
(4)职员注册:点击用户登录页面的“注册”按钮,顾客进入用户注册页面,注册信息包括姓名、性别(男或女单选)、手机号码(11位数字)、部门、职位。(4分)
(5)职员审核:职员注册后,系统管理员后台可以以列表形式查看职员基本信息, 点击顾客姓名,可以查看顾客详细信息,在顾客详细信息页面点击通过按钮,可以通过审核。通过审核的顾客才可以通过前台登录界面进入主页面。(3分)
(6)查看个人信息:职员登录成功后,可以查看个人的详细信息。(2分)
(7)浏览会议室信息:职员登录成功后,可以查看所有可用会议室基本信息;系统管理员登录后可以查看全部会议室信息(包括可用和不可用)。(3分)
(8)查询会议室信息:可以按照目前状态、容纳人数进行综合查询,查询结果以列表形式显示,显示结果信息包括序号、会议室名称、会议室地址、容纳人数,等详细信息;职员查看的结果信息只包括状态为可用的会议室信息。(4分)
(9)会议预约:职员登录成功后,职员可以提交会议申请,申请主要内容包括会议主题、主要内容、会议开始时间、会议结束时间、参会人数、参会人员(职员姓名以逗号“,”作为间隔)、预约会议室(需要判断该会议当前状态为“可用”且在该时间段内没有其他会议冲突)等信息。(4分)
(10)参会信息:职员登录成功后,可以查看自己提交的会议申请并且涉及到自己(与会人员包含职员的姓名)会议主题列表信息,
点击会议名称,可以查看会议详细信息(会议主题、主要内容,开始时间、结束时间、参会人员(全部))、审核状态(通过、未通过、待审核)、审核意见(4分)
(11)会议审核:系统管理员登录成功后,浏览会议申请列表(只显示审核状态为“待审核”)信息,点击会议主题显示会议详细信息,在该页面加载同意、不同意单选框,如果选择不同意,需要填写审核意见。(3分)
(12)个人密码修改:职员登录后,可以输入旧密码、新密码、新密码确认修改个人密码,需要判断旧密码是否正确,新密码和新密码确认是否一致;(2分)
(13)重置密码:管理员可以修改职员的个人密码,先按照职员姓名查询,显示出基本信息后,点击密码重置,将职员密码统一修改为“123456”。(2分)
(14)数据库评分标准:按照题目要求创建会议室基本信息表、会议基本信息表、职员基本信息表,(3分),实现数据库连接正常(2分)。
数据表结构样式参考下表所示:
表1会议室基本信息表
序 号 |
字段名称 |
中文含义 |
取值范围 |
1 |
MeetroomId |
会议室编号(唯一性) |
|
2 |
MeetroomName |
会议室名称 |
|
3 |
Address |
会议室地址 |
|
4 |
ReadyState |
可用状态 |
{可用、不可用} |
5 |
Status |
目前状态 |
{占用、空闲} |
6 |
Capacity |
容纳人数 |
|
表2会议基本信息表
序 号 |
字段名称 |
中文含义 |
取值范围 |
1 |
MeetingID |
会议ID |
|
2 |
MeetingName |
会议主题 |
|
3 |
MeetingContent |
主要内容 |
|
4 |
MeetingBegin |
会议开始时间 |
yyyy-MM-dd HH:mm:ss:代表例: 2021-12-09 08:30:00 |
5 |
MeetingEnd |
会议结束时间 |
yyyy-MM-dd HH:mm:ss:代表例: 2021-12-09 10:30:00 |
6 |
MeetingNum |
参会人数 |
|
7 |
Participants |
参会人员 |
例{薛贺程,刘海涛,张可欣} |
8 |
MeetroomId |
预约会议室编号 |
|
9 |
UserID |
申请人编号 |
|
10 |
AuditStatus |
审核状态 |
{待审核、通过、未通过} |
11 |
AuditMind |
|
|
表3职员基本信息表
序 号 |
字段名称 |
中文含义 |
1 |
UserID |
职员ID |
2 |
UserName |
姓名 |
3 |
sex |
性别 |
4 |
部门 |
身份证号 |
5 |
Phone |
手机 |
6 |
Position |
职位 |
Bean
meeting
package Bean; public class meeting { private String id; private String MeetingID;//会议ID private String MeetingName;//会议主题 private String MeetingContent;//会议内容 private String MeetingBegin;//会议开始时间 private String MeetingEnd;//会议结束时间 private String MeetingNum;//参会人数 private String Participants;//参会人员 private String MeetroomId;//预约会议室编号 private String UserID;//申请人编号 private String AuditStatus;//审核状态 private String AuditMind;//审核意见 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getMeetingID() { return MeetingID; } public void setMeetingID(String meetingID) { MeetingID = meetingID; } public String getMeetingName() { return MeetingName; } public void setMeetingName(String meetingName) { MeetingName = meetingName; } public String getMeetingContent() { return MeetingContent; } public void setMeetingContent(String meetingContent) { MeetingContent = meetingContent; } public String getMeetingBegin() { return MeetingBegin; } public void setMeetingBegin(String meetingBegin) { MeetingBegin = meetingBegin; } public String getMeetingEnd() { return MeetingEnd; } public void setMeetingEnd(String meetingEnd) { MeetingEnd = meetingEnd; } public String getMeetingNum() { return MeetingNum; } public void setMeetingNum(String meetingNum) { MeetingNum = meetingNum; } public String getParticipants() { return Participants; } public void setParticipants(String participants) { Participants = participants; } public String getMeetroomId() { return MeetroomId; } public void setMeetroomId(String meetroomId) { MeetroomId = meetroomId; } public String getUserID() { return UserID; } public void setUserID(String userID) { UserID = userID; } public String getAuditStatus() { return AuditStatus; } public void setAuditStatus(String auditStatus) { AuditStatus = auditStatus; } public String getAuditMind() { return AuditMind; } public void setAuditMind(String auditMind) { AuditMind = auditMind; } }
room
package Bean; public class room { private int id; private String MeetroomId; //会议室编号 private String MeetroomName;//会议室名称 private String Address;//会议室地址 private String ReadyState;//可用状态 private String Status;//目前状态 private String Capacity;//容纳人数 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMeetroomId() { return MeetroomId; } public void setMeetroomId(String meetroomId) { MeetroomId = meetroomId; } public String getMeetroomName() { return MeetroomName; } public void setMeetroomName(String meetroomName) { MeetroomName = meetroomName; } public String getAddress() { return Address; } public void setAddress(String address) { Address = address; } public String getReadyState() { return ReadyState; } public void setReadyState(String readyState) { ReadyState = readyState; } public String getStatus() { return Status; } public void setStatus(String status) { Status = status; } public String getCapacity() { return Capacity; } public void setCapacity(String capacity) { Capacity = capacity; } }
users
package Bean; public class users { private int id; private String UserName;//姓名 private String sex;;//性别 private String Department;//部门 private String Phone;//手机 private String Position;//职位 private String mima;//用户密码 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return UserName; } public void setUserName(String userName) { UserName = userName; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getDepartment() { return Department; } public void setDepartment(String department) { Department = department; } public String getPhone() { return Phone; } public void setPhone(String phone) { Phone = phone; } public String getPosition() { return Position; } public void setPosition(String position) { Position = position; } public String getMima() { return mima; } public void setMima(String mima) { this.mima = mima; } }
Dao
dao
package Dao; import Bean.meeting; import Bean.room; import Bean.users; import Util.Util; import java.sql.*; import java.util.ArrayList; import java.util.List; public class dao { public Connection sjk() { Connection connect; try { connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); }catch(Exception e) { e.printStackTrace(); } return null; } public boolean queryEmpty(String name,String sex,String bumen,String sjnum,String home,String mima) { boolean flag=false; if(bumen==null||"".equals((bumen))&&name==null||"".equals(name)&&sex==null||"".equals(sex)&&sjnum==null||"".equals(sjnum)&&home==null||"".equals(home)&&mima==null||"".equals(mima)) { flag=true; } return flag; } public Connection sj() { Connection connect; try { connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); return connect; }catch(Exception e) { e.printStackTrace(); } return null; } //查询旧密码是否正确 public boolean judgemima(String name,String mima) { boolean flag=false; Connection connection=Util.getConnection(); ResultSet rs=null; String sql="select * from zhiyuan where name="+"name"; try { Statement statement=connection.createStatement(); rs=statement.executeQuery(sql); if(rs.next()) { String mima2 =(rs.getString("mima")); if (mima2.equals(mima)) flag=true; } Util.close(rs,statement,connection); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } //修改顾客密码 public void mimaxiugai(String mima) { try { PreparedStatement preparedStatement=null; Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); preparedStatement=connect.prepareStatement("Update zhiyuan set mima=(mima)"); preparedStatement.setString(7,mima); preparedStatement.executeUpdate(); preparedStatement.execute(); connect.close(); }catch(SQLException e){ e.printStackTrace(); } } //录入职员input() public void input(String name,String sex,String bumen,String sjnum,String home,String mima) { try { PreparedStatement preparedStatement=null; Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); preparedStatement=connect.prepareStatement("insert into zhiyuandsh (name,sex,bumen,sjnum,home,mima) values (?,?,?,?,?,?)"); preparedStatement.setString(1,name); preparedStatement.setString(2,sex); preparedStatement.setString(3,bumen); preparedStatement.setString(4,sjnum); preparedStatement.setString(5,home); preparedStatement.setString(6,mima); preparedStatement.executeUpdate(); connect.close(); preparedStatement.close(); }catch(SQLException e){ e.printStackTrace(); } } //显示所有职员信息 public List<users> readUser() { List<users> list = new ArrayList<users>(); Connection con=Util.getConnection(); ResultSet rs=null; String sql="select * from zhiyuandsh "; try {//连接数据库的操作 Statement statement=con.createStatement(); rs=statement.executeQuery(sql); while (rs.next()) { users u = new users(); u.setUserName(rs.getString("name")); u.setSex(rs.getString("sex")); u.setPosition(rs.getString("home")); u.setPhone(rs.getString("sjnum")); u.setDepartment(rs.getString("bumen")); u.setMima(rs.getString("mima")); list.add(u); } Util.close(rs, statement, con); }catch(Exception e){ e.printStackTrace(); } return list; } //显示单个职员信息 public static users getuser(String name) { users u = new users(); Connection connection=Util.getConnection(); ResultSet rs=null; String sql="select * from zhiyuandsh where name="+"name"; try { Statement statement=connection.createStatement(); rs=statement.executeQuery(sql); if(rs.next()) { u.setUserName(rs.getString("name")); u.setSex(rs.getString("sex")); u.setPosition(rs.getString("home")); u.setPhone(rs.getString("sjnum")); u.setDepartment(rs.getString("bumen")); u.setMima(rs.getString("mima")); } Util.close(rs,statement,connection); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return u; } public static users getuser1(String name) { users u = new users(); Connection connection=Util.getConnection(); ResultSet rs=null; String sql="select * from zhiyuandsh where name="+"name"; try { Statement statement=connection.createStatement(); rs=statement.executeQuery(sql); if(rs.next()) { u.setUserName(rs.getString("name")); u.setSex(rs.getString("sex")); u.setPosition(rs.getString("home")); u.setPhone(rs.getString("sjnum")); u.setDepartment(rs.getString("bumen")); u.setMima(rs.getString("mima")); } Util.close(rs,statement,connection); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return u; } public static users getuser2(String name) { users u = new users(); Connection connection=Util.getConnection(); ResultSet rs=null; String sql="select * from zhiyuan where name="+"name"; try { Statement statement=connection.createStatement(); rs=statement.executeQuery(sql); if(rs.next()) { u.setUserName(rs.getString("name")); u.setSex(rs.getString("sex")); u.setPosition(rs.getString("home")); u.setPhone(rs.getString("sjnum")); u.setDepartment(rs.getString("bumen")); u.setMima(rs.getString("mima")); } Util.close(rs,statement,connection); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return u; } //添加单个职员信息 public boolean add(String name,String sex,String bumen,String sjnum,String home,String mima) { boolean flag=false; try { PreparedStatement preparedStatement=null; Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); preparedStatement=connect.prepareStatement("insert into zhiyuan (name,sex,bumen,sjnum,home,mima) values (?,?,?,?,?,?)"); preparedStatement.setString(1,name); preparedStatement.setString(2,sex); preparedStatement.setString(3,bumen); preparedStatement.setString(4,sjnum); preparedStatement.setString(5,home); preparedStatement.setString(6,mima); preparedStatement.executeUpdate(); connect.close(); preparedStatement.close(); flag=true; }catch(SQLException e){ e.printStackTrace(); } return flag; } //录入会议室信息input2() public void input2(String roomid ,String name,String address,String keyong,String muqian,String num){ try { PreparedStatement preparedStatement=null; Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); preparedStatement=connect.prepareStatement("insert into huiyishi (roomid,name,address,keyong,muqian,num) values (?,?,?,?,?,?)"); preparedStatement.setString(1,roomid); preparedStatement.setString(2,name); preparedStatement.setString(3,address); preparedStatement.setString(4,keyong); preparedStatement.setString(5,muqian); preparedStatement.setString(6,num); preparedStatement.executeUpdate(); connect.close(); preparedStatement.close(); }catch(SQLException e){ e.printStackTrace(); } } //显示所有会议室信息 public List<room> readRoom() { List<room> list = new ArrayList<room>(); Connection con=Util.getConnection(); ResultSet rs=null; String sql="select * from huiyishi "; try {//连接数据库的操作 Statement statement=con.createStatement(); rs=statement.executeQuery(sql); while (rs.next()) { room r =new room(); r.setId(Integer.parseInt(rs.getString("id"))); r.setMeetroomId(rs.getString("roomid")); ; r.setMeetroomName(rs.getString("name")); r.setAddress(rs.getString("address")); r.setReadyState(rs.getString("keyong")); r.setStatus(rs.getString("muqian")); r.setCapacity(rs.getString("num")); list.add(r); } Util.close(rs, statement, con); }catch(Exception e){ e.printStackTrace(); } return list; } //显示可用会议室信息 public List<room> readRoomk() { List<room> list = new ArrayList<room>(); Connection con=Util.getConnection(); ResultSet rs=null; String sql="select * from huiyishi where keyong like '可%'"; try {//连接数据库的操作 Statement statement=con.createStatement(); rs=statement.executeQuery(sql); while (rs.next()) { room r =new room(); r.setId(Integer.parseInt(rs.getString("id"))); r.setMeetroomId(rs.getString("roomid")); ; r.setMeetroomName(rs.getString("name")); r.setAddress(rs.getString("address")); r.setReadyState(rs.getString("keyong")); r.setStatus(rs.getString("muqian")); r.setCapacity(rs.getString("num")); list.add(r); } Util.close(rs, statement, con); }catch(Exception e){ e.printStackTrace(); } return list; } //修改会议室信息 public void xiugai2(String roomid ,String name,String address,String keyong,String muqian,String num) { try { PreparedStatement preparedStatement=null; Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/huiyishi?&useSSL=false&serverTimezone=UTC","root","123456"); preparedStatement=connect.prepareStatement("Update huiyishi set roomid=?,name=?,address=?,keyong=?,muqian=?,num=? where roomid=?"); preparedStatement.setString(1,roomid); preparedStatement.setString(2,name); preparedStatement.setString(3,address); preparedStatement.setString(4,keyong); preparedStatement.setString(5,muqian); preparedStatement.setString(6,num); preparedStatement.executeUpdate(); preparedStatement.execute(); connect.close(); }catch(SQLException e){ e.printStackTrace(); }
Util
Util
package Util; import java.sql.*; public class Util { private static String mysqlname = "huiyishi"; private static Connection con; private static Statement sta; private static ResultSet re; private static String coursename = "com.mysql.cj.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/" + mysqlname + " ?serverTimezone=GMT%2B8"; public static Connection getConnection() { try { Class.forName(coursename); System.out.println("连接成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con = DriverManager.getConnection(url, "root", "123456"); System.out.println("LIANJIE"); } catch (Exception e) { e.printStackTrace(); con = null; } return con; } public static void close(Statement state, Connection conn) { if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs, Statement state, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }