java实训ATM取款机设计报告_第1页
java实训ATM取款机设计报告_第2页
java实训ATM取款机设计报告_第3页
java实训ATM取款机设计报告_第4页
java实训ATM取款机设计报告_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、吉林工程技术师范学院信息工程学院Java项目实训课程设计报告题 目:ATM取款机JAVA实训课程设计专业:计算机科学与技术班级:C1341姓名:姜秋红学号:25摘要我选择的是“ ATM取款机”,其目的主要是现在市面上的取款机功能不完善还有许多 功能没有实现,用户对界面很熟悉,做起来更得心应手,所以的采用的界面和现在用户 所用的界面基本相同,可以实现后台与前台的交互以及数据库之间的连接,使得我设计 的ATM取款机更加完善。利用jps网页设计一个总页面设计选择使用的用户是用户页面还是管理员页面,让使 用的人根据权限去使用不同的功能。在我的ATM取款机上实现了 ATM机的基本功能,其界面参照了和原系

2、统基本相同的 界面。增加了一些管理员的功能。首先选择是用户登入还是管理员登入。选择用户登入, 有查看,存款,取款,转账和修改密码等功能。选择管理员登入,有开户,销户,查询 等功能;利用这些更能,使得 ATM更加完善。关键字:ATM查询,取款,转账,修改,界目录程序设计概念 4程序设计的目的 4课程设计的内容 4设计方案的论证 5概要设计 5需求分析 5技术可行性 5经济可行性 5设计实现内容 6数据字典 6成员变量 6方法设计 6页面如下 7数据流程图 7测试运行及结果分析 10测试及问题探讨 11课设总结与体会 12致谢 13参考文献 14附录 115、课程设计的概念1.1 课程设计的目的现

3、代社会,ATM可以说是一种使用非常广泛的机器, ATM使用是非常频 繁的,然而由于程序及其机器本人的一些漏洞,导致 ATM机的犯罪现象屡有 发生。该项目的开发有利于进一步提高 ATM机的性能及安全性,模拟开发 ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软 件开发的知识,有利于提出优化改进现代 ATM系统的建议。1.2 课程设计的内容银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:1.2.1 管理员状态登入: 开户:添加一个新的用户 销户:删除一个

4、无用用户 查询:管理员可以查询用户的相关信息1.2.2 普通用户状态登入: 查询:用户可以查询自己的银行卡信息 存款:提供用户提取现金的功能 转账:提供用户在统一银行内的转账功能 查询交易情况:查询交易文件中的交易记录 修改密码:能够修改用户的银行卡密码二、设计方案的论证2.1 概要设计JAVA 程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。 实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专 业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练, JAVA

5、程序设计的 设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网 络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基 础进行软件开发、并在实践应用方面打下一定基础。 ?2.2 需求分析2.2.1技术可行性ATM设计的主要目标为:管理员登陆时要写入账户的名和身份证号在数据库 里进行匹配,匹配成功则登入否则在前台显示账号或密码错误;普通用户登 入时要写入银行卡号和所属银行卡号的密码,在数据库中进行匹配,匹配成 功即登入否则在前台显示账号或密码错误222经济可行性可行性分析法是对工程项目技术经济论证技术经济论证经济合理性综合分析的方 法。其目的是通过

6、对技术先进程度,经济合理性和条件可能性的分析论证,选择 以最小的人力、物力、财力耗费,取得最佳技术、经济、社会效益的切实方案。 它是解决项目投资前期分析的主要手段。三、设计实现内容3.1系统功能结构设计3.1.1数据字典数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、 外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细 的说明,使用数据字典为简单的建模项目。3.1.2?成员变量成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类 的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上 static 和?fina属性其中,static

7、使该变量任何类都可用(方法?ClassName. 全局变量名)?,而?fina则使得变量不可更改,基本上算是常量了,这也在 一定程度上防止对变量的非法修改。3.1.3?方法设计方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给 调用者的数据类型,void表示没有返回值,参数行(parameter?list) 是调用 时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行 为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以 掺杂在语句

8、之间。一个方法不能声明在另一个方法内。表3.1.3?方法定义方法名功能备注图:3.1.1主页面3.1.4页面如下:图3.1.2用户登入页面图3.1.3普通用户显示界面图3.1.4管理员显示页面3.1.5?数据流程图图3.1.5选择方式登入图3.1.6登入验证图3.1.7功能选择四、测试运行及结果分析1、用户向ATMI提款机中插入银行卡,如果银行卡是合法的,ATMI提款机界面提示用户输入提款密码;2、用户输入该银行卡的密码, ATM提款机与Main Frame传递密码,检验密码的正 确性。如果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的 提款额度”;3、用户输入取钱金额,系统校验

