信息世界中的基本概念。概念模型的表示方法很多,其中最为著名和使用最广泛的是P.P.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach),简称E-R图。本系统的概念模型总E-R图3所示:
第6章 系统主要功能的实现及部分代码
6.1.1 系统登录界面
系统登录界面中用户名选项为数据库中已经存在的用户名,用户名和密码都不能为空,所以用户只需选择相应的用户名即可,若用户输入密码三次错误则系统会自动关闭登录界面,用户登入成功后马上进入系统的主界面。在该系统中设置的系统管理员用户名为admin,登入密码为123。因此当一个用户或者管理员登陆管理系统之后,用户或管理员操作的程序流程如图4所示:
图4 管理员的操作流程图
图 5 连续三次密码输入错误图
图6 系统登录界面图
登录验证的核心代码如图7所示:
private void dengLu() {
String user = cb.getSelectedItem() + "";
String pwd = String.valueOf(pf.getPass
word());
String code = "select pwd,puis from pwd where delmark=0 and userid='" + user + "'";
ResultSet rs = sunsql.executeQuery (code);
try {
if(rs.next()) { //用户名存在
if(pwd.equals(rs.getString(1))) {
bott.setText(clue + "登录成功,正在进入系统 ...");
String puis = rs.getString(2); //获得操作员权限
boolean flag = Journal.writeJournalInfo(user, "登录本系统", Journal.TYPE_LG);
System.out.println(flag);
if(flag) { //记录日志
new com.sunshine.mainframe.HotelFrame(user, puis); //进入主程序窗口(用户名, 权限)
this.setVisible(false);
}else {
String msg = "写日志错误,请与系统管理员联系 ...";
JOptionPane.showMessageDialog(null, msg, "错误", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
}
else {
bott.setText(clue + "用户 [ " + user + " ] 的密码不正确,请重新输入 ...");
flag++;
if(flag == 3) { //三次密码验证
JOptionPane.showMessageDialog(null, "您不是本系统的管理员,系统关闭 ...", "警告", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}//End if(flag == 3)
return;
}//End if(pwd.equals(rs.getString(1)))
}
else {
bott.setText(clue + "用户ID [ " + user + " ] 不存在 ...");
}//End if(rs.next())
}
图7
登陆界面主要代码
6.1.2 系统主界面
登入成功后系统自动跳转到系统的主界面,系统的主界面是系统的所有功能的入口,主要由菜单栏、功能模块按钮、房间状态图等面板组成,进入系统主界面的
程序流程如图8所示:
图9 主界面图
6.1.3 散客开单
散客开单界面主要是提供散客的信息登记和增加入住房间等操作,这是散客入住的第一步,当开单成功后就会改变房间状态为占用状态。在选择散客开单时要选择空房间为宾客开房,若选择了正在消费的房间则系统会弹出如图11所示的错误提示窗口,选择了空房间系统操作员就可以输入宾客的相关信息等,散客开单的押金至少是100元,在输入押金的时候要注意,因为系统不能识别金钱¥符号,故在开发系统是用0代替,在输入押金时先输入0再输入押金数目,例如输入押金100元的输入方式为0100。开单的时候还可以追加同类房间,最多四间,要追加不同类型的房间要选择团体开单。散客开单程序流程如图10所示:
否
是
图 10 散客开单程序流程图
图11 弹出错误提示图
图12 散客开单图
散客开单主要代码如图13所示:
private void addRoom() {
//获得选择的行号
int arows[] = tb1.getSelectedRows();