信用卡在线管理系统.docx

上传人:牧羊曲112 文档编号:1647213 上传时间:2022-12-12 格式:DOCX 页数:32 大小:385.09KB
返回 下载 相关 举报
信用卡在线管理系统.docx_第1页
第1页 / 共32页
信用卡在线管理系统.docx_第2页
第2页 / 共32页
信用卡在线管理系统.docx_第3页
第3页 / 共32页
信用卡在线管理系统.docx_第4页
第4页 / 共32页
信用卡在线管理系统.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《信用卡在线管理系统.docx》由会员分享,可在线阅读,更多相关《信用卡在线管理系统.docx(32页珍藏版)》请在三一办公上搜索。

1、合肥学院计算机科学与技术系课程设计报告20122013学年第一学期课程Java课程设计课程设计名称信用卡在线管理系统专业班级11计本(4)班姓名黄伟指导教师张贯虹 胡春玲2013年1月一. 需求分析1、课程设计名称及内容课程设计名称:信用卡在线管理系统设计内容:设计一个信用卡管理系统,实现基于网络管理信用卡信息。2、任务和要求系统用户分为管理员、注册用户和普通用户。a) 提供注册功能,系统的访问者可以注册成为注册用户,注册信息包括卡号、密码和其他个人信息。注册用户没有任何操作权限,必须经管理员审批通过后成为普通用户才有权操作。新注册的用户,卡上初始金额为0。b) 普通用户可以执行现金转入、现金

2、转出、个人信息修改、余额查询和交易记录查询功能。c) 用户可以录入转入金额和转出金额,当转出金额大于信用卡的余额时,须判断透支金额是否在本卡的信用额度内(信用额度由管理员设定),如果在则允许透支,否则拒绝支出。d) 当信用卡发生透支后,在20天内不计利息,20天后按每天1%计算利息,当透支金额+透支利息超过本卡的信用额度,则本卡自动转入“黑名单”(利息继续计算),不再允许进行现金转出操作。e) 普通用户可以随时查看卡内余额。f) 普通用户可以按时间段查看交易记录,包括转入、转出和透支情况。g) 管理员可以审核注册用户,设定用户信用额度,批准成为普通用户。h) 管理员可以查看系统内的黑名单,包括

3、卡号和透支额度。二. 设计1数据库设计思想:(1)数据库的设计:我们使用的数据库是Microsoft SQL 2005。创建record和user表:create database card;use card;create table record(id int not null primary key ,fromId varchar(100) not null,toId varchar(50) not null,money float not null,tradetime datetime);create table user1 (id varchar(50) primary key not

4、 null,password varchar(50) not null,name varchar(100) not null,type int ,money float ,credit float ,overdraft float ,blacklist int );、交易表用户表(2)对数据库的操作Insert主要时用来对数据库进行插入操作,例如在record表中插入一条记录为,public boolean insert ( Record record )String sql = insert into record(id,fromId,toId,money,tradetime) values

5、(?,?,?,?,?);try PreparedStatement pre = conn.prepareStatement(sql);Calendar calendar=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 ,

