java银行卡存取款系统

一个用java模拟ATM机的代码且数据库为mysql,

最后一列为备注 1、 管理员表(tb_admin) 字段 类型 约束 备注 aId number(6) 主键 –管理员编号 aName varchar2(10) 唯一、非空 –管理员登陆名 aPassword varchar2(16) 非空 –管理员登陆密码 aLastDate date 非空 –上次登陆时间 aNowDate date 非空 –本次登陆时间 2、 银行卡登陆表(tb_login) 字段 类型 约束 备注 lId number(8) 主键 –登录ID lCardNumber varchar2(19) 引用银行卡信息表 卡号 lPassword number(6) 非空 银行卡密码 bIsLock char(1) 默认1 是否被锁,0表示被锁,1表示开启 lTime number(10) 初始为0 登陆次数 aLastDate date 非空 上次登陆时间 aNowDate date 非空 本次登陆时间 3、 客户详细资料表(tb_userInfo) 字段 类型 约束 备注 usId number(8) 主键 客户ID usName varchar2(10) 非空 客户姓名 usIDNumber varchar2(18) 非空 客户身份证号码 usSex char(1) 默认0 客户性别,0表示男,1表示女 usTel varchar2(11) 非空 客户电话 usAddress varchar2(50) 非空 客户地址 4、 银行支行表(tb_Branch) 字段 类型 约束 备注 bId number(3) 主键 支行ID bName varchar2(20) 唯一、非空 支行名 bAddress varchar2(100) 非空 支行地址 5、 银行卡信息表(tb_CardInfo) 字段 类型 约束 备注 bCardID number(19) 主键 卡号 bBalance number(8,2) 默认0.00 余额 bUserId number(8) 引用客户详细资料表 卡对应用户ID bBranchID number(4) 引用支行表 支行ID bDate date 默认系统时间 开户时间 6、 银行卡交易类型表(tb_TransType) 字段 类型 约束 备注 tId number(2) 主键 类型ID tType nvarchar2(6) 唯一 类型(转账、存款、取出等) 7、 银行卡个人账户存、取款记录表(tb_ Pacount) 字段 类型 约束 备注 tId number(10) 主键 交易记录流水号 tType number(2) 引用交易类型表 交易类型ID tCardID number(19) 引用银行卡信息表 交易卡号 tamount number(10) 非空 交易金额 tDate date 非空 交易时间 8、 银行卡转账等交易记录表(tb_TransInfo) 字段 类型 约束 备注 tId number(10) 主键 交易记录流水号 tType number(2) 引用交易类型表 交易类型ID tCardIDout number(19) 引用银行卡信息表 交易金额转出卡号 tCardIDIn number(19) 引用银行卡信息表 交易金额转入卡号 tamount number(10) 非空 交易金额 tDate date 非空 交易时间

java银行卡存取款系统

采用java多线程技术,设计一个银行ATM,假设用户插入银行卡后,该ATM需要实现一下功能:(1)

。。。。。。。。以上三位小朋友都不是开发者吧

你这个需求其实 功能不难 插入卡后扫描卡号 根据卡号判断是什么银行 这个可以用字典 进行对应操作就行了 至于多线程的话就得控制下了 一台atm机 多线程不复杂吧 还是你有特殊要求?就是开启线程处理查询 异步做其他事情 如提示信息入输入密码 如进行下一步操作

用Java编写简单的银行系统

这个有点复杂,说点简单的思路

1.首先要建立数据库表,保存数据需要保存到表中

create table Account(

账号ID

密码

有多少钱

)

如果要保存流水记录的话,还的建张表保存记录

2.java

账号类

class Account{

账号ID

密码

有多少钱

}

一个操作类

class Test{

开户,登录,存款,取款,查询余额,修改密码

各写一个方法

}

用Java编写银行账户存取款业务,急求!!

public class Account {

protected String accId;

protected String name;

protected double money;

public Account (String accId,String name){

this(accId,name,0);

}

public Account (String accId,String name,double money){

this.accId = accId;

this.name = name;

this.money = money;

}

public void saveMoney(double money){

if(money = 0){

System.out.println(“存款金额必须大于0”);

}

this.money += money;

System.out.println(“存款成功”);

}

public double getMoney(double money){

if(money = 0){

System.out.println(“取款金额必须大于0”);

return 0;

}

if(this.money = money){

System.out.println(“余额不足,无法取款”);

return 0;

}

this.money -= money;

System.out.println(“取款成功”);

return money;

}

public double getBalance(){

return this.money;

}

protected double getOverdraft(){

return 0;

}

// 实现了equals方法,list比较时才能正确

@Override

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(this == obj){

return true;

}

if(obj instanceof Account){

return this.accId.equals(((Account)obj).accId);

}

return false;

}

@Override

public String toString() {

return “账户=” + accId + “,名字=” + name + “,余额=” + money;

}

}

