ATM管理系统java窗口界面完整版Word文档下载推荐.docx
- 文档编号:22291222
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:30
- 大小:356.61KB
ATM管理系统java窗口界面完整版Word文档下载推荐.docx
《ATM管理系统java窗口界面完整版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ATM管理系统java窗口界面完整版Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
4.取款
5.转账(一个账户到另一个账户)
4、软件设计
7、运行时界面简示
1.初始界面(账户登录)
2.账户登录后界面
3.相关信息提示一览(只列举一部分)
1、查询:
2、存款:
3、取款:
4、转账:
4、用户开户界面:
注意事项:
1、本系统采用的编程环境是JDK1.7,jer7。
所以,运行代码需要保持电脑上所装的JDK为1.7以上版本,如有报错,只需换个高一点的版本即可。
注意:
第一次装JDK,要配置环境变量(请查阅相关资料,比较简单)
2、本系统代码涉及到包,所以如果报名不一致就会报错,解决方法:
修改一下包名即可
3、建议把各个类写在同一个包下面,且每一个类单独写一个java文件,如下图:
4、在运行程序前,需要在项目下面新建一个account.txt(用来保存数据)文件(如上图),并在其中写入至少一个账户信息,(如下图,其中每项代表的意思,请读者参照代码内的注释),否则在初始化的时候会因为找不到账户信息,从而产生异常。
系统源码:
Account类
packagecom.qx;
importjavax.swing.JOptionPane;
/**
*账户类:
包含两种账户类型-->
1.储蓄账户2.信用账户
*/
publicabstractclassAccount{
//属性
protectedlongid;
protectedStringpassword;
protectedStringname;
protectedStringpersonId;
protectedStringaccountType;
protecteddoublebalance;
//构造方法
publicAccount(){
super();
}
publicAccount(longid,Stringpassword,Stringname,StringpersonId,
Stringtype,doublebalance){
this.id=id;
this.password=password;
this.name=name;
this.personId=personId;
this.accountType=type;
this.balance=balance;
//getXxx,setXxx方法
publiclonggetId(){
returnid;
publicvoidsetId(longid){
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpassword){
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
publicStringgetPersonId(){
returnpersonId;
publicvoidsetPersonId(StringpersonId){
publicStringgetAccountType(){
returnaccountType;
publicvoidsetAccountType(StringaccountType){
this.accountType=accountType;
publicdoublegetBalance(){
returnbalance;
publicvoidsetBalance(doublebalance){
/**
*存款
publicvoiddeposit(doublemoney){
balance+=money;
*取款(取款方式由账户类型决定,所以设为抽象方法,相应的Account类应设为抽象类)
publicabstractvoidwithdraw(doublemoney);
}
SavingAccount类
*储蓄账户类
publicclassSavingAccountextendsAccount{
//构造函数
publicSavingAccount(){
publicSavingAccount(longid,Stringpassword,Stringname,
StringpersonId,StringaccountType,doublebalance){
super(id,password,name,personId,accountType,balance);
//对父类的withdraw()实现
publicvoidwithdraw(doublemoney){
if(balance<
money){
/*System.out.println("
对不起,账户余额不足!
"
);
*/
JOptionPane.showMessageDialog(null,"
"
信息提示"
JOptionPane.ERROR_MESSAGE);
}
else
{
balance-=money;
CreditAccount类
*信用账户类,增加一个信用额度ceiling属性
publicclassCreditAccountextendsAccount{
privateintceiling;
publicCreditAccount(){
publicCreditAccount(longid,Stringpassword,Stringname,
StringpersonId,StringaccountType,doublebalance,intceiling){
this.ceiling=ceiling;
publicintgetCeiling(){
returnceiling;
publicvoidsetCeiling(intceiling){
//实现父类的withdraw()
if((balance+ceiling)<
对不起,已超出您的信用额度!
Bank类
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Properties;
*Bank类
*编写Bank类,属性:
1.当前所有的账户对象的集合,存放在数组中
2.当前账户数量
方法:
1.用户开户,需要的参数:
id,密码,密码确认,姓名,身份证号码,账户类型,返回新创建的Account对象的账号,
提示:
用s1.equals(s2)可以比较s1,s2两个字符串的值是否相等.账户类型是一个整数,为0的时候表示储蓄账户,为1的时候表示信用账户
2.用户登录,参数:
id,密码返回登录账户的账号
3.用户存款,参数:
id,存款数额,返回void
4.用户取款,参数:
id,取款数额,返回void
5.查询余额,参数:
id,返回该账户的余额double
用户会通过调用Bank对象以上的方法来操作自己的账户,请分析各个方法需要的参数
publicclassBank{
/*privateAccount[]accounts=newAccount[20];
privateListaccountsList;
privateintnumber;
//账户数目
privateintid=1001;
//确定银行账号从1001开始生成,即第一个账户的账号是1001
publicBank(){
accountsList=newArrayList<
Account>
();
number=0;
BufferedReaderbufReader=null;
Propertiesprops=System.getProperties();
Stringpath=props.getProperty("
user.dir"
try{
bufReader=newBufferedReader(newFileReader(newFile(path,"
account.txt"
)));
Strings=bufReader.readLine();
while(s!
=null){
String[]str=s.split("
"
if(str[4].equals("
0"
))
{
AccountsavingAcc=newSavingAccount(Long.parseLong(str[0]),
str[1].toString(),str[2].toString(),
str[3].toString(),str[4].toString(),
Double.parseDouble(str[5]));
accountsList.add(savingAcc);
}
else
AccountcreditAcc=newCreditAccount(Long.parseLong(str[0]),
Double.parseDouble(str[5]),5000);
accountsList.add(creditAcc);
number++;
id++;
s=bufReader.readLine();
}
}catch(NumberFormatExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(FileNotFoundExceptione){
}catch(IOExceptione){
}finally{
try{
if(bufReader!
=null)
bufReader.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
//getXxx,setXxx
publicListgetAccounts(){
returnaccountsList;
publicvoidsetAccounts(Listaccounts){
this.accountsList=accounts;
publicintgetNumber(){
returnnumber;
publicvoidsetNumber(intnumber){
this.number=number;
publicintgetId(){
publicvoidsetId(intid){
*开户
publicAccountopenAccount(Stringpasswd1,Stringpasswd2,Stringname,
StringpersonId,Stringtype){
//创建一个新账户
Accountaccount=null;
//判断两次密码是否一致
if(passwd1.equals(passwd2)){
//若一致,再判断账户类型(根据type的值)
if(type.equals("
1"
)){
//可令开始余额为10,信用额度为5000
account=newCreditAccount(id,passwd1,name,personId,type,10,5000);
else
{
account=newSavingAccount(id,passwd1,name,personId,type,10);
//将账户存入账户集合accountsList中
accountsList.add(account);
开户成功"
JOptionPane.INFORMATION_MESSAGE);
您的卡号为:
+id+"
\n"
+
"
您的密码为:
+passwd1+"
+"
您的户名为:
+name+"
您的身份证号为:
+personId+"
您的账户类型为:
+type+"
account.accountType=type;
number++;
id++;
returnaccount;
//此时开户成功
对不起!
您两次密码输入不匹配,开户失败"
returnnull;
//此时开户失败
*保存数据
publicvoidsaveAccountDate(){
BufferedWriterbufWriter=null;
Propertiesprops=System.getProperties();
Stringpath=props.getProperty("
Strings=null;
bufWriter=newBufferedWriter(newFileWriter(newFile(path,"
for(Iteratoriterator=accountsList.iterator();
iterator.hasNext();
)
{//若存在账户
Accountacc=(Account)iterator.next();
//写入账户信息到account.txt
bufWriter.write(acc.id+"
bufWriter.write(acc.getPassword()+"
bufWriter.write(acc.getName()+"
bufWriter.write(acc.getPersonId()+"
bufWriter.write(acc.getAccountType()+"
bufWriter.write(Double.toString(acc.getBalance()));
bufWriter.newLine();
}
bufWriter.flush();
//清空缓存中的内容
if(bufWriter!
=null){
bufWriter.close();
*登录验证
publicAccountverifyAccount(longid,Stringpassword){
Accountacc=null;
for(Iteratoriterator=accountsList.iterator();
iterator.hasNext();
{//若存在账户
acc=(Account)iterator.next();
if(acc!
=null){
if(id==acc.getId()&
&
password.equals(acc.getPassword())){
account=acc;
break;
break;
returnaccount;
*转账验证(方法的重载)
publicAccountverifyAccount(longid){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 管理 系统 java 窗口 界面 完整版
![提示](https://static.bdocx.com/images/bang_tan.gif)