1. 程式人生 > >java考試感受

java考試感受

*** 代碼 -s != 內容 dir 必須 補充 中國

---恢復內容開始---

親愛的健民大大:

如果你看到這篇隨筆,估計我就要涼了。首先,坦白一下。我暑假沒有好好學習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 + "\n";
}
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("我會寫入文件啦\r\n"); // \r\n即為換行
out.flush(); // 把緩存區內容壓入文件
out.close(); // 最後記得關閉文件

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

---恢復內容結束---

java考試感受