public class Bank {

// Account实现了equals方法,list查找时才能正确

private ListAccount usersAccounts;

public Bank() {

usersAccounts = new ArrayListAccount();

}

public void addAccount(Account account) {

if (usersAccounts.contains(account)) {

System.out.println(“添加失败,不能添加同样的账户”);

return;

}

usersAccounts.add(account);

}

public boolean delAccount(Account account) {

return usersAccounts.remove(account);

}

public boolean delAccount(String accId) {

return delAccount(new Account(accId, null));

}

public boolean existAccount(Account account) {

return usersAccounts.contains(account);

}

public boolean existAccount(String accId) {

return existAccount(new Account(accId, null));

}

public Account getAccount(String accId){

return usersAccounts.get(usersAccounts.indexOf(new Account(accId, null)));

}

public double getAllMoney() {

// 不考虑是否溢出,只是把所有用户余额相加

double result = 0;

for (Account account : usersAccounts) {

result += account.getBalance();

}

return result;

}

public double getAllOverdraft() {

// 不考虑是否溢出

double result = 0;

for (Account account : usersAccounts) {

result += account.getOverdraft();

}

return result;

}

public int getAccountNum() {

return usersAccounts.size();

}

public int getCreditAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

// instanceof 性能没有简单的方法快。

if (account instanceof CreditAccount) {

num++;

}

}

return num;

}

public int getSavingAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

if (account instanceof SavingAccount) {

num++;

}

}

return num;

}

public ListAccount getAllAccount() {

return usersAccounts;

}

}

public class CreditAccount extends Account{

private double overdraft;

public CreditAccount(String accId,String name){

super(accId, name);

this.overdraft = 1000;

}

public CreditAccount(String accId,String name,double money){

this(accId, name,money,1000);

}

public CreditAccount(String accId,String name,double money,double overdraft){

super(accId, name,money);

this.overdraft = overdraft;

}

@Override

public double getMoney(double money) {

if(money = 0){

System.out.println(“取款金额必须大于0”);

return 0;

}

if(this.money + overdraft = money){

System.out.println(“余额不足,无法取款”);

return 0;

}

this.money -= money;

System.out.println(“取款成功”);

return money;

}

@Override

public double getOverdraft(){

return overdraft;

}

@Override

public String toString() {

return “账户=” + accId + “,名字=” + name + “,余额=” + money + “,透支=” + overdraft;

}

}

public class SavingAccount extends Account {

public SavingAccount(String accId, String name) {

super(accId, name);

}

public SavingAccount(String accId, String name, double money) {

super(accId, name, money);

}

@Override

public double getMoney(double money) {

return super.getMoney(money);

}

@Override

public double getOverdraft() {

return super.getOverdraft();

}

}

public class Test {

private static Bank bank = new Bank();

public static void main(String[] args) {

Test.genAccount();

// 开户

Account a1 = new CreditAccount(“1”, “1”, 200, 2000);

Account a2 = new SavingAccount(“2”, “2”, 300);

Account a3 = new SavingAccount(“3”, “3”, 400);

Account a4 = new CreditAccount(“4”, “4”, 500, 2000);

Account a5 = new CreditAccount(“4”, “5”, 600, 2000); // 帐号4重

bank.addAccount(a1);

bank.addAccount(a2);

bank.addAccount(a3);

bank.addAccount(a4);

bank.addAccount(a5);

showNowAccount();

// 销户

bank.delAccount(“1”);

bank.delAccount(“2”);

showNowAccount();

// 存款

if(bank.existAccount(“3”)){

Account acc  = bank.getAccount(“3”);

acc.saveMoney(100);

}

showNowAccount();

// 取款

if(bank.existAccount(“3”)){

Account acc  = bank.getAccount(“3”);

System.out.println(“余额=” + acc.getBalance());

acc.getMoney(100);

System.out.println(“余额=” + acc.getBalance());

acc.getMoney(1000);

System.out.println(“余额=” + acc.getBalance());

}

if(bank.existAccount(“4”)){

Account acc  = bank.getAccount(“4”);

System.out.println(“余额=” + acc.getBalance());

acc.getMoney(100);

System.out.println(“余额=” + acc.getBalance());

acc.getMoney(1000);

System.out.println(“余额=” + acc.getBalance());

acc.getMoney(10000);

System.out.println(“余额=” + acc.getBalance());

}

System.out.println(bank.getAccountNum());

System.out.println(bank.getAllMoney());

System.out.println(bank.getAllOverdraft());

System.out.println(bank.getCreditAccountNum());

System.out.println(bank.getSavingAccountNum());

}

public static void genAccount(){

String s = “1000 0000 0000 000”;

Account a = null;

for(int i = 1; i  11; i ++){

if((i  2) == 0){

a = new CreditAccount(s + String.valueOf(i), “账户” + String.valueOf(i));

} else {

a = new SavingAccount(s + String.valueOf(i), “账户” + String.valueOf(i));

}

bank.addAccount(a);

}

}

public static void showNowAccount(){

for(Account account : bank.getAllAccount()){

System.out.println(account);

}

}

}

