栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于java的网上银行业务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于java的网上银行业务

一,实验目的

 

(1)进一步巩固Java面向对象、集合和IO方面的知识;

(2)加强实践动手能力,能够将从书本上学习到的理论知识用到了实践上。。

二、实验内容

模拟网上银行业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1  取款:2  余额:3  修改个人密码:4  退出:0),输入数字1、2时,将进行存取款操作,此时需要输入

存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字4时,可修改当前账户的密码;输入数字0时将退出整个系统。提示:可利用HashMap集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。

三、总体设计(设计原理、设计方案及流程等)

正在上传…重新上传取消正在上传…重新上传取消

  1. 利用类的封装的思想,创建银行帐户类User,在类中定义五个属性cardId、cardPwd、userName、call和account分别表示帐户的银行卡号、银行卡密码、账户名、手机号码和存款额。
  2. 创建UsersData类,该类用于模拟银行系统中的账户人信息,相当于数据库的功能。登录时需通过用户输入的信息和系统中保存的账户信息进行比较,从而判断登录是否成功。UsersData类中通过Map集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。该类中还需提供两个方法,分别是获取单个账户信息的方法和获取所有个账户信息的方法。
  3. 创建一个Bank类,该类用于处理网上银行的登录、存取款和显示余额等所有业务逻辑。登录时需要验证用户输入的银行卡号和银行卡密码,是否存在于银行系统中,如果是提示登录成功,否则提示登录失败,让用户重新登录。登录成功后,需根据提示的四种操作类型,输入相应的数字,对当前账户存款进行存取和查询余额、修改账户密码操作。操作完成后,输入数字0将退出整个系统。

 

  • 实验步骤(包括主要步骤、代码分析等)

1)User类模拟账户信息表示帐户的银行卡号、银行卡密码、账户名、手机号码和存款额,并含获得、设置各信息的功能。该类须最先创建,后续的类会使用到。

public class User {

    private String cardId; // 银行卡号

    private String cardPwd; // 银行卡密码

    private String userName;// 账户名

    private String call; // 手机号码

    private int account; // 存款额

    public String getCardId() {

       return cardId;

    }

    public void setCardId(String cardId) {

       this.cardId = cardId;

    }

    public String getCardPwd() {

       return cardPwd;

    }

    public void setCardPwd(String cardPwd) {

       this.cardPwd = cardPwd;

    }

    public String getUserName() {

       return userName;

    }

    public void setUserName(String userName) {

       this.userName = userName;

    }

    public String getCall() {

       return call;

    }

    public void setCall(String call) {

       this.call = call;

    }

    public int getAccount() {

       return account;

    }

    public void setAccount(int account) {

       this.account = account;

  }

2)UsersData类模拟账户信息库,构造方法初始化已存储的账户数据,并具有获取单个账户信息的方法和获取所有个账户信息的方法。

import java.util.HashMap;
public class UsersData {
		private static UsersData instance = null;
		private HashMap users = new HashMap();

		private UsersData() {
			// -------刘备--------------------
			User u1 = new User();
			u1.setCardId("1001");
			u1.setCardPwd("123456");
			u1.setUserName("刘备");
			u1.setCall("13281525712");
			u1.setAccount(1000);
			users.put(u1.getCardId(), u1);
			// ------关羽-------------------
			User u2 = new User();
			u2.setCardId("1002");
			u2.setCardPwd("234567");
			u2.setUserName("关羽");
			u2.setCall("13181527253");
			u2.setAccount(1000);
			users.put(u2.getCardId(), u2);
			// -----张飞-------------------
			User u3 = new User();
			u3.setCardId("1003");
			u3.setCardPwd("345678");
			u3.setUserName("张飞");
			u3.setCall("13041018869");
			u3.setAccount(1000);
			users.put(u3.getCardId(), u3);
		}
		// 懒汉式单例模式
		public static UsersData getInstance() {
			if (instance == null) {
				synchronized (UsersData.class) {
					if (instance == null) {
						instance = new UsersData();
					}
				}
			}
			return instance;
		}
		// 根据银行卡号获取对应单个账户的信息
		public User getUser(String cardId) {
			User user = (User) users.get(cardId);
			return user;
		}
		// 获取所有账户的信息
		public HashMap getUsers() {
			return users;
		}
}

