开学第一堂课就是测试,测试暑假的自学成果,老师说试卷适当提高了难度,所以允许查书和使用网络查询,经过近三个钟头的努力奋斗和痛苦挣扎,我只完成了一小部分的代码,只有简单的set()get()函数,以及简单的输出界面,能够输出ATM的初始界面,能够输入银行卡号并进行判断是否正确,但是不能进行文件的输入和输出,无法完成要求在txt文本文件中完成的项目。也只实现了第一个功能,只能进行存款。

课下利用空闲时间,我又重新对代码进行了修改,将一些常用的输出语句分类写到了函数中,稍稍简化了main函数,能够实现老师要求的存款,取款,转账汇款,查询余额功能,但是在刚刚完成代码时,发现无法进行循环,或者完成一项功能之后程序就会结束。我重新检查了代码中的for循环和while循环,改变了一些循环的条件,并进行了完善,可以在密码输入错误三次时候输出多次错误,并跳转回到账号输入界面。后来的测试中发现按照老师所给定的要求,输入q不能退出并跳转到初始界面。为了解决这一问题,我对整个函数加入了一个新的do while循环,并声名string l,但是新的问题也出现了,跳出循环的语句无法正常执行,查阅资料发现string是不能像int那种表示方式l!=q,在网上查找,想到了遍历字符串的方法,l.charAt(0)!='q'使用这一表示形式,解决了循环不能跳出的问题。但是有一个问题尚未解决,就是文件的导入导出,查询资料后还是没有理解,所以程序中有关文件的操作没有完成,不能进行账号和操作流水的储存,只能用另外一种形式进行临时替代,在后续的学习中,要继续学习文件的知识,然后完善这次的代码,将现在没有完成的功能进行实现,为以后的链接数据库打好基础。

通过这一次的课堂测试,和后续对代码的完善修改,使我充分认识到自己在代码方面的欠缺,逻辑体系不够明确,不能在开始写程序之前就构思好整个框架,只能写一步看一步,眼光比较局限,没有全局意识,写出的代码不够整齐规范。Java的许多知识还有很大漏洞,有很多知识还未涉及,自学只学到了一点点东西,很难满足现在的代码需求,尤其是文件方面,在以后的学习中地位也很重要,所以后续还要进行更加深入的学习,规范自己写代码的习惯,注意保存和添加注释,不然回过头来自己都看不懂,浪费时间。这次的代码有一些问题是找学长帮忙解决的,非常感谢学长的帮助,以后也要经常像学长和同学请教解决问题的方法和思路,选择最佳的解决问题的途径,利用更少的代码解决问题。当然最重要的还是要不断学习,增加自己的代码积累量增加自己的经验,这样才能更快的想出解决问题的最优解。

 //信1705-3 20173598 李旭
