java银行管理系统简易版

java银行管理系统

					  实践报告要求

编写一个Java应用程序,模拟网上银行登录及存取款业务。登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1 取款:2 余额:3 退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字0时将退出整个系统。
主类


package dingqiwen029;

import java.io.IOException;
import java.util.HashMap;
import java.util.Scanner;
/*
 * 思路:主方法只管调用其他类的静态方法
 * 三个类,分别是主类,操作类,用户类
 * 操作类包括登录,存取款,查询余额
 */
public class Bank_main {//主方法
	public static void main(String[] args) throws IOException {
		int count=2;//用来记录输入错误的次数
		 int c=0;
		System.out.println("欢迎进入姗姗银行:请登录(选1)或注册(选2)");
		Scanner in1=new Scanner(System.in);
		int x=in1.nextInt();
		if(x==1) {
			c=DengLu.login();//调用操作类中的登录方法
			if(c==0){
				while(count>0) {
				System.out.println("账号或密码错误,请重新登录,还有"+count+"次机会");
				 c=DengLu.login();
				if(c==0) {
					count--;
					continue;
				}
				else 
					break;
			}
				if(count==0) {
					System.out.println("你的次数已用完,请到柜台办理业务");
					System.exit(0);//当多次输入错误时,会强制退出系统
				}
				}
		}
		else {
			if(x==2) {
				DengLu.zhuce();
				System.out.println("您已成功注册,请登录");
				DengLu.copy();
				DengLu.login();
//				System.exit(0);
			}
			else {
				System.out.println("您输入有误,请重新输入");
				System.exit(0);
			}
			}
		System.out.println("请选择操作:1:存款 2:取款  3:查询余额   0:安全退出");
		Scanner in=new Scanner(System.in);
		while(true) {
			int key=in.nextInt();
			switch (key) {
			case 1://存款业务
				System.out.println("请输入存款金额");
				int a = in.nextInt();
				DengLu.cunqian(a);
				System.out.println("请继续选择操作");
				break ;
			case 2://取款业务
				System.out.println("请输入取款金额");
				int b=in.nextInt();
				DengLu.quqian(b);
				System.out.println("请继续选择操作");
				break ;
			case 3://显示余额
				DengLu.showmoney();
				System.out.println("请继续选择操作");
				break ;
			case 0://安全退出
				System.out.println("已安全退出,欢迎下次再来");
				//这里想用IO操作存储到一个文件中
				DengLu.copy();
				System.exit(0);
				break ;
			}
		}
	}
}

						操作类
package dingqiwen029;

import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class DengLu {
	static String name;//改成静态的,可以全局调用
	static String pwd;
	public static int login() {//登录
		int flag=0;
		User.map();//调用方法,添加元素
//		System.out.println(User.hasmap);
		Scanner in=new Scanner(System.in);
		System.out.println("请输入姓名");
		 name=in.nextLine();
		System.out.println("请输入密码");
		 pwd=in.nextLine();
		Set set= User.hasmap.keySet();//调用用户类对象中的方法,返回一个Set类型的集合
		//System.out.println(User.hasmap);//测试
		Iterator it=set.iterator();//用Set集合中的迭代器去迭代集合中的元素
		
		
		while(it.hasNext()) {
			User key=(User) it.next();
			if(key.getName().equals(name)) {//得到这个集合后就得到里面的对象,调用get方法循环比对
				if(key.getPasswd().equals(pwd)) {
					System.out.println("登陆成功  "+key.getName().toString().charAt(0)+"先生");
					//用字符串中方法得到姓名中的第一个姓
					 flag=1;
				}
			}
		}//设置一个状态变量来判断账户是否存在
			return flag;
	}
	public static void cunqian(int a) {//存钱
		Set s=User.hasmap.keySet();
		Iterator it=s.iterator();//同样是用迭代器的方法得到集合中的对象,然后操作
		while (it.hasNext()) {
			User u =  (User) it.next();
			if(u.getName().equals(name)) {
				int mon =u.getMoney()+a;
				u.setMoney(mon);//这里直接赋值给getname不行,要给setname
				System.out.println("存入"+a+"元,"+"余额"+u.getMoney()+"元");
			}
		}
	}
	public static void quqian(int b) {//取钱
		Set s=User.hasmap.keySet();
		Iterator it=s.iterator();
		while (it.hasNext()) {
			User u =  (User) it.next();
			if(u.getName().equals(name)) {
				if(u.getMoney()>=b) {
					int x=u.getMoney()-b;
					u.setMoney(x);
					System.out.println("取出"+b+"元"+"余额"+u.getMoney()+"元");
				}
				else {
					System.out.println("余额不足,请重新选择取款金额");
				}
			}
		}
	}
	public static void showmoney() {//显示余额
		Set s=User.hasmap.keySet();
		Iterator it=s.iterator();
		while (it.hasNext()) {
			User u =  (User) it.next();
			if(u.getName().equals(name)) {
				System.out.println("余额:"+u.getMoney()+"元");
			}
		}
	}
	public static void copy() throws IOException {
//		FileOutputStream fos=new FileOutputStream("D:\\user.txt");
		BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt"));
		Set s=User.hasmap.keySet();
		Iterator it=s.iterator();
		while (it.hasNext()) {
				User u =  (User) it.next();
				String s1="姓名:"+u.getName()+"  卡号:"+u.getCarbord()+"  金额:"+u.getMoney()+"  密码"+u.getPasswd();
				bw.write(s1);
				bw.newLine();
				bw.flush();
			}
	}
	public static void zhuce() {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入姓名");
		 String name=sc.nextLine();
		System.out.println("请输入卡号");
		String car=sc.nextLine();
		System.out.println("请输入密码");
		String mima=sc.nextLine();
		System.out.println("请再次输入密码");
		String mima2=sc.nextLine();
		if(!mima.equals(mima2)) {
			System.out.println("两次密码不同,请重新输入密码");
			mima2=sc.nextLine();
		}
		Set set=User.map();//解决没有添加上这个集合的问题
		  User u5=new User(name,car,mima2,0);
		  User.hasmap.put(u5, mima);
//		System.out.println(User.hasmap);
	}
}

							用户类
package dingqiwen029;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class User {
	  static HashMap<User, String> hasmap=new HashMap<User, String>();//静态调用
	private String name;//姓名
	private String carbord;//卡号
	private String passwd;//密码
	private int money;//金额
	public User(String name, String carbord, String passwd, int money){//有参构造函数
		super();
		this.name = name;
		this.carbord = carbord;
		this.passwd = passwd;
		this.money = money;
	}
	public User() {//无参
		super();
		// TODO Auto-generated constructor stub
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCarbord() {
		return carbord;
	}
	public void setCarbord(String carbord) {
		this.carbord = carbord;
	}
	public String getPasswd() {
		return passwd;
	}
	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}
	public int getMoney() {
		return money;
	}
	public void setMoney(int money) {
		this.money = money;
	}
	static User u11=new User("丁**","10","3357",3000);//创建User类对象并赋值
	static User u21=new User("大熊","11","3356",300);
	static User u31=new User("皮卡丘","12","3355",2000);
	static User u41=new User("王二","13","3354",30000);
	public static Set map() {
		hasmap.put(u11, "3357");//存放到Map集合中
		hasmap.put(u21, "3356");
		hasmap.put(u31, "3355");
		hasmap.put(u41, "3354");
		return hasmap.keySet();//返回的是Set集合
	}
}

你可能感兴趣的:(编程,心得)