9、金额正确,提示用户确认,提示信息为“您输入 的金额是 xxx ,请确认,谢谢!” ,用户按下确认键,确认需要提取的金额;4、系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的 存款金额。5、 用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢 复到初始状态;五、测试及问题探讨如果插入无效的银行卡,那么,在 ATM提款机界面上提示用户“您使用的银 行卡无效!”, 3秒钟后,自动退出该银行卡。 ?如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”如果用户连续3次输入错误密码,ATM提款机吞卡,并且 ATM提款机的界面恢 复到初始状态。此时,其他

10、提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是 2500RMB请重新输入”;如果用户输入的单笔金额,不是以 50RMB为单位的,那么提示用户“您输入 的提款金额错误,请输入以 50 为单位的金额”;如果用户输入正确的提款金额, ATM提款机提示用户确认后,用户取消提款, 则ATM提款机自动退出该银行卡;如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3 秒钟后,自动退出银行卡如果用户银行户头中

11、的存款小于提款金额,则提示用户“抱歉,您的存款余 额不足!”, 3 秒钟后,自动退出银行卡;如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;六、课设总结与体会大约一个星期的编写JAVA程序,发现自己不懂的地方很多,在完成这个设计的时候,我总是被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间,甚至做到很晚,最好猛然发现自己缺少一个定义或 者还要查阅其他的书籍才能找出解决的办法。例如,我定义了一个链表,可是向 里面添加东西的时候,总是出错,后来在上机的时候问老师,才知道链表没有初 始化,这是自己的粗心造成的。我在做设计的过

12、程中发现有很多东西,我都还不 知道。在做进制转换时不知道函数怎么写,是我上网查到的,再经过修改查到我 的程序中。其实在用语言来编程的时候,基础是一个不可缺少的知识,但是往往 一些核心的高层次的东西更是不可缺少。七、致谢通过这次课程设计还使我懂得了理论与实际相结合是很重要的,只有理论知 识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出 结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题, 可以说得是困难重重,并且还发现了自己的许多不足之处,对以前所学过的 知识理解得不够深刻,掌握得不够牢固。但通过这次课程设计之后,一定把 以前所学过的知

13、识重新温故。我完成了这次JAVA课程设计,不过这只是我学习路上的驿站。我相信我在 未来的学习中会记住从本次课程设计中所学到的东西,并将它用到未来的学 习中去。在这里谢谢老师的指导,我会更加努力的学习八、参考文献1 .张桂珠 刘丽 陈爱国Java面向对象程序设计(第2版)北京邮电大学出版社2 毕广吉.Java程序设计实例教程.北京:冶金工业出版社,2007年董迎红、王薇编着,Java程序设计案例教程与实训,北京大学出版社7赵文靖编着,Java程序设计基础与上机指导,清华大学出版社九、附录package c;import java.sql.CallableStatement;import java

14、.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.Date;import java.util.List;import c.LianJie;import ;public class Zong implements JieK public void kh(info u)throws Clas

