《Java程序设计》课程设计报告ATM

《Java程序设计》课程设计报告ATM
《Java程序设计》课程设计报告ATM

《Java程序设计》课程设计报告

题目:模拟银行储蓄业务软件

学生姓名:孙xx 学号:20***********1016 学生姓名:王xx 学号:20***********1019 系别班级:14级计算机科学与技术1班

专业(方向):

指导教师:曹**

信息管理与工程系

2015年12月26日

目录

1 系统的需求分析 (1)

2 系统总体设计 (1)

2. 1 系统总体设计架构 (1)

2. 2 系统各模块设计结构 (2)

2.2.1 用户模块 (3)

2.2.2 管理员模块 (4)

2.3 设计要求 (4)

2.4 系统权限划分 (5)

3 系统详细设计 (5)

3.1 数据类型建立 (5)

3.2 程序模块具体设计 (5)

3.2.1 信息存储模块 (5)

3.2.2 界面功能模块 (6)

3.2.3 用户服务模块 (10)

3.2.4 管理员模块 (14)

4 系统开发环境 (18)

4.1 开发工具 (18)

4.2 应用环境 (18)

5 系统测试 (19)

6 系统不足与改进 (25)

6.1 系统不足 (25)

6.2 改进想法 (25)

7 课程设计总结与心得 (26)

参考文献 (27)

1 系统的需求分析

当前的银行服务项目较多,一些可以通过独立设备进行的操作的服务项目仍然在专柜进行会造成资源浪费。并且传统的柜台服务,效率较低。例如,存取款以及查询存款等不耗时业务,却需要排队等待很长时间。为了节约时间,节省人力物力,所以有必要把银行部分业务从柜台分离出来,以提高银行整体的工作效率。

随着计算机技术的发展,人们的需求也不断增加。日常生活中人们越来越多的使用ATM来进行存钱、取钱、转账等银行业务,这个项目的开发是为银行提供一套高效稳定可靠的终端服务平台,为储户登录、存款、取款、查询、转账、手机充值等操作提供便利。这些已经一本实现,需要提高服务的便捷性和用户界面的友好性。

该系统还主要实现了管理员操作,可以减少实现客户挂失、补卡、开卡等功能的等待时间。

其中的一些术语官方解释如下:

客户:在银行办理各种业务的自由人。

卡:客户在银行卡户的凭证之一。ATM机通过读取卡中信息,进行自助服务。

储户:在银行办理存款的客户。

ATM :Auto Teller Machine,分为两部分组成。一部分是ATM服务器,另一部分是ATM终端。终端负责和银行卡持有者进行交互,ATM服务器负责处理交易。一个ATM服务器可以同时连接多个ATM终端。

账号:客户在银行开户的唯一ID。

2 系统总体设计

2. 1 系统总体设计架构

系统主要分为两大界面,一个是用户界面,一个是管理员界面。有各自的进入页面方式,而进入用户界面主要有存款、取款、查询、改密码、转账和手机交

费的功能。管理员界面主要有开户、补办、注销、挂失操作。

在功能实现时,主要有一个公共类用于设置各种信息的类型,另一个类用于存储实例化的用户信息。

一个主界面类,进行进入页面的选择。然后点击进入用户界面或者管理员界面,两个页面分别包括上述的功能按钮。可以点击进行选择进入相应的页面进行操作。每个界面,每个功能都会单独进行一个类的设置。

2. 2 系统各模块设计结构

该系统分为用户模块和管理员模块。其中用户模块分为6个模块,管理员分为4个模块。

图2-1 用户界面结构示意图

图2-2 管理员界面结构示意图

2.2.1 用户模块

1、存款:界面设置——定义各种按钮名称和文本框名称,实例化要添加的文本框、按钮,设置背景图片,向面板上添加按钮和文本框并设置添加位置、大小和按钮的背景颜色,设置窗体大小。下面的每个用户界面的设置方式基本都相同就不一一列举主要叙述功能的实现。

功能实现——存款的过程相对简单,主要是将文本域内的内容转换为String 类型,然后将当前用户的金额加上刚刚转换来的数值,并将其设置到相应的用户信息的变量上即可。

2、取款:功能实现就是按钮的动作监听。功能实现有所不同,取款分为储蓄卡和信用卡,通过设置标记来进行标记,用于区分两种卡。将输入到文本框的内容强制转化,在所有的信息中搜索与该卡号相符的信息,将所有信息保存到新的集合类,进行更改。进行小窗口的提示输出。

存取款的过程中,面板上会有两个相对其他面板不同的按钮,就是显示存取款金额的按钮,每个按钮都设置相应的监听,如果按动此按钮,则将按钮上的相应信息传给setTest函数,将文本域内设置为相应的数值。

3、查询:只是需要设置监听动作实现查询按钮的功能。需要查询时将文本域内的内容强制转换为String类型,在集合类中查找相应内容,并为小窗体显示的函数传入相应的数值。通过小窗体显示金额。

4、修改密码:在功能现实时主要考虑原密码是否正确、两次输入的新密码是否一致、输入的密码是否为六位有效字符。如果正确进入相应的页面,输入错误三次后则吞卡。两次密码输入不一致则进行小窗口提示,并且调用函数将输入的内容清空,让用户重新输入。字符串长度不为六位则进行清空重新输入。

5、转账:在功能现实时需要考虑的问题就是卡号输入是否正确、判断是否输入的是数字、输入卡号的格式是否为三位有效的数字。输入的卡号是否为当前登录的用户的卡号,如果是则小窗口提示不能为自己转账。如果正常转出,即余额能满足支出金额时,则在集合类对象中将所取金额减去并进行存储即可。当转出金额大于卡内余额时需要提示,这里可以通过boolean值来进行标记,判断如果是信用卡则可以透支1000元,如果透支额度超过1000元,提示用户取款不成

功。

6、手机交费:在功能是需要考虑的就是输入的手机号码的判断,利用到了正则表达式。判断手机号码以常用的两位数字开头,且总的位数为11位的正确数字,还有就是当充值的金额大于卡内金额时,要区分卡是否为信用卡,需要对用户进行提示。

7、利率:利率是在用户主界面上设置的一个动作监听不是一个单独的类。将相应的信息get出来,然后将其乘以当前市场的短期存款利率,将获得的数值传入到小窗口提示的函数中,在小窗口进行输出。

