资源描述
Java实践汇报
实 践 名 称:网上银行登录及存取款业务模拟系统
班 级:
学 号:
姓 名: _
指 导 教 师:
起 止 时 间:
1设计内容及要求.........................................
一:设计分析---------------------------------------------------第2页
二:程序步骤图-------------------------------------------------第3页
三:测试结果图(截图)-----------------------------------------第6页
四:程序分析--------------------------------------------------第10页
五:课程实践总结----------------------------------------------第11页
附:源码------------------------------------------------------第12页
1
一、 需求分析
1:《网络银行登录及存存款业务模拟系统文件类》关键依据课程设计要求进行设计,并了解学生学习成绩情况,该系统功效关键包含二个类:用户类,银行类
2:每一个文件类方法及功效:
用户类:设置了public User(String username)有参一个结构方法和void savemoney(double money) void withdrawmoney(double money) void printUserInformation() static void printBankInformation() public String getPassword()
多个方法,将这些方法参数传给银行类进行重写
银行类:一共设置了五个功效模块 1存款 2取款 3显示账户余额 4查看或显示用户总信息 0退出该系统
同时我也把main()方法也写在bank类中,作为程序整个程序入口.
3:方法和方法之间联络:
在银行类中操作功效区,您能够调用五个方法,这五个方法调用前提是您必需要优异行开户,然后输入正确账户和密码,假如您账户和密码全部输入失败,那么程序会一直提醒您继续输入正确账户和密码,直到您账户和密码输入正确为止,否者该程序不会进行下面功效实现。假如您密码,账号全部正确,那么您就能够进行下面操作,然后在您使用过程中,假如您输入存款金额不符合实际情况,比如:您输入取款金额大于总余额数,那么程序将报错,另外,您必需根据正确方法进行输入,不然,该程序会报错,所以,期望您能根据要求认真根据本程序格式进行输入。
在整个步骤进行完以后,您能够经过按数字4键来查看用户信息,本程序提供查看在线人数功效,您会看到在线总人数和那你相关信息。
(注明:该程序系统默认账户余额为0元,账户111111,密码为123456)
二、 程序步骤图
该系统功效图:该系统由二个类组成,分别为用户类,银行管理类,改图为这二者之间关系
对于用户类而言,有四个静态变量:用户账号,用户密码,用户账户余额,用户总人数,同时,用户着三个属性和银行类关系图所表示:
银行类:关键完成功效有:存款,取款,显示用户余额,显示用户总信息,退出该系统这些功效,每一个功效之间相互联络,相互传参
三、 测试结果(截图显示各个模块功效)
(一):1:登录网络银行登录及存存款业务模拟系统成功时测试界面
2:登录网络银行登录及存存款业务模拟系统成功时测试界面
(二):存款时测试界面
(三):取款时测试界面
(四):显示用户余额时测试界面
(五):用户查看整个个人信息时测试界面
(六):退出时测试界面
三:截图显示:
登录成功测试界面:
(一)1:该测试时程序中用户在输入密码和账户全部正确情况下,该系统会自动弹出界面,给出提醒信息:您账户和密码全部正确,登录成功!同时您会看到欢迎您来到网络银行登录及存存款业务模拟
登录失败测试界面,该程序会让您继续输入账户和密码,只有正确密码和账户才能进行下一步操作:
(二):存款时测试界面,同时统计存入银行后总余额:
(三):取款时测试界面:
假如取款金额大于账户中余额,该程序会提醒报错,您需要重入:
(四):显示用户余额时测试界面:
(五):用户查看整个个人信息时测试界面:
(六):退出时测试界面(返回根目录,程序终止):
四、 问题及处理方案
问题:
在改程序设计课程中我碰到了最大问题关键表现在两个方面,一:我不能灵活将各个类之间参数进行调用,我搞不清楚怎样将类中参数在别类中表现出来,传参确实是一个另我头疼地方
二:我碰到第二个问题就是各个方法功效之间不能进行镶嵌,那么我就不能去写每一个方法作用和功效,有时间我还会再单词拼写问题上犯错误,这个问题真不应该
处理方法:
处理以上问题措施:真对第一个问题:我方法是大量从网上查询类于类之间传参方法和仔细阅读书本和主动问老师,问同学,我感觉在短时间内打大量阅读代码能快速提升我代码水平,在结合和同学们讨论及自己反复删改,最终处理这个问题
针对第二个问题:我处理方法是:在之前大量代码阅读之中,我总结到针对各个功效实现依靠选择语句来写,经过switch语句和if语句镶嵌,让程序各个功效之间相互联络,这么在选择过程中对用户功效进行操作,调用,就能够处理问题了。
五:实践总结及反思
在本课程设计设计过程中,我刚开始感觉到有点头痛。要经过一学期java语言学习后将所学知识利用起来有点困难,但回过头来再去看教课书,对于这些知识点相关背景,概念和处理方案更深入了解,感觉也不是极难。
另外我还体会了从事java语言课程设计工作需要尤其谨慎认真地态度和作风,一点全部不能马虎。每个细微细节全部必需十分注意,假如不认真思索,就会出现或大或小错误。假如把早期错误隐藏下来,对后面工作影响就会很大,甚至有时会推倒很多前面做工作。有时候,我自己认为我写程序很正确,不过就是编译通不过,在查找错误过程中,面临着否认自己过程,很痛苦,而且因为自己经验及各方面能力不足,所以进展速度很缓慢,往往几天时间没有一点进展。这时候,我通常是先自己经过书本,手册和资料找处理措施,实在没辙才向老师同学请教。
在开始编写程序时候,我看到她人程序功效很具体,而且界面很漂亮,总是期望自己程序也很完善,不过,发觉编一个好程序不是一蹴而就事情,需要长时间积累和经验。
在反反复复学习中,我最终作出一个简单程序,即使这个程序功效很简单,而且在实际利用中还有些不足,因为工资内容很丰富,我包含到仅仅是学生成绩数据输出管理系统一部分简单内容,离实际用户需求肯定还有差距。
因为我知识浅薄,经验不足及阅历颇浅,在该系统设计方面还有很多不足,比如功效过少,界面不醒目等问题,我会在以后学习过程中,依据具体要求不停修改、完善,争取使系统慢慢趋于完美。
写入源码:请自行做些修改
源码:
package bank00001;
public class User {
String username; //账户名
String password; //密码
double balance; //用户余额
static int Accounter=0; //银行用户总人数
static double totalBalance=0; //银行总余额
//账户
public User(String username)
{
Accounter++;
this.username=Integer.toString(Accounter+111110);
this.password=Integer.toString(Accounter+123455);
this.balance=0;
}
//存款
void savemoney(double money)
{
System.out.println("存入金额: "+money+"元");
this.balance+=money;
totalBalance+=money;
System.out.println("现在账户金额: "+this.balance+"元");
}
//用户取款
void withdrawmoney(double money)
{
if (this.balance<money)
{
System.out.println("余额不足,无法取款.");
}
else
{
//System.out.println("姓名: "+this.username);
System.out.println("取款金额: "+money+"元");
this.balance-=money;
totalBalance-=money;
System.out.println();
}
}
//打印用户银行账户具体信息
void printUserInformation()
{
System.out.println("账户名: "+this.username);
System.out.println("密码: "+this.password);
System.out.println("目前余额: "+this.balance);
System.out.println();
}
//银行总信息
static void printBankInformation()
{
System.out.println("银行用户累计: "+Accounter+" 人.");
System.out.println("账户名:111111");
System.out.println("密码: 123456");
System.out.println("银行总收总金额累计: "+totalBalance+"元");
}
//用户密码
public String getPassword()
{
return password;
}
public void setPassword(String password){
this.password=password;
}
}
package bank00001;
import java.util.*;
import java.io.*;
public class BankManager {
public static void main(String args[]) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str;
User user[]=new User[100000];
int count=-1;
int userpassword1;
tishi();//提醒信息
while (true)
{
str=br.readLine();
if (str.equals("0")) //退出管理系统
break;
else if (str.equals("6")) //开户
{
System.out.println("请输入用户账号和密码");
count++;
user[count]=new User(br.readLine());
user[count].printUserInformation();
System.out.print("登录成功!");
System.out.println("-------------------------------------------------------");
System.out.println(" 欢迎使用银行管理系统 ");
System.out.println("1-->存款 2-->取款 3-->显示余额 4-->查询用户信息 0-->退出该系统 ");
System.out.println("--------------------------------------------------------");
System.out.println("选择您要进行操作(0~4)");
}
else if (str.equals("1")) //存款
{
userpassword1=findID(br,user,count);
if (userpassword1==-1)
{
System.out.println("密码不正确!");
System.out.print("\n");
}
else
{
System.out.println("请输入存入金额");
user[userpassword1].savemoney(Double.parseDouble(br.readLine()));
}
}
else if (str.equals("2")) //取款
{
userpassword1=findID(br,user,count);
if (userpassword1==-1)
{
System.out.println("密码错误!");
}
else
{
System.out.println("请输入取款金额");
user[userpassword1].withdrawmoney(Double.parseDouble(br.readLine()));
}
}
else if (str.equals("3"))
{
userpassword1=findID(br,user,count);
if (userpassword1==-1)
{
System.out.println("密码错误");
System.out.print("\n");
}
else
user[userpassword1].printUserInformation();
}
else if (str.equals("4"))
User.printBankInformation();
else
{
System.out.println("输入信息有误,请重新输入");
}
}
System.exit(0);
//System.out.println("您已经退出该系统");
}
static int findID(BufferedReader br,User user[],int count) throws IOException
{
System.out.println("请输入密码");
String number=br.readLine();
int userID=-1;
for (int i=0;i<=count;i++)
if (number.equals(user[i].getPassword()))
{
userID=i;
break;
}
return userID;
}
static void tishi()
{
System.out.println("-------------------------用户须知-------------------------------------");
System.out.println("在进入银行管理系统之前,请您先按数字6键进行开户");
System.out.println("开户时输入你账户名(能够输入数字或字母)"+","+"在进行每次操作时,必需输入密码,不然程序会报错");
System.out.println("系统默认账户:111111 密码:123456");
System.out.println("----------------------------------------------------------------------");
System.out.print("\n");
}
}
展开阅读全文