JAVA毕业设计网吧收费管理系统

合集下载

Java网吧管理系统报告

Java网吧管理系统报告

沈阳工程学院课程设计设计题目:网吧管理系统系别信息学院班级软件本121 学生姓名聂恒阳王益峰学号19 16指导教师孙宪丽、李波职称副教授、讲师起止日期:2014年3月3日起——至2014年3月7日止沈阳工程学院课程设计任务书课程设计题目:网吧管理系统系别信息学院班级软件本121 学生姓名聂恒阳王益峰学号19 16指导教师孙宪丽、李波职称副教授、讲师课程设计进行地点:实训F任务下达时间:2014 年 3 月 3 日起止日期:2014年3月3日起——至2014年3月7日止教研室主任2014年月日批准面向对象程序设计课程设计成绩评定表系(部):信息学院班级:软件本121 学生姓名:聂恒阳指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。

0.1 5 4 3 2工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。

0.2 5 4 3 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。

0.5 5 4 3 2指导教师评审成绩(加权分合计乘以12)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作量工作量饱满,难度适中。

0.5 5 4 3 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。

0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以8)分加权分合计评阅教师签名:年月日课程设计总评成绩分面向对象程序设计课程设计成绩评定表系(部):信息学院班级:软件本121 学生姓名:王益峰指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。

网吧管理系统毕业设计

网吧管理系统毕业设计

- - - 毕业设计论文摘要随着计算机产业的迅速开展,电子计算机已广泛的应用于信息管理、文字处理、辅助设计、辅助教学及人们的日常生活中。

网吧管理系统主要是针对网吧管理中涉及的一系列相关工作的管理,本系统的建立使网吧管理的管理更加规化、系统化,查询手段更加便捷化。

同时,网吧管理系统也是实现网吧管理现代化和信息化的重要容。

本系统前台主要使用JSP作为开发语言,后台使用SqlServer作为数据库管理系统,开发环境是MyEclipse.效劳器采用tomcat,开发出的一个基于Web技术的B/S构造的网吧管理系统。

关键词:花木信息网,WEB,JSP,B/S构造ABSTRACTWith the rapid development of the puter industry, the application of electronic puters have been widely in information management, word processing, puter aided design, to support teaching and daily life of the people. Internet cafe management system is mainly aimed at the Internet cafe management involves a series of related work management, the establishment of the system makes the management of Internet cafes management more standardized, systematic, more convenient means of inquiry. At the same time, Internet cafe management system which is an important content of Internet cafe management modernization and informatization。

毕业设计--《网吧收费系统》

毕业设计--《网吧收费系统》

目录1.前言2. 需求分析2.1 用户定位分析2.2 功能需求分析2.3 性能需求分析3.系统分析3.1 环境平台分析3.2 程序功能设计3.3 程序流程设计4. 详细设计4.1 程序单元设计4.2 程序单元编码4.3 集成开发前言根据自己的爱好和软件编程的能力,我选择用VB编写网吧收费系统的服务器端,只是编写出了基本的功能,比现实生活中使用的要粗略.但是这个系统只是自己的一次实践,我会在以后的学习中继续努力的编写这个使用程序其意义在于锻炼了我的动手能力和逻辑思维能力,而且以前也从来没有尝试过编写这样综合性的程序,培养了对问题考虑的全面性. 为了编写有实用价值的东西,我还参阅了大量的资料,包括网络资料的选择,当然在程序完成只后,也不能只有编写者才会用,所以要写出对应的帮助文挡,一般的软件都会有,这是我们生活中的常识. 只是限于水平,只能编写部分功能,数据库安全方面也不可靠.一直在寻找解决办法,如果能够采用动态数据库,这些问题就能解决了.科学这东西讲究的就是严谨的态度,建立数学模型有助于完成设计,在设计的时候避免出现思绪混乱,在经过系统功能需求分析,在大脑中已经有很清晰的的目标,可以画出要进行的流程图,比如先根据功能模块确定好选择数据库,然后根据实际编写数据库表,完成数据库表的关联,可以先保存后,等窗体确定完毕,再连接数据库.经过代码调试,确定能正常运行.2.需求分析2.1用户定位分析1.合理的工具设置:用户要求界面简洁容易操作.于是可以使用工具条进行设置,把经常要使用的功能用工具条单独罗列出来,比直接在菜单中选择效率要高.2.安全要求:为了避免意外事件或者是人为原因导致数据库信息丢失,要做好数据库的保秘和数据库灾难性恢复.3.简单的操作方式:因为需要有的时候需要对客户机进行远程控制,这样管理起来就轻松起来.4.提供全面的数据查询和统计:可以任意选择查询条件,而且为了方便可以设置统计报表功能.5.报表打印导出功能:要随时可以导出以报表格式存放,打印出来长期备份.6.会员卡管理:会员卡较之现金交易比较方便管理,7.商品管理:能够对商品进行销售统计,存储查询.8.网址限制:现在网络病毒流行,尤其要注意一些不良网页上隐藏病毒,所以要限制一些网站.2.2功能需求分析主要功能: 对网吧的人员,资源进行管理。

网吧计费系统附完整源代码

网吧计费系统附完整源代码

简易的网吧计费系统设计设计一个简易的网吧计费系统,要求上网人输入卡号和密码上机,卡号或密码不正确,不能上机,卡余额不足不能上机;正在使用的机器不能被再使用;上机需要记录卡号、机器号、上机时间;下机时需要记录下机时间、发生费用和自动从卡里扣款,该机器能再被使用;下机时,需要向用户显示本次上机的详细信息。