2.2.2 管理员模块

1、开户:在功能实现上我们需要考虑的是银行卡的类型有信用卡和储蓄卡两种、进行姓名输入时要判断该用户是否进行过开户,如果已开户则不能再次进行开户。密码的数位少于6位时,我们需要提示密码请输入不少于6位的数字,在第二次输入密码的时候需要考虑的是两次密码是否一致,当不一致时候需要提示用户,密码输入不一致。自动进行清空。

2、注销:注销中需要想到的是用户输入需要注销的卡号有没有存在这个需要判断一下,当输入错误的卡号时需要提示您输入的卡号不存在。同时还有注销卡号的密码是否输入正确。输入错误时同样需要提示你输入的密码有误。注销之后还有一个调查,进行收集用户注销的原因,设置了三个选择的数据。

3、挂失补办:补办中我们需要考虑的是挂失的卡号和密码,卡号需要满足的是卡号的号码输入正确,同时对应卡号的密码也需要输入正确。但是如果这个卡被注销过之后我们就不能进行补办,同时提示你这张卡不存在。

2.3 设计要求

设计实现模拟银行储蓄业务软件。

能够实现管理员的登录,能够进行账户的开户、账户的查询及账户销户等业务。用户可以实现存款、取款、转账以功能。能够结合当前的利率,为储户自动计算相应的存款收益。

2.4 系统权限划分

本系统分为用户和管理者两个主面板,用户可以通过自己的卡号和密码进行用户界面的登录。管理员需要通过身份验证——密码验证,进行管理员界面登录,然后对用户信息进行相应的操作。

3 系统详细设计

3.1 数据类型建立

3.2 程序模块具体设计

该程序主要分为四个主要模块。一个是公共类,用于存储用户的信息和实例化的对象信息;一个是用户服务模块,主要包括用户登录界面的设计还有用户各种功能类的实现;还有一个是管理员模块,主要包括管理员的各种业务实现。并且将信息存储模块单独建立package其他的功能类放到一个package中,进行信息存储与功能的划分。在所有功能实现后,由一个主要登录界面、一个用户登录界面和一个管理员登陆界面的设置。主要的登录界面用于选择人员登录,是管理员还是用户。进入相应界面后就是相应的人员登录口令,登陆后就进入个字的主要面板。下面具体进行介绍。

3.2.1 信息存储模块

建立两个类。一个是card类,设置用户信息包括的类型变量主要有账户、密码、姓名、存款总金额。再设置一个布尔类型值,用于判断用户使用的卡片是

储蓄卡还是信用卡。普通储蓄卡标记为true,信用卡标记为false。

private String account;//账户

private String pwd;//密码

private String name;//姓名

private float totalMoney;//总金额

private boolean type//标记卡的类型

类型变量设置完成后设置一个构造方法,传递参数。然后设置每个类型的set,get方法。用于变量的设置和获取。

另一个是CardArray类,在CardArray类中定义一个集合类对象,通过集合类对象来存储用户的分条信息。在构造成员方法时,将返回类型设置为集合类类型。并且在类中通过add();方法向集合类中添加实例化的card类的三条用户信息。

3.2.2 界面功能模块

(一)主界面(Main):主界面主要是用于管理员和用户的登录选择。主要包括界面的设计,按钮的设计和两个按钮的动作监听。还包含一个使用该系统时系统的时间显示。

设置按钮JButton btClient,btServer;、容器和面板Container container=this.getContentPane();JPanel panel = new JPanel(null);,设置按钮的位置按钮的大小以及字体的设置和按钮背景色。

btClient.setBounds(120,260,140,40);

btServer.setBounds(300,260,140,40);

lTime.setBounds(70,350,100,40);

btClient.setFont(font);

btServer.setFont(font);

lTime.setFont(font);,

//按钮背景色

btClient.setBackground(Color.white);

btServer.setBackground(Color.white);

先设置窗体,窗体的大小this.setSize(580,450); 、窗体大小不可变setResizable(false)、位置setLocation(350, 170);、可视setVisible(true)、窗体题目setTitle("欢迎来到金苑银行!");以及窗体关闭按钮的动作添加panel.setLayout(null);。然后就是界面设计,包括容器和面板的使用以及将相应的按钮添加到panel上。为使窗体更美观,设置一个方法,将p好的背景图片设置大小和位置在窗体显示。

panel = new JPanel() {

protected void paintComponent(Graphics g) { //图片设置

ImageIcon icon = new ImageIcon("Image\\serverLogin.jpg");

Image img = icon.getImage();

g.drawImage(img, 0, 0, 580,450, this);

}

};

其次就是系统时间的设置,通过SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");Date now=new Date();语句获取当前时间,并且设置时间的显示格式,然后添加到面板即可。

以下的主页面和登录页面的设置与主页面几乎相同,就不进行详细的介绍了。

最后就是按钮的设置和两个按钮的动作监听。将两个按钮Client、Sever添加到面板,设置其位置和大小,并通过setFont来设置显示的字体和字号。通过setBackground设置按钮的颜色。最主要的就是对这两个按钮进行动作的监听。首先是用户按钮,因为要点击用户按钮进入用户界面所以直接调用ClientLogin 中的init()方法即可。然后就是server按钮,点击管理员按钮进入管理员界面,所以直接调用severLogin类中的init()方法,进入相应的界面进行接下来的操作。

在Main主界面中设置程序的入口主函数,实例化自身即可,通过调用自身的initiative()方法就将主界面显示出来,通过上述按钮的动作添加就可以进入接下来的页面,进行相应的操作。

(二)用户登录界面(ClientLogin):

界面的设置与主界面相同,在这里还用到了一个文本域的设置。JPasswordField pfPwd;//输入密码的框

该界面还包括用户帐号和密码的输入,以及ok、cancel和empty按钮的监听设置。

首先设置ok按钮的监听,String account=tfAccount.getText();String pwd=new String(pfPwd.getPassword());通过这两个语句将文本域内输入的内容转换为String类型。然后利用集合类的迭代的方法将CardArray中的所有集合类的元素赋值给currCard集合类。然后就是功能的实现。这里定义的boolean 值用于判断集合类中的卡号信息和获得的String变量是否相等,如果相等返回true否则返回false。如果不相等,通过

