模擬實現銀行存儲實驗

          Posted on 2006-10-21 09:24 久城 閱讀(429) 評論(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僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: 模擬實現銀行存儲實驗  回復  更多評論   

          2006-10-21 14:13 by 馬嘉楠
          在管理員增加一個新賬戶的時候
          建議在輸入密碼之后,添加一個確認密碼的操作

          # re: 模擬實現銀行存儲實驗  回復  更多評論   

          2006-10-21 15:28 by 久城
          已經修改完畢,再次感謝!

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          Copyright © 久城

          主站蜘蛛池模板: 宁波市| 柳江县| 湛江市| 丹江口市| 磴口县| 绵阳市| 合水县| 祥云县| 石阡县| 东兴市| 都江堰市| 政和县| 侯马市| 黔西县| 上栗县| 肃北| 武城县| 新乐市| 阳泉市| 汝城县| 额济纳旗| 长白| 桐柏县| 岐山县| 阜阳市| 晴隆县| 万荣县| 江阴市| 确山县| 安康市| 满城县| 石楼县| 莒南县| 合山市| 开封县| 南安市| 土默特左旗| 新密市| 宁海县| 柞水县| 蓬溪县|