数组

原创 2015年07月07日 00:17:47

今天将了数组的内容,以前张老师也将过,不过我没听懂,胡老师今天给我们讲,说实话还是听懂了一点,今天最主要的应用在了以前做的项目ATM机登录上面了;




public class Atm {

/**
* 代表ATM机器中存放的现金数量
*/
private int cash;//现金

private UserInfo theUser;//当前操作用户(登录成功的人)

private UserInfo[] allUsers;//所有的用户信息

public final int MAX_CASH = 100000;//最大现金数

public Atm(){
this.allUsers = new UserInfo[5];
for (int i = 0; i < allUsers.length; i++) {
this.allUsers[i] = new UserInfo("zhang" + i, "12345" + i, "12345" + i,
10000 + i * 1000);
}
this.cash = 50000;
}


//运行--完成流程控制
/**
* 本方法专门用于流程控制
*/
public void run(){
this.welcome();
boolean flag = this.login();

if(flag){
while(true){
int choice = this.choiceMenu();
switch(choice){
case 1:
this.query();
break;
case 2:
this.getMoney();
break;
case 3:
this.saveMoney();
break;
case 4:
this.changPwd();
break;
case 5:
this.exit(0);
break;
default:
System.out.println("只能输入数字1-5,请重新输入!");
break;
}
}
}else{
this.exit(1);
}
}

//欢迎
private void welcome(){
System.out.println("***************************");
System.out.println("**********欢***迎***********");
System.out.println("**********使***用***********");
System.out.println("**********爱存不存***********");
System.out.println("**********银***行***********");
System.out.println("***************************");
}

//登录
private boolean login(){
Scanner scan = new Scanner(System.in);

for(int i = 0; i < 3; i++){
System.out.println("请输入卡号:");
String inputCardNum = scan.next();
System.out.println("请输入密码:");
String inputPwd = scan.next();

for(int j = 0; j < this.allUsers.length; j++){
if(inputCardNum.equals(this.allUsers[j].getCardNum()) &&
inputPwd.equals(this.allUsers[j].getPassword())){
this.theUser = this.allUsers[j];
System.out.println("登录成功!");
return true;
}
}



System.out.println("您还有" + (2 - i) + "次机会!");
}
System.out.println("三次卡号密码输入错误,卡被没收!");
return false;
}

//选择菜单
private int choiceMenu(){
Scanner scan = new Scanner(System.in);
System.out.println("请选择您要操作的业务:");
System.out.println("1、查询余额;2、取款业务;3、存款业务;4、修改密码;5、退出");
int choice = scan.nextInt();

return choice;
}

//查询
private void query(){
System.out.println("您当前的余额是:" + this.theUser.getAccount() + "元。");
}

//存钱
private void saveMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你要存入的金额:");
int inputMoney = scan.nextInt();
if(inputMoney <= 0){
System.out.println("你输入的钱是负数,无法操作!");
return;
}
if(inputMoney % 100 != 0){
System.out.println("你输入的钱不是100的整数,无法操作!");
return;
}
if(this.cash + inputMoney > this.MAX_CASH){
System.out.println("本机容量不足,无法操作!");
return;
}
this.cash += inputMoney;
this.theUser.setAccount(this.theUser.getAccount() + inputMoney);
System.out.println("存钱操作已经成功,谢谢!");
}

//取钱
private void getMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你要取出的金额:");
int outputMoney = scan.nextInt();
if(outputMoney <= 0){
System.out.println("你输入的钱是负数,无法操作!");
return;
}
if(outputMoney % 100 != 0){
System.out.println("你输入的钱不是100的整数,无法操作!");
return;
}
if(this.theUser.getAccount() < outputMoney){
System.out.println("您账户的余额不足,无法操作!");
return;
}
if(this.cash <= outputMoney){
System.out.println("本机现金不足,无法操作!");
return;
}
this.theUser.setAccount(this.theUser.getAccount() - outputMoney);
this.cash -= outputMoney;
System.out.println("取钱操作已经成功,请收好现金!");
}

