版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 校园卡管理系统 姓 名: 学 号: 专业班级: 软件工程 软件102 系 (院): 计算机工程学院 设计时间: 2012.6.112009.6.28 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的
2、能力。2课程设计任务与要求:基本任务是使得学生通过课程设计掌握利用java进行底层的网络应用程序设计、多媒体应用设计、JDBC编程的基本方法,学会综合利用awt包和Swing组件包进行图形用户界面的设计,同时,对java的事件委托模型、异常处理机制、包和接口的概念及多线程技术有比较熟练的把握。本课程设计的选题:校园卡管理系统,模拟了校园卡系统的一些功能.课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。 (1
3、) 每位同学通过智能教学平台需提交可独立运行的应用程序,要求程序书写规范,源程序需加必要的注释;(2) 每位同学需独立提交书面设计报告书(每人一份),要求编排格式统一、规范、内容充实,同时通过教学平台提交设计报告电子版;设计报告书封面和正文格式要符合淮海工学院课程设计报告书封面与正文标准格式要求,设计报告内容不少5000字。其正文一般应包括需求分析、概要设计、详细设计、调试分析、运行界面(附主要代码)、测试结果、附录或参考资料、心得体会等内容。 (3) 提交日期:第20周周一(2009年6月29日)之前。3课程设计说明书1、需求分析(用例图) 课题:校园卡管理系统 (1)。选题意义近年来,由于
4、国家在教育方面的投入越来越大,而且越来越多的人意识到教育的重要性,以及高校扩招。导致在校学生越来越多,这就意味着校园卡的是用越来越多,加大了校园卡的管理难度,那么设计一套能够行之有效的对管理校园卡进行管理的校园卡管理系统是非常有必要的。所以,我觉得做校园卡管理系统非常有意义。(2)。功能介绍校园卡管理系统主要有两类用户,一是系统管理员,负责对校园卡系统信息进行管理,可以实现用户信息维护,办理新卡,卡挂失/卡重置,修改密码,冲值统计,消费统计,查询信息等操作。二是普通用户,可以实现修改密码,冲值,消费,余额查询,查询个人消费和冲值记录等操作。(3)。根据系统分析画出如下用例图 2、概要设计(类图
5、)用户类CardUsers的类图校园卡类SchoolCard类的类图校园卡使用记录类CardUserRecords的类图3、详细设计(类的设计,数据库)数据库设计根据UML图,写出Java程序的代码举例实体类CardUsers类源代码package userGUI;public class CardUsers public String UserID;/用户编号 public String UserName;/用户名; public String UserSex; public String UserPwd; public String UserType; public CardUsers(S
6、tring UserID) this.UserID = UserID; public CardUsers(String UserID, String UserName, String UserSex, String UserPwd, String UserType) throws PwdShortException if(UserPwd.length()6) throw (new PwdShortException(); else this.UserID = UserID; this.UserName = UserName; this.UserSex = UserSex; this.UserP
7、wd = UserPwd; this.UserType = UserType; public String getUserID() return UserID; public void setUserID(String UserID) this.UserID = UserID; public String getUserName() return UserName; public void setUserName(String UserName) this.UserName = UserName; public String getUserPwd() return UserPwd; publi
8、c void setUserPwd(String UserPwd) throws PwdShortException if(UserPwd.length()=money) this.balance=balance-money; else JOptionPane.showMessageDialog(null,卡上余额不够消费,请先充值!); else throw (new UseStateException(); public boolean getCardState() return isUsing; public void setState(boolean state) this.isUsi
9、ng = state; public boolean check() if(this.isUsing) return true; else return false; Override public String toString() return 卡号= + cardNo + , 用户号= + UserID + , 密码= + password + , 余额= + balance + , 是否可用= + isUsing ; 4编程实现 实现数据库连接 package operationGUI;import java.sql.*;public class DBAccess private Co
10、nnection conn=null; private Statement stmt=null; public ResultSet rs=null; private PreparedStatement prestmt=null; private String driver=sun.jdbc.odbc.JdbcOdbcDriver; private String url=jdbc:odbc:CardConn;/自定义数据源名 private String user=jane; private String pwd=; public String notes=数据库操作提示; /实例方法:实现数据
11、库连接 public void dbconn() try Class.forName(driver); conn=DriverManager.getConnection(url, user, pwd); stmt=conn.createStatement(); catch (ClassNotFoundException ec) System.out.println(ec); catch (SQLException es) System.out.println(es); catch (Exception ex) System.out.println(ex); /实现数据库查询并返回查询记录 pu
12、blic ResultSet dbSelect(String selString) try rs=stmt.executeQuery(selString); catch (SQLException es) System.out.println(es); notes=数据库查询出现异常; return rs; /数据库更新 public String dbUpdate(String updateString) try prestmt=conn.prepareStatement(updateString); prestmt.executeUpdate(); notes=记录更新成功; catch
13、(SQLException es) System.out.println(es); notes=数据库更新出现异常; return notes; /插入数据 public String dbinsert(String insertString) try prestmt=conn.prepareStatement(insertString); prestmt.executeUpdate(); notes=插入记录成功; catch (SQLException es) System.out.println(es); notes=数据库插入出现异常; return notes; /删除 public
14、 String dbDelete(String delString) try prestmt=conn.prepareStatement(delString); prestmt.executeUpdate(); notes=删除成功; catch (SQLException es) System.out.println(es); notes=数据库删除现异常; return notes; /关闭数据库 public void dbclose() if(conn!=null) try rs.close(); stmt.close(); conn.close(); catch (Exception
15、 e) 5、调试分析 用户登录界面/确定按钮代码private void jBtnOKActionPerformed(java.awt.event.ActionEvent evt) if(jRadioButtonp.isSelected() chtype=普通用户; else chtype=管理员; db.dbconn(); sql=select * from CardUsers; db.dbSelect(sql); try while(db.rs.next() System.out.println(b);/如果用户号,密码,身份相符 if(txtUID.getText().equals(db
16、.rs.getString(UserID) & String.valueOf(txtPWD.getPassword().equals(db.rs.getString(UserPwd) & chtype.equals(db.rs.getString(UserType) /显示用户名,并新建当前用户对象,存储有关信息。 currentuser=new CardUsers(txtUID.getText(); currentuser.UserPwd= String.valueOf(txtPWD.getPassword(); currentuser.UserID=txtUID.getText(); cu
17、rrentuser.UserType=chtype; currentuser.UserName=db.rs.getString(UserName); jlbnote.setText(欢迎你:+currentuser.UserName+!);System.out.println(b); new SchoolCardMainGUI(currentuser).setVisible(true);System.out.println(c);/主界面 this.dispose(); db.dbclose(); else jlbnote.setText(账号,密码,身份不符,请检查输入信息是否正确!); c
18、atch (SQLException e) System.err.print(e.toString(); db.dbclose(); 主界面用户信息录入界面/添加用户代码 private void jbtnAddActionPerformed(java.awt.event.ActionEvent evt) try Connection con=DriverManager.getConnection(jdbc:odbc:CardConn,jane,); java.sql.Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITI
19、VE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=sql.executeQuery(SELECT * FROM CardUsers); while(rs.next() if(rs.getString(1).equals(jtxtUserID.getText() break; if(rs.isAfterLast()=false) JOptionPane.showMessageDialog(this,已经添加此用户!); else m.removeAllElements(); CheckValiddate ck=new CheckValiddate(jtxt
20、UserID); if(ck.check(0) String uid=jtxtUserID.getText(); String uname=jtxtUserName.getText(); String upwd=jtxtPwd.getText(); try user=new CardUsers(uid,uname,usex,upwd,utype); /userlist.add(user); m=new DefaultListModel(); catch(PwdShortException e) userlist.add(user); for(int j=0;j=6) if(txtPwdnew.
21、getText().equals(txtPwdNA.getText() db.dbconn(); String sql=update CardUsers set UserPwd=+txtPwdnew.getText()+where UserID=+currentuser.UserID+; db.dbUpdate(sql); db.dbclose(); jlbnote.setText(修改密码成功!); / JOptionPane.showMessageDialog(this, chenggong, tishi,JOptionPane.WARNING_MESSAGE); else jlbnote
22、.setText(两次输入密码不一致!); 办理新卡界面校园卡操作界面/查询按钮响应代码 private void jbtnSearchActionPerformed(java.awt.event.ActionEvent evt) / int j=0; mc.removeAllElements(); long cno=Long.parseLong(jtxtCardNo.getText(); /数据库 try Connection con=DriverManager.getConnection(jdbc:odbc:CardConn,jane,); java.sql.Statement sql=c
23、on.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=sql.executeQuery(SELECT * FROM SchoolCard); while(rs.next() if(rs.getString(1).equals(jtxtCardNo.getText() break; if(rs.isAfterLast()=true) JOptionPane.showMessageDialog(this,无此用户!); else sqls=select * from
24、SchoolCard where CardNo=+cno; dbo.DBoperation(sqls, 0); try while(dbo.db.rs.next() try card=new SchoolCard(dbo.db.rs.getString(2),dbo.db.rs.getString(3); card.cardNo=dbo.db.rs.getInt(1); card.setState(true); card.deposit(dbo.db.rs.getDouble(4); card.setState(dbo.db.rs.getBoolean(5); catch(UseStateEx
25、ception e) mc.addElement(card); cardlist.add(card); catch(SQLException e) dbo.db.dbclose(); jlbNote.setText(dbo.db.notes); jlistCard.setModel(mc); catch (SQLException ex) Logger.getLogger(DBUserEditnew.class.getName().log(Level.SEVERE, null, ex); /消费代码private void jbtnConsumeActionPerformed(java.awt
26、.event.ActionEvent evt) item = 消费; CheckValiddate ck = new CheckValiddate(jtxtConsume); if (ck.check(1) try money = Double.valueOf(jtxtConsume.getText(); card.consume(money); /调用卡的消费方法 sqls = update SchoolCard set balance= + card.getBalance() + where CardNo= + cno; save(sqls); catch (Exception e) e.
27、printStackTrace(); 校园卡操作查询界面/响应查询按钮代码private void jbtnSearchActionPerformed(java.awt.event.ActionEvent evt) CheckValiddate ck=new CheckValiddate(jtxtCardNo); if(ck.check(0) cno=Long.parseLong(jtxtCardNo.getText(); templist.clear(); if(flagi=0 &flagt=0) searchByCno(cno); else if(flagi=1 & flagt=0)/按卡号查询和操作名目联合查询 searchByCnoItem(cno,sitemsi); else if(flagi=1 & flagt=1) searchByCnoItemTime(cno,sitemsi,stime);/卡号,操作时间,操作名目联合查询 else if(flagi=0 & flagt=1) searchByCnoTime(cno,st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论