java第一次课
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,我老婆配的动漫更新了!
浙公网安备 33010602011771号