java信用卡在线管理.docx
- 文档编号:309289
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:40
- 大小:340.47KB
java信用卡在线管理.docx
《java信用卡在线管理.docx》由会员分享,可在线阅读,更多相关《java信用卡在线管理.docx(40页珍藏版)》请在冰豆网上搜索。
java信用卡在线管理
java信用卡在线管理
运算机科学与技术系
课程设计报告
2021~2021学年第一学期
课程
Java课程设计
课程设计名称
信用卡在线治理系统
专业班级
11计本〔4〕班
姓名
黄伟
指导教师
张贯虹胡春玲
2021年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是用户登陆是的不合法专门
--imp
--RecordDAOImp是对接口RecordDAO中的方法的实现。
--UserDAOImp是对接口UserDAO中方法的实现。
--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();
panel.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);
password
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 信用卡 在线 管理