15、sNotFoundException, SQLExceptionSystem.out.println(" 进入方法中的 u 里的 user_name:"+u.getUser_name();String pid = u.getPid();String user_name = u.getUser_name();String telephone = u.getTelephone();String addr = u.getAddr();LianJie lj=new LianJie();Connection con = lj.getConnection();String sql =

16、"call kaihu(?,?,?,?)"CallableStatement cs = con.prepareCall(sql);cs.setString(1,pid);cs.setString(2,user_name );cs.setString(3,telephone );cs.setString(4,addr);cs.executeUpdate();cs.close();System.out.println(" 调用开户方法,创建用户得到的 user_name"+u.getUser_name();public void xh (String use

17、r_id)throws ClassNotFoundException, SQLExceptionConnection con = null;LianJie lj=new LianJie();con = lj.getConnection();String sql = "call xiaohu(?)"CallableStatement cs = con.prepareCall(sql);cs.setString(1,user_id);cs.executeQuery();public List<info> cx(String pid,String user_id) t

18、hrows ClassNotFoundException, SQLExceptionConnection con = null;LianJie lj=new LianJie();con = lj.getConnection();Statement sta = null;String sql = "SELECT * FROM userinfo where 1=1"if (pid != null && pid!="")sql = sql+" and pid='"+ pid+"'"if (

19、user_id != null && user_id!="")sql = sql+" and user_id='"+ user_id+"'"sta = con.createStatement();ResultSet rs = null;rs = sta.executeQuery(sql);List<info> list=null;list = new ArrayList<info>();while(rs.next()String user_id1 = rs.getString(1

20、);String user_name = rs.getString(2);String pid1 = rs.getString(3);String telephone = rs.getString(4);String addr = rs.getString(5);info s = new info();s.setUser_id(user_id1);s.setUser_name(user_name);s.setPid(pid1);s.setTelephone(telephone);s.setAddr(addr);list.add(s);return list;public List<inf

21、o> yhcx(String card_id)throws ClassNotFoundException,SQLException/System.out.println(card_id);Connection con = null;LianJie lj=new LianJie();con = lj.getConnection();PreparedStatement ps =null;String sql1="select u.user_id,u.user_name,u.telephone,c.card_id,c.open_date,c.balance from cardinfo

22、 c,userinfo u where c.user_id=u.user_id and card_id=? "ps = con.prepareStatement(sql1);ps.setString(1,card_id);ResultSet rs = ps.executeQuery();List<info> li=new ArrayList<info>();while(rs.next()String user_id=rs.getString(1);String user_name=rs.getString(2);String telephone=rs.getS

23、tring(3);String card_id1=rs.getString(4);Date open_date=rs.getDate(5);int balance=rs.getInt(6);info info=new info( );info.setUser_id(user_id);info.setUser_name(user_name);info.setTelephone(telephone);info.setCard_id(card_id1);info.setOpen_date(open_date);info.setBalance(balance);li.add(info);return

24、li;public void jiaoyi(info u) throws ClassNotFoundException,SQLExceptionSystem.out.println("qqqqq");String card_id = u.getCard_id();String trans_type=u.getTrans_type();int trans_money=u.getTrans_money();String card_id1 = u.getCard_id();System.out.println(card_id);Connection con = null;Lian

25、Jie lj=new LianJie();con = lj.getConnection();String sql = "call user_money(?,?,?,?)"CallableStatement cs = con.prepareCall(sql);System.out.println(card_id);System.out.println("aaaaa");cs.setString(1, trans_type);cs.setString(2, card_id);cs.setInt(3, trans_money);cs.setString(4,

26、card_id1);cs.executeQuery();public List<info> yhjy(String card_id) throws ClassNotFoundException, SQLExceptionConnection con = null;LianJie lj=new LianJie();con = lj.getConnection();Statement sta = null;String sql = "SELECT * FROM transinfo where 1=1"if (card_id != null && ca

27、rd_id!="")sql = sql+" and card_id='"+ card_id+"'"System.out.println(sql);sta = con.createStatement();ResultSet rs = null;rs = sta.executeQuery(sql);List<info> list=null;list = new ArrayList<info>();while(rs.next()Date trans_date = rs.getDate(1);Strin

28、g card_id1 = rs.getString(2);int balance = rs.getInt(3); String trans_type = rs.getString(4); int trans_money = rs.getInt(5); String remark = rs.getString(6); info s = new info(); String a=trans_date.toString(); System.out.println(a); s.setTrans_date(a); s.setCard_id(card_id1); s.setBalance(balance)

29、; s.setTrans_type(trans_type); s.setTrans_money(trans_money); s.setRemark(remark); list.add(s);return list;public info dl(String user_id,String passwd)throws ClassNotFoundException, SQLExceptionConnection con = null; LianJie lj=new LianJie(); con = lj.getConnection(); Statement sta = con.createState

30、ment();String sql = "SELECT card_id FROM cardinfo where user_id='"+user_id+"' and passwd='"+passwd+"'" ;ResultSet rs = null; rs = sta.executeQuery(sql); String card_id=null; info in=null; while(rs.next() in = new info(); card_id = rs.getString("card

31、_id"); in.setCard_id(card_id);System.out.println("card_id:"+card_id);sta.close();con.close();return in;public List<info> card(String user_id) throws SQLException, ClassNotFoundExceptionConnection con = null;LianJie lj=new LianJie();con = lj.getConnection();Statement sta = con.cr

32、eateStatement();String sql = "SELECT * FROM cardinfo where user_id='"+user_id+"'" ;ResultSet rs = null;rs = sta.executeQuery(sql);String card_id=null;List<info> list=null;list = new ArrayList<info>();while(rs.next()card_id = rs.getString("card_id");D

33、ate open_date = rs.getDate("open_date");int open_money = rs.getInt("open_money");int balance = rs.getInt("balance");String passwd = rs.getString("passwd");user_id = rs.getString("user_id");info in=new info( );in.setCard_id(card_id);in.setOpen_date(op

34、en_date);in.setOpen_money(open_money);in.setBalance(balance);in.setPasswd(passwd);in.setUser_id(user_id);list.add(in);System.out.println("list:"+list); sta.close();con.close();return list;public List<info> select(String user_id) throws Exception Connection con = null;LianJie lj=new L

35、ianJie();con = lj.getConnection();PreparedStatement ps =null;String sq3="select * from userinfo where user_id=?" if(user_id=null|user_id.equals("")sq3="select * from userinfo"ps = con.prepareStatement(sq3);elseps = con.prepareStatement(sq3);ps.setString(1,user_id);Resul

36、tSet rs = ps.executeQuery();List<info> li=new ArrayList<info>();while(rs.next()String user_id1=rs.getString(1);String user_name=rs.getString(2);String pid=rs.getString(3);String telephone=rs.getString(4);String addr=rs.getString(5); info info=new info( ); info.setAddr(addr);info.setPid(p

37、id); info.setTelephone(telephone); info.setUser_id(user_id1); info.setUser_name(user_name);li.add(info);System.out.println("pidddd"+info.getPid();return li;public void update(info in) throws SQLException,ClassNotFoundExceptionSystem.out.println(" 开始 update 数据库操作 ");String userid

38、= in.getUser_id();String username = in.getUser_name();String telephone = in.getTelephone() ;String addr = in.getAddr();String sq8="update userinfo set USER_NAME=?,TELEPHONE=?,ADDR=? where user_id=?"Connection con = null;LianJie lj=new LianJie();con = lj.getConnection();PreparedStatement st

39、a=con. prepareStatement(sq8);sta.setString(4, userid);sta.setString(1, username);sta.setString(2, telephone);sta.setString(3, addr);sta.executeUpdate();System.out.println(" 修改结果为: " +sq8);sta.close();con.close();public String id(String user_name)throws ExceptionSystem.out.println(" 进入

40、方法中找到 user_name"+user_name);LianJie lj=new LianJie();Connection con = lj.getConnection();String sq7="select user_id from userinfo where user_name=? "PreparedStatement st=con.prepareStatement(sq7);st.setString(1,user_name);ResultSet rs=st.executeQuery();String user_id1=null;while(rs.ne

41、xt()user_id1= rs.getString("user_id");System.out.println(" 在方法中找的 user_id 是 "+user_id1);return user_id1;public List<info> yhselect(String card_id) throws Exception Connection con = null;LianJie lj=new LianJie();con = lj.getConnection();PreparedStatement ps =null;String sq3=

42、"select * from cardinfo where card_id=?" if(card_id=null|card_id.equals("")sq3="select * from cardinfo"ps = con.prepareStatement(sq3);elseps = con.prepareStatement(sq3);ps.setString(1,card_id);ResultSet rs = ps.executeQuery();List<info> list=new ArrayList<info&

43、gt;();while(rs.next()card_id = rs.getString("card_id");Date open_date = rs.getDate("open_date");int open_money = rs.getInt("open_money");int balance = rs.getInt("balance");String passwd = rs.getString("passwd");String user_id = rs.getString("use

44、r_id");info in=new info( );in.setCard_id(card_id);in.setOpen_date(open_date);in.setOpen_money(open_money);in.setBalance(balance);in.setPasswd(passwd);in.setUser_id(user_id);list.add(in);return list;public void yhupdate(info in) throws SQLException,ClassNotFoundExceptionSystem.out.println("

45、 开始 update 数据库操作 ");String card_id = in.getCard_id();String passwd= in.getPasswd();String sq8="update cardinfo set passwd=? where card_id=?"Connection con = null;LianJie lj=new LianJie();con = lj.getConnection();PreparedStatement sta=con. prepareStatement(sq8);sta.setString(1,passwd);

46、sta.setString(2,card_id);sta.executeUpdate();System.out.println(" 修改结果为: " +sq8);sta.close();con.close();public List<info> yhc(String card_id,String passwd) throws ClassNotFoundException, SQLExceptionConnection con = null;LianJie lj=new LianJie();con = lj.getConnection();Statement st

47、a = null;/ if (card_id != null && card_id!="")/ String sql = "SELECT a.passwd,a.open_money,b.user_id,b.user_name,b.telephone,a.card_id,a.open_date,a.balance FROM cardinfo a,userinfo b where a.user_id=b.user_id and a.card_id='"+ card_id+"' and a.passwd='&q

48、uot;+passwd+"'"System.out.println(sql);sta = con.createStatement();ResultSet rs = null;rs = sta.executeQuery(sql);List<info> list=null;list = new ArrayList<info>();while(rs.next()String passwd1 = rs.getString("passwd");int open_money=rs.getInt("open_money&quo

49、t;);String user_id = rs.getString("user_id");String user_name = rs.getString("user_name");String telephone = rs.getString("telephone");card_id = rs.getString("card_id");Date open_date = rs.getDate("open_date");int balance = rs.getInt("balance");info in=new info( );in.setPasswd(passwd1);in.setOpen_money(open_money);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论