模拟实现银行存储实验

Posted on 2006-10-21 09:24 久城 阅读(426) 评论(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 © 久城