黑马程序员技术交流社区
标题:
课堂习题
[打印本页]
作者:
zhaozhiqiang
时间:
2018-6-16 14:04
标题:
课堂习题
package cn.cn.bank.demo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//创建一个银联接口;
//创建一个建行和一个农行卡;
//用键盘输入其卡名,判断是取钱还是查询余额或者充值要求输入6位1数字密码;
//创建一个类用来存放密码,金额;
//建行的独有功能可以贷款,并且要信誉值达到100才可贷款;但是不可以超刷;
//农行的独有功能可以超刷,充值一个11位号码的手机号码,
/*
* 总结:本次的分享主要是根据课程,学完面向对象的基础来写的;
* 主要是结合了抽象方法,继承,接口,和多态以及封装和类来写的,非常简单,可能写得重复得地方有点多,比如键盘输入
* 可以完全用传参得形式来写,因为可能不想花时间修改所以编写出来过后就没有改动了,代码显得非常的粗超,但是因为
* 简单应该都能看得懂。(这里面还可以拓展用户信息,修改密码功能等。。但是这里面我没有写因为实现起来不难就没有必要
* 因为想多花点时间学习下面的知识)
* *
* */
CCB ccb2 = new CCB(100,"21“",12);
ABC abc3 = new ABC(1000,"123456",100,"12345678901");
System.out.println(ccb2 instanceof Bank);
System.out.println( abc3 instanceof Object);
Scanner sc = new Scanner(System.in);
ccb2.v();
System.out.println("选择你要的卡,建行请按1,农行请按2");
int sun = sc.nextInt();
if(sun == 1){
Bank ccb = new CCB(1000,"123456",100);
CCB ccb1 = (CCB)ccb;
ccb1.upa(ccb);
}else if(sun == 2){
Bank abc = new ABC(1000,"123456",100,"12345678901");
ABC abc1 = (ABC)abc;
abc1.upa(abc);
}
}
}
package cn.cn.bank.demo;
public interface Bank {
void withdrawal(Bank bank);
public void deposit(Bank bank);
void card(Bank bank);
void fun(Bank bank);
void fun1(Bank bank);
}
package cn.cn.bank.demo;
public interface Video {
void v();
}
ckage cn.cn.bank.demo;
public class Method {
double money;
String psw;
int credit;
public Method(double money, String psw, int credit) {
this.money = money;
this.psw = psw;
this.credit = credit;
}
public void setMoney(double money) {
this.money = money;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
public double getMoney() {
return money;
}
}
package cn.cn.bank.demo;
import java.util.Scanner;
public class CCB extends Method implements Bank,Video{
int count = 3;
public CCB(double money,String psw ,int credit) {
super(money,psw,credit);
}
@Override
public void withdrawal(Bank bank) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入取款金额");
double money1 = sc.nextDouble();
if(bank instanceof ABC) { //这里有问题要解决;
if((money - money1) > -2000.0){
money -= money1;
System.out.println("取款成功你取了" + money1);
// 判断 那张银行卡
bank.fun(bank);
}else {
bank.fun1(bank);
}
}else if(bank instanceof Bank){
if(money >= money1){
money -= money1;
System.out.println("取款成功你取了" + money1);
// 判断 那张银行卡
bank.fun(bank);
} else {
bank.fun1(bank);
}
}
}
//贷款
public void loans(Bank bank) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入贷款金额");
double sum2 = sc.nextDouble();
money += sum2;
System.out.println("恭喜你贷款成功,你带了" + sum2);
System.out.println("继续取钱请按1退出请按任意键");
int sum3 = sc.nextInt();
if(sum3 == 1){
withdrawal(bank);
}else {
System.out.println("退出成功");
}
}
@Override
public void card(Bank bank) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入密码");
String pasw1 = sc.next();
if(psw.equals(pasw1)){
home(bank);
}else {
String str = fo(bank);
System.out.println(str);
}
}
public String fo(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("密码输入错误你还有" + --count + "次机会" + ",继续请按1" + ",退出请按其他数字");
if(count == 0){
return "你已经没有机会了";
}
int sum = sc.nextInt();
if(sum == 1){
card(bank);
}
return "退出成功";
}
public void home(Bank bank) {
//首页
//首页里面有贷款,
Scanner sc = new Scanner(System.in);
System.out.println("取款请按1,查询余额请按2,贷款请按3,存款请按4 ,按5退出");
int sun = sc.nextInt();
if(sun == 1){
withdrawal(bank);
}else if(sun == 2){
System.out.println("你目前的余额是" + money);
}else if(sun == 3){
loans(bank);
}else if(sun == 4){
deposit(bank);
}else if(sun == 5){
System.out.println("退出成功");
}
}
@Override
public void deposit(Bank bank){//存款
Scanner sc = new Scanner(System.in);
System.out.println("请你输入存款金额");
double sc1 = sc.nextDouble();
money += sc1;
System.out.println("你充值了" + sc1 + "按1返回首页,任意键退出");
int sum1 = sc.nextInt();
if(sum1 == 1){
home(bank);
}else {
System.out.println("退出成功");
}
}
@Override
public void fun(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("你需要查询余额吗需要请按1号键" +
",退出请按2号键,继续取款请按3号键,存钱请按4号键,贷款请按5");
// }
int sum = sc.nextInt(); //查询余额 ,存钱,取款 贷款
if(sum == 1){
System.out.println("你目前的余额是" + money);
}else if(sum == 2){
home(bank);//退到首页;
}else if(sum == 3){
withdrawal(bank);
}else if(sum == 4){
deposit(bank);
}else if(sum == 5){
loans(bank);
}
}
@Override
public void fun1(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("你的余额不足可以尝试贷款(贷款请按1),查询余额请按2,继续取款请按3,返回首页请按任意键");
int sum1 = sc.nextInt();//建行贷款 ,查询余额,取款;
if (sum1 == 1) {
if (credit >= 90) {
loans(bank);
} else {
System.out.println("你的信誉极其的差不能贷款退出");//退出;
}
} else if (sum1 == 2) {
System.out.println("你目前的余额是" + money);
} else if (sum1 == 3) {
withdrawal(bank);
} else {
System.out.println("退出成功");
}
}
public void upa(Bank bank) {
if(bank instanceof ABC){
ABC bank1 = (ABC) bank;
bank1.card(bank1);
}else if(bank instanceof CCB){
CCB bank1 = (CCB) bank;
bank1.card(bank1);
}
}
@Override
public void v() {
System.out.println("你进入了银行的监控系统");
}
}
package cn.cn.bank.demo;
import java.util.Scanner;
public class ABC extends CCB{
String tbl;
public ABC(double money, String psw, int credit,String tbl) {
super(money, psw, credit);
this.tbl = tbl;
}
public void home(Bank bank) {
//首页
//首页里面有贷款,
Scanner sc = new Scanner(System.in);
System.out.println("取款请按1,查询余额请按2,充话费请按3,存款请按4 ,按5退出");
int sun = sc.nextInt();
if(sun == 1){
withdrawal(bank);
}else if(sun == 2){
System.out.println("你目前的余额是" + money);
}else if(sun == 3){
tbl1(bank);
}else if(sun == 4){
deposit(bank);
}else if(sun == 5){
System.out.println("退出成功");
}
}
public void fun(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("你需要查询余额吗需要请按1号键" +
",退出请按2号键,继续取款请按3号键,存钱请按4号键,充花费请按5");
// }
int sum = sc.nextInt(); //查询余额 ,存钱,取款 贷款
if(sum == 1){
System.out.println("你目前的余额是" + money);
}else if(sum == 2){
home(bank);//退到首页;
}else if(sum == 3){
withdrawal(bank);
}else if(sum == 4){
deposit(bank);
}else if(sum == 5){
}
}
public void fun1(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("你的余额已经超出上限,查询余额请按2,继续取款请按3,返回首页请按4");
int sum1 = sc.nextInt();//建行贷款 ,查询余额,取款;
if (sum1 == 2) {
System.out.println("你目前的余额是" + money);
} else if (sum1 == 3) {
withdrawal(bank);
} else {
home(bank);
}
}
public void tbl1(Bank bank){
Scanner sc = new Scanner(System.in);
System.out.println("请输入电话号码");
String sc1 = sc.next();
if(sc1.length() >= 11 && sc1.length() <= 12) {
System.out.println("请输入充值金额");
double num = sc.nextDouble();
System.out.println("恭喜你充值成功" + num + "元");
home(bank);
}else{
System.out.println("手机号码错误,继续充值请按1,返回首页请按2");
int sun = sc.nextInt();
if(sun == 1){
tbl1(bank);
}else if(sun == 2){
home(bank);
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2