ImageVerifierCode 换一换
格式:DOC , 页数:148 ,大小:2.87MB ,
资源ID:4557700      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4557700.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据库课程设计实验报告-银行账户管理系统(常用版).doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据库课程设计实验报告-银行账户管理系统(常用版).doc

1、数据库课程设计实验报告-银行账户管理系统(常用版)(可以直接使用,可编辑 完整版资料,欢迎下载)数据库课程设计报告题 目: 银行账户管理系统院系名称: 计算机学院 专业名称: 软件工程班 级:09级01班 学生姓名:*学号(8位):*指导教师:*设计起止时间:2021年12月19日2021年12月30日一. 设计目的银行账户管理是银行业务流程中十分重要的且必备的环节,由于银行有大量数据需要处理,全部采用人工方式明显不现实:这不仅需要花费很高的成本,而且处理事务的效率和质量都存在很大的问题,出于这些问题的考虑,使用计算机来处理这类问题就成为一个相当理想的方案。利用计算机可以极大地降低成本,更重要

2、的是可以几乎没有错误地高效地处理所有的事务,所以做一款基于银行账户管理方面的系统是十分必要的。本次课程设计通过对银行账户管理系统中银行业务流程的基本实现以及用户环节的事务处理,旨在体验数据库设计和实现的基本过程中掌握数据库模式的设计、分析和实现方法,了解数据库应用系统软件开发的一般过程。二. 设计内容分别完成银行业务功能、ATM功能和用户管理功能,并设计数据库以支持这些功能的实现,最后通过代码进行具体实现以及数据库链接。所用数据库:SQL Server 2021开发语言:Java数据库设计:使用了六张表,分别为:管理员表(admin)、ATM机表(ATM)、ATM机出纳表(ATMOutIn)、

3、银行柜台出纳表(BankOutIn)、银行卡表(card)、用户表(users)。三个触发器,分别为:冻结用户账号操作(userstatus_update)、ATM机存取款操作(ATMOutIn_insert)和银行存取款操作(BankOutIn_insert)。一个视图、一个虚表:用户操作查询(allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney))。银行业务功能:设置管理员账号,赋予管理员权限以实现开户、销户、存款、取款、查询、办卡和挂失功能。ATM功能:ATM机连接系统数据库,实现用户登录、存

4、(取)款以及用户查询功能。用户管理:通过登录功能获得系统数据库中自己的用户信息,并有权限修改系统允许用户修改的信息。三概要设计1功能模块图;2各个模块详细的功能描述。银行业务功能: 管理员登录在数据库中添加管理员数据,管理员可登录系统并有权限完成与 用户相关所有操作。 开户收集用户信息,为用户分配账号并通过程序在系统数据库中添加用户信息。 销户根据账号在数据库中查找用户,确认用户身份信息后,管理员通过程序删除数据库中用户信息。 存款根据卡号在数据库中查找用户,依据存入金额,管理员通过程序修改数据库中用户的金额信息。 取款根据卡号在数据库中查找用户,通过密码确认用户,依据取出金额,经判断取出金额

5、合法后(不大于余额),管理员通过程序修改数据库中用户的金额信息。 查询以用户卡号、账号或身份证号之一为关键字,在数据库中查找用户,依据业务需求显示用户信息(开户人信息、用户近期操作记录)。 办卡为用户账号绑定卡号,由管理员通过程序将卡号以及用户设置的密码存入系统数据库相应用户信息中。 挂失根据账号在数据库中查找用户,用户提供登录密码确认用户身份信息后,管理员通过程序将数据库中用户卡状态信息由“使用”改为“冻结”。ATM功能: 登录ATM机依据用户卡号和密码在系统数据库中查询用户信息,在信息匹配的情况下进入用户操作界面。 存款ATM机依据用户存入金额,通过程序修改数据库中用户的金额信息。 取款A

6、TM机依据取出金额, 通过对比本机余额和数据库中用户余额,若金额合法则通过程序修改数据库中用户的金额信息,否则弹出错误信息。用户管理: 登录依据用户账号和密码由管理员或ATM机在系统数据库中查询用户信息,在信息匹配的情况下用户获得用户管理权限。 查询个人信息打印数据库中记录的用户个人信息。 修改个人信息收集用户新信息,由管理员操作,修改数据库中用户拥有修改权限的相应数据。 查询近期操作依据用户提供所要查询时间范围,由管理员或ATM机通过程序查询系统数据库中用户的操作记录。四详细设计1功能函数的调用关系图public static void mian(String args)AdminLogin