//修改密码
private void changPwd(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入原密码:");
String oldPwd = scan.next();
System.out.println("请输入新密码:");
String newPwd = scan.next();
System.out.println("请确认新密码:");
String reNewPwd = scan.next();

if(!oldPwd.equals(this.theUser.getPassword())){
System.out.println("原密码输入错误!");
return;
}
if(!newPwd.equals(reNewPwd)){
System.out.println("两次新密码输入不一致!");
return;
}
this.theUser.setPassword(newPwd);
System.out.println("新密码设置成功!");
}

//退出
/**
* 本方法用于实现ATM系统退出
* @param 表示退出状态
*/
private void exit(int status){
if(status == 1){
System.out.println("本机停止为您服务,请去柜台操作处理!");
}else if(status == 0){
System.out.println("谢谢您的使用,期待下次为您服务!");
}
System.exit(0);
}
}

java数组添加数组

java中添加数组一般有两种方式,第一种为:Arrays.copyOf。第二种为:System.arraycopy。第三种:采用for循环赋值。         第一种内部实现其实就是采用Syste...
  • xieyuntestShow
  • xieyuntestShow
  • 2011年11月29日 10:19
  • 17335

Object[]数组与String[]数组转换问题

在一本书中看到Object[] 与 String[] 的转换。发现有点很奇怪 Object[] ob = {"hello","World"}; String[] str = (String[]) o...
  • s3395719
  • s3395719
  • 2017年07月19日 09:37
  • 930

类数组转数组方法详解

类数组转数组:Array.prototype.slice.call(arguments)方法详解: 我们知道,Array.prototype.slice.call(arguments)能将具有leng...
  • u013084331
  • u013084331
  • 2016年04月21日 16:52
  • 1583

Form表单传递数组

对于一个问题的多个答案,如果我们可以通过form表单传递数组,那程序处理起来会简单多了: Website...
  • woxueliuyun
  • woxueliuyun
  • 2011年03月13日 20:22
  • 31362

C++基础---对象数组中delete与delete[]的区别

1. 对象数组中delete与delete[]的区别 1.1 释放动态分配的内存空间 C++中对new申请的内存的释放方式有delete和delete[]两种方式。 (1)delete:释放ne...
  • cainv89
  • cainv89
  • 2015年08月16日 17:06
  • 525

[循环打印]数组套数组

外层数组里有五个小数组,小数组里都是字符串,打印的时候,  打印顺序是第一个小数组的第一条,第二个数组的第一条,第三个数组的第一条,第一个数组的第二条。。。。。。一直循环下去 - (...
  • sinat_31063657
  • sinat_31063657
  • 2016年12月20日 10:43
  • 749

Window CMD 脚本中模拟数组的实现方法

CMD脚本中只有变量的概念,没有数组的概念,为了实现类似数组的功能,需要进行变量嵌套使用,并使用for命令将输出转换为内部变量值。...
  • zhylg2001
  • zhylg2001
  • 2017年03月07日 17:12
  • 1015

c#中数组赋值方法

http://blog.csdn.net/lltaoyy/article/details/6720778 C#中数组复制有多种方法 数组间的复制,int[] pins = {9,3,4,9};in...
  • cocoasprite
  • cocoasprite
  • 2016年09月05日 17:37
  • 1003

数组的equals方法

数组的equals方法没有重载Object的equals方法,跟“==”效果一样
  • havedream_one
  • havedream_one
  • 2015年09月03日 20:07
  • 1573

int数组与String数组互相转换和函数互相转换

今天在群里看到一人说起面试挂的一题,题目是Int数组转成String数组。虽然是基础的问题,但却是基础中比较少用到的问题,因此大家工作都没怎么遇到,不会也很正常。在此整理一下,先来个String与In...
  • qq348843576
  • qq348843576
  • 2015年07月26日 11:56
  • 13695
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组
举报原因:
原因补充:

(最多只允许输入30个字)