这周,是开学第一周。新学期新气象,第一节课,老师就给我们一个下马威。到现在还有点懵。第一次上机,第一次接触真正的程序,第一次真正的思考,编写程序。很多第一次没了,却也慢慢的从一个小白开始懵懂。
在编写ATM机系统的时候,在定义类,声明变量,构造成员函数等过程中,或多或少都有问题。想了很久,感觉还是因为自己初次接触这种上课模式,初次接触这种程序,更多的也是因为暑假没有深入的学习,只知Java,却不知何为Java。只学到了Java的皮毛,打了很多程序。却没有真正思考过,没有真正的自己做过程序。以至于开始编写程序时一团乱麻。只是疯狂的在网上找寻答案,对于项目要求,格式什么都置若罔闻,最后在老师的提醒下,才慢慢的清醒过来。在老师的建议下,重新一遍遍的看着题目要求,一遍遍是思考着解答的方法。终于还是有了一些思路,终于会写了一点点。慢慢的,一点一点的磨出了很多,渐渐的掌握了一些技巧。编写代码的速度也渐渐的快了起来。终于,在下课前,基本写完了ATM机的代码。
通过这节课的学习,深入学习到了java编程是什么意思,也第一次感觉到了程序和代码的区别。写了好久时间,感觉有上千行,包括给一个模块,每一个类。在写完之后都有单独运行,成功之后在做下一块。也第一次用到了分类这种思想。之前的程序都是一口气下下去,这次的程序是一块一块拼接起来的,和以往学习的编程有了一些出入,这一方面我也要加快适应。不过,最后做出来的只是一个程序的大概,好多细节还有待提升和改进。有了这一次的经验,以后的学习应该也会有很大的提升。在今后的学习中会多多运用这种分类的思想,分模块去思考,在整体组装,应该会使办事效率更高效。
通过这次上课,领悟了很多之前没有接触过的新思想。也有了很多感悟,当然也发现了自身的很多不足,需要加以改正。时间还有,还有机会,可以更进一步。
代码如下:
package ATM;
package ATM; import java.util.Scanner; public class AccountManager { private int d=0; Account Ac; public AccountManager() { Ac=new Account(); } Scanner scan=new Scanner(System.in); public void login() { //输入账号及其验证 char v='v'; int aaaaa=0; while(v=='v'){ System.out.println("------------------------------------------------------------------------"); System.out.println("----------------------欢迎使用中国工商银行自动柜员系统--------------------"); System.out.println("------------------------------------------------------------------------"); System.out.println("请输入账号:"); System.out.println("-------------------------------------------------------------------------"); String pw = scan.next(); if(pw.length()!=8){ System.out.println("该卡不是工行卡"); aaaaa=1; } else{aaaaa=0;} if(aaaaa==0) { if (Ac.getAccountID().equals(pw)) { Ac.setT(0); break; } else { System.out.println("账号错误"); v='v'; } } } //输入密码及其验证 System.out.println("------------------------------------------------------------------------"); System.out.println("----------------------欢迎使用中国工商银行自动柜员系统--------------------"); System.out.println("------------------------------------------------------------------------"); System.out.println("请输入密码:"); System.out.println("------------------------------------------------------------------------"); String pw = scan.next(); while (Ac.getT() < 2) { if (Ac.getAccountpassword().equals(pw)&&pw.length()==6) { Ac.setT(0); break; } else { System.out.println("密码错误,请重新输入"); Ac.setT(Ac.getT() + 1); pw = scan.next(); } } if (Ac.getT() == 3) { System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理"); System.exit(0); } } public void serviceAll() {//选择服务项目 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(" 0.退出 "); System.out.println("****************************************************************"); System.out.println("请选择:"); int i3=scan.nextInt(); switch(i3){ case 1:cunkuan();break; case 2:qukuan();break; case 3:zhuanzhang();break; case 4:gaimi();break; case 5:chaxun();break; } } public void cunkuan() {//存款 char y='y'; while(y=='y'){ System.out.println("***************************************************************"); System.out.println("欢迎"+Ac.getAccountname()+"使用中国工商银行自助柜员系统:"); System.out.println("***************************************************************"); System.out.println("请输入存款金额:"); System.out.println("***************************************************************:"); double aa=scan.nextDouble(); int bb=(int)aa; if(bb==aa&&aa>0){ y='x'; Ac.setAccountbalance(bb); System.out.println("***************************************************************"); System.out.println("欢迎"+Ac.getAccountname()+"使用中国工商银行自助柜员系统:"); System.out.println("***************************************************************"); System.out.println("当前账户存款操作成功。"); System.out.println("当前账户余额为:"+Ac.getAccountbalance()+"元"); System.out.println("***************************************************************:"); } } serviceAll() ; } public void qukuan()//取款 { System.out.println("您的账户可用余额不够您的取款金额,请重新输入您的取款金额!"); System.out.print("请重新输入您的取款金额:"); Scanner scn2=new Scanner(System.in); System.out.println("恭喜您,取款成功!"); serviceAll(); } public void zhuanzhang(){ System.out.println("账户号:"); System.out.println("转账金额:"); serviceAll(); } public void gaimi(){ System.out.println("输入新的六位数密码:"); serviceAll(); } public void chaxun(){ System.out.println("当前余额:"+Ac.getAccountbalance()+"元"); serviceAll(); } public void huanying() {//欢迎 System.out .println("------------------------------------------------------------------------"); System.out .println("----------------------欢迎使用中国工商银行自动柜员系统--------------------"); System.out .println("------------------------------------------------------------------------"); System.out.println(""); } public void tuichu() {//退出 System.out .println("-----------------------------------------------------------"); System.out .println("------------------欢迎使用中国工商银行自动柜员系统!----------------"); System.out .println("-----------------------------------------------------------"); System.out.println(""); } }
package ATM; public class ATM { public static void main(String[] args) { AccountManager accou=new AccountManager(); accou.login(); accou.serviceAll(); } }
public class Account { String accountID;//用于存储学生的用户账号(由八位数字组成) String accountname;//用于存储账户的名称。 String operatedate;//用于存储操作的时间,由十位字符组成 int operatetype;//用于存储操作账户的类型 String accountpassword;//用于用户密码 int accountbalance;//用于存储账户余额 int amount;//表示操作流水金额 int t=0; public Account() { accountID="20173581"; accountname="左家奇"; accountpassword="111111"; accountbalance=0; } public Account(String accountID, String accountname, String operatedate, int operatetype, String accountpassword, int accountbalance, int amount) { this.accountID = accountID; this.accountname = accountname; this.operatedate = operatedate; this.operatetype = operatetype; this.accountpassword = accountpassword; this.accountbalance = accountbalance; this.amount = amount; } public int getT() { return t; } public void setT(int t) { this.t = t; } 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) { this.operatedate = operatedate; } public int getOperatetype() { return operatetype; } public void setOperatetype(int operatetype) { this.operatetype = operatetype; } public String getAccountpassword() { return accountpassword; } public void setAccountpassword(String accountpassword) { this.accountpassword = accountpassword; } 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; } }