7、JFrame() AdminDao管理员登录界面 ChaxunKaInfo(String userId) KaMimaXiuGai(String cardId)UserLoginJFrame()MainFrame()用户登录界面 KaCaoZuo(String times,String cardId)主界面 ChaXunCaoZuo(Users user) UserGuanLi(String ATMId,String cardId) ATMLoginJFrame()actionPerformed(ActionEvent e)ATM机登录界面UserChaXun(String cardId) 用

8、户类 卡查询操作卡密修改操作卡操作记录 查询近期 操作用户管理登录方法用户信息查询2重点设计及编码数据库设计:create database accountuse accountcreate table users(userId varchar(10) not null, /*用户账号,主键*/userName varchar(10) not null, /*用户名*/userPassword varchar(10) not null, /*密码*/idNo varchar(20) not null, /*身份证号码,唯一*/userMoney numeric(10,2) default 0,

9、 /*总金额,不能小于零*/userStatus varchar(4) check (userStatus=使用 or userStatus=冻结) default 使用, /*用户状态(使用,冻结),默认是使用中*/userAddress varchar(30) not null, /*用户地址*/startTime DateTime, /*开户时间,应该是开户时的系统时间,不应该人为输入*/primary key(userId), /*设置主键*/)-用户的状态一旦变成冻结状态,那么卡也应该不能使用create trigger userstatus_updateon usersafter

10、updateasif update(userStatus)begin if (select userStatus from inserted) = 冻结update card set cardStatus = 冻结 where userId = (select userId from deleted)if (select userStatus from inserted) = 使用update card set cardStatus = 使用 where userId = (select userId from deleted) end create table card(cardId var

11、char(20) primary key, /*卡号,主键*/userId varchar(10) not null, /*用户账号,外键,参照users表的userId*/cardPassword varchar(10) not null, /*卡密码*/cardStatus varchar(5) check (cardStatus in (使用,冻结,挂失) default 使用, /*卡状态(使用,冻结,挂失),默认是使用*/-cardMoney numeric(10,2) check(cardMoney =0),foreign key (userId) references users

12、(userId)on delete cascade /*当删除用户帐号时,他的卡号会及联删除*/)-管理员表create table admin(adminId varchar(10) not null primary key, /*操作员号码,主键*/adminName varchar(10) not null, /*操作员名字*/adminPassword varchar(20) not null, /*操作员密码*/BankAddress varchar(20) not null /*操作员所在银行地址*/) insert into admin values(001,沈万三,123,工商

13、银行长安分行)-创建一个ATM表,至少应该含有编号以及ATM机里的总金额create table ATM(ATMId varchar(10) primary key, /*ATM机ID*/ ATMMoney numeric(20,2) check (ATMMoney =0), /*ATM机里的总钱数,不允许用户的取款数大于它的总钱数,所以它的总钱数不能小于*/ ATMAddress varchar(20) /*ATM机的地点*/)insert into ATM values(000, 10000, 长安区)insert into ATM values(111, 50000, 长安区)-用户AT

14、M机存取款信息表create table ATMOutIn (ATMId varchar(10), /*取款机号,外键,参照ATM表的ATMId*/cardId varchar(20) not null, /*用户卡号,外键,参照card表的cardId*/ATMTime DateTime, /*在ATM机存取款时间(应该是进行存取款时的系统时间*/ATMCunQu numeric(10,2), /*ATM机存款金额*/ATMSummary varchar(30), /*存取款摘要*/balanceMoney numeric(10,2) default 0, /*经过操作后账号中的金额*/fo

15、reign key(ATMId) references ATM(ATMId) on delete cascade,foreign key(cardId) references card(cardId) on delete cascade)-创建一个触发器,当产生这一信息时,账号上的钱也会随之改动create trigger ATMOutIn_inserton ATMOutIn after insertas declare num_rows int select num_rows = rowcountif num_rows = 0 /*未插入成功*/ return if num_rows0 /*

16、数据插入成功*/ begin update users set userMoney = userMoney + (select ATMCunQu from Inserted) where userId in (select userId from card c,inserted i where c.cardId = i.cardId) update ATM set ATMMoney = ATMMoney + (select ATMCunQu from Inserted) where ATMId in (select ATMId from inserted) /*对应的atm机的总金额也会随之改

17、变*/ declare balanceMoney numeric(10,2) /*账号余额*/ select balanceMoney = (select userMoney from users where userId in (select userId from card c,inserted i where c.cardId = i.cardId) update ATMOutIn set balanceMoney = (balanceMoney) where cardId in (select cardId from inserted) and atmtime in (select a

18、tmtime from inserted) /*完成了账号金额的修改,再将新的金额插入到信息表中,就是剩余的总余额了(注意修改的只是一个账号此次的操作*/end-用户银行存取款信息信息表create table BankOutIn (adminId varchar(10) not null, /*操作员号码,外键,参照操作员表的adminId*/cardId varchar(20) not null, /*用户卡号,外键,参照用户信息表*/BankTime DateTime, /*银行存款时间*/BankCunQu numeric(10,2), /*银行存款*/BankSummary varc

19、har(30),balanceMoney numeric(10,2) default 0, /*经过操作后账号中的金额*/foreign key (adminId) references admin(adminId) on delete cascade,foreign key (cardId) references card(cardId) on delete cascade)-创建一个触发器,当插入这条数据时会自动修改users表里的金额信息create trigger BankOutIn_inserton BankOutIn for insertas declare num_rows in

20、t select num_rows = rowcountif num_rows = 0 /*未插入成功*/ return if num_rows0 /*数据插入成功*/ begin update users set userMoney = userMoney + (select BankCunQu from Inserted) where users.userId = (select userId from card c,inserted i where c.cardId = i.cardId) declare balanceMoney numeric(10,2) select balance

21、Money = (select userMoney from users where userId = (select userId from card c,inserted i where c.cardId = i.cardId ) update BankOutIn set balanceMoney = (balanceMoney) where cardId = (select cardId from inserted) and banktime = (select banktime from inserted) /*完成了账号金额的修改,再将新的金额插入到信息表中,就是剩余的总余额了(要注

22、意这个信息总额的唯一性)*/ end-总信息可以用其它的表推出,建一个视图,一个虚表,来综合他们的信息create view allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney)asselect userId,bankTime,BankAddress,bankCunqu,bankSummary,balanceMoneyfrom bankoutin b,admin a,card cwhere b.adminId = a.adminId and c.cardId = b.cardIdunionsele

23、ct userId,ATMTime, ATMAddress,ATMCunqu,ATMSummary,balanceMoneyfrom atmoutin a,card c,ATM atmwhere c.cardId = a.cardId and a.atmid = atm.atmid 数据库链接:package com.connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.

24、sql.SQLException;/* * 定义一个数据库的连接及关闭资源的类 * author Administrator * */public class DBConnection /* * 创建数据库的链接 * return 返回一个数据库的链接 */public static Connection getConnection()Connection conn = null;try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); /加载数据库驱动String url = st:1433;databaseName=a

25、ccount; String username = sa; /数据库用户名String password = 1126; /数据库密码conn = DriverManager.getConnection(url,username,password); /获得数据库的链接 catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();r

26、eturn conn;/* * 关闭数据库资源 * param obj 数据库打开的资源对象(在此处用Object,因为链接数据库是会打开多个资源) */public static void closeObject(Object obj)if(obj != null)if(obj instanceof ResultSet)try (ResultSet) obj).close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(obj instanceof PreparedStatem

27、ent)try (PreparedStatement) obj).close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();-if(obj instanceof Connection)try (Connection) obj).close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();程序入口函数:package com.main;import com.frame.Main