JOptionPane.showMessageDialog(ClientLogin.this,"账号有误!");语句用小窗口提示:账号有误。如果相等,则说明有此用户的信息,那么进行下一步的判断——密码是否相等。如果相等那么小窗口提示欢迎用户登录,并且调用ClientMain类中的init()方法,进入ClientMain的主界面。设置计数器进行计数如果输入三次密码错误,那么小窗口提示错误三次,吞卡。并且直接通过System.exit(0)来退出程序。

然后是Empty按钮的动作,直接通过调用setText();方法,将文本域中的内容清空。

最后是取消按钮的设置,通过调用dispose方法清空屏幕的部分信息,然后调用主函数的init()方法,返回主函数的界面。就可以进行下一步的操作。

(三)用户主页面(ClientMain):

其中有两项功能直接添加在用户登录界面上,是余额查询和利率的计算。余额的查询主要是通过一个JOptionPane.showMessageDialog();方法在方法中传入要显示的数值,该数值通过currCard.getTotalMoney()来获得。利率的计

算也是通过JOptionPane.showMessageDialog();在小窗口来显示,方法传入的数值通过(0.0035*(currCard.getTotalMoney()))来传递。当前活期利率为0.35%所以数值计算用当前所剩的金钱总数乘以0.0035来获得。

其中四项操作都是通过定义相应的类,通过设置动作监听,调用相应类的init()方法进入相应的界面。取钱、存钱、改密码、转账方法都是通过这种方法实现的。次类动作按钮的设置都很简单,都是通过dispose()清空屏幕信息,然后调用相应的init()方法,进入到相应的界面。

最后是退出操作,直接调用System.exit(0);方法直接推出程序,就是用户操作完成后的退卡操作。

(四)管理员登录界面(SeverLogin):

管理员登陆界面设计与用户登录界面设计相同。

然后就是按钮的动作监听,ok按钮,首先将文本域内输入的内容强制转换为String类型String pwd=new String(pfPwd.getPassword());,然后判断该字符串是否与密码相同,如果相同则清空屏幕信息进入管理员的主界面,通过实例化管理员主界面的类来进行相应函数的调用转跳;如果不同,计数器增加1,并且输出小窗口提示密码错误,如果计数器记到3依然错误,那么小窗口提示错误次数太多请与15分钟后再次登录。小窗口提示信息通过JOptionPane.showMessageDialog();在括号内传入相应的信息即可显示出来。

取消按钮通过实例化Main,来调用init()方法来进行转跳。

(五)管理员主界面(SeverMain):

管理员登陆界面功能的实现。在这里要将所有的信息读取出来,显示在主界面上。显示卡号、姓名。这里就需要使用迭代器和集合类的方法,新定义一个集合类将原集合类中的所有信息添加到新的集合类中,将其显示的主面板上。

Iterator it=CardArray.getCardList().iterator();

int w=180,h=180;

while(it.hasNext()){

currCard=it.next();

JLabel lName=new JLabel("姓名:"+currCard.getName());

JLabel lAccount=new JLabel("卡号:"+currCard.getAccount());

panel.add(lName);

lName.setBounds(w, h, 100, 30);

lName.setFont(new Font("微软雅黑",Font.PLAIN,14));

panel.add(lAccount);

lAccount.setBounds(w+100,h, 100, 30);

lAccount.setFont(new Font("微软雅黑",Font.PLAIN,14));

h+=30; }

动作的监听都是比较简单的,主要包括注销、开户、挂失、补卡的操作,这些按钮都建立了相应的类,通过实例化对象,调用相应的init()方法就可以实现窗口之间的跳转。

3.2.3 用户服务模块

所有的用户模块采用Jframe来进行设计,首先要做的就是容器的设置以及在容器上添加面板。

每一个类的设计分为两类:一类是窗口显示模块的设计、一类是按钮动作的监听的设置。窗口显示模块主要包括每个窗体的大小、位置的设计,背景图片大小、位置的设计,按钮的位置、大小和颜色的设计。动作监听在下面的每一类中进行详细的解释。

(一)更改密码(ChangePwd):更改密码首先是要进行原密码和更改的密码的输入。要在面板上添加单行文本域进行内容的输入。然后将输入的内容赋值给相应的变量,便于动作监听时进行使用。动作的监听有OK按钮、取消按钮、清空按钮。

首先是ok按钮,表示新旧密码的输入完成,点击ok后提示密码修改完成。在更改密码时要进行三次密码的判断,一是判断密码输入是否正确,二是判断两次输入的新密码是否相同,三是判断输入的新密码是否为六位数。在现实这个过

程的时候,首先要将文本框内的内容转换为字符串类型String oldpwd=new String(pfOldPwd.getPassword());,以便于调用字符串的equals()方法进行密码是否相符的判断。oldpwd.equals(currCard.getPwd())用来判断当前文本域内输入的字符串是否与原来的字符串相等,如果不相等则小窗口提示密码输入错误,并利用pfOldPwd.setText("");(setText方法用于清空数据重新输入)语句,将文本域内输入的内容清空,请用户进行重新输入。若判断输入的字符串与实例化的对象的相应信息相同,则进行新密码两次输入的匹配判断,如果不相等,进行小窗口提示两次输入的信息不匹配,然后利用

pfNewPwd.setText("");pfRNewPwd.setText("");语句将两次输入的密码清空,请用户进行重新输入。如果两个字符串比较结果相同,那么进行最后一个环节的判断,利用语句if(newpwd.length()==6)判断字符串长度是否为6,如果不为6进行小窗口输出提示,并清空相应的文本域进行重新输入。如果为6则进行集合类对象中的相应内容的查找和修改。利用ArrayList

al=CardArray.getCardList();语句将CardArray集合类中的所有信息赋值给新的集合类对象a1,然后通过int i=al.indexOf(currCard);将当前输入的信息与集合类中所有的信息进行匹配,找到后将首次出现该信息的位置返回给i变量。并通过currCard.setPwd(newpwd);al.set(i,currCard);语句将查找出来的信息条目的密码进行更改。更改后,小窗口提示用户密码更改成功。

然后是cancel按钮,取消改密码的操作ChangePwd.this.dispose();(dispose方法销毁程序中指定的图形界面资源,对数据资源不产生影响,所以当我们在SWing或是AWT中的图形界面组件时如果调用它,组建内的数据对象不会消失,只有在这些数据资源其他地方没有再使用后才会由垃圾回收机制处理掉。)然后调用用户主界面的init()方法new ClientMain(currCard).init();,返回到用户主界面即可进行接下来的其他操作。

