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(); } } } }