合肥学院计算机科学与技术系课程设计报告2012~2013学年第一学期课程Java课程设计课程设计名称信用卡在线管理系统专业班级11计本(4)班姓名黄伟指导教师张贯虹胡春玲2013年1月一.需求分析1、课程设计名称及内容课程设计名称:信用卡在线管理系统设计内容:设计一个信用卡管理系统,实现基于网络管理信用卡信息。2、任务和要求系统用户分为管理员、注册用户和普通用户。a)提供注册功能,系统的访问者可以注册成为注册用户,注册信息包括卡号、密码和其他个人信息。注册用户没有任何操作权限,必须经管理员审批通过后成为普通用户才有权操作。新注册的用户,卡上初始金额为0。b)普通用户可以执行现金转入、现金转出、个人信息修改、余额查询和交易记录查询功能。c)用户可以录入转入金额和转出金额,当转出金额大于信用卡的余额时,须判断透支金额是否在本卡的信用额度内(信用额度由管理员设定),如果在则允许透支,否则拒绝支出。d)当信用卡发生透支后,在20天内不计利息,20天后按每天1%计算利息,当透支金额+透支利息超过本卡的信用额度,则本卡自动转入“黑名单”(利息继续计算),不再允许进行现金转出操作。e)普通用户可以随时查看卡内余额。f)普通用户可以按时间段查看交易记录,包括转入、转出和透支情况。g)管理员可以审核注册用户,设定用户信用额度,批准成为普通用户。h)管理员可以查看系统内的黑名单,包括卡号和透支额度。二.设计1.数据库设计思想:(1)数据库的设计:我们使用的数据库是MicrosoftSQL2005。创建record和user表:createdatabasecard;usecard;createtablerecord(idintnotnullprimarykey,fromIdvarchar(100)notnull,toIdvarchar(50)notnull,moneyfloatnotnull,tradetimedatetime);createtableuser1(idvarchar(50)primarykeynotnull,passwordvarchar(50)notnull,namevarchar(100)notnull,typeint,moneyfloat,creditfloat,overdraftfloat,blacklistint);、交易表用户表(2)对数据库的操作Insert主要时用来对数据库进行插入操作,例如在record表中插入一条记录为,publicbooleaninsert(Recordrecord){Stringsql="insertintorecord(id,fromId,toId,money,tradetime)values(?,?,?,?,?)";try{PreparedStatementpre=conn.prepareStatement(sql);Calendarcalendar=Calendar.getInstance();calendar.setTime(record.getTradetime());pre.setInt(1,record.getId());pre.setString(2,record.getFromId());pre.setString(3,record.getToId());pre.setDouble(4,record.getMoney());pre.setDate(5,record.getTradetime());pre.execute();returntrue;}catch(SQLExceptione){e.printStackTrace();}returnfalse;}Delete是多数据表中的记录加以删除,例如对user表中的记录删除操作为:publicbooleandelete(Useruser){Stringsql="deletefrom[user]whereid=?";try{PreparedStatementpre=conn.prepareStatement(sql);pre.setString(1,user.getId());pre.execute();returntrue;}catch(SQLExceptione){e.printStackTrace();}returnfalse;}Update是对数据库中的信息加以修改!findAll是查找数据库中的所有记录!findById是通过用户给定的id好来对数据库进行扫描,查找出所有与输入的id相匹配的信息!同时也可以根据其他的关键字对数据库进行查找查找,例如是否是黑名单,是否已经有透支额了等等,具体的实现见代码!2.java程序的设计:主要以下几个包:--bean--User表示的是user表中的一条记录--Record表示的是record表中的一条记录--ChangePasswordBean是对修改密码时的所有属性的封装--zhucBean是在新用户注册时的一条记录,主要包括属性id,password,name;以及set和get方法!--dao--DBConnection用于连接数据库--RecordDAO接口是封装对数据表Record的操作--UserDAO接口是封装对数据表User的操作--exception--inputChangePasswordInfoNotRightException是用来显示输入的修改密码的出错的信息!--InputGetNumNotRightException是用户输入的取款金额不合法异常--InputSetNumNotRightException是用户输入的存款金额不合法异常--LoginInfoNotRightException是用户登陆是的不合法...