最后是Empty按钮,主要用于信息输入错误,进行该操作页面的信息清空处理。只要调用setText()方法,将每个文本域的内容设置为空即可。

(二)取钱(TakeMoney):取钱的面板设置基本相同,多了一些按钮,显示取款的金额的按钮,btMon100=new JButton("¥ 100");btMon300=new JButton("¥300");btMon500=new JButton("¥500");btMon800=new JButton("

¥800");btMon1000=new JButton("¥1000");btMon3000=new JButton("¥3000");btMon2000=new JButton("¥2000");btMon5000=new JButton("¥ 5000");将这些按钮添加到面板上,通过setText();将按钮上的数值填写到文本域中。这些按钮可以通过函数setBackground()来设置按钮的背景颜色。通过setBounds();来设置按钮的位置和大小。

然后就是动作的监听,ok按钮,主要是取款成功提示,但这里也不乏取款不成功的时候。按下ok键时首先要进行判断,首次判断输入的内容是否为整百,即取余数是否为0,来进行判断。如果为0那么进行下面的内容,如果不为0提示输入错误。进入下一次判断后,要判断卡的类型为信用卡还是储蓄卡,如果为储蓄卡那么所取金额必须小于卡内余额如果条件不成立,那么通过小窗口提示取款失败。JOptionPane.showMessageDialog(TakeMoney.this, "余额不足!!");如果为信用卡,那么可以透支1000元,主要通过余额减去获取文本域内容然后与-1000比较,如果大于-1000那么取款成功。如果小于-1000那么小窗口提示已透支取款不成功。如果取款成功那么通过indexOf()函数查找出当前记录的首次出现为止,将相应信息进行更改即可。

取消按钮,主要是实例化ClientMain类,调用init()方法进行转跳。转跳到主界面。

(三)存钱(SaveMoney):存钱包括了主界面的设置方法和取钱的界面的设置方法。就不详细介绍了。

Ok按钮主要是从当前集合类中利用get方法查找出相应的信息,将文本域内的内容转换为int类型。然后将查找出来的信息与转换的内容相加。重新写回集合类中。int saveMoney=Integer.parseInt(tfSaveMoney.getText()); currCard.setTotalMoney((int) (currCard.getTotalMoney()+saveMoney));

ArrayList al=CardArray.getCardList();

int i=al.indexOf(currCard);

al.set(i,currCard);

取消按钮就是对取消的监听,通过实例化ClientMain调用相应的init()

方法,来跳转到相应的界面。

(四)转账(Transfer):转账界面主要包括文本域JTextField tfAccount,tfTransMoney;的设置,第一个文本域用来输入传入的帐号,第二个文本域用来存储传出的金额。按钮的设置,JButton btOk,btCancel,btEmpty;下面会具体介绍每个按钮的动作监听。设置两个Card类型的变量Card currCard;private Card currCard2;,用于存放实例化出来的Card对象。其他的窗体可视、大小、位置、关闭,界面图片,按钮大小、位置、字体、颜色等的设置都与其他的界面相同。

Ok动作按钮,首先将文本域的内容提取出来强制转换为String和int类型。用于以后的查找、判断和运算。String account=tfAccount.getText();int transMoney=Integer.parseInt(tfTransMoney.getText());用迭代器将集

合类中的信息获取出来,一步一步判断查找。将所有的信息存储到currCard2中,用于以后的查找。判断转换来的String类型与currCard2中的卡号信息进行对比,如果为当前登录的卡号,那么小窗口提示不能完成转账。并且将转换为的int类型与当前登陆的卡号内的Money数值相减,如果Money-int类型的变量>0,那么成功转账,如果<0那么转初步成功。信用卡就将数值与-1000比较。进行相应的判断。

取消按钮,是通过实例化ClientMain来调用init()方法,实现转跳。清空按钮就是通过tfAccount.setText("");tfTransMoney.setText("");来将tfAccount和tfTransMoney内的内容设置为空。实现清空的功能。

(五)电话充值(Phone):花费充值也用到两个文本域,一个ok和一个cancel按钮。一个Card类类型的currCard变量。文本域、按钮的设置还有面板的设置都与上述的功能类的设置方法相同。

在话费充值时要判断输入的电话号码是否为正常的好吗主要用到了正则表

达式来进行手机号码的判断,if(phone.matches("^(13|15|18)\\d{9}$"));即手机号必须是13或者15或者18开头,后面接九位的自然数即可。如果不相符输出小窗口提示输入的不是电话号码,并清空文本域,如果相符进行下一步。取出文本域中的内容来将其转换为int类型,用int nowMoney=(int) (currCard.getTotalMoney()-payMoney);来计算当前账户减去充值金额后的余

额。再进行判断,如果为储蓄卡则判断nowMoney是否>0,如果>0那么显示小窗口提示,是否为当前手机号充值int n = JOptionPane.showConfirmDialog(null, "请确认是否为"+phone+"缴费", "标题",JOptionPane.YES_NO_OPTION); ,如果点击否,那么清空文本域内的内容。如果点击是那么提示重置成功并找到当前用户在集合类中的位置,将金额相应的减去重新存入集合类中ArrayList al=CardArray.getCardList();int i=al.indexOf(currCard);

al.set(i,currCard); JOptionPane.showMessageDialog(Phone.this,"缴费成功!");,否则提醒卡内余额不足。如果为信用卡则判断nowMoney是否>-1000。Cancel按钮的动作监听,就是实例化ClientMain类,调用init()跳转到ClientMain的主界面。

(六)查询余额、利率计算(包含在ClientMain中):这两个方法不像其他类一样进行动作监听,类面板之间的跳转。都是在ClientMain上直接添加的两个按钮,进行小窗口提示。利率计算的语句为:JOptionPane.showMessageDialog(ClientMain.this, "以当前利率计算,您的活期利息为"+(0.0035*(currCard.getTotalMoney())));显示余额的语句为:JOptionPane.showMessageDialog(ClientMain.this, "您当前的余额为"+currCard.getTotalMoney());

3.2.4 管理员模块

(一)开卡(OpenCard):

界面的设置——在这里主要设置了三个文本域:JTextField tfName;(输入名字的文本域)JPasswordField pfPwd(输入密码),pfRPwd(重新输入密码);三个按钮JButton btOk,btCancel,btEmpty;一个Card类的变量,存储当前存在的卡,Card currCard;然后设置一个集合类ArrayList cardList;String items[]={"储蓄卡","信用卡"};利用数组存储下来选择的两个选项。Final JComboBox cbType=new JComboBox(items);JComboBox将按钮或可编辑字段与下拉列表组合的组件。用户可以从下拉列表中选择值,下拉列表在用户请求时显示。如果使组合框处于可编辑状态,则组合框将包括用户可在其中键入值的可编辑字段。

接下来设置容器、面板,将按钮、文本域add到面板上。然后在面板上通过

drawImage()来设置图片的位置和大小。protected void

paintComponent(Graphics g) {

ImageIcon icon = new

ImageIcon("Image\\openCard.jpg");

Image img = icon.getImage();

g.drawImage(img, 0, 0, 580,450, this);

//this.setSize(580, 450);

}

};

