您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > java信用卡在线管理
合肥学院计算机科学与技术系课程设计报告2012~2013学年第一学期课程Java课程设计课程设计名称信用卡在线管理系统专业班级11计本(4)班姓名黄伟指导教师张贯虹胡春玲2013年1月2一.需求分析1、课程设计名称及内容课程设计名称:信用卡在线管理系统设计内容:设计一个信用卡管理系统,实现基于网络管理信用卡信息。2、任务和要求系统用户分为管理员、注册用户和普通用户。a)提供注册功能,系统的访问者可以注册成为注册用户,注册信息包括卡号、密码和其他个人信息。注册用户没有任何操作权限,必须经管理员审批通过后成为普通用户才有权操作。新注册的用户,卡上初始金额为0。b)普通用户可以执行现金转入、现金转出、个人信息修改、余额查询和交易记录查询功能。c)用户可以录入转入金额和转出金额,当转出金额大于信用卡的余额时,须判断透支金额是否在本卡的信用额度内(信用额度由管理员设定),如果在则允许透支,否则拒绝支出。d)当信用卡发生透支后,在20天内不计利息,20天后按每天1%计算利息,当透支金额+透支利息超过本卡的信用额度,则本卡自动转入“黑名单”(利息继续计算),不再允许进行现金转出操作。e)普通用户可以随时查看卡内余额。f)普通用户可以按时间段查看交易记录,包括转入、转出和透支情况。g)管理员可以审核注册用户,设定用户信用额度,批准成为普通用户。h)管理员可以查看系统内的黑名单,包括卡号和透支额度。二.设计1.数据库设计思想:(1)数据库的设计:我们使用的数据库是MicrosoftSQL2005。创建record和user表:createdatabasecard;usecard;createtablerecord(3idintnotnullprimarykey,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表中插入一条记录为,4publicbooleaninsert(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();5}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是用户登陆是的不合法异常--imp--RecordDAOImp是对接口RecordDAO中的方法的实现。--UserDAOImp是对接口UserDAO中方法的实现。6--service--ChangePasswordService是对修改密码服务中可能出现的不正常信息加以分类并且予以处理。--GetService是对用户输入的取款信息的不正常信息加以分类并且予以处理。--LoginService是对用户在登陆时输入信息的不正常信息加以分类并且予以处理。--SetService是对用户输入的存款信息的不正常信息加以分类并且予以处理。--view--ChangePasswordFrame是修改密码的操作界面。--GetFrame是用户进行取款操作的界面。--GuanlFram是管理员进行操作的界面。--LoginView是登陆主界面。--PtFram是普通用户的操作界面。--SetFrame是用户进行存款操作的界面。--zhucFram是新注册用户进行注册的界面。a.登陆时主界面设计publicclassLoginViewextendsJFrameimplementsActionListener{privateJButtonadminLoginButton;privateJButtonzhucButton;privateJButtonloginButton;privateJTextFieldidField;privateJPasswordFieldpasswordField;privateJLabelshowMessageLabel;privateStringtitle=登陆;privateJPanelpanel=null;//protectedImageIconicon;publicLoginView(){//窗口属性设置this.setBounds(250,80,550,600);//icon=newImageIcon(img/1.jpg);panel=newJPanel();7panel.setLayout(null);panel.setBounds(250,80,600,650);//创建相应的组件adminLoginButton=newJButton(管理员登陆);JLabelwelcomeLabel=newJLabel(欢迎使用信用卡网上管理模拟系统);showMessageLabel=newJLabel();JLabelnameLabel=newJLabel(账号);JLabelpasswordLabel=newJLabel(密码);idField=newJTextField();passwordField=newJPasswordField();zhucButton=newJButton(注册);loginButton=newJButton(登陆);//button.setIcon(newImageIcon(button.getToolkit().getImage(F:\\MyEclipse\\abcdefg\\atm\\icon.png)));//组件属性设置adminLoginButton.setBounds(390,340,120,25);showMessageLabel.setBounds(100,500,500,30);welcomeLabel.setFont(newFont(隶书,Font.BOLD,30));welcomeLabel.setBounds(20,50,500,60);nameLabel.setBounds(170,240,60,30);passwordLabel.setBounds(170,290,60,30);idField.setBounds(205,240,180,25);passwordField.setBounds(205,290,180,25);zhucButton.setBounds(205,340,60,25);loginButton.setBounds(305,340,60,25);passwordField.setEchoChar('*');//注册监听器adminLoginButton.addActionListener(this);zhucButton.addActionListener(this);loginButton.addActionListener(this);passwordField.addActionListener(this);//向面板中添加各个组件panel.add(adminLoginButton);panel.add(showMessageLabel);panel.add(welcomeLabel);panel.add(nameLabel);panel.add(passwordLabel);panel.add(idField);panel.add(passwordField);panel.add(zhucButton);panel.add(loginButton);this.add(panel);this.addWindowListener(newWindowAdapter(){8publicvoidwindowClosing(WindowEvente){System.exit(0);}});this.setResizable(false);this.setVisible(true);}/**事件处理*/publicvoidactionPerformed(ActionEvente){if((JButton)e.getSource()==zhucButton){newzhucFram(新用户注册界面);}elseif((JButton)e.getSource()==loginButton){UserDAOImpuserDao=newUserDAOImp();Useruser=newUser();LoginServiceloginService=newLoginService();user.setId(idField.getText().trim());user.setPassword(String.valueOf(passwordField.getPasswor
本文标题:java信用卡在线管理
链接地址:https://www.777doc.com/doc-1201926 .html