// 面向对象,看多写多了就会了,简单的随便写的,有错误先不用太纠结。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 11:39:26
下一篇 2024年3月27日 11:47:50

相关推荐

  • linux系统与gpt的关系的简单介绍

    linux下查看分区是不是gpt 看分区会报错,比如:WARNING: GPT (GUID Partition Table) detected on /dev/sda! The util fdisk doesnt support GPT. Use GNU Parted.所以这个sda就是gpt的。 选择“管理”;在“磁盘管理”中,右键“磁盘0”,在弹出的右键…

    2024年5月23日
    5400
  • 硬盘安装linux,硬盘安装win7系统教程

    hp288g8安装linux 好用。hpgen8安装Linux可以使cpu占用程度降低,减少卡顿。hpgen8安装Linux可以降低cpu温度,减少散热的压力。hpgen8安装Linux可以使功能更加便捷,方便新手操作。 在安装系统前,你要备份好资料和系统。Linux系统能装的软件和游戏比较少,要装,都是通过wine安装的。 首先开机看到下图界面按下F10,…

    2024年5月23日
    4300
  • java语言编写评分系统,java语言编写评分系统有哪些

    如何制作投票评分系统 搜索互动酷,进入网站后点击“开始制作”-“制作投票”按钮。或者在顶部找到“模版中心”并点击,点击“投票”类目,选择合适的投票模板进入制作。 打开微信,搜索小程序人人投票评分小程序。点击发起活动。选择需要征集的类型。设置活动名称、活动时间、奖品、封面等。点击创建活动,即完成活动创建,活动保存于我管理的里。 前一个可以用JQ+CSS实现。提…

    2024年5月23日
    4500
  • linuxttl是什么系统的简单介绍

    求解:如何通过TTL存活时间来判断是什么操作系统? 首先要说明的一点是,以前可以用TTL的值判断一个操作系统,但是现在,可以通过注册表来修改TTL的值的,所以这个方法判断的不一定准确,基本没什么大用了。 TTL=52在互联网环境下直接判断操作系统是没有准确依据的。TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。 TTL,表面意思为包…

    2024年5月23日
    4200
  • 什么是linux操作系统,linux操作系统属于什么系统

    linux是什么操作系统? Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。 Linux 是一种自由、开放源代码的类 Unix 操作系统。与 Windows 等商业操作系统相比,Linux 有很多优点,例如稳定性高、安全性…

    2024年5月23日
    4400
  • linuxarm模拟器,linux系统在线模拟器

    linux下ARM平台编译编写的完成程序如何在windows环境下运行? 先确保你的c程序没有调用win下专有的api,比如win32api或.net等,如果有,就需要另写接口层。最好能只调用posix库或跨平台的库,或完全原创的算法库。c程序满足和win专有接口能脱离直接关系,就能在linux下编译。 要在Windows上建立arm-linux开发环境,您…

    2024年5月23日
    3900
  • linux系统下php的安装,linux 安装 php

    Linux如何安装配置PHP+Nginx 1、nginx,php,php-fpm 比如说如果是centos的话:yum install nginx php php-fpm可能软件包名有差别,这个查查就知道了。 2、php项目部署到nginx的方法:首先安装“Nginx”和“php-fpm”;然后将项目复制到“nginx/html”文件下;接着修改配置文件;最…

    2024年5月23日
    5100
  • c语言改系统时间戳,c语言计算毫秒级时间戳

    c语言程序设计中如何从系统中调出时间 1、需要利用C语言的时间函数time和localtime,具体说明如下:函数接口介绍:time函数。形式为time_t time (time_t *__timer);其中time_t为time.h定义的结构体,一般为长整型。这个函数会获取当前时间,并返回。 2、话,asctime()函数只是把tm结构对象中的各个域填到时…

    2024年5月23日
    4300
  • linux下的复制粘贴快捷键,linux系统复制粘贴快捷键

    linux注销快捷键 linux常用命令如下:查看内核版本:uname -a。控制台-》图形界面:init 5或者startx。图形界面-》控制台: init3或者直接注销。如何查看ip地址:ifconfig。配置ip:ifconfig eth0 ip地址。 shutdown是一个用来安全关闭或重启Linux系统的命令,系统在关闭之前会通知所有的登录用户,系…

    2024年5月23日
    3800
  • u盘装linuxiso,U盘装linux系统怎么安装

    双系统如何安装linux 下载Linux安装盘并制作启动盘首先,您需要下载Linux发行版的ISO镜像文件,并制作启动盘。制作启动盘的方法因发行版而异,您可以通过搜索相应的教程进行操作。 然后安装linuxdeepin系统:首先选择安装镜像(即从deepin 官网下载的iso镜像)。然后选择“下一步”。然后选择要制作的U盘。接下来等待制作完成即可。 准备Li…

    2024年5月23日
    4100

发表回复

登录后才能评论



关注微信