然后通过setBounds()来设置按钮和文本域等的位置和大小。然后设置窗体的大小及其可关闭的动作,并且设置窗体的位置、可是不可改变大小和题目。this.setSize(580,450);panel.setLayout(null);this.setLocation(350, 170);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );this.setRes izable(false);this.setVisible(true);this.setTitle("欢迎来到金院建设银行!");然后通过setBackgrond()来设置按钮的背景颜色。

管理员的其他功能类都与此类的显示模块设计相似,接下来就不详细介绍,只介绍每个按钮的动作监听个,和界面设计的不同之处。

开卡功能的实现,ok按钮的动作监听。首先将文本域内的内容强制转换为String类型,与集合类中存储的对象信息进行匹配,如果发现相同项则输出小窗口提示“该用户已存在”并调用setText方法将文本域内的内容清空。如果集合类中没有此信息,那么就进行下一步的判断,判断两次输入的密码是否相等,不想等那么输出小窗口提示“密码不存在,请重新输入”并且清空。如果两次输入的密码相等那么进行窗口提示,int n =

JOptionPane.showConfirmDialog(null, "注:开户时需充值不少于100元,其中卡费10元。是否继续?", "确认框",JOptionPane.YES_NO_OPTION);

如果否,那么直接返回主页面Main。如果选择是,那么获取输入的金额(必为100的整数倍,否则输出小窗口提示)并减去10作为总金额,并且获取当前的时间作为卡号,并且标记储蓄卡还是信用卡

