package java第一周学习2;
达达20173435 信1705-2
import java.text.SimpleDateFormat;
import java.util.Date;

public class Account {

	private String accountID;//账号
	private String accountname;//账号名字
	private String operatedate;//存贮操作时间
	private String accontpassword;//密码
	int operatetype;//操作“1”表示存款,“2”表示取款,“3”表示转账汇款,“4”表示修改账户密码,“5”表示查询余额。
	int accountbalance;//账号余额
	int amount;//操作流水金额。
	public Account(String accountID,String accountname,String accontpassword,int accountbalance)
	{
		this.accountID = accountID;
		this.accountname = accountname;
		this.accontpassword = accontpassword;
		this.accountbalance = accountbalance;
	}
	public Account() {
	
	}
	public String getOperatetype()
	{
		String a="";
		if(operatetype==1)
		{
			a="存款";
		}
		else if(operatetype==2)
		{
			a="取款";
		}
		else if(operatetype==3)
		{
			a="转账汇款";
		}
		else if(operatetype==4)
		{
			a="修改账户密码";
		}
		else if(operatetype==5)
		{
			a="查询余额";
		}
		return a;
		
	}
	public String getAccountID() {
		return accountID;
	}
	public void setAccountID(String accountID) {
		this.accountID = accountID;
	}
	public String getAccountname() {
		return accountname;
	}
	public void setAccountname(String accountname) {
		this.accountname = accountname;
	}
	public String getOperatedate() {
		return operatedate;
	}
	//固定操作时候的时间
	public void setOperatedate(String operatedate) {
		Date now = new Date( );
	    SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd");
		this.operatedate =  ft.format(now);;
	}
	public String getAccontpassword() {
		return accontpassword;
	}
	public void setAccontpassword(String accontpassword) {
		this.accontpassword = accontpassword;
	}
	public void setOperatetype(int operatetype) {
		this.operatetype = operatetype;
	}
	public int getAccountbalance() {
		return accountbalance;
	}
	public void setAccountbalance(int accountbalance) {
		this.accountbalance = accountbalance;
	}
	public int getAmount() {
		return amount;
	}
	public void setAmount(int amount) {
		this.amount = amount;
	}
	
}

  