1) 上机业务流程卡号和密码的校验;卡的余额的检验;获取当前系统时间作为上机开始时间;记录上机操作;修改该机器的使用标志2) 下机业务流程选择被使用的机器号;获取系统当前时间作为下机时间;计算费用;扣费;记录下机时间和此次费用;修改该机器的状态为可用结构图效果截图如下********************face类********************* package wbsys.view;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import wbsys.dao.huanji;import wbsys.dao.yuechaxun;public class Face extends JFrame {JPanel contentPane;JMenuBar jMenuBar1 = new JMenuBar();JMenu jMenu1 = new JMenu();JMenuItem jMenuItem1 = new JMenuItem();JMenuItem jMenuItem2 = new JMenuItem();JMenu jMenu2 = new JMenu();JMenuItem jMenuItem3 = new JMenuItem();JMenu jMenu3 = new JMenu();JMenuItem jMenuItem4 = new JMenuItem();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JMenuItem jMenuItem5 = new JMenuItem();JMenuItem jMenuItem6 = new JMenuItem();JMenuItem jMenuItem7 = new JMenuItem();public Face() {try {setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {contentPane = (JPanel) getContentPane();contentPane.setLayout(null);this.setJMenuBar(jMenuBar1);setSize(new Dimension(650, 488));setTitle("网吧记费管理器");jMenuBar1.setBackground(Color.green);jMenuBar1.setFont(new java.awt.Font("Tahoma", Font.PLAIN, 15));jMenuBar1.setForeground(new Color(255, 0, 95));jMenu1.setBackground(Color.green);jMenu1.setForeground(Color.red);jMenu1.setText("使用");jMenuItem1.setForeground(Color.red);jMenuItem1.setText("上机");jMenuItem1.addActionListener(new Face_jMenuItem1_actionAdapter(this));jMenuItem2.setForeground(Color.red);jMenuItem2.setText("下机");jMenuItem2.addActionListener(new Face_jMenuItem2_actionAdapter(this)); jMenu2.setBackground(Color.green);jMenu2.setForeground(Color.red);jMenu2.setText("管理");jMenuItem3.setForeground(Color.red);jMenuItem3.setText("关于");jMenuItem3.addActionListener(new Face_jMenuItem3_actionAdapter(this)); jMenu3.setBackground(Color.green);jMenu3.setForeground(Color.red);jMenu3.setText("退出");jMenuItem4.setForeground(Color.red);jMenuItem4.setText("确定!");jMenuItem4.addActionListener(new Face_jMenuItem4_actionAdapter(this)); contentPane.setBackground(Color.cyan);jLabel1.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel1.setForeground(Color.magenta);jLabel1.setText("网吧计费系统G16-制作");jLabel1.setBounds(new Rectangle(200, 150, 300, 39));jLabel2.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel2.setForeground(Color.magenta);jLabel2.setText("2019-12-12 版本1.0");jLabel2.setBounds(new Rectangle(215, 200, 250, 34));jLabel3.setText("");jLabel3.setBounds(new Rectangle(0, 0, 650, 488));jMenuItem5.setForeground(Color.red);jMenuItem5.setText("管理");jMenuItem5.addActionListener(new Face_jMenuItem5_actionAdapter(this)); jMenuItem6.setForeground(Color.red);jMenuItem6.setText("余额查询");jMenuItem6.addActionListener(new Face_jMenuItem6_actionAdapter(this)); jMenuItem7.setForeground(Color.red);jMenuItem7.setText("换机");jMenuItem7.addActionListener(new Face_jMenuItem7_actionAdapter(this)); jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenu3);jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenuItem7);jMenu2.add(jMenuItem3);jMenu2.add(jMenuItem5);jMenu2.add(jMenuItem6);jMenu3.add(jMenuItem4);contentPane.add(jLabel1);contentPane.add(jLabel2);contentPane.add(jLabel3);}public void jMenuItem4_actionPerformed(ActionEvent e) {System.exit(0);}public void jMenuItem1_actionPerformed(ActionEvent e) {Shangjiface shang = new Shangjiface(this);this.setContentPane(shang);this.show();}public void jMenuItem2_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(this);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation((fsize.width - dsize.width) / 5 + loc.x, (fsize.height - dsize.height) / 4 + loc.y);xia.show();}public void jMenuItem3_actionPerformed(ActionEvent e) {jOptionPane1.showMessageDialog(null, "版权所有,违者必究!");jOptionPane1.showMessageDialog(null, " 2019-12-12,版本1.0");}public void jMenuItem5_actionPerformed(ActionEvent e) {guanlidenglu guan = new guanlidenglu(this);this.setContentPane(guan);this.show();}public void jMenuItem6_actionPerformed(ActionEvent e) {yuechaxun yue = new yuechaxun(this);yue.setSize(483, 344);Dimension dsize = yue.getPreferredSize();Dimension fsize = yue.getSize();Point loc = getLocation();yue.setLocation((fsize.width - dsize.width) / 4 + loc.x, (fsize.height - dsize.height) / 4 + loc.y);this.setContentPane(yue);this.show();}public void jMenuItem7_actionPerformed(ActionEvent e) {huanji jiemian = new huanji(this);this.setContentPane(jiemian);this.show();}}class Face_jMenuItem7_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem7_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem7_actionPerformed(e);}}class Face_jMenuItem6_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem6_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem6_actionPerformed(e);}}class Face_jMenuItem5_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem5_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem5_actionPerformed(e);}}class Face_jMenuItem2_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem2_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem2_actionPerformed(e);}}class Face_jMenuItem1_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem1_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem1_actionPerformed(e);}}class Face_jMenuItem4_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem4_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem4_actionPerformed(e);}}class Face_jMenuItem3_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem3_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem3_actionPerformed(e);}}****************guanli类*****************package wbsys.dao;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import wbsys.entity.Lianjie;import wbsys.view.Face;import wbsys.view.Shangjiface;import wbsys.view.xiajiface;public class guanli extends JPanel {Face main;Lianjie co = new Lianjie();Statement s;Connection c;ResultSet rs;JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JButton jButton2 = new JButton();JButton jButton3 = new JButton();JButton jButton4 = new JButton();JButton jButton5 = new JButton();JTextField jTextField2 = new JTextField();JTextField jTextField3 = new JTextField();JTextField jTextField4 = new JTextField();JTextField jTextField5 = new JTextField();JLabel jLabel5 = new JLabel();JPasswordField jPasswordField1 = new JPasswordField();JTextField jTextField8 = new JTextField();JLabel jLabel4 = new JLabel();JButton jButton1 = new JButton();JTextField jTextField1 = new JTextField();JPasswordField jPasswordField2 = new JPasswordField();JTextField jTextField6 = new JTextField();JTextField jTextField7 = new JTextField();JLabel jLabel6 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JButton jButton6 = new JButton();public guanli(Face k) {try {main = k;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setText("卡号");jLabel1.setBounds(new Rectangle(10, 80, 80, 20));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("用户名");jLabel2.setBounds(new Rectangle(110, 80, 80, 20));jLabel3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel3.setForeground(Color.magenta);jLabel3.setText("密码");jLabel3.setBounds(new Rectangle(210, 80, 80, 20));jButton2.setBounds(new Rectangle(510, 200, 80, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("用户充值");jButton2.addActionListener(new guanli_jButton2_actionAdapter(this)); jButton3.setBounds(new Rectangle(510, 260, 80, 20));jButton3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton3.setForeground(Color.magenta);jButton3.setText("添加用户");jButton3.addActionListener(new guanli_jButton3_actionAdapter(this)); jButton4.setBounds(new Rectangle(128, 366, 57, 20));jButton4.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton4.setForeground(Color.magenta);jButton4.setText("上机");jButton4.addActionListener(new guanli_jButton4_actionAdapter(this)); jButton5.setBounds(new Rectangle(241, 367, 57, 20));jButton5.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton5.setForeground(Color.magenta);jButton5.setText("下机");jButton5.addActionListener(new guanli_jButton5_actionAdapter(this)); jTextField2.setForeground(Color.magenta);jTextField2.setText("");jTextField2.setBounds(new Rectangle(110, 140, 80, 20));jTextField3.setForeground(Color.magenta);jTextField3.setText("");jTextField3.setBounds(new Rectangle(10, 200, 80, 20));jTextField4.setForeground(Color.magenta);jTextField4.setText("");jTextField4.setBounds(new Rectangle(110, 200, 80, 20));jTextField5.setForeground(Color.magenta);jTextField5.setText("");jTextField5.setBounds(new Rectangle(410, 200, 77, 20));jLabel5.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15)); jLabel5.setForeground(Color.magenta);jLabel5.setText("金额");jLabel5.setBounds(new Rectangle(410, 80, 80, 20)); jPasswordField1.setForeground(Color.magenta);jPasswordField1.setText("");jPasswordField1.setBounds(new Rectangle(210, 260, 80, 20)); jTextField8.setForeground(Color.magenta);jTextField8.setText("");jTextField8.setBounds(new Rectangle(410, 260, 80, 20));jLabel4.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15)); jLabel4.setForeground(Color.magenta);jLabel4.setText("重复密码");jLabel4.setBounds(new Rectangle(310, 80, 80, 20));jButton1.setBounds(new Rectangle(510, 140, 80, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("删除用户");jButton1.addActionListener(new guanli_jButton1_actionAdapter(this)); jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(10, 140, 80, 20)); jPasswordField2.setForeground(Color.magenta);jPasswordField2.setText("");jPasswordField2.setBounds(new Rectangle(310, 260, 80, 20)); jTextField6.setForeground(Color.magenta);jTextField6.setText("");jTextField6.setBounds(new Rectangle(10, 260, 80, 20));jTextField7.setForeground(Color.magenta);jTextField7.setText("");jTextField7.setBounds(new Rectangle(110, 260, 80, 20));jLabel6.setText("");jLabel6.setBounds(new Rectangle(0, 30, 650, 488));jButton6.setBounds(new Rectangle(353, 366, 57, 20));jButton6.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton6.setForeground(Color.magenta);jButton6.setText("换机");jButton6.addActionListener(new guanli_jButton6_actionAdapter(this)); this.add(jLabel3);this.add(jLabel1);this.add(jTextField1);this.add(jTextField3);this.add(jTextField6);this.add(jLabel2);this.add(jTextField2);this.add(jTextField4);this.add(jTextField7);this.add(jPasswordField1);this.add(jPasswordField2);this.add(jTextField8);this.add(jLabel5);this.add(jLabel4);this.add(jTextField5);this.add(jButton3);this.add(jButton2);this.add(jButton1);this.add(jButton4);this.add(jButton5);this.add(jButton6);this.add(jLabel6);c = co.con();s = c.createStatement();}public void jButton4_actionPerformed(ActionEvent e) {Shangjiface jiemian = new Shangjiface(main);main.setContentPane(jiemian);main.show();}public void jButton5_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(main);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation(5 * (fsize.width - dsize.width) / 6 + loc.x, 4 * (fsize.height - dsize.height) / 5 + loc.y);xia.show();}public void jButton1_actionPerformed(ActionEvent e) {String u = jTextField1.getText().toString();String p = jTextField2.getText().toString();try {rs = s.executeQuery("select *from card419 where name='" + p + "' and kahao='" + u + "'");if (rs.next()) {s.executeUpdate("update card419 set name=null, password=null,fee='0' where name like '" + p+ "' and kahao like '" + u + "'");jOptionPane1.showMessageDialog(this, "删除成功!");jTextField1.setText("");jTextField2.setText("");} elsejOptionPane1.showMessageDialog(this, "卡号与用户名不匹配!请重新输入");} catch (SQLException N) {System.out.println(N);}}public void jButton2_actionPerformed(ActionEvent e) {String u = jTextField3.getText().toString();String p = jTextField4.getText().toString();String n = jTextField5.getText().toString();try {rs = s.executeQuery("select fee from card419 where name like '" + p + "' and kahaolike '" + u + "'");if (rs.next()) {float y = rs.getFloat(1);int W = Integer.parseInt(n);float g = y + W;s.executeUpdate("update card419 set fee='" + g + "' where name like '" + p + "' and kahao like '" + u + "'");if (n.equals("") == false) {jOptionPane1.showMessageDialog(this, "冲值成功!金额总计为" + g + "元");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");}if (n.equals("") == true) {jOptionPane1.showMessageDialog(this, "未填写金额!!");}} elsejOptionPane1.showMessageDialog(this, "卡号与用户名不匹配!请重新输入");} catch (SQLException N) {jOptionPane1.showMessageDialog(this, "冲值失败!请检查金额书写格式!");System.out.println(N);} catch (Exception B) {jOptionPane1.showMessageDialog(this, "冲值失败!请检查金额书写格式!");}}public void jButton3_actionPerformed(ActionEvent e) {try {String u = jTextField6.getText().toString();String p = jTextField7.getText().toString();String n = jTextField8.getText().toString();String l = jPasswordField1.getText().toString();String m = jPasswordField2.getText().toString();if (u.equals("") == false && p.equals("") == false && n.equals("") == false && l.equals("") == false&& m.equals("") == false) {rs = s.executeQuery("select kahao from card419 where kahao like '" + u + "'and name <> 'null'");if (rs.next()) {jOptionPane1.showMessageDialog(this, "卡号" + u + "已经被使用!");}else {rs = s.executeQuery("select kahao from card419 where kahao like '" + u + "'");if (!rs.next())jOptionPane1.showMessageDialog(this, "卡号" + u + "不存在!");else {if (l.equals(m) == false) {jOptionPane1.showMessageDialog(this, "两次密码不同!!");}if (l.equals(m) == true) {s.executeUpdate("update card419 set name='" + p + "', password='" + m + "',fee='" + n+ "' where kahao='" + u + "'");jOptionPane1.showMessageDialog(this, "成功添加新卡号" + u + "!");jTextField6.setText("");jTextField7.setText("");jTextField8.setText("");jPasswordField1.setText("");jPasswordField2.setText("");}}}}else {jOptionPane1.showMessageDialog(this, "请输入完整!不能有空项");}}catch (SQLException E) {System.out.println(E);jOptionPane1.showMessageDialog(this, "添加失败!请检查书写格式!");} catch (Exception M) {jOptionPane1.showMessageDialog(this, "添加失败!请检查书写格式!");}}public void jButton6_actionPerformed(ActionEvent e) {huanji jiemian = new huanji(main);main.setContentPane(jiemian);main.show();}}class guanli_jButton6_actionAdapter implements ActionListener {private guanli adaptee;guanli_jButton6_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton6_actionPerformed(e);}}class guanli_jButton3_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton3_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton3_actionPerformed(e);}}class guanli_jButton2_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton2_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton2_actionPerformed(e);}}class guanli_jButton1_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton1_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton1_actionPerformed(e);}}class guanli_jButton4_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton4_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton4_actionPerformed(e);}}class guanli_jButton5_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton5_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton5_actionPerformed(e);}}***************guanlidenglu类********************package wbsys.view;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import wbsys.dao.guanli;public class guanlidenglu extends JPanel {Face main;JButton jButton1 = new JButton();JButton jButton2 = new JButton();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JTextField jTextField1 = new JTextField();JPasswordField jPasswordField1 = new JPasswordField();JLabel jLabel3 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel4 = new JLabel();public guanlidenglu(Face f) {try {main = f;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jButton1.setBounds(new Rectangle(61, 350, 57, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("确定");jButton1.addActionListener(new guanlidenglu_jButton1_actionAdapter(this));jButton2.setBounds(new Rectangle(174, 351, 57, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("重置");jButton2.addActionListener(new guanlidenglu_jButton2_actionAdapter(this));jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setBounds(new Rectangle(42, 177, 97, 25));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("密码");jLabel2.setBounds(new Rectangle(50, 230, 80, 20));jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(110, 180, 80, 20));jPasswordField1.setForeground(Color.magenta);jPasswordField1.setText("");jPasswordField1.setBounds(new Rectangle(110, 230, 80, 20));jLabel3.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel3.setForeground(Color.magenta);jLabel3.setText("请勿尝试破解密码!");jLabel3.setBounds(new Rectangle(20, 70, 390, 40));jOptionPane1.setBackground(Color.magenta);jOptionPane1.setForeground(Color.green);jLabel4.setText("");jLabel4.setBounds(new Rectangle(0, 0, 650, 488));this.add(jLabel2);this.add(jLabel1);this.add(jTextField1);this.add(jPasswordField1);this.add(jLabel3);this.add(jButton1);this.add(jButton2);this.add(jLabel4);}public void jButton1_actionPerformed(ActionEvent e) {String u = jTextField1.getText();String U = "root";String p = jPasswordField1.getText();String P = "1234";if (u.equals(U) == true && p.equals(P) == true){guanli shang = new guanli(main);main.setContentPane(shang);main.show();} else if (u.equals("") == false && p.equals("") == false) {jOptionPane1.showMessageDialog(this, "信息输入错误!请重新输入!");}}public void jButton2_actionPerformed(ActionEvent e) {jTextField1.setText("");}}class guanlidenglu_jButton2_actionAdapter implements ActionListener { private guanlidenglu adaptee;guanlidenglu_jButton2_actionAdapter(guanlidenglu adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton2_actionPerformed(e);}}class guanlidenglu_jButton1_actionAdapter implements ActionListener { private guanlidenglu adaptee;guanlidenglu_jButton1_actionAdapter(guanlidenglu adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton1_actionPerformed(e);}}****************huanji类********************package wbsys.dao;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import javax.swing.event.AncestorEvent;import javax.swing.event.AncestorListener;import wbsys.entity.Lianjie;import wbsys.view.Face;import wbsys.view.Shangjiface;import wbsys.view.xiajiface;public class huanji extends JPanel {Face main;Lianjie lian = new Lianjie();Connection con;Statement s;ResultSet rs;public huanji(Face g) {try {main = g;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jComboBox1.setForeground(Color.magenta);jComboBox1.setBounds(new Rectangle(110, 140, 75, 20));jComboBox2.setForeground(Color.magenta);jComboBox2.setBounds(new Rectangle(110, 200, 75, 20));jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(110, 260, 75, 20));jButton1.setBounds(new Rectangle(41, 349, 57, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("确定");jButton1.addActionListener(new huanji_jButton1_actionAdapter(this));jButton2.setBounds(new Rectangle(128, 349, 57, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("上机");jButton2.addActionListener(new huanji_jButton2_actionAdapter(this));jButton3.setBounds(new Rectangle(212, 350, 57, 20));jButton3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton3.setForeground(Color.magenta);jButton3.setText("下机");jButton3.addActionListener(new huanji_jButton3_actionAdapter(this));jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setText("原机号");jLabel1.setBounds(new Rectangle(30, 140, 64, 14));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("新机号");jLabel2.setBounds(new Rectangle(30, 200, 53, 15));jLabel3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel3.setForeground(Color.magenta);jLabel3.setText("卡号");jLabel3.setBounds(new Rectangle(30, 260, 42, 15));jOptionPane1.addAncestorListener(new huanji_jOptionPane1_ancestorAdapter(this));jLabel4.setText("");jLabel4.setBounds(new Rectangle(0, 0, 650, 488));this.add(jButton1);this.add(jButton2);this.add(jButton3);this.add(jComboBox1);this.add(jComboBox2);this.add(jTextField1);this.add(jLabel1);this.add(jLabel2);this.add(jLabel3);this.add(jLabel4);con = lian.con();s = con.createStatement();rs = s.executeQuery("select ID from computer419 where onuse='Y' order by ID");while (rs.next()) {jComboBox1.addItem(rs.getInt(1));}rs = s.executeQuery("select ID from computer419 where Onuse='N' order by ID");while (rs.next()) {jComboBox2.addItem(rs.getInt(1));}}JComboBox jComboBox1 = new JComboBox();JComboBox jComboBox2 = new JComboBox();JTextField jTextField1 = new JTextField();JButton jButton1 = new JButton();JButton jButton2 = new JButton();JButton jButton3 = new JButton();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel4 = new JLabel();public void jButton2_actionPerformed(ActionEvent e) {Shangjiface jiemian = new Shangjiface(main);main.setContentPane(jiemian);main.show();}public void jButton3_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(main);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation(5 * (fsize.width - dsize.width) / 6 + loc.x, 4 * (fsize.height - dsize.height) / 5 + loc.y);xia.show();}。

网吧管理计费系统课程设计

网吧管理计费系统课程设计

网吧管理计费系统课程设计一、课程目标知识目标:1. 让学生理解网吧管理计费系统的基本原理和功能需求;2. 掌握网吧管理计费系统中所涉及的数据库、编程语言和操作系统知识;3. 学会分析网吧业务流程,设计合理的计费策略和系统模块。

技能目标:1. 培养学生运用所学知识解决实际问题的能力,能够独立设计和开发网吧管理计费系统;2. 提高学生的团队协作能力,学会与他人共同分析和解决项目问题;3. 培养学生运用现代信息技术手段,掌握网吧管理计费系统的安装、调试和优化方法。

情感态度价值观目标:1. 培养学生对信息技术课程的兴趣,激发学生主动学习的积极性;2. 培养学生的创新意识和实践能力,鼓励学生勇于尝试新方法,解决实际问题;3. 增强学生的法律意识和道德观念,使学生认识到网吧管理计费系统在社会生活中的重要意义,树立正确的价值观。

课程性质:本课程为信息技术课程,结合学生年级特点,注重理论知识与实践操作的结合,培养学生的实际操作能力和解决问题的能力。

学生特点:学生具备一定的计算机操作和编程基础,对信息技术课程感兴趣,但可能缺乏实际项目经验。

教学要求:教师需结合课程目标和学生特点,采用案例教学、项目驱动等方法,引导学生主动参与,提高课堂实践性。

同时,注重评估学生的具体学习成果,确保课程目标的实现。

二、教学内容1. 网吧管理计费系统的基本概念与功能需求分析:- 理解网吧业务流程;- 掌握计费系统的功能模块设计;- 学习相关教材章节,如《信息技术》第九章“数据库应用系统设计”。

2. 数据库知识与应用:- 学习数据库设计原理,如实体关系模型、关系数据库设计;- 掌握SQL语言进行数据查询和操作;- 教材参考:《数据库原理与应用》第三章“数据库设计”与第四章“SQL语言”。

3. 编程语言与开发工具:- 学习C#或Java等面向对象编程语言的基本语法;- 掌握Visual Studio或Eclipse等开发工具的使用;- 教材参考:《C#程序设计》或《Java程序设计》基础章节。

java机房收费管理系统课程设计

java机房收费管理系统课程设计

java机房收费管理系统课程设计一、课程目标知识目标:1. 让学生掌握Java语言中面向对象编程的基本原理,包括类的定义、对象的使用、继承与多态;2. 使学生了解并应用Java集合框架,如List、Map等,用于存储和管理数据;3. 帮助学生掌握Java异常处理机制,提高程序的稳定性和可靠性;4. 引导学生掌握基本的数据库操作,如连接数据库、执行SQL语句、处理查询结果。

技能目标:1. 培养学生运用Java语言设计并实现一个机房收费管理系统的能力;2. 培养学生分析实际问题的能力,将实际问题转化为计算机程序;3. 培养学生团队协作能力,分工合作完成项目开发。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们探索计算机科学领域的热情;2. 培养学生严谨、细心的编程态度,养成良好的编程习惯;3. 培养学生面对问题时的积极心态,勇于克服困难,善于沟通交流。

课程性质:本课程为实践性较强的课程,以项目驱动的方式进行教学,让学生在实际项目中掌握Java编程知识。

学生特点:学生已具备一定的Java基础,具有一定的编程能力,但实际项目经验不足。

教学要求:注重理论与实践相结合,强调动手实践,提高学生的实际编程能力。

在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能在课程中取得进步。

通过课程学习,使学生能够独立完成机房收费管理系统的设计与实现,为今后的实际工作打下坚实基础。

二、教学内容1. 面向对象编程基础:- 类与对象的概念- 封装、继承与多态- 抽象类与接口2. Java集合框架:- List接口及其实现类- Map接口及其实现类- 集合框架的使用场景3. Java异常处理:- 异常的概念与分类- try-catch-finally结构- 自定义异常4. 数据库操作:- JDBC简介- 数据库连接与操作- SQL语句执行5. 机房收费管理系统项目实战:- 需求分析- 系统设计- 编码实现- 测试与优化教学内容安排与进度:第一周:面向对象编程基础第二周:Java集合框架第三周:Java异常处理第四周:数据库操作第五周:机房收费管理系统项目实战(一)第六周:机房收费管理系统项目实战(二)第七周:课程总结与复习教材章节关联:1. 面向对象编程基础:《Java编程思想》第1-4章2. Java集合框架:《Java核心技术》第6章3. Java异常处理:《Java核心技术》第7章4. 数据库操作:《Java数据库编程》第1-3章5. 机房收费管理系统项目实战:结合教材内容,自行设计实践项目教学内容确保科学性和系统性,以教材为基础,结合实际案例,让学生在掌握理论知识的同时,提高实际编程能力。

网吧计费管理系统设计

网吧计费管理系统设计

网吧计费管理系统设计本科毕业设计(论文) 目录中文摘要 1英文摘要 21 绪论 31.1选题的背景和意义 31.2 研究目的 31.3 研究内容 31.3.1 服务器端 41.3.2 客户端 41.4 系统开发技术与工具简介 41.4.1 C/S结构简介 51.4.2 Java语言 61.4.3 SQL Server 2000数据库71.4.5 开发工具JBuilder9 82 系统分析102.1 可行性分析102.1.1 经济可行性102.1.2 时间可行性102.1.3 技术可行性112.1.4 社会可行性112.2 系统需求分析112.2.1 系统非功能性需求122.2.2 功能性需求132.3系统模块分析143 数据库设计193.1 数据库的需求分析 193.2 数据库E-R图和数据库表193.3 数据库连接204 系统的设计和实现235 系统调试与安装295.1 网吧计费系统登录测试295.2 用户进入测试结果截图296 总结 326.1 系统的不足与前景 32致谢33参考文献34网吧计费管理系统摘要本课题研究的网吧计费系统是一款基于C/S结构,采用SQL Server2000 数据库,利用Java设计开发的网吧计费系统。

文中主要介绍了系统的基本功能和系统结构组成情况,内容包括系统需求分析、系统设计原则、系统设计思想、系统功能模块描述、数据库设计、系统通信过程、通信协议等,同时还对开发环境JBuilder9 ,SQLServe2000数据库、Java技术的使用进行简单介绍,并列出了一些程序代码以说明该系统应用程序设计的实现过程。

本系统要求由服务器端、客户端2个模块组成,它们分别实现不同的功能,服务器端的功能有卡号管理、信息管理、帮助、退出系统等4个主要功能。

各个功能有分别实现不同的子功能。

客户端的功能与其雷同。

关键字 C/S 结构/SQL Server 2000 /JavaFEE-CHARGING AND MANAGEMENT SYSTEMON NET BARABSTRACTThe research of the Internet is a billing system based on C / S structure, using SQL Server2000 database, using Java design and development of the Internet billing system. The article introduces the basic functions of the system structure and composition of the system,including system requirements analysis, system design principles, system design, system function module description, database design, system communication, communication protocols, etc., but also on the development environment JBuilder9, SQL Serve2000 database, Java technology, the use of a brief introduction and a list of some code to illustrate the application of the system design process to achieve. This paper introduces an internet cafe charging system based on java. By analyzing the java technology of socket, thread, vector, JDBC and the function and characteristic of the system, we propose designing thought and designing model and designing method. Thus, the system is more secure and fault tolerant.KEYWORDS C/S structure,SQL Server2000,Java1 绪论1.1选题的背景和意义网吧的存在既然有如此重要的意义,通过网络扩大网吧的对外宣传,树立网吧的自身的新形象,改进一向给人“小、散、乱、差”印象的网吧行业形象,有着非同寻常的意义。

基于Java技术的网吧计费系统设计

基于Java技术的网吧计费系统设计

if (m essag e = = null ) { / / 如果服务器传来的信息为空, 则断开此次连接 p arent. listen = nu ll; p arent. socket = null; return; } jT ex tF ield 2 . setT ex t(m essage); S tr ing leavem oney = " "; S tringT okeniz er str = n ew S tringT ok en izer(m essage, ": " ); / / 用 S tringT ok en izer 类来实现读取分段字符 S tring keyw ord = str. nex tT oken( ); if ( str. has M oreT okens( ) ) { leavem oney = str . nex tT oken( ); } if ( k eyw ord. equa lsIgnoreCa se( " shangji" ) ) / / 上机信息的处理 { jT ex tF ield 2 . setT ex t( " 上机成功, 你可以上机了! ! \n" ); } if ( k eyw ord. equa lsIgnoreCa se( " chaxun " ) ) / / 查询信息的处理 { JOp tionPane. showM essageD ialog ( null, " 注意 ! 你的余额是 : " + leavem oney + " \n " ); } if ( k eyw ord. equa lsIgnoreCa se( "x iaji" ) ) / / 下机信息的处理 { / / 显示下机信息处理 } if ( k eyw ord. equa lsIgnoreCa se( "gb " ) | k eyw ord. equa lsIgnoreC ase( "db " ) ) / / 信息发送的处理 { JOp tionPane. showM essageD ialog ( null, " 服务器信息: " + leavem oney + " \n " ); } if ( k eyw ord. equa lsIgnoreCa se( " chucuo " ) ) / / 系统出错信息的处理 { jB u tton 1 . setE nabled ( true); JOp t ionP ane. showM essag eD ia log ( null, " 服务器信息 : " + leavem oney + " \n" ); } if ( k eyw ord. equa lsIgnoreCa se( "x iugai " ) ) { JOp tionPane. showM essageD ialog ( null, " 密码修改成功 ! " ); } } } / / 结束 run 方法 }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章网吧计费管理系统学习目标:能使用Java集成开发环境,运用Swing设计图形界面,运用JDBC访问数据库,掌握事件处理编程,了解简单两层C/S项目的开发及简单面向对象程序的设计过程,发展基本的团队协作开发能力。

学习寄语:虽然本项目并不是一个商业项目,其产品也不能用来赚钱,但从中你可以学到实际开发中的许多经验和技巧,获得一种“学有所用”、“学有所得”的成就感,同时赢得老师和同学(同事)对你的格外尊重。

在此项目的学习中,你不但是个学生,还是一个职业人,将与同事一起尽全力完成你所要做的工作,并再次验证“天道酬勤”的真理。

我们的信念是:“不抛弃,不放弃”。

你的改变和收获是老师真诚的期待。

1.1 背景介绍1.1.1 业务背景“海之星”网吧,是一个小型网吧,以前是人工记帐,现需要开发一个简单的网吧计费管理系统。

原人工管理的主要过程如下:客户在门口服务台,出示上机卡,若是新客户则先发新卡;管理员先查询是否有空机器,若有则根据上机卡号查到该卡对应的记录(账簿),若有余额(〉5元),则分配一个空闲的机器号给客户,客户根据机器号对号入座,管理员记下客户卡号、上机机器号、上机时间。

客户下机要到门口的服务台,请求下机,管理员根据当前时间、上机时间及费率计算出本次上机费用,并记录,同时将费用从卡余额中扣除,若费用不够则需充值。

原手工系统主要有如下缺点:1 手工记帐,管理员工作量大,且易出错;2 超时超费使用不能及时发现。

因此需要开发一个简易计费管理软件,取代人工记帐方式,由软件统一管理记录上下机、计费、上机卡、机器情况,提供简单统计功能,超时超费提醒功能等。

1.1.2 技术背景本系统要求使用java技术开发,使用数据库(如ACCESS,SQLServer)保存数据,集成开发环境可使用支持可视化GUI界面设计的主流工具(如eclipse\ant bean\jbuilder)。

开发者应有java程序设计语言、SWING基本GUI组件、文件使用、JDBC存取数据库、使用一种集成开发工具的基本知识和技能。

系统采用两层C/S体系结构,C端负责通过GUI与管理员交互、处理业务逻辑及存取数据库,S端主要是数据库系统。

系统分析设计主要采用面向对象的分析设计方法。

友情提示:对项目有了一个最基本的认识后,是不是立即准备大干一场?是否要问一问值不值得干?能不能干?商业项目一般可以从经济性、技术性、法律社会等方面进行可行性分析,但本项目作为一个学习型项目显然无利可图、技术也欠缺(事实上技术正是要学习的东西)、好在项目是合法的。

那是否继续?当然!因为本项目的目标不是在合法的前提下获取最大利润,而是习得知识和技能,只要你愿意,就可以继续进一步了解“网吧计费管理系统”,Let’s go!1.2 需求分析1.2.1功能需求分析系统需求分析的主要任务是从用户角度考察系统应具有哪些功能及非功能性需求,对于网吧计费管理系统,用户主要是指系统管理员,系统的主要功能是:登录、上机、下机、卡管理(发卡、删卡、充值、查询)、机器管理(添加机器、删除机器、查询状态、修改状态),统计功能(日、月费用统计),口令管理(添加用户、删除用户、修改口令),参数设置(时段费率),使用帮助。

主要使用流程是:管理员登录,根据客户请求上机,根据客户请求下机。

主要功能的用例(use case)描述如下:一上机1 管理员输入空闲机器号,上网人输入口令、卡号,请求上机。

2 系统验证卡号,检查卡中余额,卡状态3系统获取当前系统时间作为上机开始时间4 系统修改该机器的使用标志为“在用”,卡标志为“在用”。

5 系统记录上机信息(卡号、机器号、上机时间)6 系统提示上机成功若1中无空闲机器又请求上机的,系统提示“没用空闲机器”,2中卡验证未通过,提示“无此卡号”,余额不足,提示“余额不足”,卡状态为“在用”,则提示“不能一卡多用”。

二下机1 管理员选择被使用的机器号,请求下机2 系统获取系统当前时间作为下机时间;3 系统计算费用;4 系统显示应缴费用5 系统记录下机时间和此次费用;6 系统从卡中扣费,修改卡状态为“空闲”;7 系统修改该机器的状态为“空闲”;8系统显示本次上机记录信息,提示下机成功三登录1 管理员输入用户名和密码,请求进入系统2 系统验证用户名和密码3 系统显示主界面若一次验证不通过,则提示再输入一次,仍不通过则系统退出。

四卡维护卡有三种状态:停用、空闲、在用。

发新卡:1 管理员输入卡号(保证卡号唯一)2 管理员输入卡初始金额3 上网人输入用户名、口令4 管理员请求添加新卡5 系统保存卡号、金额、用户名和密码,状态为“空闲”6 系统提示添卡成功,显示卡号及金额,以便核对。

7管理员将系统生成的有卡号、用户名的纸卡给上网人。

充值:1 管理员输入卡号2 系统显示该卡信息(卡号、用户名、余额、状态)3 管理员核对后,输入充值金额4 系统计算并保存该卡总金额5 系统显示充值后的卡信息(卡号、用户名、余额、状态)。

查询卡信息:1 管理员输入卡号或请求察看所有卡信息2 系统查询卡信息(卡号、用户名、余额)并显示删除卡:1管理员输入卡号2 系统查询卡余额及状态3 若余额已结清且状态为“空闲”,则将该卡信息删除4 系统提示删除成功若有余额或“在用”则不能删除五机器维护机器有三种状态:停用、空闲、在用。

添加机器:1 管理员输入机器号,请求添加2 系统验证机器号是否重复3 系统添加机器记录信息(机器号、状态为“空闲”)4 系统提示添加成功删除机器:1 管理员输入机器号,请求删除2 系统删除相应机器信息3 系统提示删除成功查询机器状态:1管理员输入机器号或请求察看所有机器信息2 系统查询并显示机器信息(机器号和状态)并显示六管理员口令管理添加用户1 管理员输入用户名、密码和确认密码,请求添加2 系统验证用户是否是新用户,两次输入的密码是否相同3 系统添加用户、密码信息4 系统提示添加成功删除用户1 管理员输入用户名、密码2 系统验证用户名、密码是否正确3 系统删除用户名、密码记录4 系统提示删除成功修改密码1管理员输入用户名、密码,请求修改密码2 系统验证用户名、密码是否正确3 管理员输入新密码、及确认密码4 系统保存新密码5 系统提示修改成功七统计管理1 管理员输入起始时间(年、月、日),结束时间,请求按日、月、年汇总2 系统查询上网记录,计算、统计出时间段的总费用、人次、总上机时间等信息。

3 系统显示上述信息八参数管理时段费率设置:0 系统显示当前设置1 管理员设置时间段(时、分)及对应的费率,请求保存2 系统保存设置3 系统提示保存成功超时报警定时器间隔设置九超时超费报警1 设置定时器为周期触发方式,触发间隔由参数获得,默认为30分钟2 定时器到时,系统查询当前正在上机的记录,计算其上机时间及费用,计算其卡中余额是否低于最低费用。

3 系统提示已超费卡号、机器号,及超的费用本系统除了功能性需求,还有易用性、可靠性、安全性等要求,可以在实现上述功能性需求的基础上,进一步实现完善非功能性要求。

友情提示:本文使用“用例”法分析功能性需求,属于面向对象分析(OOA)法,其实质就是从用户角度,通过观察、与用户交谈等方式,记录下用户希望如何使用系统,系统相应需要实现哪些功能。

分析用户需求一般由系统分析人员完成,其核心能力是熟练掌握业务领域的知识和沟通的技巧,需求分析的最大难点在于需求的可变性,最令开发人员气馁的莫过于辛苦设计实现了一个功能,用户突然说不需要这个功能了,另一个常见的问题是隐蔽性的需求(行业惯例、日常规则)常被用户和分析人员忽略。

不同的需求对于客户而言重要性是不同的,一般需要对需求划分优先级,优先级高的优先设计实现。

你能否从上述一到九大用例描述中找出哪些用例是高优先级的?1.2.2 业务对象分析根据上面的主要用例描述,可以分析出系统的主要业务对象,它是设计阶段核心类图的基础(不一定一一对应),这些对象必须实际存在,其行为和属性应与问题领域相关:1 上网卡:主要维护上网卡的相关信息。

卡号、密码、余额、卡用户名、卡状态(在用、空闲、停用)2 机器:主要维护上网吧计算机的相关信息。

机器号、使用标志(在用、停用、空闲)、备注3 费用记录:记录每次上机的信息。

记录编号、卡号、机器号、开始上机时间,下机时间、费用4 费率记录:起始时间、终止时间,费率5 管理员:利用1—4完成各种业务操作。

1.2.3 验收测试要求用户要求开发产品,产品开发完成后,需要交付用户验收,验收要求常常是合同中的重要组成部分,这是一个必经的环节,主要思路是按照用户使用的过程测试系统,越频繁使用的功能越要多测试。

本系统功能性需求验收测试的基本要求如下:前置条件:1 除口令表有初始用户名和密码外,各库表为空。

2 程序安装配置正确,能正常启动运行。

一初始化数据1 启动程序,进入“卡维护”,选“发新卡”,输入一条数据记录,退出,进入“信息浏览”,查看记录是否已被正确加入;退出“信息浏览”,再进入“发新卡”,连续发3张卡,其中有张卡余额为0;再进入“信息浏览”,查看记录是否已被正确加入。

2 同理按1 ,添加机器。

3 进入“费率维护”,设置费率。

二功能测试1 上下机测试。

进入“上机”,观察上机界面,有无可用机器,按说明操作上机,连续上机3次,第一次正确输入,第二次输入不存在的卡号,第三次输入错误口令;进入“下机”界面,看有无正确的上机,连续下机两次。

观察输出信息界面,看内容是否正确(金额、卡号,时间,费用)。

已下机器是否已被同步从上机下拉表中清除。

再进入“上机”,比对可选空闲机器是否正确,输入已上机用户的卡号,观察结果;输入卡金额不足的卡号,观察结果;不输入任何值,直接按确认的结果。

2 统计测试,进入“统计”功能,按日,月,年查询统计,与库中实际数据比对,不同日、月、年分别查2次3进入“卡维护”,进入“卡充值“,输入余额不足卡号,给卡充值,进入“信息浏览”,查看卡充值是否正确,并以此卡号上机;再进入“卡维护”的“信息浏览”,查看记录;然后选“删除卡”,连续删2张卡,应不能删除在线卡,并能标识出卡余额,以便清帐;进入“信息浏览”,查看记录是否已被正确删除。

正在上机的不能被删除。

选“修改密码”,输入正确的用户名、口令,修改成新口令;进入“信息浏览”,查看口令是否已更改;进入“上机”,以新口令上机。

4 同3测试“机器维护”中的删除机器功能,应不能删除在线机器5 测试“费率维护”,退出程序,重启动,进入“费率维护”,修改费率,上下机,观察费用计算结果。

6 测试超时报警功能:发一张新卡,初始额刚达到最低标准,以此卡上机,为缩短超时等待时间,可设置定时器间隔为1分钟,等待2分钟,看系统是否能正确报警。

相关文档
最新文档