3)Bnak类模拟网上银行登录页面,实现存取、查询余额的方法。

首先要实现用户的登陆,判断卡号和密码。

登陆成功后,提示四种可操作类型(存款:1、取款:2、余额:3、退出:0),输入相应类型数字,进入其对应功能。

选择1,存款时输入金额后,要判断金额是否合理(输入金额不能小于0),合理显示存款成功,不合理回到操作类型选择功能,让其从新选择操作。

选择2,取款时输入相应金额后,也要进行金额是否合理判断,并且其取款金额不能大于账户余额,如果大于账户余额,则提示“余额不足,取款失败!”,并回到操作类型选择功能。

选择3,系统显示账户余额。

选择0,退出系统,程序运行结束。

import java.util.*;

public class Bank {

   private UsersData dbutil = UsersData.getInstance();

    private static User user;

    public static void main(String[] args) {

       // TODO Auto-generated method stub

      

           Bank b = new Bank();

           b.login();

           b.operate();

       }



       

       public void operate() {

           while (true) {

              System.out.println("请输入您要进行的操作类型,按回车键结束");

              System.out.println("存款:1" + "t" + "取款:2"+ "t"+"余额:3" +"t "+"修改账户密码:4"+"t" + "退出:0");

              Scanner in = new Scanner(System.in);

              String s = in.nextLine(); // 输入的操作类型

              if("1".equals(s) || "2".equals(s)){

                  int num = 0;

                  try{

                     System.out.print("输入存取的金额:");

                     num = Integer.parseInt(in.nextLine());

                  }catch(Exception e){

                     System.out.println("金额输入错误!");

                     continue;

                  }

                  switch (s) {

                     case "1": // 存款操作

                         income(num);

                         break;

                     case "2": // 取款操作

                         takeout(num);

                         break;

                  }

              }else if("3".equals(s)){

                  show();

              }else if("4".equals(s)) {

                  System.out.println("请输入您修改后的密码:");

                  String cardPwd1=in.nextLine();

                  changePwd(cardPwd1);

              }else if("0".equals(s)){

                  System.out.println("退出系统!");

                  return;

              }else{

                  System.out.println("请输入0~4之间的数字选择相关操作!");

              }

           }

       }


      

 

       public void login() {

           System.out.println("欢迎进入网上银行系统!");

           while (true) {

              Scanner in = new Scanner(System.in); // 键盘录入

              System.out.println("请输入银行卡号:");

              String cardId = in.nextLine();

              System.out.println("请输入银行卡密码:");

              String cardPwd = in.nextLine();

              user = dbutil.getUser(cardId);

              // 登录

              if (dbutil.getUsers().containsKey(cardId)

                     && String.valueOf(user.getCardPwd()).equals(cardPwd)) {

                  System.out.println("登录成功!欢迎" + user.getUserName() + "先生");

                  break;

              } else {

                  System.out.println("银行卡号或密码错误!");

                  continue;

              }

           }

       }



       

       public void income(int num) {

           int account = user.getAccount() + num;

           user.setAccount(account);

           System.out.println("存入金额" + num + "元成功!");

       }



       

       public void takeout(int num) {

           if(user.getAccount() >= num){

              int account = user.getAccount() - num;

              user.setAccount(account);

              System.out.println("取出金额" + num + "元成功!");

           }else{

              System.out.println("余额不足,取款失败!");

           }

       }



       

       public void show() {

           int account = user.getAccount();

           System.out.println("账户总余额为" + account + "元");

       }

       

       public void changePwd(String cardPwd) {

           user.setCardPwd(cardPwd);

       }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998698.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号