编写Java程序_银行终端服务系统

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 编写Java程序_银行终端服务系统

一、General description 总体概述

定位:银行软件

风格:金融财务

用户人群:通过银行终端获取银行服务的人群

产品:湖北银行终端服务系统


二、About the Project 项目介绍

银行终端服务系统为个人或企业账号提供银行智能终端服务,主要包括:现金取款、现金存款、余额查询、自助缴费、本行或异行转账、修改密码等基本功能;有些多功能终端系统还提供诸如存折打印、对账单打印、支票存款、信封存款、缴费、充值等一系列便捷服务。本项目主要模拟了湖北银行个人账号终端操作的基本功能,实现了账号金额管理和查询的业务功能。


三、Soft function 软件功能


1. 账号登录


账号为admin,密码为123,用户三次输入错误后系统自动退出。登录验证通过后可以看到系统操作菜单完成后续操作。


2. 功能主菜单


系统有菜单供用户选择操作,只用输入数字就可以选择相关功能。每次操作完成后菜单再次出现,提供用户下次选择,用户可以直接选择退出菜单,系统自动结束。


3. 存款


用户在主菜单中选择存款,系统提示用户输入存款金额,用户如果输入正确的数字,余款将会累加。输入错误的时候,系统会提示,用户可以再次输入。


4. 取款


用户在主菜单中选择取款,系统提示用户输入取款金额,用户输入正确,系统判断余款是否足额,如果不足,系统提示用户,用户可以再次输入。用户输入取款额不是数字,系统也会提示用户输入。


5. 查询


用户在主菜单中选择查询,系统输出用户所有的存取款项的明细信息,包括时间和金额,同时输出帐户的当前余额。


22.png


四、UI Model Use Case Diagram  UI模块用例图

Use Case1 账号登录


23.png


Goal in Context 简要说明:


用户使用银行服务必须首先登录到个人账号,系统默认设置的个人账号为admin,密码为123。如果用户输入错误的登录信息,系统提醒“账号密码输入错误!”。如果连续三次输入错误,系统将自动退出。登录通过后可以看到系统操作菜单。


Description 基本事件流描述:


24.png


Use Case2 存款


25.png


1、用户输入存款金额为非数字,提示:“金额输入错误,存款操作已经取消”如图:



26.png


2、用户输入存款金额为负数或零,系统提示“金额为负数或零,存款操作已经取消”如图:


27.png


3、用户选择的菜单序号不合法,系统自动关闭,如图:


28.png


Goal in Context 简要说明:


通过系统服务菜单,输入“1”选择“存款”服务,系统提示“输入存款金额”,存款成功后,系统提示“已存款XXX”。如果存款金额输入非数字或负数,系统给出相应提示,并停止存款服务,同时显示系统菜单,允许用户再次操作。


Description 基本事件流描述:


29.png


Use Case3 取款


30.png


1、用户输入取款金额为非数字,提示:“金额输入错误,取款操作已经取消”如图:


31.png


2、用户输入存款金额为负数或零,系统提示“金额为负数或零,取款操作已经取消”如图:


32.png


3、用户输入的取款金额超过其存款总额,系统提示“余额不足,取款操作已经取消”如图:


33.png


Goal in Context 简要说明:


通过系统服务菜单,输入“2”选择“取款”服务,系统提示“输入取款金额”,取款成功后,系统提示“已取款XXX”。如果取款金额输入非数字或负数,系统给出相应提示,并停止取款服务,同时显示系统菜单,允许用户再次操作。如果取款金额超出存款总额,提示“余额不足”。


Description 基本事件流描述:


34.png


Use Case4 查询


35.png


Goal in Context 简要说明:

通过系统服务菜单,输入“3”选择“查询”服务,系统按操作时间顺序,显示出用户的历史操作记录及当前余额。


五、需求分级


36.png


六、实现代码


Test 类


import java.util.Date;
import com.ww.service.UserAcountService;
public class Test {
  public static void main(String[] args) {
    UserAcountService uas=new UserAcountService();
    uas.login();
  }
}


UserAcount 类


