对象调用数组运用 学习很吃力

原创 2015年07月06日 22:29:19
               数组(集合)
①:只能存放相同的数据类型的数据元素。
②:数组元素存放在连续的内存地址空间。
③:数组长度一旦确定是不可以改变的。


               创建数组
声明的方法:
①:数据类型[] 数据变量名;
②:数据类型 数据变量名[];
int[] a;(java标准写法)         int a[];(c)


使用new关键字初始化数组,并且指定数组的长度。


package com.atm1;
import java.util.Scanner;
public class Atm {
private int cash;   //现金
private UserInfo theUser;  //用户信息
public final int MAX_CASH = 8888888;    //最大现金数
private UserInfo[] allUsers;  //所有的用户信息

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

// 取  存  查  改  登陆登出  登出   欢迎  选择菜单
/**
* 运行
*/
public void run(){
this.welcome();
boolean flag = this.login();

if (flag == true) {
while(true){
int choice = this.choiceMeou();
switch (choice) {
case 1:
query();
break;


case 2:
getMoney();
break;

case 3:
saveMoney();
break;

case 4:
changPwd();
break;

case 5:
exit(0);
break;

default:
System.out.println("请按要求输入1到5服务条\n");
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(){
for (int i = 0; i < 3; i++) {
Scanner scan = new Scanner(System.in);

for (int j = 0; j < allUsers.length; j++) {
System.out.println("请输入账号:");
String inputCardNum = scan.next();
System.out.println("请输入密码:");
String inputPwd = scan.next();
if (inputCardNum.equals(this.allUsers[j].getCardNum())  &&  inputPwd.equals(this.allUsers[j].getPasswrod())  ) {
this.theUser = this.allUsers[j];
System.out.println("登陆成功");
return true;
}
}

System.out.println("你还有"+(2-i)+"次机会\n");
}
System.out.println("非法用户卡被没收。警察三分钟到达现场,速度离开\n");
return false;
}


/**
* 选择菜单
*/
private int choiceMeou(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你要操作的业务:\n");
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 getMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("~~~~请输入你要取款的金额~~~~\n");
int inputcash = scan.nextInt();
if (inputcash <= 0) {
System.out.println("请别输入负数\n");
return;
}
if (inputcash % 100 != 0) {
System.out.println("请输入100的整数\n");
return;
}
if (this.theUser.getAccount()  >  inputcash) {   //用户的钱是否大于输入的金额
if (this.cash > this.theUser.getAccount()) { //ATM的钱是否大于用户的钱
this.theUser.setAccount(theUser.getAccount() - inputcash);
System.out.println("是否显示金额   y/n \n");
String an = scan.next();
if (an.equals("y")) {
query();
System.out.println("\n");
}
}else{
System.out.println("~~~~ATM的金额小于您要取的金额~~~~\n");
}
}else{
System.out.println("~~~~~金额不足取款失败~~~~~\n");
}
}


/**
* 存钱
*/
private void saveMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入存钱金额:\n");
int output = scan.nextInt();
if (output <= 0) {
System.out.println("请别输入负数\n");
return;
}
if (output % 100 != 0) {
System.out.println("请输入100的整数\n");
return;
}
if (output < MAX_CASH) {                   //用户存钱数是否大于取款机最大数
if ((this.cash + output)  <  MAX_CASH ) { //本地钱加上存的金额是否大于最大数
theUser.setAccount((theUser.getAccount()) +output);  //用户的钱加上存储的钱
System.out.println("是否显示金额   y/n");
String an = scan.next();
if (an.equals("y")) {
query();
System.out.println("\n");
}
}else{
System.out.println("~~~内部储存已满~~~\n");
}
}else{
System.out.println("~~~~~超出取款机最大储存~~~~\n");
}

}


/**
* 修改
*/
private void changPwd(){
for (int i = 0; i < 3; i++) {
System.out.println("~~~~~请输入原密码~~~~~\n");
Scanner scan = new Scanner(System.in);
String yuanPassWord = scan.next();
if (yuanPassWord.equals(theUser.getPasswrod())) {
for (int j = 0; j < 3; j++) {
System.out.println("~~~~~请输入新的密码~~~~\n");
String xinPassWord = scan.next();
System.out.println("~~~~~请确认新的密码~~~~\n");
String quePassWord = scan.next();
if (quePassWord == yuanPassWord) {
theUser.setPasswrod(xinPassWord);
System.out.println("~~~修改密码成功~~~~\n");
System.out.println("你的新密码是:"+theUser.getPasswrod()+"\n");
break;
}else{
System.out.println("第一次和第二次输入密码不同\n");
}
System.out.println("三次输入错误,吞卡");
}
}else{
System.out.println("~~~密码错误~~~~\n");
System.out.println("你还有"+(2-i)+"次机会\n");
}
System.out.println("输入错误密码三次,修改密码失败\n");
}
}


/**
* 退出
*/
private void exit(int a){
if (a == 1) {
System.out.println("本机停止为你服务,请去柜台操作处理\n");
}else{
System.out.println("谢谢你的实用,期待下次为你服务\n");
}
}
}







相关文章推荐

JavaScript数组对象JSON学习笔记

  • 2013年07月30日 14:40
  • 9KB
  • 下载

android ndk 开发jni调用对象方法,数组参数

一、JNI和NDK关系         JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码。J...

将数组转换成JSON对象

  • 2013年01月08日 15:02
  • 1KB
  • 下载

webservice 学习笔记,axis2 传递对象数组,非stub方式

还是用 我博客《webservice 学习笔记,axis2传输简单对象,非stub方式 》的例子: 首先建立ServiceTest.javapackage sample.ws.service;impo...

javascript对象与数组参考大全

  • 2008年10月22日 14:06
  • 16KB
  • 下载

数组和集合对象(二) Hashtable练习

  • 2008年09月01日 11:34
  • 32KB
  • 下载

Java基础学习第六天——二维数组与面向对象入门

二维数组 二维数组常见初始化格式 二维数组练习 面向对象 面向对象思想 如何更符合面向对象思想 面向对象开发设计特征 类 一个对象的内存图 两个对象的内存图 三个对象的内存图...

数组和集合对象(一) Array练习

  • 2008年09月01日 11:32
  • 14KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象调用数组运用 学习很吃力
举报原因:
原因补充:

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