zoukankan      html  css  js  c++  java
  • java考试感受

    ---恢复内容开始---

    亲爱的健民大大:

      如果你看到这篇随笔,估计我就要凉了。首先,坦白一下。我暑假没有好好学习java,只是简单的看了看概念,背了点定义。没怎么上手操作。当然,我知道,您的要求是做中学,可是暑假玩的太嗨了,我是真的静不下心来编多少代码。对此,我感到很愧疚。今天思量了很多,最后决定吧自己的心里话说出来吧。我知道,您也是个爽快人,我觉得还是把话说开了更好。我也是应该好好反思一下我的学习状态。

      如果没有这次考试,我可能还没有确实的醒悟。如今的我确确实实的感受到了自己和别人的差距。很大,有些同学利用假期时间已经把我甩下去很远了。不过我真的知道错了,我感觉,java和别的学科不一样。他对我更重要,他也更需要实践,我学习它不能像去年学习c和c++一样,只为了最终的考试。太虚伪了啊。

      这次考试中,我发现了自己很多的问题,首先是文件的使用。学习c++的时候文件哪里就没有好好听,暑假有没有好好学习。导致对文件这里理解根本就是一片空白。其次是变量的引入,因为java所具有的的独特性,使其并不能像c++一样,用几个固定语句就能输入。只能通过函数,而函数,也是我的弱项。由此两点可以很简单的看出吧。我们高中班主任说,学习的知识,是有迁移的,半点不假。第三项就是跳转。嗯,跳转这里我到现在也还没弄清楚,真是菜........第四点,是思维方式,我这里想重点谈谈。

      其实那天考完试,听你补充的那些东西真的很有触动。首先是你对计算机思维的理解。我记得你说:复杂问题简单化,简单问题顺序化。感觉这句话真的挺有道理的,不管多么复杂的问题,他都一定是简单问题的叠加。就像一万,他看起来大,也不过只是一万个1罢了。我觉得,软件工程是也是人,他不可能解决他不会的问题,他能做的只是把不会的问题转化为会的问题。即由繁入简。这才是功夫所在。我觉得,当你拿到一个项目的时候,应该从需求入手,先看看,他到底想要什么。找到他的核心技术,在围绕这个核心技术进行框架的构建。你说的很对,不会的问题先跳过,把他空在那里,等找到解决方法,再反过头来解决它(比如查找相关书籍,求助网络,或者继续由繁入简)当整个框架搭好以后,再进行程序的填装。举个例子吧,这次的ATM机。核心技术,我认为是文件的使用,一方面从需求入手,ATM机最重要的功能是储存。所以核心技术是文件的使用,必须克服。其次发现他是两个类,一个主要用于定义变量和初始化变量,很好写,另一个则是对应多个函数。这些函数的地位是平行的,所以有不会的先空下,之后再进行补充。再向下应该解决的就是界面问题,用case语句实现选择,再对应上相匹配的函数。就是页面跳转有点问题,但这部分可以先空下,等找到解决方法之后再去实现他。函数不会的就先写成空函数,保证能和选项对应起来,能调用起来空函数。

      先把框架搭建起来,再去填充,永远都处于有思路的状态,这样才不会被自己的代码困死。而且每写一段代码都要调试,以模块为单位,步步为营才好。

      就一句话,做一个java工程师,最重要的就是逻辑,一定要有逻辑,思路要清晰,至少要知道,自己要做什么。

      暑假一共放了56天吧,这56天都浪费,我很后悔。用这么几天的时间精通java,且不说我天资愚笨,时间上我也真的做不到,这段程序我还是没有完成......我觉得实话实说比什么都重要。我也想说,细水长流,真的想精通java,几天的突击学习不济事的。所以,如果小民哥你真的看到我这篇随笔,我希望你能再给我一些时间,让我一点点的进步,我不能保证我能达到什么水准,但我一定尽全力学习java,不出两个月,一定让您刮目相看......

      行吧,此致敬礼,晚安。

      时九月二十四日,星期一。



    }

    package ATM;

    public class Account {
    private String accountID,accountname,operatedate,accountpassword;
    private int operatetype,accountbalance=0,amount;
    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 String getAccountpassword() {
    return accountpassword;
    }
    public void setAccountpassword(String accountpassword) {
    this.accountpassword = accountpassword;
    }
    public int getOperatetype() {
    return operatetype;
    }
    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 ATM;
    import java.util.Scanner;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.RandomAccessFile;
    public class AccountManager {
    static Scanner input=new Scanner(System.in);

    public static void createFile(){//创建文件1

    //path表示你所创建文件的路径
    String path = "D:\workspace\ATM";
    File f = new File(path);
    if(!f.exists()){
    f.mkdirs();
    }
    // fileName表示你创建的文件名;为txt类型;
    String fileName="accountinformation.txt";
    File file = new File(f,fileName);
    if(!file.exists()){
    try {
    file.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    public static void createFile1(){//创建文件2

    //path表示你所创建文件的路径
    String path = "D:\workspace\ATM";
    File f = new File(path);
    if(!f.exists()){
    f.mkdirs();
    }
    // fileName表示你创建的文件名;为txt类型;
    String fileName="accountlist.txt";
    File file = new File(f,fileName);
    if(!file.exists()){
    try {
    file.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    public static void contentToTxt(String filePath, String content) {//文件导入
    String str = new String(); //原有txt内容
    String s1 = new String();//内容更新
    try {
    File f = new File(filePath);
    if (f.exists()) {
    System.out.print("文件存在");
    } else {
    System.out.print("文件不存在");
    f.createNewFile();// 不存在则创建
    }
    BufferedReader input = new BufferedReader(new FileReader(f));

    while ((str = input.readLine()) != null) {
    s1 += str + " ";
    }
    System.out.println(s1);
    input.close();
    s1 += content;

    BufferedWriter output = new BufferedWriter(new FileWriter(f));
    output.write(s1);
    output.close();
    } catch (Exception e) {
    e.printStackTrace();

    }
    }
    static void getzh()//功能一:输入账号;
    {
    String s;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入您的账号: ");
    System.out.println("**************************");
    s=input.next();
    if(s.length()!=8)
    {
    System.out.println("该卡不是工行卡");
    getzh();
    }
    else getmm();
    }


    static void getmm()//功能输入密码
    {
    String s;
    int j=0;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入您的密码:");
    System.out.println("**************************");
    s=input.next();
    for(int i=0;i<3;i++)
    {
    if(s.length()!=6)
    {
    System.out.println("密码录入错误");
    getmm();
    if(i==2)
    {
    System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
    getzh();
    }
    j++;
    }

    }
    if(j!=3)
    {
    show();
    }
    }

    static void cunkuan()//功能存款
    {
    int x;
    String y;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入存款金额:");
    System.out.println("**************************");
    y=input.next();
    if(y=="q")
    {
    getzh();
    }
    else if(Float.parseFloat(y)>0||Float.parseFloat(y)%(int)Float.parseFloat(y)!=0)
    {
    System.out.println("输入金额有误");
    qukuan();
    }
    else
    {
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 当前账户存款操作成功 ");
    System.out.println(" 当前账户余额为:XXXX元");
    System.out.println("**************************");
    }
    }

    static void qukuan()//功能取款
    {
    int x=0;
    int y=0;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    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("**************************");
    x=input.nextInt();
    switch(x)
    {
    case 7:
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入存款金额 ");
    y=input.nextInt();
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 当前账户取款操作成功 ");break;
    case 8:getzh();break;
    case 9:show();break;
    }
    }
    static void zzhk()//功能转账汇款
    {
    String x,z;
    int y;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入转账账户 ");
    x=input.next();
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入转账账金额 ");
    y=input.nextInt();
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请确认是否向"+x+"转账"+y+"元。 ");
    z=input.next();
    if(z=="N")
    {
    System.out.println("转账失败");
    show();
    }
    else
    {
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 当前账户向"+x+"转账"+y+"元。 ");
    }
    String k;
    k=input.next();
    if(k=="q")getzh();
    }

    static void xgmm()
    {
    String x,y;
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 请输入当前密码: ");
    System.out.println(" 请输入修改密码: ");
    System.out.println(" 请输入确认密码: ");
    x=input.next();
    y=input.next();
    y=input.next();
    System.out.println("**************************");
    System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");
    System.out.println("**************************");
    System.out.println(" 当前账户密码修改成功 ");
    y=input.next();
    if(y=="q")getzh();
    }
    static void show()//主界面
    {
    int x;
    System.out.println("**************************");
    System.out.println("欢迎xxxx使用中国工商银行自助柜员系统");
    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("**************************");

    x=input.nextInt();
    switch(x)
    {
    case 1: cunkuan();break;
    case 2: qukuan();break;
    case 3:zzhk();break;
    case 4:xgmm();break;
    }
    }


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    createFile();
    createFile1();

    /*try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw
    /* 写入Txt文件 */
    /* File writename = new File("D:\\workspace\\ATM"); // 相对路径,如果没有则要建立一个新的output。txt文件
    writename.createNewFile(); // 创建新文件
    BufferedWriter out = new BufferedWriter(new FileWriter(writename));
    out.write("我会写入文件啦 "); // 即为换行
    out.flush(); // 把缓存区内容压入文件
    out.close(); // 最后记得关闭文件

    } catch (Exception e) {
    e.printStackTrace();
    }*/
    //contentToTxt("accountlist.txt","D:\workspace\ATM" );
    getzh();
    }

    ---恢复内容结束---

  • 相关阅读:
    Java面向对象练习输出水仙花
    Java面向对象练习学生信息输出
    java面线对象练习时钟
    java面向对象存取款
    0516Java面向对象求面积练习
    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    0516编写西游记人物类
    0514练习
    仓鼠找sugar
    NOIP2018旅行
  • 原文地址:https://www.cnblogs.com/jyt123/p/9697326.html
Copyright © 2011-2022 走看看