public class UserAcount {
  //用户类
  public String user_name;//账号
  public String user_pwd;//密码
  public int balance;//账户的余额
  //登录
  public boolean login(String name,String pwd){
    if (user_name.equals(name)&&user_pwd.equals(pwd)) {
      return true;
    } else {
      return false;
    }
  }
  public UserAcount(String userName, String userPwd, int balance) {
    super();
    user_name = userName;
    user_pwd = userPwd;
    this.balance = balance;
  }
  public UserAcount() {
    super();
  }
}


LogInfo 类


public class LogInfo {
  String checkTime;//操作时间
  String check;//操作类型
  int balance;//操作的金额
  //显示日志
  public void showLogInfo(LogInfo[] ls){
    for (int i = 0; i < ls.length; i++) {
      if (ls[i]!=null) {
        System.out.println(ls[i].checkTime+"\t"+ls[i].check+"\t"+ls[i].balance);
      }
    }
    //余额
  }
  public LogInfo(String checkTime, String check, int balance) {
    this.checkTime = checkTime;
    this.check = check;
    this.balance = balance;
  }
  public LogInfo() {
  }
}


UserAcountService 类


import java.util.Date;
import java.util.Scanner;
import com.ww.entity.LogInfo;
import com.ww.entity.UserAcount;
public class UserAcountService {
  UserAcount ua;
  Scanner inputScanner=new Scanner(System.in);
  //声明一个日志数组,用于保存用户的操作数据
  LogInfo[] ls=new LogInfo[10];
  //登录的方法
  public void login(){
    initUser();//调用方法
    boolean f;
    int count=0;//登录的次数
    do {
      System.out.println("请输入账号:");
      String name=inputScanner.next();
      System.out.println("请输入密码:");
      String pwd=inputScanner.next();
      f=ua.login(name, pwd);
      count++;
      if (!f) {
        System.out.println("登录失败,您还有"+(3-count)+"次机会!");
      }
    } while (f==false&&count<3);
    //1、登录成功
    //2、失败次数达到3次
    if (f) {
      //显示功能菜单
      int choose;
      do {
        choose=showMenu();
        switch (choose) {
        case 1://存款
          addMoney();
          break;
        case 2://取款
          getMoney();
          break;
        case 3://查询
          showLogInfo();
          break;
        default://退出
          System.exit(0);
          System.out.println("谢谢使用,已退出!");
          break;
        }
      } while (choose==1||choose==2||choose==3);
    }else {
      System.out.println("错误次数超过三次,已锁定!");
    }
  }
  //查询
  public void showLogInfo(){
    LogInfo info=new LogInfo();
    info.showLogInfo(ls);
    System.out.println("当前账户的余额:"+ua.balance);
  }
  //取钱
  public void getMoney(){
    System.out.println("请输入取钱的金额:");
    int money=inputScanner.nextInt();
    if (money>=0) {
      if (money<=ua.balance) {
        ua.balance-=money;
        LogInfo li=new LogInfo(new Date().toLocaleString(),"取钱",money);
        //将此日志对象保存到数组中
        for (int i = 0; i < ls.length; i++) {
          if (ls[i]==null) {
            ls[i]=li;
            break;
          }
        }
      } else {
        System.out.println("账户余额不足!");
      }
    } else {
      System.out.println("金额不对,请重新输入!");
    }
  }
  //存款
  public void addMoney() {
    System.out.println("请输入存款的金额:");
    int money=inputScanner.nextInt();
    if (money>=0) {
      ua.balance+=money;
      //保存当前存款的操作日志:操作时间、操作类型、操作金额
      Date date=new Date();//获取当前系统时间
      LogInfo li=new LogInfo(date.toLocaleString(),"存款",money);
      for (int i = 0; i < ls.length; i++) {
        if (ls[i]==null) {
          ls[i]=li;
          break;
        }
      }
    } else {
      System.out.println("金额不对,请重新输入!");
    }
  }
  //显示功能菜单
  public int showMenu(){
    System.out.println("1、存款");
    System.out.println("2、取款");
    System.out.println("3、查询");
    System.out.println("4、退出");
    System.out.println("请选择操作:");
    int choose=inputScanner.nextInt();
    return choose;
  }
  //创建一个用户
  public void initUser(){
    ua=new UserAcount("admin", "123", 1000);
  }
}



相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
23天前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
197 8
|
1月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
141 23
|
1月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
158 11
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
127 10
|
1月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
69 6
java调用服务报错400
|
1月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
129 6
|
1月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
329 4
|
1月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
298 98
|
1月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
254 0