學校講的太快了,沒有跟上....只會寫前面一丟丟



uj5u.com熱心網友回復:
求助

uj5u.com熱心網友回復:
其實不難的,基本的類及其方法會定義吧?列印選單就不用說了吧?
另外主要就是Scanner類的使用了!
樓主加油,相信你行的!
uj5u.com熱心網友回復:
給你寫個簡單例子吧,也就一會兒功夫的事情import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
class BankCard {
private long cardNum;
private String customerName;
private String password;
private double balance;
private String idCardNum;
public BankCard(String idCardNum, String customerName) {
this.idCardNum = idCardNum;
this.customerName = customerName;
cardNum = 62208888;
password = "666666";
balance = 0.0;
}
public long getCardNum() {
return cardNum;
}
public String getCustomerName() {
return customerName;
}
public String getIdCardNum() {
return idCardNum;
}
public double getBalance() {
return balance;
}
public String getCode() {
return password;
}
public void changePwd(String pwd) {
this.password = pwd;
}
public void dePosit(double money) {
balance += money;
}
public String drawMoney(double money) {
if (money > balance) {
return String.format("您當前的余額不足,當前余額為%.2f", balance);
}
balance -= money;
return String.format("取款成功,當前余額為%.2f", balance);
}
}
public class TestBankCard {
String[] menu = {
"開戶",
"窗詢用戶資訊",
"窗詢余額",
"修改密碼",
"存款",
"取款",
"退出"
};
private Map<Long, BankCard> cards = new HashMap<>();
public static void main(String[] args) {
TestBankCard tbc = new TestBankCard();
int choice = 0;
while (true) {
choice = tbc.choiceMenu();
if (choice == 7) {
System.out.println("感謝您的使用,再見!");
break;
}
tbc.performtMenu(choice);
}
}
public int choiceMenu() {
System.out.println("**歡迎光臨銀行管理系統**");
for (int i = 0; i < menu.length; i++) {
System.out.printf("%d.%s\n", i + 1, menu[i]);
}
System.out.println("*****************");
Scanner sc = new Scanner(System.in);
int choice = 0;
while (true) {
System.out.printf("請選擇:");
try {
choice = Integer.valueOf(sc.nextLine());
if (choice >= 1 && choice <= 7) {
break;
}
throw new Exception("input error!");
} catch (Exception e) {
System.out.println("選擇無效,請重選!");
}
}
return choice;
}
public void performtMenu(int menuId) {
Scanner sc = new Scanner(System.in);
BankCard bc = null;
if (menuId == 1) {
System.out.println("輸入身份證和姓名");
System.out.printf("請輸入身份證:");
String idNum = sc.nextLine();
System.out.printf("請輸入姓名:");
String name = sc.nextLine();
bc = new BankCard(idNum, name);
cards.put(bc.getCardNum(), bc);
} else {
bc = searchCard();
if (bc != null) {
switch (menuId) {
case 2:
System.out.printf("卡號:%d\t姓名:%s\n密碼:%s\t身份證號:%s\n",
bc.getCardNum(), bc.getCustomerName(), bc.getCode(), bc.getIdCardNum());
break;
case 3:
System.out.printf("余額:%.2f\n", bc.getBalance());
break;
case 4:
String pwd;
while (true) {
System.out.printf("請輸入原始密碼:");
pwd = sc.nextLine();
if (pwd.equals(bc.getCode())) {
break;
}
System.out.println("密碼不正確,請重輸"); //可以輸出三次就鎖卡
}
System.out.printf("請輸入新密碼:");
pwd = sc.nextLine();
bc.changePwd(pwd);
break;
case 5:
case 6:
double money = 0.0;
String buf = "存款";
if (menuId == 6)
buf = "取款";
while (true) {
System.out.printf("請輸入%s金額:", buf);
try {
money = Double.valueOf(sc.nextLine());
break;
} catch (Exception e) {
System.out.println("輸入金額有誤,請重輸");
}
}
if (menuId == 5) {
bc.dePosit(money);
System.out.printf("存款余額:%.2f\n", bc.getBalance());
} else {
System.out.println(bc.drawMoney(money));
}
break;
}
} else {
System.out.println("沒有開戶的用戶,請先開戶!");
}
}
}
public BankCard searchCard() {
BankCard bc = null;
for (Map.Entry<Long, BankCard> en : cards.entrySet()) {
bc = en.getValue();
break;
}
return bc;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98990.html
標籤:Java相關