package atm;
public class Account
{
private String accountID;
private String accountname;
private String operatedate;
private int operatetype;
private String accountpassword;
private int accountbalance;
private int amount; public void setaccountID(String a)
{
accountID=a;
}
public void setaccountname(String b)
{
accountname=b;
}
public void setoperatedate(String c)
{
operatedate=c;
}
public void setoperatetype(int d)
{
operatetype=d;
}
public void setaccountpassword(String e)
{
accountpassword=e;
}
public void setaccountbalance(int f)
{
accountbalance=f;
}
public void setamount(int g)
{
amount=g;
} public String getaccountID()
{
return accountID;
}
public String getaccountname()
{
return accountname;
}
public String getoperatedate()
{
return operatedate;
}
public int getoperatetype()
{
return operatetype;
}
public String getaccountpassword()
{
return accountpassword;
}
public int getaccountbalance()
{
return accountbalance;
}
public int getamount()
{
return amount;
}
public Account() {}
public void menu(int i)
{ System.out.println("***************************************************************");
System.out.println(" 欢迎"+i+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 输入您的密码:");
System.out.println("***************************************************************");
}
public void menu0()
{
System.out.println("***************************************************************");
System.out.println(" 欢迎使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 输入您的账号:");
System.out.println("***************************************************************");
}
public void menu1(int i)
{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统");
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("***************************************************************");
}
public void menu2(int i)
{
System.out.println("***************************************************************");
System.out.println("欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入存款金额;");
System.out.println("****************************************************************");
}
public void cun(double m,int i)
{
System.out.println("***************************************************************");
System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("当前账户存款操作成功。");
System.out.println("当前账户余额为:"+m+"元");
System.out.println("****************************************************************");
}
public void qu(int i)
{
System.out.println("***************************************************************");
System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("当前账户每日可以支取 2 万元。");
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. 返回");
System.out.println("****************************************************************");
}
public void zhuan(int i) {
System.out.println("*************************************************************** ");
System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 ");
System.out.println("**************************************************************** ");
System.out.println("请输入转账账户; ");
System.out.println("**************************************************************** ");
}
public void jine(int i)
{
System.out.println("*************************************************************** ");
System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 ");
System.out.println("*************************************************************** ");
System.out.println("请输入转账金额; ");
System.out.println("*************************************************************** ");
}
public void mima(int i)
{
System.out.println("*************************************************************** ");
System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 ");
System.out.println("*************************************************************** ");
System.out.println("请输入当前密码: ");
System.out.println("请输入修改密码: ");
System.out.println("请输入确认密码: ");
System.out.println("*************************************************************** ");
} }

Account.java

//信1705-3 20173598 李旭
package atm;
import java.util.Scanner;
import java.util.ArrayList;
public class AccountManager
{ public static void main(String[] args) {
Account account = new Account ();
double m=0;
int i=0;
int k=0;
int j=0;
String l="";
Scanner in=new Scanner(System.in);
boolean ture = false;
while(!ture)
{
do
{
account.menu0();
i=in.nextInt();
while(i<10000000||i>99999999)
{
System.out.println(" 该卡不是工行卡 ");
System.out.println(" 重新输入您的账号");
i=in.nextInt();
}
account.menu(i); for(k=0;k<3;k++)
{
j=in.nextInt();
if(j>100000&&j<999999)
{ k=5;
break;
}
else if(j<100000||j>999999)
{
System.out.println("密码输入错误");
}
else if(j==888888)
{
System.out.println("密码输入错误");
}
}
if(k==3)
{
System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
}
}while(k!=5); do
{
account.menu1(i);
l=in.next();
switch(l){
case "1":
{
account.menu2(i);
m=in.nextDouble();
while(m<0||m-(int)m>0.00001)
{
System.out.println("输入金额有误");
account.menu2(i);
m=in.nextInt();
}
account.cun(m,i);
};break;
case "2":
{
account.qu(i);
int n;
n=in.nextInt();
switch(n)
{
case 1:
{
if(m<100)
System.out.println("账户余额不足");
else
m=m-100;
};break;
case 2:{
if(m<500)
System.out.println("账户余额不足");
else
m=m-500;
};break;
case 3:{
if(m<1000)
System.out.println("账户余额不足");
else
m=m-1000;
};break;
case 4:{
if(m<1500)
System.out.println("账户余额不足");
else
m=m-1500;
};break;
case 5:{
if(m<2000)
System.out.println("账户余额不足");
else
m=m-2000;
};break;
case 6:{
if(m<5000)
System.out.println("账户余额不足");
m=m-5000;
};break;
case 7:{
System.out.println("*************************************************************** ");
System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统");
System.out.println("**************************************************************** ");
System.out.println("请输入取款金额:");
System.out.println("**************************************************************** ");
int jin;
jin=in.nextInt();
if(m<jin)
System.out.println("账户余额不足");
else
m=m+jin;
};break;
case 8:account.menu0();;break;
case 9:account.menu1(i);break;
}
}
case "3":{
account.zhuan(i);
int zhanghu;
zhanghu=in.nextInt();
account.jine(i);
int jine;
jine=in.nextInt();
if(m<jine)
System.out.println("账户余额不足");
else
{
System.out.println("*************************************************************** ");
System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统 ");
System.out.println("**************************************************************** ");
System.out.println("请确认是否向"+zhanghu+"转账"+jine+"元");
System.out.println("当前账户余额为:"+(m-jine)+" 元 ");
} };break;
case "4":{
account.mima(i);
int ymi,nmi,nmi2;
ymi=in.nextInt();
nmi=in.nextInt();
nmi2=in.nextInt();
if(ymi==j)
{
if(nmi==nmi2)
{
System.out.println("***************************************************************");
System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 ");
System.out.println("***************************************************************");
System.out.println("当前账户密码修改成功 ");
System.out.println("***************************************************************");
}
else
System.out.println("修改密码与确认密码不一致");
}
else
System.out.println("当前密码录入错误");
};break;
case "5":System.out.println("当前余额:"+m);break;
} }while(l.charAt(0)!='q');
}
}
}

AccountManager.java

Java开学测试感想的更多相关文章