6、 record.getTradetime();pre.execute();return true; catch (SQLException e) e.printStackTrace();return false;Delete是多数据表中的记录加以删除,例如对user表中的记录删除操作为:public boolean delete ( User user )String sql = delete from user where id=?;try PreparedStatement pre = conn.prepareStatement(sql);pre.setString(1, user.get

7、Id();pre.execute();return true; catch (SQLException e) e.printStackTrace();return false;Update是对数据库中的信息加以修改!findAll是查找数据库中的所有记录!findById是通过用户给定的id好来对数据库进行扫描,查找出所有与输入的id相匹配的信息!同时也可以根据其他的关键字对数据库进行查找查找,例如是否是黑名单,是否已经有透支额了等等,具体的实现见代码!2.java程序的设计:主要以下几个包:-bean -User表示的是user表中的一条记录 -Record表示的是record表中的一条记录

8、 -ChangePasswordBean是对修改密码时的所有属性的封装 -zhucBean是在新用户注册时的一条记录,主要包括属性id ,password ,name ;以及set和get方法!-dao -DBConnection用于连接数据库-RecordDAO接口是封装对数据表Record的操作-UserDAO接口是封装对数据表User的操作 -exception -inputChangePasswordInfoNotRightException是用来显示输入的修改密码的出错的信息!-InputGetNumNotRightException是用户输入的取款金额不合法异常-InputSetN

9、umNotRightException是用户输入的存款金额不合法异常-LoginInfoNotRightException 是用户登陆是的不合法异常 -imp -RecordDAOImp是对接口RecordDAO中的方法的实现。 -UserDAOImp是对接口UserDAO中方法的实现。-service -ChangePasswordService是对修改密码服务中可能出现的不正常信息加以分类并且予以处理。 -GetService是对用户输入的取款信息的不正常信息加以分类并且予以处理。 - LoginService是对用户在登陆时输入信息的不正常信息加以分类并且予以处理。 - SetServi

10、ce是对用户输入的存款信息的不正常信息加以分类并且予以处理。- view - ChangePasswordFrame是修改密码的操作界面。- GetFrame是用户进行取款操作的界面。- GuanlFram是管理员进行操作的界面。- LoginView是登陆主界面。- PtFram是普通用户的操作界面。- SetFrame是用户进行存款操作的界面。- zhucFram是新注册用户进行注册的界面。a.登陆时主界面设计public class LoginView extends JFrame implements ActionListenerprivate JButton adminLoginBu

11、tton;private JButton zhucButton;private JButton loginButton;private JTextField idField;private JPasswordField passwordField;private JLabel showMessageLabel;private String title=登陆;private JPanel panel=null;/protected ImageIcon icon;public LoginView()/窗口属性设置this.setBounds(250, 80, 550,600); /icon=new

12、 ImageIcon(img/1.jpg);panel=new JPanel();panel.setLayout(null);panel.setBounds(250, 80, 600,650);/创建相应的组件adminLoginButton=new JButton(管理员登陆);JLabel welcomeLabel=new JLabel(欢迎使用信用卡网上管理模拟系统);showMessageLabel=new JLabel();JLabel nameLabel=new JLabel(账号);JLabel passwordLabel=new JLabel(密码);idField=new J

13、TextField();passwordField=new JPasswordField();zhucButton=new JButton(注册);loginButton=new JButton(登陆);/button.setIcon(new ImageIcon(button.getToolkit().getImage(F:MyEclipseabcdefgatmicon.png);/组件属性设置adminLoginButton.setBounds(390, 340, 120, 25);showMessageLabel.setBounds(100, 500, 500, 30);welcomeLa

14、bel.setFont(new Font(隶书,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, 3

15、40,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(nam

16、eLabel);panel.add(passwordLabel);panel.add(idField);panel.add(passwordField);panel.add(zhucButton);panel.add(loginButton);this.add(panel);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););this.setResizable(false);this.setVisible(true);/* * 事件处理 */publ

17、ic void actionPerformed(ActionEvent e) if(JButton)e.getSource()=zhucButton)new zhucFram(新用户注册界面);else if(JButton)e.getSource()=loginButton)UserDAOImp userDao=new UserDAOImp();User user=new User();LoginService loginService=new LoginService();user.setId(idField.getText().trim();user.setPassword(String

18、.valueOf(passwordField.getPassword();User user1=userDao.findByIdAndPassword(user);System.out.println(user=+user.getPassword();try loginService.checkLoginInfo(user1);/用户登陆成功后得主界面new PtFram(用户登陆成功后的操作界面,user.getId().setVisible(true);this.setVisible(false);System.out.println(ghghj);JOptionPane.showMess

19、ageDialog(null,登陆成功!,JOptionPane.DEFAULT_OPTION); catch (LoginInfoNotRightException e1)e1.printStackTrace();System.out.println(e.toString();showMessageLabel.setText(e.toString();else if(e.getSource()=adminLoginButton)if(admin.equals(idField.getText()&admin.equals(String.valueOf(passwordField.getPass

20、word()/管理员注册成功后的主界面new GuanlFram( 管理员登陆成功后的操作界面).setVisible(true);this.setVisible(false); else showMessageLabel.setText(账号错或者密码错,请查找后重新登陆!);idField.setText(null);passwordField.setText(null);主界面截图:b.注册新用户界面public class zhucFram extends JFrame implements ActionListener Box basebox,box1,box2;Button But

21、ton1,Button2;TextField NameTextField =new TextField(12);TextField idTextField =new TextField(12);JPasswordField passwordTextField = new JPasswordField(12);JPasswordField repasswordTextField = new JPasswordField(12);public zhucFram(String s)super(s);Button1=new Button(确定);Button2=new Button(取消);box1=

22、Box.createVerticalBox();box1.add(new Label(姓名);box1.add(Box.createVerticalStrut(8);box1.add(new Label(卡号);box1.add(Box.createVerticalStrut(8);box1.add(new Label(请输入密码);box1.add(Box.createVerticalStrut(8);box1.add(new Label(请再输一遍);box1.add(Box.createVerticalStrut(8);box1.add(Button1);box2=Box.createV

23、erticalBox();box2.add(NameTextField);box2.add(Box.createVerticalStrut(8);box2.add(idTextField);box2.add(Box.createVerticalStrut(8);box2.add(passwordTextField);box2.add(Box.createVerticalStrut(8);box2.add(repasswordTextField);box2.add(Box.createVerticalStrut(8);box2.add(Button2);basebox=Box.createHor

24、izontalBox();basebox.add(box1);basebox.add(Box.createHorizontalStrut(10);basebox.add(box2);Button1.addActionListener(this);Button2.addActionListener(this);setLayout(new FlowLayout();add(basebox);setBounds(240,250,500,300);setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=

25、Button1) String userName = String.valueOf(NameTextField.getText() ; String userId = String.valueOf(idTextField.getText() ; String userPassword = String.valueOf(passwordTextField.getPassword() ; String testPassword = String.valueOf(repasswordTextField.getPassword() ; if(userPassword.equals(testPasswo

26、rd) try User user1=new User(); user1.setId(userId); user1.setName(userName); user1.setPassword(userPassword); UserDAOImp addUser=new UserDAOImp(); boolean success=addUser.insert(user1); if(success) JOptionPane.showMessageDialog(null,注册成功,请重新登陆,JOptionPane.DEFAULT_OPTION); else JOptionPane.showMessag

27、eDialog(null,注册失败!,JOptionPane.DEFAULT_OPTION); catch(Throwable www)(); else JOptionPane.showMessageDialog(null,您输入的密码前后不符,请重新输入,JOptionPane.DEFAULT_OPTION); elsedispose() ;用户注册界面截图:c.管理员登陆界面public class GuanlFram extends Frame implements ActionListenerButton shenhButton=new Button(审核注册用户);Button ch

28、akButton=new Button(查看系统内的黑名单);Button _return = new Button(返回);Box baseBox,box1;public GuanlFram(String s)super(s);box1=Box.createVerticalBox();box1.add(Box.createVerticalStrut(10);box1.add(shenhButton);box1.add(Box.createVerticalStrut(10);box1.add(chakButton);box1.add(Box.createVerticalStrut(10);bo

29、x1.add(_return);baseBox=Box.createHorizontalBox();baseBox.add(box1);_return.addActionListener(this);shenhButton.addActionListener(this);chakButton.addActionListener(this);setLayout(new FlowLayout();add(baseBox);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.

30、exit(0););setBounds(240,250,500,300);setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=shenhButton) /System.out.println(新注册用户的信息); UserDAOImp userdao=new UserDAOImp(); List list = new UserDAOImp().findByType(0); final Frame frame=new Frame(); TextArea text=new TextArea(50

31、,50); frame.setLayout(new FlowLayout();frame.add(text); frame.setBounds(240,250,500,300);/ frame.add(_return);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) frame.setVisible(false); );if(list.size()=0)text.append(系统现在没有新注册的用户);else for(int

32、 i=0;ilist.size();i+) User user=(User)list.get(i); text.append(卡号:+user.getId(); text.append(n密码:+user.getPassword(); text.append(n姓名:+user.getName(); text.append(n余额+user.getMoney(); text.append(n信用额度+user.getCredit(); text.append(n透支金额+user.getOverdraft(); text.append(n*); text.append(n此时系统已经将新注册用

33、户提升为普通用户了!);user.setType(1);text.append(n*);text.append(n系统已经将新注册用户的信用额度设置为1000元!); user.setCredit(1000); userdao.update(user); else if(e.getSource()=chakButton) /System.out.println(进入系统黑名单界面); List list = new UserDAOImp().findByBlacklist(1); final Frame frame=new Frame(); TextArea text=new TextArea

34、(50,50); frame.setLayout(new FlowLayout();frame.add(text); frame.setBounds(240,250,500,300);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) frame.setVisible(false); );if(list.size()=0)text.append(系统现在没有黑名单的用户);else for(int i=0;ilist.size();

35、i+) User user=(User)list.get(i); text.append(卡号:+user.getId(); text.append(n密码:+user.getPassword(); text.append(n姓名:+user.getName(); text.append(n余额:+user.getMoney(); text.append(n信用额度:+user.getCredit(); text.append(n透支金额:+user.getOverdraft(); text.append(n*); else if(e.getSource() = _return) new Lo

36、ginView(); dispose(); 管理员登陆界面截图:e.普通用户登陆界面public class PtFram extends Frame implements ActionListenerprivate String id;Button getButton=new Button(现金转出);Button setButton=new Button(现金转入);Button changeButton=new Button(个人信息修改);Button serchButton=new Button(余额查询);Button serchjiluButton=new Button(交易记录

37、查询);Button serchfhButton=new Button(返回);Box baseBox,box1;public PtFram(String s,String id)super(s);this.id=id;box1=Box.createVerticalBox();box1.add(Box.createVerticalStrut(10);box1.add(getButton);box1.add(Box.createVerticalStrut(10);box1.add(setButton);box1.add(Box.createVerticalStrut(10);box1.add(c

38、hangeButton);box1.add(Box.createVerticalStrut(10);box1.add(serchButton);box1.add(Box.createVerticalStrut(10);box1.add(serchjiluButton);box1.add(Box.createVerticalStrut(10);box1.add(serchfhButton);baseBox=Box.createHorizontalBox();baseBox.add(box1);getButton.addActionListener(this);setButton.addActio

39、nListener(this);changeButton.addActionListener(this);serchButton.addActionListener(this);serchjiluButton.addActionListener(this);serchfhButton.addActionListener(this);setLayout(new FlowLayout();add(baseBox);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit

40、(0););setBounds(240,250,500,300);setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=getButton) System.out.println(进入现金转出界面); new GetFrame(id).setVisible(true); else if(e.getSource()=setButton) System.out.println(进入现金转入界面); new SetFrame(id).setVisible(true); else if(e.getSource()=changeButton) System.out.println(进入信息修改界面); /User user=new UserDAOImp().update(id); new ChangePasswordFrame(id).setVisible(true); else if(e.getSource()=serchButton) System.out.println(进入余额查询界面); List l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号