java lesson20homework
package com.xt.lesson20;
/**
* 简易自动提款机 1. 创建用户类User(包含卡号、姓名、密码、余额等属性),用户开卡时录入的姓名和密码(自动分配一个卡号、初始金额设置为0)。
2. 使用ArrayList或LinkedList存储全部注册用户
形式如:ArrayList<User> userList = new ArrayList<User>();
3. 实现功能
(1)存款
(2)取款(如果余额不足要提示)
(3)查询余额(只能查看当前卡号的余额)
4. 技术要求,使用异常处理用户的错误输入(即程序保护容错功能)。 * @author LENOVO
*
*/
public class User {
private String ID;//卡号
private String name;//姓名
private int password;//密码
private int balance;//余额 //构造方法
public User(String ID, String name, int password, int balance) {
super();
this.ID = ID;
this.name = name;
this.password = password;
this.balance = balance;
} /**
* @return the iD
*/
public String getID() {
return ID;
} /**
* @param iD the iD to set
*/
public void setID(String ID) {
this.ID = ID;
} /**
* @return the name
*/
public String getName() {
return name;
} /**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
} /**
* @return the password
*/
public int getPassword() {
return password;
} /**
* @param password the password to set
*/
public void setPassword(int password) {
this.password = password;
} /**
* @return the balance
*/
public int getBalance() {
return balance;
} /**
* @param balance the balance to set
*/
public void setBalance(int balance) {
this.balance = balance;
} //存款功能的实现
public boolean saveMoney(int m){
System.out.println("正在验钞,请稍后.......");
if(m<0){
if(checkMoney(-m)){
return true;
}else{
return false;
} }else if(m>0){
this.balance+=m;
System.out.println("操作成功!");
return true;
}
return false;
} //取款操作
public boolean checkMoney(int m){
if(m<0){
if(saveMoney(-m)){
return true;
}else{
return false;
} }else if(m>0){
System.out.println("请输入密码......");
if(checkPassword()){
this.balance-=m;
System.out.println("操作成功!");
return true;
}
}
return false;
}
//查询余额
public void search(){
System.out.println("正在处理,请稍后......");
if(ID.equals(this.ID)){
System.out.println("账户"+ID+"的余额为:"+balance);
}else{
System.out.println("您输入的账户不存在,请认真核查后重新输入!");
}
} //检验密码操作
public boolean checkPassword(){
int i;
for(i=0;i<3;i++){
if(i>0){
System.out.println("密码输入错误,请重新输入密码!");
}
int pas=EnterNum.enterNum();
if(pas==password){
return true;
}
}
if(i==3)
System.out.println("密码输入错误3次,此次操作中断!");
return false;
}
//选择操作方法
public void print(){
System.out.println("----------------------欢迎使用自动取款机------------------------");
System.out.println("[存款----1]");
System.out.println("[取款----2]");
System.out.println("[查询----3]");
System.out.println("[退卡----0]");
} } //写一个类,进行对输入数字的判断。 package com.xt.lesson20; import java.util.Scanner; public class EnterNum {
static Scanner scanner=new Scanner(System.in);
public static String enterStr(){
String str="";
try{
str=scanner.next();
}catch(Exception e){ }
return str; }
public static int enterNum(){
int m = 0; try{
m=Integer.parseInt(enterStr());
}catch(Exception e){
System.out.println("您输入的数据不合法!请输入整数......");
}
return m;
} } //写一个主方法,进行判断操作的选择。 package com.xt.lesson20; import java.util.ArrayList; public class MachineTest { public static void main(String[] args) {
ArrayList<User> userList=new ArrayList<User>();
userList.add(new User("未知","未知",0,0));//默认值
userList.add(new User("200981501","聂庆平",5264,7000));
userList.add(new User("200981512","黎明",1562,17000));
first:while(true){
userList.get(0).print();
int a=EnterNum.enterNum();
second: switch (a){
case 1:{
System.out.println("请输入您要存钱的账号:");
String id=EnterNum.enterStr();
int i;
for (i=0;i<userList.size();i++){
if(id.equals(userList.get(i).getID())){
System.out.println("请输入您存的钱数:");
int m=EnterNum.enterNum();
if(userList.get(i).saveMoney(m)){
break second;
}
}
}
if(i==userList.size()){
System.out.println("您输入的账户不存在!");
break second;
}
}
case 2:{
System.out.println("请输入您要取钱的账号:");
String id=EnterNum.enterStr();
int i;
for(i=0;i<userList.size();i++){
if(id.equals(userList.get(i).getID())){
System.out.println("请输入您取的钱数:");
int m=EnterNum.enterNum();
userList.get(i).checkMoney(m);
break second;
}
}
if(i==userList.size()){
System.out.println("您输入的账户不存在!");
break second;
}
}
case 3:{
System.out.println("请输入您的卡号!");
String id=EnterNum.enterStr();
int i;
for(i=0;i<userList.size();i++){
if(id.equals(userList.get(i).getID())){
userList.get(i).search();
break second;
}
}
if(i==userList.size()){
System.out.println("您输入的账户不存在!");
break second;
}
}
case 0:{
System.out.println("感谢您的使用,再见!");
System.exit(0);
} } }
} }
java lesson20homework的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
随机推荐
- dubbo异常filter
dubbo请求调用过程分析 https://blog.csdn.net/javahongxi/article/details/72876694 浅谈dubbo的ExceptionFilter异常处理 ...
- ORA-00054: 资源正忙 --锁表的解决方法
问题描述 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 发生异常 原因:其他Session已经对目标表做了操作,且未提交操作,导致锁表,新的Session无法 ...
- CentOS / RHEL 配置yum源
CentOS / RHEL 配置yum源 */--> CentOS / RHEL 配置yum源 Table of Contents 1. 前言 2. 关于yum 2.1. yum是什么 2.2. ...
- 省份-城市-区域三级联动【struts2 + ajax +非数据库版】
package loaderman; /** * 实体,封装省份和城市 */ public class Bean { private String province;//省份 private Stri ...
- Python3+RobotFramewok 用户自定义库的开发(四)
在介绍这个之前,可以先看下python的目录Python\Lib\site-packages下面的文件夹,你会发现这个目录下面有DatabaseLibrary.RequestsLibrary.Sele ...
- DBUtil连接数据库
1. SQL server连接: 数据库不同架包就不同 SQL server 使用的架包是(sqljdbc4.jar) 2. Mysql (MariaDB同理) SQL server 使用的架包是(m ...
- Linux日常用的命令
查看一个文件夹是的挂载路径,比如查看opt文件夹挂载在哪:df /opt root@iZ2zedo02x7n4nuc3lb4ueZ:~# df /opt Filesystem 1K-blocks Us ...
- NLP基础
1 自然语言处理三大特征抽取器(CNN/RNN/TF)比较 白衣骑士Transformer:盖世英雄站上舞台 华山论剑:三大特征抽取器比较 综合排名情况 以上介绍内容是从几个不同角度来对RNN/CN ...
- Validform表单验证时的 【坑】
代码如下 <input style="width: 360px" name="ll_wb_job.qcwyJobUrl" value="&quo ...
- [ES6 系列] 你真的了解ES6吗(一)
前言 无论是我们日常开发还是面试跳坑, ES6 已经变得越来越重要,那么你是否对它足够熟悉呢 ES6 将会是专栏接下来的一个系列,从最基础的概念或者有趣的问题开始逐渐深入,探究 ES6 常用的特性以及 ...