28、Frame;public class Begin /* * param args */public static void main(String args) / TODO Auto-generated method stubnew MainFrame();五测试数据及运行结果1正常测试数据和运行结果管理员登录:登录名:沈万三 登录密码:123管理员操作:1. 查询用户信息2. 开户ATM机操作1. 登录2. 查询2异常测试数据及运行结果1.查询失败 3. ATM机存款失败六调试情况,设计技巧及体会1改进方案本系统基本实现了银行账户管理的基本功能,不过在细节方面处理的不够完善,细化功能也做的不

29、够好,此外,交互界面美工基本没做。对于此,在接下来的时间里我将对系统不断完善,尽力做到尽善尽美。2体会在课程设计的两周中,我在数据库设计以及代码编写方面都遇到了不少问题,所幸在同学们的帮助下以及借助网络查找相应问题,总算按时完成了课程设计关于上机的任务。在此过程中我通过数据库设计和实现的基本过程中掌握数据库模式的设计、分析和实现方法,了解数据库应用系统软件开发的一般过程,获益匪浅。七参考文献数据库系统原理与应用 孟彩霞、乔平安、张荣 编著八附录:数据库设计:create database accountuse accountcreate table users(userId varchar(1

30、0) not null, /*用户账号,主键*/userName varchar(10) not null, /*用户名*/userPassword varchar(10) not null, /*密码*/idNo varchar(20) not null, /*身份证号码,唯一*/userMoney numeric(10,2) default 0, /*总金额,不能小于零*/userStatus varchar(4) check (userStatus=使用 or userStatus=冻结) default 使用, /*用户状态(使用,冻结),默认是使用中*/userAddress var

31、char(30) not null, /*用户地址*/startTime DateTime, /*开户时间,应该是开户时的系统时间,不应该人为输入*/primary key(userId), /*设置主键*/)-用户的状态一旦变成冻结状态,那么卡也应该不能使用create trigger userstatus_updateon usersafter updateasif update(userStatus)begin if (select userStatus from inserted) = 冻结update card set cardStatus = 冻结 where userId = (

32、select userId from deleted)if (select userStatus from inserted) = 使用update card set cardStatus = 使用 where userId = (select userId from deleted) end create table card(cardId varchar(20) primary key, /*卡号,主键*/userId varchar(10) not null, /*用户账号,外键,参照users表的userId*/cardPassword varchar(10) not null, /*

33、卡密码*/cardStatus varchar(5) check (cardStatus in (使用,冻结,挂失) default 使用, /*卡状态(使用,冻结,挂失),默认是使用*/-cardMoney numeric(10,2) check(cardMoney =0),foreign key (userId) references users(userId)on delete cascade /*当删除用户帐号时,他的卡号会及联删除*/)-管理员表create table admin(adminId varchar(10) not null primary key, /*操作员号码,主

34、键*/adminName varchar(10) not null, /*操作员名字*/adminPassword varchar(20) not null, /*操作员密码*/BankAddress varchar(20) not null /*操作员所在银行地址*/) insert into admin values(001,沈万三,123,工商银行长安分行)-创建一个ATM表,至少应该含有编号以及ATM机里的总金额create table ATM(ATMId varchar(10) primary key, /*ATM机ID*/ ATMMoney numeric(20,2) check

35、(ATMMoney =0), /*ATM机里的总钱数,不允许用户的取款数大于它的总钱数,所以它的总钱数不能小于*/ ATMAddress varchar(20) /*ATM机的地点*/)insert into ATM values(000, 10000, 长安区)insert into ATM values(111, 50000, 长安区)-用户ATM机存取款信息表create table ATMOutIn (ATMId varchar(10), /*取款机号,外键,参照ATM表的ATMId*/cardId varchar(20) not null, /*用户卡号,外键,参照card表的car

36、dId*/ATMTime DateTime, /*在ATM机存取款时间(应该是进行存取款时的系统时间*/ATMCunQu numeric(10,2), /*ATM机存款金额*/ATMSummary varchar(30), /*存取款摘要*/balanceMoney numeric(10,2) default 0, /*经过操作后账号中的金额*/foreign key(ATMId) references ATM(ATMId) on delete cascade,foreign key(cardId) references card(cardId) on delete cascade)-创建一个

37、触发器,当产生这一信息时,账号上的钱也会随之改动create trigger ATMOutIn_inserton ATMOutIn after insertas declare num_rows int select num_rows = rowcountif num_rows = 0 /*未插入成功*/ return if num_rows0 /*数据插入成功*/ begin update users set userMoney = userMoney + (select ATMCunQu from Inserted) where userId in (select userId from

38、card c,inserted i where c.cardId = i.cardId) update ATM set ATMMoney = ATMMoney + (select ATMCunQu from Inserted) where ATMId in (select ATMId from inserted) /*对应的atm机的总金额也会随之改变*/ declare balanceMoney numeric(10,2) /*账号余额*/ select balanceMoney = (select userMoney from users where userId in (select u

39、serId from card c,inserted i where c.cardId = i.cardId) update ATMOutIn set balanceMoney = (balanceMoney) where cardId in (select cardId from inserted) and atmtime in (select atmtime from inserted) /*完成了账号金额的修改,再将新的金额插入到信息表中,就是剩余的总余额了(注意修改的只是一个账号此次的操作*/end-用户银行存取款信息信息表create table BankOutIn (adminId

40、 varchar(10) not null, /*操作员号码,外键,参照操作员表的adminId*/cardId varchar(20) not null, /*用户卡号,外键,参照用户信息表*/BankTime DateTime, /*银行存款时间*/BankCunQu numeric(10,2), /*银行存款*/BankSummary varchar(30),balanceMoney numeric(10,2) default 0, /*经过操作后账号中的金额*/foreign key (adminId) references admin(adminId) on delete casca

41、de,foreign key (cardId) references card(cardId) on delete cascade)-创建一个触发器,当插入这条数据时会自动修改users表里的金额信息create trigger BankOutIn_inserton BankOutIn for insertas declare num_rows int select num_rows = rowcountif num_rows = 0 /*未插入成功*/ return if num_rows0 /*数据插入成功*/ begin update users set userMoney = user

42、Money + (select BankCunQu from Inserted) where users.userId = (select userId from card c,inserted i where c.cardId = i.cardId) declare balanceMoney numeric(10,2) select balanceMoney = (select userMoney from users where userId = (select userId from card c,inserted i where c.cardId = i.cardId ) update BankOutIn set balanceMoney = (balanceMoney) where cardId = (select cardId from inserted) and b

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服