java考试感受
Posted 2018/7/11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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考试感受的主要内容,如果未能解决你的问题,请参考以下文章