案例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接口程序设计、身份证校验位和身份提取)相关推荐

  1. java小项目---------银行新用户现金业务办理(运用数据库)

    银行新用户现金业务办理 1.任务描述     编写一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景.     要求此场景中,要模拟出银行对用户到来的欢迎动作.对用户离开的提 ...

  2. java实现银行新用户现金业务办理(数据库)

    1.任务描述     编写一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景.     要求此场景中,要模拟出银行对用户到来的欢迎动作.对用户离开的提醒动作,以及用户的开户. ...

  3. java模拟银行存取_JAVA基础案例 模拟银行存取款业务

    模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作 ...

  4. java模仿银行账务业务_Java基础案例 - 模拟银行存取款业务

    博学谷--让IT教学更简单,让IT学习更有效 模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当 ...

  5. 基于Java语言实现模拟银行存取款业务系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85820969 1.项目简介 本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行 ...

  6. java基础案例-模拟双色球

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.需求 二.分析 三.代码 四.效果图 总结 如何保证随机的6个中奖的红球号码不重复. 如何统计红球命中数量 一.需求 1 ...

  7. 用java、JDBC模拟银行ATM取款、存款、转账、注册用户(笔记)

    功能:转账.存款(转账失败时事务回滚).余额查询.取款.分页查询.注册用户 JAVA中利用JDBC连接数据库,通过增删改查模拟ATM (注册功能和分页查询在持久层和业务层写了,在模拟时未用到) Ora ...

  8. Java死循环案例---模拟签到系统

    目录 1.案例分析 2.代码展示 3.源码 1.案例分析 为了模拟每日签到,需要用到死循环.将死循环的条件设置为只要签到次数不满30天,就会一直重复运行. 设置签到关键字,再新建一个变量a来存储输入的 ...

  9. Java_银行新用户业务办理代码

    import java.util.Scanner; class Bank {Scanner scan = new Scanner(System.in);//创建Scanner对象;//定义欢迎语句;s ...

最新文章

  1. 19 个行业观点:李开复谈20年后 AI,崔宝秋论开源之道,清华唐杰提认知图谱三要素...
  2. linux下ARP防御
  3. python新手入门课_Python基础视频12集入门课程
  4. 还记得吗?可我摸了摸的太空堡垒
  5. 17. --cover-- 覆盖掩盖 (词19)
  6. 学计算机的能看出批图吗,高手教你:如何看出一张图有没有被 P 过?
  7. 物联网大数据平台具备哪些功能
  8. IOS开发学习笔记033-UIScrollView
  9. Using WIN32 calling convention 阅读笔记
  10. 力扣算法题—069x的平方根
  11. iOS 13问题记录
  12. php版密码字典生成 原创,真空密码字典生成器-使用教程和下载
  13. MQL5 编程基础:数组
  14. 框架设计--第七章 MyBatis的核心配置--习题答案
  15. SEO工具:免费快速排名软件大全!
  16. ADO编程详解(C++)
  17. 手写vue3源码——reactive, effect ,scheduler, stop 等
  18. 2017年ACM第八届山东省赛I题: Parity check(判断 第n项斐波那契数列奇偶性)
  19. 华为服务器恢复远程连接的出厂用户名和密码
  20. 计算机一级形状填充在哪里,ps填充快捷键,ps填充图案在哪怎么用?

热门文章

  1. Python学习日记(十六) time模块和random模块
  2. 22款逸动plus车机解锁权限实现升级高德安装软件
  3. 星璨鸿途网红财富领路人,像“丁真”一样实力变现!
  4. 19位主播带货破亿,83位达人涨粉百万,抖音近期还有哪些关键数据
  5. Eplan 3D宏快速创建(电气板布局显示) 只要五分钟
  6. 微信小程序(2) 按钮点击跳转页面
  7. 详细剖析平衡二叉树的四种旋转(附C++代码)
  8. 莱芜AAA企业信用评级申请条件和流程
  9. 拍照错题整理神器,自查错误答案很简单
  10. 程序员学数学读哪本书?(文末赠送精美礼品)