if(n==0){

String money=JOptionPane.showInputDialog("请输入首次充值金额");

int Money =Integer.parseInt(money);

if(Money%100==0&&Money>10){

int nowMoney=Money-10;

SimpleDateFormat df = new SimpleDateFormat("HHmmss");

String newCard=df.format(new Date());

if(typeid.equals("储蓄卡")){

boolean type = true;

}else{

boolean type = false;

}

小窗口弹出窗口提示开卡成功,输出所有信息。

JOptionPane.showMessageDialog(OpenCard.this,"恭喜您,开户成功(请带身份证找相关人员激活登记后方可使用)!\n账户信息:\n银行卡类型:

"+typeid+"\n卡号:"+newCard+"\n姓名:"+name+"\n余额:"+nowMoney); 取消按钮,也是直接实例化Main类,调用他的init()方法,跳转到相应的界面。清空按钮就是setText()来将文本域内的所有内容清空。

(二)注销(Destory):功能实现,主要是ok和cancel的按钮的监听动作的设置。将文本域内的内容强制转换为String类型。String

account=tfAccount.getText();然后查找到迭代其中的相应信息。

String pwd=new String(pfPwd.getPassword());

(将输入的内容和正确账号匹配)

Iterator it=CardArray.getCardList().iterator();

boolean flag=false;

while(it.hasNext()){

currCard=it.next();//存放当前账号所有信息

if(account.equals(currCard.getAccount())){

it.remove();

flag=true;

break;

}

}

如果找到相应的信息,并且密码判断不想等,那么小窗口输出密码错误,并进行错误次数计算。如果错误次数三次那么将自动退出程序System.exit(0);如果密码相同那么进行接下来的操作,提示销户成功并输出选择窗口,进行主销卡的原因选择。注销成功后实例化SevereMain调用init()方法,自动返回管理员界面。

if(pwd.equals(currCard.getPwd())){

JOptionPane.showMessageDialog(Destory.this,"销户成功!");(showMessageDialog 告知用户某事已发生。)

Object[] possibleValues = { "银行卡丢失", "想换个银行", "卡太多了" }; Object selectedValue = JOptionPane.showInputDialog(Destory.this, currCard.getName()+",您注销的原因是", "Input",

https://www.360docs.net/doc/5b17603179.html,RMATION_MESSAGE, new ImageIcon("img\\pet.png"), possibleValues, possibleValues[0]);

(showInputDialog 提示要求某些输入Destory.this.dispose();

new SeverMain().init();

取消按钮的监听个,就是实例化SevereMain类,调用其init()方法,实现界面之间的跳转,回到主界面。

(三)挂失(Lost):挂失的功能与注销的方法相同。就不详细的介绍。挂失的功能在主界面上主要与补卡的功能相连接,共同实现。注销只是一个单独的按钮实现注销的功能。

(四)补卡(ReOpen):ok 的按钮监听首先也是要根据输入的信息查找到该用户的项目信息。然后再继续下一步。判断刚刚输入的内容是否跟当前用户的相匹配,如果不匹配那么输出该用户不存在。如果相匹配,那么输出小窗口提示

int n = JOptionPane.showConfirmDialog(null, "请确认卡主姓名:

"+currCard.getName()+"\n确定要挂失该卡并补办新卡么?\nPs:将扣除办卡

费10元", "确认框",JOptionPane.YES_NO_OPTION);然后就是补办卡的类型的选

择,int m = JOptionPane.showConfirmDialog(null, "新卡类型是否选择为储蓄卡?", "确认框",JOptionPane.YES_NO_OPTION);if(m==0){typeid="储蓄卡";}else{typeid="信用卡";}用户选择完成后就是用户的卡号和金额的显示。卡号是获取系统的当前时间SimpleDateFormat df = new

SimpleDateFormat("HHmmss");String newCard=df.format(new Date());。现实的金额就是文本域内输入的内容减去10int nowMoney=(int)

(currCard.getTotalMoney()-10);。然后利用迭代器的函数,将原来的用户信息删除remove()。然后提示补卡成功即可。

然后是取消按钮的监听,利用dispose方法清空当前屏幕的信息,实例化SevereMain,调用其init()跳转到用户主界面。

4 系统开发环境

在硬件或操作系统平台上安装一个java平台之后,java应用程序就可以运行。现在java平台已经嵌入到了几乎所有的操作系统。这样java程序可以只编译一次,就可以在各种系统中运行。Java分为三个体系JavaSE、JavaEE、JavaME。

4.1 开发工具

本ATM取款机主要通过MyEclipse进行编写,可以在Eclipse等开发工具上进行调试、运行。

4.2 应用环境

Jdk版本1.60以上

GBK工作环境编写

系统的测试

(完整版)java课程设计——客户管理系统源代码

完整代码: 1.客户类(class person): package客户管理系统; public class Person { private int num; private String name; private String address; private String sex; public Person(){} public Person(int num,String name,String address,String sex){ this.num=num; https://www.360docs.net/doc/5b17603179.html,=name; this.address=address; this.sex=sex; } public void setNum(int num){ this.num=num; } public int getNum(){ return num; } public void setName(String name){ https://www.360docs.net/doc/5b17603179.html,=name; } public String getName(){ return name; } public void setAddress(String address){ this.address=address; } public String getAddress(){ return address;

} public void setSex(String sex){ this.sex=sex; } public String getSex(){ return sex; } public String toString() { return"\t"+num+"\t"+name+"\t"+address+"\t"+sex; } } 2.菜单类(class Menu): package客户管理系统; import java.util.Scanner; public class Menu { Scanner input=new Scanner(System.in); public Menu() {} public int showMenu() { System.out.println("***********************************" ); System.out.println("客户管理系统"); System.out.println("===================================" ); System.out.println("【1】增加"); System.out.println("【2】删除"); System.out.println("【3】修改"); System.out.println("【4】查询"); System.out.println("【5】浏览"); System.out.println("【6】退出"); System.out.println("***********************************" ); System.out.print("请选择操作:");

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

《Java程序设计》课程设计-ATM柜员机

宝鸡文理学院计算机科学系《Java程序设计》课程设计 设计题目:ATM柜员机 班级:2008级本科2班 组长: 组员: 指导教师: 二零一零年六月二十九日 目录

1、项目任务书 (2) 2、项目开发计划 (4) 3、项目需求说明书 (8) 4、项目设计说明书 (9) 5、项目开发总结报告 (21) 6、使用说明 (28) 7、项目源程序代码 (28) 8、成绩评定表 (29)

1、项目任务书 1.1 设计的目的和要求 1.1.1 设计目的 加深学生对面向对象概念以及JAVA面向对象程序设计思想的理解和掌握;使学生熟悉开发一个项目的基本过程,培养学生分析问题和解决问题的能力,增强学生的动手能力。为后续学习和应用打下一定的基础。 1.1.2 设计要求 四个人一组协作完成,组长分工,并负责组内程序联试、文档质量检查及与教师联系。组内每个组员协调合作完成分工的课程设计部分。所完成的项目软件需经指导教师检查认可。 1.2 设计内容 1.功能需求 (1)用户登陆:检查用户使用的合法性。 (2)用户取款:可按1000,500,200,100元面额取款,1天内取款最多不能超过3000元,并记录取款信息。 (3)余额查询:显示余额。 (4)用户密码修改:密码只能由字母和数字组成,不少于6个字符。 (5)帮助:给出作者信息和帮助信息。 2.信息需求 ①登陆表 客户账号

②存取款表 密码 客户账号 余额

2、项目开发计划 2.1编写目的 我们的开发目的是在于了解ATM柜员机系统开发项目的流程,把在开发过程中对各项工作的人员、分工、系统资源条件等问题的安排用文档形式记载下来,以便根据本计划开展和检查本项目工作,保证项目开发成功。 2.2项目概述 2.2.1工作内容 1)需求分析 2)软件设计 3)代码设计:实现ATM柜员机代码 4)系统测试:测试程序 5)项目总结:收获 2.2.2主要参加人员 张少婷,宝鸡文理学院计算机科学系08级2班学生,精通java语言, 熟悉SQL语言。 宋红艳,宝鸡文理学院计算机科学系08级2班学生,熟悉java语言,熟悉SQL语言。 段严婷,宝鸡文理学院计算机科学系08级2班学生,熟悉java语言,熟悉SQL语言。

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

java课程设计 计算器[1]解析

JA V A程序设计期末结课大作业 姓名张可新 学号(20123259) 班级信工1202 题目 java课程设计++计算器 成绩汇总 考核内容成绩 程序实现的功能(10分) 程序类图结构(10分) 方法间调用关系(10分) 程序代码(40分) 程序代码注释(10分) 运行结果(10分) 总结体会(10分) 总成绩 阅卷人

目录 一、课程设计任务及要求 (3) 二、需求分析 (3) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (9) 六、设计体会与小结 (11) 七、参考文献 (12) 八、附录 (13)

1. 一、课程设计任务及要求 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。通过对计算器的编辑来检测和提升自己的java编程能力,并最终完成课程设计报告! 二、需求分析 2.设计的计算器可以完成加法、减法、乘法、除法的简单运算。 3.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。 4.添加小数点功能,用以实现浮点型数据的计算。 5.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算 三、设计思路 1.界面设计:(如图3-1) 图3-1 2.设计思路: (1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个

文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在 最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel 中,完成界面设计。 (2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之 前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到 点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量 中,然后重置文本框内容,将运算符号显示到文本框中,随后输入 第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运 算符先将字符串数据转化成双精度类型,然后计算出结果并显示到 文本框当中。 (3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则 采用substring函数截取字符串长度。 四、详细设计 1.程序流程图: 2.主要代码展示及说明:

课程设计—java记事本

import javax.swing.*; import javax.swing.undo.*; import javax.swing.text.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.awt.datatransfer.*; import java.awt.print.*; import java.io.*; public class Jishiben extends JFrame implements ActionListener { JPopupMenu pm ; JTextArea ta; boolean isNewFile=true; //是否新文件(未保存过的) File currentFile; //当前文件名 String oldValue; //存放编辑区原来的内容,用于比较文本是否有改动//protected UndoManager undo = new UndoManager(); //protected UndoableEditListener undoHandler = new UndoHandler(); JToolBar tbar = new JToolBar(); JCheckBoxMenuItem mt19; public Jishiben() { super("记事本"); //Container ct=getContentPane(); //以下三句是设置编辑区域及滚动条 ta = new JTextArea(); JScrollPane sp = new JScrollPane(ta); add(sp); JMenuBar mb = new JMenuBar(); //设置文件菜单 JMenu mu1 = new JMenu("文件(F)",true); mu1.setMnemonic('F');//设置快捷键按下ALT+F激活打开菜单 JMenuItem mt1 = new JMenuItem("新建(N)",'N'); mt1.setMnemonic('N'); //mt1.addActionListener(new new1()); JMenuItem mt2 = new JMenuItem("打开(O)...",'O'); mt2.setMnemonic('O'); mt2.addActionListener(this); JMenuItem mt3 = new JMenuItem("保存(S)",'S'); //mt3.addActionListener(new save()); mu1.add(mt3); JMenuItem mt4 = new JMenuItem("另存为(A)..."); JMenuItem mt5 = new JMenuItem("页面设置(A)..."); JMenuItem mt6 = new JMenuItem("打印(P)..."); JMenuItem mt7 = new JMenuItem("退出(X)",'X');

Javawebapp课程设计报告

《电子商务网站》课程设计报告 项目题目电子拍卖平台系统分析与设计 学生姓名 班级/ 学号 专业\ 指导教师 2011年10月制 1、系统概述 本系统实现的是一个网上拍卖系统,可以实现在线登录,注册;卖家上货,买家出价竞拍;拍卖商品列表、商品拍卖信息和商品搜索等功能,普通的Internet 用户可以通过该系统注册成为会员后可以上传自己拍卖的产品和竞拍卖价的商

品。 2、网站结构分析与设计 目标设计 竞拍网站所要实现的功能如下。 会员注册:会员注册信息和会员登录验证 会员管理:会员资金管理 买家信息管理 卖家信息管理 系统功能分析设计 竞拍网共分为三个模块:会员注册模块、会员个人管理模块和商品列表和搜索模块。其功能模块划分如图所示: 数据库结构设计 根据系统功能的设计要求和模块划分,表结构设计如下:

User表:存储会员信息 Goodinfo表:存储商品信息 Selling表:存储所有卖家及其拍卖商品信息 Buying表:存储商品交易情况

数据库需求分析 数据项和数据结构如下。 会员信息表:自动编号、用户名、密码和身份证号码、资金、日期 商品信息表:自动编号、商品名、上传人、商品详情 卖家信息表:会员编号、商品编号、商品价格、截止时间 商品竞拍成功信息列表:商品名、用户名、竞拍时间、起初价格、最终价格、最成交时间 、开发环境 开发工具:myeclipse 服务器软件:tomcat 数据库:MySQL

3.网站详细设计. 网站流程设计 数据库功能设计 三个存储过程: Onsell:展示拍卖信息,返回当时拍卖的所有信息; Buyingshow:展示某个商品详细信息 Buying:当用户竟拍是执行. JAVA控制层设置 POJO包:与每一项功能相对应,设置对象类 DAO包:所有连接数据库的代码 Servlet:所有前台页面的操作过程.

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

java课程设计_ATM柜员机模拟程序文件

课程设计(大作业)报告 课程名称:面向对象程序设计课程设计设计题目:ATM柜员机模拟程序 院系:信息技术学院 班级: 设计者: 学号: 指导教师: 设计时间:2016-1-4-2016-1-8 信息技术学院 学院课程设计(大作业)任务书

课程设计(大作业)报告 一、题目分析 1.系统需求分析 (1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。这就导致银行业务的急剧增加。虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。于是ATM机系统应运而生了。 自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。 本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。 (2)题目设计要求:本ATM柜员机的主要功能如下所述: 要求使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: ●查询余额:初始余额为10000元。 ●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透 支。 ●ATM存款:不能出现负存款。 ●修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密 码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 2.ATM模拟系统总体设计结构 (1)设计思想:通过程序要求,我们可以清楚的知道本次设计的ATM柜员模拟程序需

java(源代码)连连看课程设计

目录 第一章引言 (2) 1.背景 (2) 1.1课程设计内容 (3) 第二章系统介绍 (4) 1.连连看游戏规则 (4) 1.1游戏基本规则 (4) 1.2操作规则 (4) 1.3胜利和失败 (4) 2.游戏流程图分析 (4) 第三章系统游戏设计 (7) 1.系统分析 (7) 1.1游戏系统需求分析 (7) 1.2系统开发及运行环境 (7) 1.3系统功能主要要求 (7) 2.系统总体结构 (8) 3. 系统各模块功能介绍 (8) 第四章系统的具体实现 (9) 1.系统主要运行界面 (9) 1.1运行界面 (9) 1.2执行界面,进入游戏正常运行 (9) 1.3时间到界面 (10) 1.4赢家界面 (11) 1.5进度条界面 (12) 图4.5程序运行进度条 (12) 2.游戏实现代码 (12) 2.1主面板内所需要的组件的声明 (12) 2.2填充一个矩形框,进行显示时间 (12) 2.3主面板及各组件初始化 (13) 2.4创建时间对象,每隔100毫秒刷新一次 (13) 2.5分数代码。 (13) 3.消除图片具体情况 (14) 3.1两次点击相同图片相邻 (14)

3.2水平方向消去算法 (14) 3.3竖直方向消去算法 (15) 第五章程序清单 (16) 第六章结束语 (24) 第七章参考文献 (25) 第一章引言 1.背景 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。 游戏《连连看》,只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,并实现该功能,方便用户进行操作。

java课程设计计算器3科学计算器

import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel

JavaWeb宠物店课程设计报告

河北农业大学 课程设计报告 题目:Java Web宠物店 学院:职业技术学院 专业班级:计算机应用技术0901学生姓名:曹明珠 学号: 2009513100121 指导教师:张玉新 2O11 年 10 月 25 日

目录 1.需求分析 (2) 项目开发背景 (2) 功能介绍 (2) 1.1整体介绍 (2) 1.2 详细说明 (2) 开发平台 (2) 2.系统设计 (3) 1.1总体设计 (3) 1.1.1静态网页设计 (3) 1.1.2界面逻辑关系 (5) 1.1.3详细设计 (5) 1.1.4界面格式的CSS设计 (7) 1.2数据库设计 (8) 1.2.1数据表设计 (8) 1.2.2数据库连接和DAO设计 (9) 3.网站发布 (10) 4.参考文献 (11)

一需求分析 1.1项目开发背景 PetStore 是SUN公司推出的一个宠物店系统,是J2EE应用和学习的一个好例子。针对不同的侧重点,具有不同的版本。该系统不同的版本是优秀程序员智慧的结晶。从功能层面来说,这个系统具有:宠物分类展示、下订单、添加到购物车、浏览产品细节等一系列网上商城所具备的基本功能。 1.2 功能介绍 1.2.1 整体介绍 Petstore提供网上商城系统所必需的功能:用户身份认证、商品信息列表、选购商品、下订单等,围绕这些功能,系统的设计分为以下四个部分: ·.宠物分类展现和宠物查找模块(catalog部分),供用户浏览、查找并选购宠物。 ·.购物车管理(cart部分),供用户查看购物车的情况,并作出是否购买的选择。 ·账户管理模块(account部分),为用户提供注册和账户登录功能。 ·订单管理(order部分),供用户管理自己的账单。 1.2.2 详细说明。 宠物店主通过账户管理模块登录或者注册新用户,只有拥有经过注册的用户名和正确的密码才能更改系统内部代码、页面形式、系统数据库以及管理客户账户等;宠物分类展现部分是系统与客户的交流界面,用户在此功能界面上可以浏览整个宠物店的所有产品情况,包括:宠物生活习性、宠物产地、库存情况、售价等等。用户在此处还可以点击单一宠物的链接进入更进一步的说明;购物车模块是系统与用户账户交流的平台,用户是否购买某产品将直接反映在这个界面和相关的数据库上。订单管理是账户管理的配合模块,是对客户的账户的直接管理和反应。 1.3 系统开发平台 ·Jdk 即Java开发数据包。 ·Web服务器tomcat。可使用版本5.5.26. ·Mysql数据库,用于网站系统文件表格的建立、更改、维护等。 ·Mysql GUI tool ,即对数据库管理的图形界面,在此也可以使用navicat。 ·用于编写、调试系统代码、生成发布的My eclipse 。可选5.5.26版本。 二系统设计

Java英汉电子字典课程设计源代码

用户需求分析: 英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子词的功能。该系统主要用于实现英汉互译的功能,系统拥有自己的数据库。 1.英译汉功能:我们可以先选择让系统进行英译汉功能,然后在查找框中输入想要查询的英文单词,系统将自动在数据库中查找匹配记录并给出相对应的汉语意思。 2.汉译英功能:我们可以在系统中选择汉译英功能,然后在查找框中输入想要查询的汉语意思,系统将自动在数据库中查找匹配记录并给出相对应的英文单词 3.词汇的添加功能:用户可以添加词库没有的单词及其解释。添加成功后该单词将在次库保存,以便下次查询。 4.词汇的修改功能;用户可以实现对词库中已有单词及其解释的修改。修改后的结果将保存在词库中。 5.词汇的删除功能;用户可自行删除词库中已有的单词,同时次单词的解释也将被一同删除。 6.其他功能:此外,系统还具有帮助和关于等功能,用来辅助用户更方便简洁的使用电子词典。 package dianzicidian; import java.awt.*; import https://www.360docs.net/doc/5b17603179.html,.*; import java.sql.*; import java.awt.event.*; import javax.swing.JOptionPane; import java.io.*; import sun.audio.*; class dzcd extends Frame implements ActionListener { MenuBar menubar=new MenuBar();//菜单 Menu fileMenu,editMenu,helpMenu; MenuItem fileenglish,filechinese,exit,editAdd,editmod,editDel; TextField inputtext; TextArea txt; Label label1,label2; Button btn1,btnsound; Panel p,p1,p2,p3; dzcd() { super("电子词典"); setBounds(200,300,350,400); setMenuBar(menubar);

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

JAVAWEB课程设计实验报告

目录 第一章概述 (2) 【实验目的】 (2) 【需求分析】 (2) 第二章网上商店结构分析与设计 (3) 【前言】 (3) 2.1 系统结构图 (3) 2.2系统功能分析 (4) 第三章详细设计 (4) 3.1数据库设计 (4) 3.2 商品模块实现 (5) 3.2.1 模块功能实现和关键代码说明 (5) 3.3 用户注册/登录模块实现 (9)

3.3.1 模块功能实现和关键代码说明 (9) 3.4 购物车模块实现 (12) 3.4.1 模块功能实现和关键代码说明 (12) 3.5 结算功能模块 (16) 第四章总结 (17) 【技术总结】 (17) 【心得体会】 (18) 第一章概述 【实验目的】 1.掌握java-web网站设计的全过程; 2.进一步熟练Servlet技术、数据库、标签等一般java-web应用技术; 3.掌握整个java-web应用架构、目录结构以及服务器使用。 【需求分析】 1.设计一个较完善的网上军靴商店; 2.账户模块:提供用户注册、登录,考虑用户数量增减,需要用数据库技术; 3.商品显示模块:出于增加销售量考虑,需要有简单广告功能,并提供商品详细参数;推广商品,网站需要对热销商品展示以及商品分类显示、商品查询; 4.订单管理模块、订单详细信息模块:显示已保存的订单的详细信息; 5.购物车模块:添加/删除商品,结帐,显示订单信息。

第二章网上商店结构分析与设计 【前言】 随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生。本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。 本商城主要利用javaservlet技术进行开发,有很强的逻辑性、可扩展性,便于维护。商城界面设计主要实用了CSS,美化了店面。其次本商城设计还使用了JSP技术、JDBC技术、JavaBean技术、css。 2.1 系统结构图 商店前台 用户登录模块新 品 上 市 模 块 商 品 分 类 显 示 模 块 热 销 商 品 模 块 购 物 车 模 块 用 户 注 册 模 块 商 品 查 询 模 块 订 单 显 示 模 块 收 银 台 模 块

相关文档
最新文档