java银行管理系统
———————————————————————————————— 作者:
———————————————————————————————— 日期:
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
{
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");
}
}
¥29.8
¥9.9
¥59.8