package java第一周学习2;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class AccountManager {

	public static void main(String[] args) {
		LinkedList<Account> acc=new LinkedList<Account>();
		Scanner shuru=new Scanner(System.in);
          getInformation(acc);
          int flag;
     // System.out.println(acc.get(0).getAccountID());
     // System.out.println(acc.size());
	    panding(acc);

	}
	
	
	// 判定账号
	public static void panding(LinkedList<Account> acc) {
		Scanner shuru = new Scanner(System.in);
		int flag = 0;
		int j=0;
		String zhanghao;
		while (flag == 0) {
			System.out.println("***************************************************************");
			System.out.println("	                   欢迎使用中国工商银行自动柜员系统");
			System.out.println("****************************************************************");
			System.out.println("              请输入您的账号:");
			System.out.println();
			System.out.println("****************************************************************");
			zhanghao = shuru.next();
			//System.out.println(zhanghao);
			if (zhanghao.length() != 8) {
				System.out.println("该卡不是工行卡");
			} else {
				//System.out.println(zhanghao);
				for (int i = 0; i < acc.size(); i++) {
					if (zhanghao.equals(acc.get(i).getAccountID())) {
						flag = 1;
						j=i;
					}
					//System.out.println(j);
					
				}
				{
				if (flag == 0) {
					System.out.println("该账号不存在");
				} else {
					shurumima(acc,j);
				}
				}
			}
			
		}
	}
	//判定密码  a为固定的账户
	public static void shurumima(LinkedList<Account> acc,int a)
	{
		
		int i=0;
		while(i<3)
		{	
			System.out.println("***************************************************************");
			System.out.printf("	                   欢迎        ");
			System.out.print(acc.get(a).getAccountname());
			System.out.printf("	使用中国工商银行自助柜员系统");
			System.out.println("****************************************************************");
			System.out.println("              请输入您的密码:");
			System.out.println();
			System.out.println("****************************************************************");
			String  mima ;
			Scanner shuru = new Scanner(System.in);
			mima=shuru.next();
		if(mima.equals(acc.get(a).getAccontpassword()))
		{
			i=5;
			}
		else {
			System.out.println("密码录入错误");
			i=i+1;
		}
		}
		if(i==5)
		{
			gongneng(acc,a);
		}
		else 
		{
			System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
		}
	}
//主界面
	public static void gongneng(LinkedList<Account> acc, int a) {
		String q="q";
		while (q.equals("q")) {
			
		System.out.println("***************************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.println("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.println("              1.存款");
		System.out.println("              2.取款");
		System.out.println("              3.转账汇款");
		System.out.println("              4.修改密码");
		System.out.println("              5.查询余额");
		System.out.println();
		System.out.println("****************************************************************");
		int key = 0;
		Scanner shuru = new Scanner(System.in);
		key = shuru.nextInt();
	 acc.get(a).setOperatetype(key);
		switch (key) {
		case 1:
			cunkuan(acc,a);
			q=shuru.next();
			break;
		case 2:
			qukuan(acc,a);
			q=shuru.next();
			break;
		case 3:
			zhuanzhang(acc,a);
			q=shuru.next();
			break;
		case 4:
			xiugai(acc,a);
			q=shuru.next();
			break;
		case 5:
			chaxun(acc,a);
			q=shuru.next();
			break;

		}
		}
	}
	public static void chaxun(LinkedList<Account> acc, int a)
	{
	
		System.out.println("*************;**************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.printf("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.printf("             当前账户余额为:");
		System.out.println(acc.get(a).getAccountbalance());
		System.out.println("账户清单信息为:");
		Account q1=acc.get(a);
		q1.setAmount(0);
		q1.setOperatetype(5);
		q1.setOperatedate("");
		setList(a, acc);
		System.out.println("****************************************************************");
	}
	public static void cunkuan(LinkedList<Account> acc, int a)
	{
		int qian;
		int i=0;
		while(i==0)
		{
		System.out.println("***************************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.printf("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.println("              请输入存款金额:");
		System.out.println();
		System.out.println("****************************************************************");
		Scanner shuru = new Scanner(System.in);
		    qian=shuru.nextInt();	
		    if(qian>0)
		    {
		    int yue=0;
		    yue=acc.get(a).getAccountbalance()+qian;
		    acc.get(a).setAccountbalance(yue);
		    i=1;
		    acc.get(a).setAmount(qian);
		    acc.get(a).setOperatedate("");
		    setInformation(acc);
		    setList(a, acc);
			System.out.println("***************************************************************");
			System.out.printf("	                   欢迎");
			System.out.printf(acc.get(a).getAccountname());
			System.out.printf("	使用中国工商银行自助柜员系统");
			System.out.println("****************************************************************");
			System.out.println("              当前账户存款操作成功。");
			System.out.printf("              当前账户余额为:");
			System.out.println(yue);
			System.out.println();
			System.out.println("****************************************************************");
		    }
		    else 
		    {
		    	System.out.println("输入金额有误");
		    }
		}
	}

	public static void xiugai (LinkedList<Account> acc, int a)
	{
		String mima="";
		String mima1="";
		String mima2="";
		System.out.println("***************************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.printf("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.println("请输入当前密码::");
		System.out.println("****************************************************************");
		Scanner shuru = new Scanner(System.in);
		mima=shuru.next();
		if(mima.equals(acc.get(a).getAccontpassword()))
		{
			System.out.println("请输入修改密码:");
			mima1=shuru.next();
			System.out.println("请再输入修改密码:");
			mima2=shuru.next();
			if(mima1.equals(mima2))
			{
				acc.get(a).setAccontpassword(mima1);
	           acc.get(a).setOperatedate("");
	           setInformation(acc);
	           setList(a, acc);
	       	System.out.println("***************************************************************");
			System.out.printf("	                   欢迎");
			System.out.printf(acc.get(a).getAccountname());
			System.out.printf("	使用中国工商银行自助柜员系统");
			System.out.println("****************************************************************");
			System.out.println("当前账户密码修改成功");
			System.out.println("****************************************************************");
			}
			else
			{
				System.out.println("修改密码与确认密码不一致");
			}
		}
		else
		{
			System.out.println("当前密码录入错误");
		}
	}
	//转账操作
	public static void zhuanzhang(LinkedList<Account> acc, int a) {
		int qian = 0;
		String zhanghao = "";
		int j = 0;
		int flag = 0;
		System.out.println("***************************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.printf("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.println("请输入转账账户:");
		System.out.println("****************************************************************");
		Scanner shuru = new Scanner(System.in);
		zhanghao = shuru.next();
		for (int i = 0; i < acc.size(); i++) {
			if (zhanghao.equals(acc.get(i).getAccountID())) {
				j = i;
				flag = 1;
			}
		}
		if (flag == 1) {
			System.out.println("***************************************************************");
			System.out.printf("	                   欢迎");
			System.out.printf(acc.get(a).getAccountname());
			System.out.printf("	使用中国工商银行自助柜员系统");
			System.out.println("****************************************************************");
			System.out.println("请输入转账金额:");
			System.out.println("****************************************************************");
			qian = shuru.nextInt();
			if (qian < acc.get(a).getAccountbalance()) {

				System.out.println("***************************************************************");
				System.out.printf("	                   欢迎");
				System.out.printf(acc.get(a).getAccountname());
				System.out.println("	使用中国工商银行自助柜员系统");
				System.out.println("****************************************************************");
				System.out.printf("请确认是否向");
				System.out.print(acc.get(j).getAccountname());
				System.out.print(qian);
				System.out.println("元。");
				System.out.println("****************************************************************");
				String f;
				f=shuru.next();
				if(f.equals("N"))
				{
					acc.get(j).setAmount(qian);
					acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
					acc.get(j).setOperatedate("");
					setInformation(acc);
					setList(a, acc);
					System.out.println("***************************************************************");
					System.out.printf("	                   欢迎");
					System.out.printf(acc.get(a).getAccountname());
					System.out.println("	使用中国工商银行自助柜员系统");
					System.out.println("****************************************************************");
					System.out.printf("当前账户成功向");
					System.out.print(acc.get(j).getAccountname());
					System.out.print(qian);
					System.out.println("元。");
					System.out.println("****************************************************************");
				}
				
			} else {
				System.out.println("账户余额不足");
			}
		} else {
			System.out.println("该账户不存在");
		}
	}
	public static void qukuan(LinkedList<Account> acc, int a)
	{
		int key=0;
		int qian=0;
		int i=0;
		System.out.println("***************************************************************");
		System.out.printf("	                   欢迎");
		System.out.printf(acc.get(a).getAccountname());
		System.out.printf("	使用中国工商银行自助柜员系统");
		System.out.println("****************************************************************");
		System.out.println("1、100元");
		System.out.println("2、500元");
		System.out.println("3、1000元");
		System.out.println("4、1500元");
		System.out.println("5、2000元");
		System.out.println("6、5000元;");
		System.out.println("7、其他金额");
		System.out.println("8、退卡");
		System.out.println("9、返回");
		Scanner shuru = new Scanner(System.in);
	    key=shuru.nextInt();
		switch(key)
		{
		case 1:
			if(acc.get(a).getAccountbalance()>100) 
			{
				qian =100;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 2:
			if(acc.get(a).getAccountbalance()>500) 
			{
				qian =500;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 3:
			if(acc.get(a).getAccountbalance()>1000) 
			{
				qian =1000;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 4:
			if(acc.get(a).getAccountbalance()>1500) 
			{
				qian =1500;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 5:
			if(acc.get(a).getAccountbalance()>2000) 
			{
				qian =2000;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 6:
			if(acc.get(a).getAccountbalance()>5000) 
			{
				qian =5000;
				acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
				 acc.get(a).setAmount(qian);
				 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
			break;
		case 7:
			System.out.println("***************************************************************");
			System.out.printf("	                   欢迎");
			System.out.printf(acc.get(a).getAccountname());
			System.out.printf("	使用中国工商银行自助柜员系统");
			System.out.println("****************************************************************");
			System.out.println("请输入取款金额:");
			System.out.println("****************************************************************");
		    qian=shuru.nextInt();
		    if(acc.get(a).getAccountbalance()>qian) 
			{
		    	 acc.get(a).setAmount(qian);
		    	 acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
		    	 i=1;
			}
			else 
			{
				System.out.println("账户余额不足");
			}
      		break;
		case 8:
			gongneng(acc,a);
			break;
		case 9:
			panding(acc);
			break;
		}
		  acc.get(a).setOperatedate("");
		  setInformation(acc);
		  setList(a, acc);
		  getInformation(acc);
		  if(i==1)
		  {
			  System.out.println("***************************************************************");
				System.out.printf("	                   欢迎");
				System.out.printf(acc.get(a).getAccountname());
				System.out.printf("	使用中国工商银行自助柜员系统");
				System.out.println("****************************************************************");
				System.out.printf("当前账户取款操作");
				System.out.print(qian);
				System.out.println("元成功。");
				System.out.printf("当前账户余额为:");
				System.out.print(acc.get(a).getAccountbalance());
				System.out.println("元");
				System.out.println("****************************************************************");
		  }
	}
	public static String getList(int i,LinkedList<Account> acc)//读取流水
	{
		try
		{
			FileReader fr=new FileReader("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountList");
			Scanner in=new Scanner(fr);
			String iid=acc.get(i).getAccountID();
			String id=new String();
			String s=new String();
			String sum="";
			int z=1;
			while(in.hasNextLine())
			{
				id=in.next();
				if(iid.equals(id))
				{
					s=id+" "+in.nextLine()+"\n";
					sum=sum+"( "+z+" )\t"+s;
					z++;
				}
			}
			fr.close();
			in.close();
			return sum;
		}
		catch(Exception e)
		{
			System.out.println("文件读取失败");
			return "";
		}
	}
	public static void setList(int i,LinkedList<Account> acc)//写入流水
	{
		try
		{
			Account a=acc.get(i);
			FileWriter fw=new FileWriter("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountList",true);
			PrintWriter pw=new PrintWriter(fw);
			pw.println(a.getAccountID()+" "+a.getAccountname()+" "+ a.getOperatedate()+" "+a.getOperatetype()+" "+a.getAmount());
			pw.flush();
			pw.close();
			fw.close();
		}
		catch(Exception e)
		{
			System.out.println("文件写入失败");
		}
	}
	
	
	
	
	
	
	
	
	public static void getInformation(LinkedList<Account> acc)//获得信息
	{
		
		try
		{
		FileReader fr=new FileReader("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountInformation");
		Scanner r=new Scanner(fr);
		while(r.hasNext())
		{
			Account a=new Account();
			a.setAccountID(r.next());
			a.setAccontpassword(r.next());
			a.setAccountname(r.next());
			a.setAccountbalance(r.nextInt());
			acc.add(a);
		}
		fr.close();
		r.close();
		}
		catch(Exception e)
		{
			System.out.println("文件写入失败");
		}
	}
	public static void setInformation(LinkedList<Account> acc)//写入信息
	{
		try
		{
			int i=0;
			FileWriter fw=new FileWriter("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountInformation");
			PrintWriter pw=new PrintWriter(fw);
			for(i=0;i<acc.size();i++)
			{
			
				pw.println(acc.get(i).getAccountID()+" "+acc.get(i).getAccontpassword()+" "+ acc.get(i).getAccountname()+" "+acc.get(i).getAccountbalance());
			}
			pw.flush();
			pw.close();
			fw.close();
		}
		catch(Exception e)
		{
			System.out.println("文件写入失败");
		}
	}

}

  我十分感谢老师的第一次测验,虽然我的得分不高,但是中秋可算在我认识的一个大佬(程超然)的帮助下完成了这个代码。

我第一个感谢的是我的老师,老师对我们说这个就是个下马威,果然,真的挺蒙的,因为我文件操作死活看不懂,我准备不足吧,所以才没做好。这也让我看到了我自己的不足。今后我应该倍加努力,努力克服自己看不懂别人代码的问题。

我第二个感谢的是我的同学——程超然,程超然同学教会了我文件的操作,而且是一步步交的,谁叫我笨呢,但是她很有耐心,并没有嫌弃我的愚蠢,在她的教导帮助下完成了这个操作。写完以后超有成就感的说。

其实我对第一次考式还是有一定准备的,最开始的我写的是静态对象加初始化,但是觉得这样太low了,然后学习了java中LinkedList的使用并用于代码中,但是老师的出其不意,出了文件的操作,网上百度的代码我硬是看不懂,太笨了,没有多少天赋。但是我觉得世界上的东西都能凭努力得到的!勤能补拙,我会努力的。我一直觉得自己这不行那不行,和别人差好多,有一种天然的自卑,但是这份天然的自卑反而让我逐渐前进。

java中好多类库真的很杂乱,但是用起来超方便,这次我有学会了java中时间的类的使用,比c++里面那个简单多了,小学期做的那个里面c++时间的真的让我无语。

接下来我介绍一下下我的代码,我的代码使用的是LinkedList里面的操作,很方便,然后我的主函数里就是只有panding()“判定账号是否存在于数据中”

public static void main(String[] args) {
LinkedList<Account> acc=new LinkedList<Account>();
Scanner shuru=new Scanner(System.in);
getInformation(acc);
int flag;
// System.out.println(acc.get(0).getAccountID());
// System.out.println(acc.size());
panding(acc);

}

然后我的办法就是函数里面调用另一个函数的方法,如果比喻成一个图形的话,我的应该就是树形结构吧,一个里面套着一个或者多个函数,通过多次调用完成以上各种操作。

—恢复内容结束—

刚才卡了一下全没了但是有个回复功能,吓死我了,以为白忙活了。

继续

例如:

public static void panding(LinkedList<Account> acc) {
		Scanner shuru = new Scanner(System.in);
		int flag = 0;
		int j=0;
		String zhanghao;
		while (flag == 0) {
			System.out.println("***************************************************************");
			System.out.println("	                   欢迎使用中国工商银行自动柜员系统");
			System.out.println("****************************************************************");
			System.out.println("              请输入您的账号:");
			System.out.println();
			System.out.println("****************************************************************");
			zhanghao = shuru.next();
			//System.out.println(zhanghao);
			if (zhanghao.length() != 8) {
				System.out.println("该卡不是工行卡");
			} else {
				//System.out.println(zhanghao);
				for (int i = 0; i < acc.size(); i++) {
					if (zhanghao.equals(acc.get(i).getAccountID())) {
						flag = 1;
						j=i;
					}
					//System.out.println(j);
					
				}
				{
				if (flag == 0) {
					System.out.println("该账号不存在");
				} else {
					shurumima(acc,j);
				}
				}
			}
			
		}
	}

  这里面就调用的是shurumima()这个函数,这个函数是用来判定密码是否正确的,如果正确他就会调用下一个界面,跳转到下一个界面。我觉得我的方法应该还是不错的,简单易懂吧,学疏才浅,也不知道这样对内存是不是不好。可是我只会这个方法啊,嘤嘤嘤。

这个不能不说的就是文件操作,文件操作的类库真的好方便。但是看懂好难,网上的代码太乱了,当初查java的list容器的时候,一大推给我写list的,根本查不到有关list的类库,后来翻了书才知道有Alist和Llist这俩个。百度不能信啊。

存款的那个函数我做的太过于繁琐了,应该能简化一下,下次吧,嘿嘿。

我觉得在学习这方面有人帮助是真的nice!我觉得我看一辈子都不能看懂的。再次感谢程超然同学,再次感谢老师。

不多bb,我老婆配的动漫更新了!

版权声明:本文为gonT-iL-evoL-I原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gonT-iL-evoL-I/p/9697090.html