Posted on 2006-10-21 09:24
久城 閱讀(427)
評論(2) 編輯 收藏
對前天寫的程序進行了修改,主要在于填加一個管理員。能夠實現帳戶的填加,刪除和凍結。
迷糊啊,快吐血了...
/*
*Title 模擬實現銀行存儲系統
*用戶實現存錢,取錢,轉帳..
*填加了一個管理員,實現簡單的帳戶填加,刪除,凍結...
*@author realsmy
*2006-10-21 9:16
*/
import java.io.*;
import java.util.*;
//定義帳戶類
class ZhangHu {
?private String name;
?private String password;
?private int money;
?ZhangHu(){
??
?}
?ZhangHu(String name,String password, int money){
??this.name = name;
??this.password = password;
??this.money = money;
?}
?public void setM(int a){
??money = money + a;
??System.out.println("存儲了"+a+"元,帳戶"+name+"尚有余額"+money+"元");
?}
?public void getM(int a){
??if(a > money){
???System.out.println("對不起,您的金額不足"+a+"元");
??}
??else{
???money = money - a;
???System.out.println("取得了"+a+"元,帳戶"+name+"尚有余額"+money+"元");
??}
?}
?public String getName(){
??return name;
?}
?public String getPassword(){
??return password;
?}
?public int getMoney(){
??return money;
?}
?public void setName(String name){
??this.name = name;
?}
?public void setPassword(String password){
??this.password = password;
?}
?public void setMoney(int money){
??this.money = money;
?}
}
//定義管理員類
class Manager
{
?//private static Vector vec = new Vector();
?//Enumeration vc = vec.elements();
?public void add(){
??ZhangHu zh = new ZhangHu();
??try{
????System.out.println("請輸入帳戶名:");
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
????zh.setName(in.readLine());
????System.out.println("請輸入密碼:");
????while(true){
?????zh.setPassword(in.readLine());
?????System.out.println("請再次輸入密碼:");
?????if(zh.getPassword().equals(in.readLine())){
??????break;
?????}
?????else{
??????System.out.println("兩次輸入的密碼不一致,請重新輸入密碼:");
??????continue;
?????}
????}
????System.out.println("請輸入該帳戶的金額:");
????zh.setMoney(Integer.parseInt(in.readLine()));
????PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(zh.getName()+".txt")));//創建文件
????writer.println(zh.getPassword());
????writer.println(zh.getMoney());
????writer.flush() ;
????System.out.println("帳戶"+zh.getName()+"已經創建成功");
???}catch(IOException e){}?
?}
?public void del(){
??ZhangHu zh2;
??String name = null;
??//int p = 0;//判斷是否刪除成功
??System.out.println("請輸入您要刪除的帳戶:");
??while(true){
???try{
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
????name = in.readLine();
???}catch(IOException e){}
???//while(vc.hasMoreElements()){
???File fl = new File(name+".txt");
???if(fl.exists()){
????fl.delete();
????System.out.println("帳戶"+name+"刪除成功");
????break;
???}
???else{
????System.out.println("您所輸入的帳戶并不存在,請重新輸入:");
???}
??}??
?}
?public void froze(){
??ZhangHu zh3 = new ZhangHu();
??String name = null;
??System.out.println("請輸入您要凍結的帳戶:");
??while (true){??
???try{
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?
????name = in.readLine();
???}catch(IOException e){}
???File fl = new File(name+".txt");
???if (fl.exists()){//如果該帳戶存在,則讀取該帳戶的數據
????try{
?????BufferedReader reader = new BufferedReader(new FileReader( name + ".txt"));
?????zh3.setPassword(reader.readLine());
?????zh3.setMoney(Integer.parseInt(reader.readLine()));
????}catch(IOException e){}
????File fr = new File("frozen");
????if(!fr.exists()){
?????try{
??????fr.mkdir();//創建一個此目錄的文件夾
?????}catch(SecurityException e){}
????}
????File frfl = new File(fr,name+".txt");
????try{
?????PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(frfl)));
?????writer.println(zh3.getPassword());
?????writer.println(zh3.getMoney());
?????writer.flush() ;
????}catch(IOException e){}
????fl.delete();
????System.out.println("帳戶"+name+"凍結成功!");
????break;
???}
???else{
????System.out.println("您所輸入的帳戶并不存在,請重新輸入:");
???}
??}
?
?}
}
//銀行模擬系統
public class Bank_Test{
?String name;
?String password;
?String pw;
?int money;
?int choose;
?int a,b;//存取的金額,臨時變量
?int type;//登陸身份
?File fl;
?ZhangHu user,user2;//帳戶對象
?Manager manager;
?//Manager manager;//管理員對象
?String toname;//轉入帳戶名
?String c;//臨時存儲轉入帳戶密碼
?public Bank_Test(){
??if(login() == 1){
???manager_login();
???manage();
??}
??else{
???if(user_login()){
????user = new ZhangHu(name,password,money);
????cunqu();?
???}
??}???
?}
?//實現登陸方法login
?public int login(){
??System.out.println("您好,歡迎光臨趙家銀行!\n請選擇您的登陸身份:1. 管理員 2. 用戶");
??while(true){
???try{
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
????type = Integer.parseInt(in.readLine());
???}catch(IOException e){}
???if (type == 1){
????return 1;
???}
???else if (type == 2)
???{
????return 2;
???}
???else{
????System.out.println("輸入錯誤,請重新輸入:");
????continue;
???}
??}
?}
?//實現管理員登陸方法manager_login()
?public void manager_login(){
??System.out.println("請輸入管理員帳號:");
??while(true){
???try{
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
????name = in.readLine();
???}catch(IOException e){}
???if (name.equals("admin")){
????System.out.println("請輸入密碼:");
????while(true){
?????try{
??????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
??????password = in.readLine();
?????}catch(IOException e){}
?????if (password.equals("admin")){
??????System.out.println("登陸成功!歡迎您admin!");
??????break;
?????}
?????else{
??????System.out.println("密碼錯誤,請重新輸入:");
?????}
????}
????break;
???}
???else{
????System.out.println("對不起,您輸入的帳號并不存在,請重新輸入:");
????continue;
???}
??}
?}
?//實現管理員管理方法manage()
?public void manage(){
??manager = new Manager();
??while(true){
???System.out.println("請選擇您要進行的操作:\n1. 填加帳戶 2. 刪除帳戶 3. 凍結帳戶 4. 退出");?
???while(true){
????try{
?????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
?????choose = Integer.parseInt(in.readLine());
????}catch(IOException e){}
????if(choose == 1){
?????manager.add();
?????break;
????}
????else if(choose == 2){
?????manager.del();
?????break;
????}
????else if(choose == 3){
?????manager.froze();
?????break;
????}
????else if (choose ==4){
?????System.exit(0);
????}
????else{
?????System.out.println("輸入錯誤,請重新輸入:");
?????continue;
????}
???}
??}
?}
?//實現用戶登陸方法user_login()
?public boolean user_login(){
??System.out.println("尊敬的用戶您好,歡迎光臨趙家銀行!請輸入您的帳戶號碼:");
??while(true){
???try{
????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
????name = in.readLine();
???}catch(IOException e){}
???fl = new File("frozen",name+".txt");
???if(fl.exists()){
????System.out.println("對不起,您的帳戶已被凍結!");
????return false;
???}
???fl = new File(name+".txt");
???//判斷帳戶是否存在
???if(!fl.exists()){
????System.out.println("對不起,您輸入的帳戶并不存在,請重新輸入:");
????continue;
???}
???//帳戶存在,開始判斷密碼
???try{
????System.out.println("請輸入您的密碼:");
????BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));??
????password = in2.readLine();
???}catch(IOException e){}
???//取文件中的密碼
???try{
????BufferedReader reader = new BufferedReader(new FileReader( name + ".txt"));
????pw = reader.readLine();
????money = Integer.parseInt(reader.readLine());
???}catch(IOException e){}
???//判斷密碼
???if(password.equals(pw)){
????System.out.println("登陸成功");
????System.out.println("您的用戶尚有余額"+money+"元");
????return true;
???}
???else{
????System.out.println("對不起,您輸入的密碼不正確,請重新輸入帳戶:");
????continue;
???}???
??}
?}
??//實現user存取方法cunqu
??public void cunqu(){
???while(true){
???System.out.println("請選擇您要進行的操作:");
???System.out.println("1. 存錢 2. 取錢 3. 轉帳 4. 退出 ");
???try{
?????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
?????choose = Integer.parseInt(in.readLine());
????}catch(IOException e){}
???//存錢
???if(choose == 1){
????System.out.println("請輸入你要存儲的金額:");
????try{
?????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
?????a = Integer.parseInt(in.readLine());
????}catch(IOException e){}
????user.setM(a);
????//infile(user);
???}
???//取錢
???else if(choose == 2){
????System.out.println("請輸入你要取得的金額:");
????try{
?????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
?????a = Integer.parseInt(in.readLine());
????}catch(IOException e){}
????user.getM(a);
????infile(user);
???}
???else if(choose == 3){
????System.out.println("請輸入你要轉入的帳戶:");
????while(true){
?????try{
??????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
??????toname= in.readLine();
?????}catch(IOException e){}
?????fl = new File(toname+".txt");
?????//判斷帳戶是否存在
?????if(!fl.exists()){
??????System.out.println("對不起,您輸入的帳戶并不存在,請重新輸入:");
??????continue;
?????}
?????else{
??????break;
?????}
????}
????System.out.println("請輸入你要轉入的金額:");
????try{
?????BufferedReader in = new BufferedReader(new InputStreamReader(System.in));?????
?????a = Integer.parseInt(in.readLine());
????}catch(IOException e){}
????user.getM(a);
????infile(user);
????try{
?????BufferedReader reader = new BufferedReader(new FileReader( toname + ".txt"));
?????c = reader.readLine();
?????b = Integer.parseInt(reader.readLine());
????}catch(IOException e){}
????user2 = new ZhangHu(toname,c,b);
????user2.setM(a);
????infile(user2);
????
???}
???else if(choose == 4){
????System.exit(0);
???}
???else{
????System.out.println("輸入不正確。");
????continue;
???}
??}
?}
?//存入文件
?public void infile(ZhangHu p){
??try{
???PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(p.getName()+".txt")));
???writer.println(p.getPassword());
???writer.println(p.getMoney());
???writer.flush() ;
??}catch(IOException e){}
?}
?public static void main(String [] args){
??Bank_Test a = new Bank_Test();????
?}
}
歡迎來訪!^.^!
本BLOG僅用于個人學習交流!
目的在于記錄個人成長.
所有文字均屬于個人理解.
如有錯誤,望多多指教!不勝感激!