【java养成】:案例(模拟银行新用户现金业务办理、USB接口程序设计、身份证校验位和身份提取)
案例1:模拟银行新用户现金业务办理
实验内容:
1) 银行新用户开户
2) 欢迎用户光临和欢迎用户下次光临
3) 存钱
4) 取钱
案例代码:
Bank类:
package cn.Bank;public class Bank {static String Name;private String name;private String pswd;private double balance;private double turnover;// 静态方法static void welcome() {System.out.println("欢迎来到" + Name + "------------");}public Bank(String name, String pswd, double turnover) {super();this.name = name;this.pswd = pswd;this.balance = turnover - 10;this.turnover = turnover;System.out.println(name + "开户成功,余额" + balance);}// 存钱public void Save_money(double turnover) {balance = balance + turnover;System.out.println(name + "您好,您已存入" + turnover + "元,当前余额是" + balance + "元。");}// 取钱public void Withdraw_money(String pswd, double turnover) {if (this.pswd != pswd) {System.out.println("您输入的密码有误");return;}// 钱是否够if (this.balance < turnover) {System.out.println("您的余额不足");} else {balance = balance - turnover;System.out.println(name + "您好,您的帐户已取出" + turnover + "元,您的帐户余额是" + balance + "元");}}// 欢迎下次光临static void welcomeNext() {System.out.println("欢饮下次光临" + Name + "------------");}
}
Test类:
package cn.Bank;public class Test {public static void main(String[] args) {Bank.Name = "中国人民银行";Bank.welcome();Bank bank = new Bank("李小小", "123456", 100);bank.Save_money(100);bank.Withdraw_money("123456", 50);bank.Withdraw_money("654321", 200);bank.Withdraw_money("123456", 50);Bank.welcomeNext();}
}
运行结果示例:
案例2:USB接口程序设计
实验内容:
1) 模拟往计算机的USB接口的插入设备;
2) 模拟开机时各USB接口的设备开始工作;
3) 模拟关机时各USB接口的设备停止工作。
案例代码:
Computer类:
package cn.usb;public class Computer {private USB[] usbArr = new USB[4];public void add(USB usb) {for (int i = 0; i < usbArr.length; i++) {if (usbArr[i] == null) {usbArr[i] = usb;break;}}}public void powerOn() {for (int i = 0; i < usbArr.length; i++) {if (usbArr[i] != null) {usbArr[i].turnOn();}}System.out.println("电脑开机成功");}public void powerOff() {for (int i = 0; i < usbArr.length; i++) {if (usbArr[i] != null) {usbArr[i].turnOff();}}System.out.println("电脑关机成功");}}
KeyBoard类:
package cn.usb;public class KeyBoard implements USB {@Overridepublic void turnOn() {// TODO Auto-generated method stubSystem.out.println("键盘启动了");}@Overridepublic void turnOff() {// TODO Auto-generated method stubSystem.out.println("键盘关闭了");}
}
Microphone类:
package cn.usb;public class Microphone implements USB {@Overridepublic void turnOn() {// TODO Auto-generated method stubSystem.out.println("麦克风启动了");}@Overridepublic void turnOff() {// TODO Auto-generated method stubSystem.out.println("麦克风关闭了");}}
Mouse类:
package cn.usb;public class Mouse implements USB {@Overridepublic void turnOn() {// TODO Auto-generated method stubSystem.out.println("鼠标启动了");}@Overridepublic void turnOff() {// TODO Auto-generated method stubSystem.out.println("鼠标关闭了");}
}
USB类:
package cn.usb;public interface USB {void turnOn();void turnOff();
}
Test类:
package cn.usb;public class Test {public static void main(String[] args) {Computer c = new Computer();c.add(new Mouse());c.add(new Microphone());c.add(new KeyBoard());c.powerOn();System.out.println("----------------");c.powerOff();}
}
运行结果示例:
案例3:身份证校验位和身份提取
实验内容:
1)从键盘上输入身份证的前17份
2) 计算身份证的检验码
十七位数字id[17]本体码加权求和公式: S=Sum (Ai*Wi) ,i=0.....16。
其中,Ai表示身份证号码第i位的数字
wi表示第i位的加权因子,分别为{7 ,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}
先对前17位数字按位权求和,计算除以11的余数: y= S%11
通过模得到对应的末位校验码v[11]={'1' ,'0','x','9','8','7','6','5','4', '3','2’}
3)判断性别
通过第17位数除以2的余数判断性别(1为男,0为女)
案例代码:
package cn.idcard;import java.time.LocalDate;
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入身份证号的前17位:");String s = sc.nextLine();int[] a = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };char[] b = { '1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2' };int sum = 0, n;for (int i = 0; i <= 16; i++) {n = s.charAt(i) - '0';sum = sum + n * a[i];}char c = b[sum % 11];System.out.println("末尾校验位为:" + c);String yString = s.substring(6, 10);String mString = s.substring(10, 12);String dString = s.substring(12, 14);int y = Integer.parseInt(yString);int m = Integer.parseInt(mString);int d = Integer.parseInt(dString);LocalDate localDate = LocalDate.of(y, m, d);System.out.println("出生年月日为:" + localDate.toString());int age = 2022 - y;int i = s.charAt(16) - '0';String sex = (i % 2) == 1 ? "男" : "女";System.out.println("您的年龄为:" + age + "性别为:" + sex);}
}
运行结果示例:
【java养成】:案例(模拟银行新用户现金业务办理、USB接口程序设计、身份证校验位和身份提取)相关推荐
- java小项目---------银行新用户现金业务办理(运用数据库)
银行新用户现金业务办理 1.任务描述 编写一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景. 要求此场景中,要模拟出银行对用户到来的欢迎动作.对用户离开的提 ...
- java实现银行新用户现金业务办理(数据库)
1.任务描述 编写一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景. 要求此场景中,要模拟出银行对用户到来的欢迎动作.对用户离开的提醒动作,以及用户的开户. ...
- java模拟银行存取_JAVA基础案例 模拟银行存取款业务
模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作 ...
- java模仿银行账务业务_Java基础案例 - 模拟银行存取款业务
博学谷--让IT教学更简单,让IT学习更有效 模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当 ...
- 基于Java语言实现模拟银行存取款业务系统
资源下载地址:https://download.csdn.net/download/sheziqiong/85820969 1.项目简介 本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行 ...
- java基础案例-模拟双色球
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.需求 二.分析 三.代码 四.效果图 总结 如何保证随机的6个中奖的红球号码不重复. 如何统计红球命中数量 一.需求 1 ...
- 用java、JDBC模拟银行ATM取款、存款、转账、注册用户(笔记)
功能:转账.存款(转账失败时事务回滚).余额查询.取款.分页查询.注册用户 JAVA中利用JDBC连接数据库,通过增删改查模拟ATM (注册功能和分页查询在持久层和业务层写了,在模拟时未用到) Ora ...
- Java死循环案例---模拟签到系统
目录 1.案例分析 2.代码展示 3.源码 1.案例分析 为了模拟每日签到,需要用到死循环.将死循环的条件设置为只要签到次数不满30天,就会一直重复运行. 设置签到关键字,再新建一个变量a来存储输入的 ...
- Java_银行新用户业务办理代码
import java.util.Scanner; class Bank {Scanner scan = new Scanner(System.in);//创建Scanner对象;//定义欢迎语句;s ...
最新文章
- 19 个行业观点:李开复谈20年后 AI,崔宝秋论开源之道,清华唐杰提认知图谱三要素...
- linux下ARP防御
- python新手入门课_Python基础视频12集入门课程
- 还记得吗?可我摸了摸的太空堡垒
- 17. --cover-- 覆盖掩盖 (词19)
- 学计算机的能看出批图吗,高手教你:如何看出一张图有没有被 P 过?
- 物联网大数据平台具备哪些功能
- IOS开发学习笔记033-UIScrollView
- Using WIN32 calling convention 阅读笔记
- 力扣算法题—069x的平方根
- iOS 13问题记录
- php版密码字典生成 原创,真空密码字典生成器-使用教程和下载
- MQL5 编程基础:数组
- 框架设计--第七章 MyBatis的核心配置--习题答案
- SEO工具:免费快速排名软件大全!
- ADO编程详解(C++)
- 手写vue3源码——reactive, effect ,scheduler, stop 等
- 2017年ACM第八届山东省赛I题: Parity check(判断 第n项斐波那契数列奇偶性)
- 华为服务器恢复远程连接的出厂用户名和密码
- 计算机一级形状填充在哪里,ps填充快捷键,ps填充图案在哪怎么用?