上周四的Java考试,老师并没有给我们考暑假给我们布置的学生管理系统的java程序,而是给我们出了一个设计ATM的程序,然而这个对于我们来说是及其难,原因是我们在暑假期间肯定没有好好学习JAVA,我连基本的Java语句都不怎么会,更别说这个设计ATM程序了。尽管建民老师让我们上网查询资料以及查看书本但还是没有什么办法可以完成这个考试,我们考试时间就两个半小时,以我的java基础在这么短的时间想要做出来是不可能实现的。
通过这次的Java考试,使我发现了我的很多问题,对于定义Account类和几个变量以及输出变量和设设置变量信息我还可以编出来,但是接下来的创建两个txt文件accountinformation.txt和accountlist.txt是一点也没有头绪,完全不知道该怎么办,所以我就没有用文件来设置用户的信息和操作流水信息。很多功能也是没有的,一些定义类和变量和菜单的显示和跳转功能。
通过这次的Java考试,也使我明白了对于Java的学习,在暑假期间建民老师让我们自学Java,开学要考试,然而我并没有听下去,以至于现在和同学们相差两个月的学习,本来起步就比他们低,如果还不好好学习Java,那么会跟别人越差越远,会被甩下去的,现在对于一些基本的编程我都需要查询资料,更不用说复杂的程序了,所以在以后的学习中,不仅要在课堂上认真的听讲还要在平时的空闲时间中好好的自学Java知识,并且建民老师也跟我们说他的这门课程全要靠我们自学,靠别人是没用的。同时在学习Java的过程中,遇到问题要多学习,多问,多操作。自己不会要比别人花跟多的时间去学习,多问老师同学,学习别人好的学习方法,这样往往可以事半功倍。Java学习应该理论结合实践,我在学习c语言的时候,只注重Jabalpur理论知识,忽视了实践能力,导致在做c语言的代码时往往一窍不通,而学习Java也是如此,我们应该注重理论结合实践,在Jabalpur学习的同时注重实践。实践是检验理论的唯一标准,只有在实践中才能发现问题,这样才可以更好的更改并成长。
Java的学习并没有秘籍,也没有什么捷径,只能脚踏实地的学弟,注重理论结合实践,做到融会贯通,坚持下去,只有这样才能更好的学习Java,了解Java。
//信1705-2,20173679,张利杰
package test;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Scanner;
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 t) {
accountID=t;
}
public String getAccountID() {
return accountID;
}
public void setAccountname(String t) {
accountname=t;
}
public String getAccountname() {
return accountname;
}
public void setOperatedate(String t) {
operatedate=t;
}
public String getOperatedate() {
return operatedate;
}
public void setOperatetype(int t) {
operatetype=t;
}
public int getOperatetype() {
return operatetype;
}
public void setAccountpassword(String t) {
accountpassword=t;
}
public String getAccountpassword() {
return accountpassword;
}
public void setAccountbalance(int t) {
accountbalance=t;
}
public int getAccountbalance() {
return accountbalance;
}
public void setAmount(int t) {
amount=t;
}
public int getAmount() {
return amount;
}
}
//输入密码
class AccountManager{
int balance=20173679;
String password="123456";
int sum1;
int sum2;
Scanner sc=new Scanner(System.in);
//欢迎界面登陆界面
public void Welcome() throws Exception{
System.out.println("-----------------------欢迎使用xxxx银行ATM系统---------------------");
}
//菜单
public void menu() throws Exception
{
int a;
Scanner in=new Scanner(System.in);
System.out.println("***************************************************************");
System.out.println("欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统");
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("****************************************************************");
a=in.nextInt();
while(a<0||a>5)
{
System.out.print("输入无效,请重新输入:");
a=in.nextInt();
}
switch(a)
{
case 1:this.deposit();break;
case 2:this.draw();break;
case 3:this.transfer();break;
case 4:this.change();break;
case 5:this.query();break;
}
}
private void change()throws Exception {
}
private void transfer()throws Exception {
// TODO Auto-generated method stub
}
private void deposit()throws Exception {
// TODO Auto-generated method stub
}
//查询余额
public void query() throws Exception{
System.out.println(balance);
menu();
}
//取款
public void draw() throws Exception{
int money=0;
if(sum1==5000){
System.out.println("\n"+"对不起,您今日取款已达到限制,请选择其他项目或去柜台取钱。");
TimerTask task = new TimerTask(){
public void run(){
sum1 = 0;
}
};
Timer timer = new Timer();
long delay = 1000*60*60*24;
long period = 1000*60*60*24;
timer.scheduleAtFixedRate(task, delay, period);
menu();
};
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("请选取金额");
int dr=sc.nextInt();
switch(dr){
case 1:
money=100;
//balance-=money;
break;
case 2:
money=500;
//balance-=money;
break;
case 3:
money=1000;
//balance-=money;
break;
case 4:
money=1500;
//balance-=money;
break;
case 5:
money=2000;
//balance-=money;
break;
case 6:
money=5000;
//balance-=money;
break;
case 7:
System.out.println("只能输入100的整数倍.");
System.out.println("请输入金额");
money=sc.nextInt();
if (money % 100 != 0 || money > 5000) {
System.out.println("您输入的金额不是100的整数倍或者大于5000,请选择:");
other(money);
}
break;
default:draw();
}
sum1=sum1+money;
if(money > balance) {
System.out.println("余额不足请重新输入");
draw();
} else if (sum1 > 20000) {
System.out.println("对不起,本次取钱后当天累计金额将超过20000,将跳转到取款界面,请重新取款:" + "\n");
draw();
} else {
balance-=money;
System.out.println("取款成功你的账户余额为" +balance);
// System.out.println(sum);
afterDraw();
}
}
//一次取款大于2000的操作
public void other(int money) throws Exception {
int num;
System.out.println("1 重新输入取款金额;q 选择退出系统.");
Scanner scanner = new Scanner(System.in);
num = scanner.nextInt();
switch (num) {
case 1:
System.out.println("您选择重新输入金额,将返回取款界面...");
draw();
break;
case 2:
exit();
break;
default:
other(money);
}
}
//取款成功后
public void afterDraw() throws Exception{
int numb;
System.out.println("您选择:1 继续取款;2 返回主页3 退出");
Scanner scanner = new Scanner(System.in);
numb = scanner.nextInt();
switch (numb) {
case 1:
System.out.println("您选择继续取款,将返回取款界面...");
draw();
break;
case 2:
System.out.println("您选择返回主页面,即将返回...");
menu();
case 3:
System.out.println("您选择退出,即将退出...");
exit();
break;
default:
afterDraw();
}
}
public void exit(){
System.out.println("欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统");
System.exit(0);
}}