




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java课程设计报告项目: ATM自动取款机 姓名: 学号: 10592127 班级: 10级网络一班 分数: 角色姓名学号任务分配组长10592127数据库连接,主页代码,取款,查询,系统提示,和整理代码。 组员10592235欢迎界面,登陆界面,修改密码,退出界面项 目 说 明目 录第一部分、项目整体概述页第二部分、数据库信息描述页第三部分、自己承担部分的实验报告页第四部分、心得体会页一、 项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。包括代码设计、数据库设计、用户界面设计、处理过程设计。代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。它也是管理信息系统设计的重要组成部分。数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。通过收集和分析用户需求,确定了数据库要保存的信息。我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。能让人们通过我们的设计完成想要的操作。为人们带来方面。(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。当密码和用户名都正确时则进入选择服务界面。(4)选择页面可以选择修改密码,查询余额,和取款3个服务。(2)修改密码。当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。(3)取款。用户根据自己需要取多少钱,点击自定义按钮输入要取的金额,每次取款金额为大于0的数就可以了,但取款金额不允许透支。还可以点击按钮进行取款,如果选择的金额大于自己账户的金额则提示金额不足。(4)查询余额。用户需要知道自己账户还剩多少钱时,可以查询自己账户的余额。实验流程图如下:待机界面(按登陆按钮进入到登陆界面,推出按钮退出)选择服务界面(查询、取款、修改密码、退出)登录界面(先输入卡号,在输入密码)(没有该用户名称或密码错误,请核对后重新输入。)修改密码查询退出取款交易完成点击退出二、数据库信息描述建立的数据库是根据代码的完成建立的其数据库为ATM,表名为guest。在表中建立id字段其类型为自动编号,并设置其为主键,用户名字段为gid,密码字段为pwd,金额字段为gmoney。在表中分别输入我的和组员信息。金额类型为数字。建立好数据库知道连接到程序中运行即可。三、自己承担部分的实验报告连接数据库现在控制面板管理工具中建立数据源连接数据库代码为import java.sql.*;import java.io.*;public class dataAccess private Connection conn; private Statement stmt; public dataAccess() /构造函数设置连接数据库 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String dburl =jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=Dataatm.mdb; conn=DriverManager.getConnection(dburl); stmt=conn.createStatement(); catch(Exception e1) System.out.println(e1.toString(); public ResultSet getData(String sqlstr)/返回查询的数据集 try ResultSet rs=this.stmt.executeQuery(sqlstr); return rs; catch(Exception e) System.out.println(e.toString(); return null; public int getRowcount(String sqlstr) int i=0; try ResultSet rs=this.getData(sqlstr); while(rs.next() i+;catch(Exception e)System.out.println(e.toString();finallyreturn i; public boolean exeSql(String sqlstr)/执行无返回的SQL语句 try stmt.execute(sqlstr); return true; catch(Exception e) System.out.println(e.toString(); return false; public void sleep(int second) try Thread th=new Thread(); th.sleep(second*1000); catch(Exception e) System.out.println(e.toString(); protected void finalize()/析构函数tryif(stmt!=null) stmt.close();if(conn!=null) conn.close();catch(Exception e) 选择服务界面:它是由取款,查询金额,和修改密码构成点击按钮的时候跳到相应的界面有四个按钮分别布局于东西南北四个方向,选择服务字放在中间。选择服务页面代码:public void showMenu()PnlMenu=new Panel();GridLayout gdo3=new GridLayout(4,3,4,3);Label albl=new Label(请选择业务);/albl.setBackground(Color.green);albl.setAlignment(Label.CENTER);a1=new Button(1、取款服务);a2=new Button(2、查询余额);a3=new Button(3、修改密码); a4=new Button(4、退出);a1.addActionListener(this);a3.addActionListener(this);a2.addActionListener(this);a4.addActionListener(this);PnlMenu.setLayout(gdo3);PnlMenu.add(albl);PnlMenu.add(a1);PnlMenu.add(a2);PnlMenu.add(a3);PnlMenu.add(a4);a1.setSize(200,200);a2.setSize(600,200);a3.setSize(200,200);a4.setSize(600,200);albl.setSize(200, 200);a1.setFont(new Font(楷体,Font.BOLD,18);a2.setFont(new Font(楷体,Font.BOLD,18);a3.setFont(new Font(楷体,Font.BOLD,18);a4.setFont(new Font(楷体,Font.BOLD,18);albl.setFont(new Font(楷体,Font.BOLD,24);albl.setForeground(Color.red);PnlMenu.setLayout(new BorderLayout();PnlMenu.add(a1,BorderLayout.WEST);PnlMenu.add(a4,BorderLayout.SOUTH);PnlMenu.add(a2,BorderLayout.NORTH);PnlMenu.add(a3,BorderLayout.EAST);PnlMenu.add(albl,BorderLayout.CENTER);用于点击按钮跳转到页面代码:if(e.getSource()=a1)/进入取款界面clt.show(fram,Getmoney);return;if(e.getSource()=a2)/进入余额查看界面float mleft=act.queryBalance(gid);lbleft.setText(帐号余额为:¥ +mleft);lbleft.setFont(new Font(楷体,Font.BOLD,15);clt.show(fram,Queryleft);return;if(e.getSource()=a3)/进入密码修改界面clt.show(fram,Chgpwd);return;取款页面可以根据想要去的金额去点击按钮取钱,也可以输入自定义金额取钱,但两种方法都不能透支。取款页面代码:public void showGetMoney()PnlGetmoney=new Panel();GridLayout gdo4=new GridLayout(4,2);PnlGetmoney.setLayout(new BorderLayout();Label blbl=new Label(请选择取款金额);blbl.setFont(new Font(楷体,Font.BOLD,24);msg3=new Label();p1=new Panel();b1=new Button(100);b2=new Button(500);b3=new Button(1000);b4=new Button(3000);b5=new Button(5000);b6=new Button(自定义);b1.setFont(new Font(楷体,Font.BOLD,15);b2.setFont(new Font(楷体,Font.BOLD,15);b3.setFont(new Font(楷体,Font.BOLD,15);b4.setFont(new Font(楷体,Font.BOLD,15);b5.setFont(new Font(楷体,Font.BOLD,15);b6.setFont(new Font(楷体,Font.BOLD,15);b1.addActionListener(this);b5.addActionListener(this);b2.addActionListener(this);b6.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b7=new Button(返回);b7.setFont(new Font(楷体,Font.BOLD,15);b7.addActionListener(this);b8=new Button(退出);b8.setFont(new Font(楷体,Font.BOLD,15);b8.addActionListener(this);Panel bpnl1=new Panel();bpnl1.add(blbl);Panel bpnl3=new Panel();bpnl3.add(b7);bpnl3.add(b8);Panel bpnl2=new Panel();bpnl2.setLayout(gdo4);bpnl2.add(b1);bpnl2.add(new Label();bpnl2.add(b4);bpnl2.add(b2);bpnl2.add(msg3);bpnl2.add(b5);bpnl2.add(b3);bpnl2.add(new Label();bpnl2.add(b6);bpnl2.add(new Label(); bpnl2.add(bpnl3);bpnl2.add(new Label();PnlGetmoney.add(bpnl1,BorderLayout.NORTH);PnlGetmoney.add(bpnl2,BorderLayout.CENTER);PnlGetmoney.add(bpnl3,BorderLayout.SOUTH);public boolean reduceMoney(String tgid,float money) String ssql; if(this.queryBalance(tgid)0)/手动输入金额操作trygmoney=Float.parseFloat(ta.getText();if(act.reduceMoney(gid,gmoney) lblMsg.setText(mce.printBill(gmoney,gid,act.queryBalance(gid);nstate=3;elselblMsg.setText(余额不足!);lblMsg.setFont(new Font(楷体,Font.BOLD,15);nstate=3;catch(NumberFormatException e2)/输入非法的金额lblMsg.setText(您输入的金额错误!);nstate=2;finallyclt.show(fram,Msg);return;if(e.getSource()=a4 | e.getSource()=b8 | e.getSource()=c2 | e.getSource()=d2 | e.getSource()=x1 | e.getSource()=y1 | e.getSource()=quit)/退出系统this.gid=;this.pwd=;act.finalize();dac.finalize();rcd.exitCard();查询界面;public void showQueryLeft()PnlQueryleft=new Panel();PnlQueryleft.setLayout(new BorderLayout();Label clbl=new Label(帐户余额);clbl.setFont(new Font(楷体,Font.BOLD,24);clbl.setAlignment(Label.CENTER);lbleft=new Label();Panel cpnl1=new Panel();cpnl1.add(lbleft);Panel cpnl2=new Panel();c1=new Button(返回);c1.setFont(new Font(楷体,Font.BOLD,15);c1.addActionListener(this);c2=new Button(退出);c2.setFont(new Font(楷体,Font.BOLD,15);c2.addActionListener(this);/cpnl2.add(edok);Button edok=new Button(确定);cpnl2.add(c1);cpnl2.add(c2);PnlQueryleft.add(clbl,BorderLayout.NORTH);PnlQueryleft.add(cpnl1,BorderLayout.CENTER);PnlQueryleft.add(cpnl2,BorderLayout.SOUTH);public float queryBalance(String gid) ResultSet rs; String ssql=select * from guest where gid=+gid+; float balance=0; try rs=das.getData(ssql); rs.next(); balance=rs.getFloat(gmoney); catch(Exception e) System.out.println(e.toString(); finally return balance; 系统提示界面非法操作或操作成功的时候跳转到此界面代码:public void showHint()PnlMsg=new Panel();PnlMsg.setLayout(new BorderLayout();Label elbl=new Label(系统提示);elbl.setFont(new Font(楷体,Font.BOLD,24);elbl.setAlignment(Label.CENTER);lblMsg=new Label();Panel epnl=new Panel();epnl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 突然停电应急预案演练培训考试题及答案
- 2025年电工职业技能考试试题及答案
- 化学清洗工标准化作业考核试卷及答案
- 劳动保障协理员安全规范考核试卷及答案
- 人力资源管理期末考试试题及答案
- 三级上册科学期中试卷及答案
- 六级上册数学试卷及答案
- 2025年安全生产、清洁生产、环境保护、职业健康管理考试试题及答案
- 创新思维与问题解决能力培养
- 惠州市人教版七年级上册地理期中试卷及答案
- 智能交通系统建设方案
- 教科版小学科学一年级上册全册教案【全套】
- 成人肠造口护理
- 安徽省宣城市宣州区宣城市第六中学2024-2025学年九年级上学期开学物理试题
- 2024届重庆巴川量子中学毕业升学考试模拟卷数学卷含解析
- 家庭经济困难学生认定申请表
- 世界科学技术史全册配套完整课件
- 金川集团社招考试题
- 合规和法律合规管理制度
- 选择性必修二《Unit 1 Science and Scientists》单元教学设计
- 新手会计上岗实操100问
评论
0/150
提交评论