学习java已经有三周了,这三周里,我不仅了解了java里的面向过程,并且在和一周对面向对象进行了深化了解,构造方法,方法重载(或者方法重写)面向对象的三大特性(继承,封装,多态)以及初步了解三个修饰符中的abstract。我觉得这很多都离不开千峰培训班讲师和老师的细心解惑。感谢他们。
package com.lz.day12.bank;
//测试类
public class TestBank {
public static void main(String[] args) {
// TODO Auto-generated method stub
//插入银行卡,输入密码
//卡密校验成功展示菜单,失败重新输入
//显示showmenue菜单
//程序的起始
bank bank1 = new bank();//创建一个新银行
bank1.initial();//初始化信息
bank1.welcomeMenu();
bank1.login();
}
}
package com.lz.day12.bank;
//存储相关信息,用户类
public class user {
//卡号,密码,姓名,身份证号,电话号,存款
private String cardno;//卡号
private String password;//密码
private String username;//姓名
private String identitycard;//身份证号码
private String phone;//手机号
private double balance;//存款
//构造方法,方便调用以及创建用户信息
public user() {}
public user(String cardno,String password,String username,String identitycard,String phone,double balance) {
this.cardno = cardno;
this.password = password;
this.username = username;
this.identitycard = identitycard;
this.phone = phone;
this.balance = balance;
}
//由于private私有化属性,所以其他类不好调用该类的属性,需要建立相应的方法(get、set)去调用本类属性
public String getCardno() {
return cardno;
}
public void setCardno(String cardno) {
this.cardno = cardno;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getIdentitycard() {
return identitycard;
}
public void setIdentitycard(String identitycard) {
this.identitycard = identitycard;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
package com.lz.day12.bank;
import java.util.Scanner;
//银行类
public class bank {
Scanner input = new Scanner(System.in);
//初始化信息,用户信息的初始化
//创建一个数组
user[] user1 =new user[100];
int size=100;
public void initial() {
user users=new user();
users.setCardno("123456788");
users.setPassword("123456");
users.setUsername("tom");
users.setIdentitycard("123456789");
users.setPhone("123456789");
users.setBalance(20000.0);
user1[0]=users;
user user2=new user("123456789","123456","annie","123456789","123456987",4000.0);
user1[1]=user2;
user user3=new user("123456787","123456","sofeiya","123456789","123456987",9000.0);
user1[2]=user3;
}
public void welcomeMenu() {
System.out.println("-------------欢迎使用ATM自助银行系统----------");
System.out.println("1.开户2.登录");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("执行开户");
this.openAccount();
break;
case 2:
this.login();
break;
}
}
//开户功能
public void openAccount() {
user[] newUsers = new user[user1.length + 1];
int size = user1.length+1;
System.out.println(size);
System.arraycopy(user1, 0, newUsers, 0, user1.length);
newUsers[user1.length] = new user();
System.out.println("请输入密码:");
newUsers[user1.length].setPassword(input.next());
System.out.println("请输入姓名:");
newUsers[user1.length].setUsername(input.next());
System.out.println("请输入身份证号:");
newUsers[user1.length].setIdentitycard(input.next());
System.out.println("请输入电话:");
newUsers[user1.length].setPhone(input.next());
java.util.Random random = new java.util.Random();
int a = random.nextInt(1000);
if(a < 100) {
a = a + 100;
}
System.out.println(a);
String b = "123456";
newUsers[user1.length].setCardno(b + a);
System.out.println("您的卡号为:" + newUsers[user1.length].getCardno());
user1 = newUsers;
this.login();
}
//用户登录页面
public void login() {
//用户输入卡号,密码
System.out.println("请输入卡号");
String no=input.next();
System.out.println("请输入密码");
String pwd = input.next();
user myAccount = this.check(no, pwd);//验证成功
if(myAccount!=null){
this.showMenu(myAccount);
}else {
System.out.println("登录失败");
}
}
//验证用户名和密码是否正确
public user check(String no,String pwd) {
for(int i=0;i<user1.length;i++) {
if(user1[i]!=null) {
if(no.equals(user1[i].getCardno()) && pwd.equals(user1[i].getPassword())) {
//记录登录成功的用户
System.out.println("登录成功,欢迎你"+user1[i].getUsername());
return user1[i];
}
}
}
return null;
}
//取款业务
public void withdrawal(user myAccount) {
System.out.println("取款功能操作中");
System.out.println("请输入取款金额");
double money =input.nextDouble();
if(money>0&&money<myAccount.getBalance()) {
//正常取款
double currentBalance=myAccount.getBalance()-money;
myAccount.setBalance(currentBalance);
System.out.println("取款成功"+myAccount.getBalance());
}else {
System.out.println("余额不足");
}
}
//存款功能.
public void deposit(user myAccount) {
System.out.println("存款功能操作中");
System.out.println("请输入存款金额");
double money =input.nextDouble();
if(money>0) {
//正常存款
double currentBalance=myAccount.getBalance()+money;
myAccount.setBalance(currentBalance);
System.out.println("存款成功"+myAccount.getBalance());
}
}
//转账功能
public void transfer(user myAccount) {
}
//显示存款功能
public void showAll(user myAccount) {
System.out.println("你的账户余额为:"+ myAccount.getBalance());
}
//显示账户信息
public void show1(user myAccount) {
System.out.println(myAccount.getCardno()+"\n"+myAccount.getBalance()+"\n"+myAccount.getUsername());
}
//修改手机号码
public void phone(user myAccount) {
System.out.println("请输入原手机号");
String oldphone=input.next();
//利用equals来比较
if(oldphone.equals(myAccount.getPhone())) {
System.out.println("请输入行密码");
String newphone =input.next();
myAccount.setPhone(newphone);
}
}
//展示银行业务的菜单
public void showMenu(user myAccount) {
int choice;
while(true) {
System.out.println("-------------欢迎使用ATM自助银行系统----------");
System.out.println("1.卡户2.存款 3.取款 4. 转账 5.查询余额6修改密码7修改预留手机号码8注销账号0退出");
System.out.println("---------------------------------------");
System.out.println("请输入菜单编号");
choice = input.nextInt();
switch(choice) {
case 1:
System.out.println("执行查看账户");
this.show1(myAccount);
break;
case 2:
System.out.println("执行存款");
this.deposit(myAccount);
break;
case 3:
System.out.println("执行取款");
this.withdrawal(myAccount);
break;
case 4:
System.out.println("执行转账");
this.transfer(myAccount);
break;
case 5:
System.out.println("执行查询余额");
this.showAll(myAccount);
break;
case 6:
System.out.println("修改密码");
break;
case 7:
System.out.println("修改预留手机号码");
this.phone(myAccount);
break;
case 8:
System.out.println("注销账号");
break;
case 0:
System.out.println("执行退出");
return;//退出整个方法
default:
System.out.println("输入有误,请重新输入");
}
}
}
}
总的来说这一周比之前的两周更具有挑战性,出现的问题也多于前两周,不过所幸有同班同学一起交流,才少了很多弯路。