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

目录

一、General description 总体概述

二、About the Project 项目介绍

三、Soft function 软件功能

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

Use Case1 账号登录

Use Case2 存款

Use Case3 取款

Use Case4 查询

五、需求分级

六、实现代码


一、General description 总体概述

定位:银行软件

风格:金融财务

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

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

二、About the Project 项目介绍

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

三、Soft function 软件功能

1. 账号登录

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

2. 功能主菜单

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

3. 存款

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

4. 取款

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

5. 查询

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

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

Use Case1 账号登录

Goal in Context 简要说明:

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

Description 基本事件流描述:

Use Case2 存款

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

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

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

Goal in Context 简要说明:

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

Description 基本事件流描述:

Use Case3 取款

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

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

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

Goal in Context 简要说明:

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

Description 基本事件流描述:

Use Case4 查询

Goal in Context 简要说明:

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

五、需求分级

Requirement ID 需求ID

Requirement Name 需求名称

Classification 需求分级

SC.01

账号登录

A

SC.02

存款

A

SC.03

取款

A

SC.04

查询

A

六、实现代码

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);
	}
}

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明金同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值