  1. JAVA 开学测试

    package StudentScore; public class ScoreInformation { String stunumber; //学号 String name; //姓名 doubl ...

  2. Java开学测试

    这次开学测试要求做一个信息系统,该系统完成学生成绩录入,修改,计算学分积点和查询学生成绩的简单功能. 下面是我写的代码 //信1805-3班 20183641 赵树琪 package test; im ...

  3. java开学考试感想及代码

    上周四我们的第一节java课,王老师给我们进行啦开学考试,这也是上学期放假之前给我们约定好的 但是情况显然没有我想的那么好,其实我觉得这个atm系统比上届学生信息管理系统难的多,上届的话毕竟有小学期的 ...

  4. Java开学测试源代码

    package sample; import java.io.IOException;import java.io.Serializable;import java.util.Scanner;impo ...

  5. Java开学测试-学生成绩管理系统

    题目: 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishiscore,networkscore ...

  6. java开学考试有感以及源码

    一.感想 Java开学测试有感 九月二十号,王老师给我们上的第一节java课,测试. 说实话,不能说是十分有自信,但还好,直到看见了开学测试的题目,之前因为已经做过了王老师发的16级的题目,所以当时还 ...

  7. Java反序列化测试

    前言:有没有想过,如何将对象进行“加密”后写入磁盘?序列化帮你实现! 1.概念 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写 ...

  8. 零成本实现接口自动化测试 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  9. Android AIDL自动生成Java文件测试

    /******************************************************************************** * Android AIDL自动生成 ...

随机推荐

  1. 官网英文版学习——RabbitMQ学习笔记(八)Remote procedure call (RPC)

    在第四篇学习笔记中,我们学习了如何使用工作队列在多个工作者之间分配耗时的任务.   但是,如果我们需要在远程计算机上运行一个函数并等待结果呢?这是另一回事.这种模式通常称为远程过程调用或RPC.   ...

  2. arduino通信问题的学习与解决

    我想实现的是,我用电脑在串口监视器上输入一个字符串,arduino能识别这个字符串中的每一个字符并在相应的串口上给出相应的高低电平以驱动舵机,比如输入L1,RS,功能是左手腕舵机逆时针旋转90°,然后 ...

  3. Nachos-Lab3-同步与互斥机制模块实现

    源码获取 https://github.com/icoty/nachos-3.4-Lab 内容一:总体概述 本实习希望通过修改Nachos系统平台的底层源代码,达到"扩展同步机制,实现同步互 ...

  4. 使用NlohmannJson写JSON保留插入顺序

    1. 正文 nlohmann/json是一个C++的读写JSON的组件,号称使用现代C++范式写的.简单看了一下,这个组件确实包含了很多cpp11以上的特性,在vs2015及一下的版本甚至没办法正常编 ...

  5. K最邻近算法(下)

    import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from skle ...

  6. HDU 4866 多校1 主席树+扫描线

    终于是解决了这个题目了 不过不知道下一次碰到主席树到底做不做的出来,这个东西稍微难一点就不一定能做得出 离散化+扫描线式的建树,所以对于某个坐标二分找到对应的那颗主席树,即搜索出结果即可(因为是扫描线 ...

  7. 吴裕雄--天生自然C++语言学习笔记:C++ 接口(抽象类)

    接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至少有一个函数被声明为纯虚 ...

  8. HDU - 2602 Bone Collector(01背包讲解)

    题意:01背包:有N件物品和一个容量为V的背包.每种物品均只有一件.第i件物品的费用是volume[i],价值是value[i],求解将哪些物品装入背包可使价值总和最大. 分析: 1.构造二维数组: ...

  9. python 将数组中取某一值的元素全部替换为其他元素的方法

    这里的问题是在做House Price Prediction的时候遇到的,尝试对GarageArea做log转化,但是由于有些房子没有车库,所以GarageArea = 0,再通过log转化变成-in ...

  10. Java工程师面试题

    1. J2EE 是什么?它包括哪些技术?解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2E ...