Java 英語單詞自測
阿新 • • 發佈:2020-07-22
Java英語單詞自測小遊戲
編寫初衷
記英語單詞的時候,不知道記沒記住,所以寫了個檢測的程式,在檢測的同時,也能夠複習之前學習的。
任務目標
- 建立資料庫
- Java編寫程式碼(沒寫成GUI,覺著寫成GUI巨醜)
- 打包成Jar包
- 終端啟動jar包
建立資料庫
建立名為english的資料庫,並且在資料庫中建立study_english(word,chinese)表,所以我只需要不斷更新表中的資料,達到擴充的目的。
Java編寫程式碼
- 在專案中匯入mysql jar包
- Utils包 連線資料庫
package Utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtils { static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { Connection con = null; con = DriverManager.getConnection("jdbc:mysql://localhost:3306/english","root","root"); return con; } public static void release(Connection con,Statement st,ResultSet rs) throws SQLException { if(rs!=null) { rs.close(); } if(st!=null) { st.close(); } if(con!=null) { con.close(); } } }
- daomain包 建立實體類(word,chinese)
package daomain; public class English { private String word; private String chinese; public String getWord() { return word; } public void setWord(String word) { this.word = word; } public String getChinese() { return chinese; } public void setChinese(String chinese) { this.chinese = chinese; } @Override public String toString() { return "English [word=" + word + ", chinese=" + chinese + "]"; } }
- dao包 資料庫->列表
package dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import Utils.JDBCUtils; import daomain.English; public class EnglishDao { @SuppressWarnings("finally") public static ArrayList<English> findEnglish(String sql) { ArrayList<English> arr = null; Connection con = null; Statement st = null; ResultSet rs = null; try { // 連線資料庫進行查詢 con = JDBCUtils.getConnection(); st = con.createStatement(); rs = st.executeQuery(sql); if (rs.next()) { arr = new ArrayList<English>(); while (true) { English eng = new English(); eng.setWord(rs.getString("word")); eng.setChinese(rs.getString("chinese")); arr.add(eng); if (rs.next() == false) { break; } } } } catch (Exception e1) { e1.printStackTrace(); } finally { try { JDBCUtils.release(con, st, rs); } catch (final SQLException e) { e.printStackTrace(); } return arr; } } }
- 實現
package English;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import dao.EnglishDao;
import daomain.English;
public class Englishtest {
public static void dome() {
Scanner scan = new Scanner(System.in);
String in_chinese = null;
int score = 0;
Random r = new Random();
String sql = "select * from study_english";
ArrayList<English> list = EnglishDao.findEnglish(sql);
System.out.println("歡迎進入英語自我測試小遊戲");
System.out.println("分值達到100分通關");
System.out.println("---------------------");
while(true) {
English english = list.get(r.nextInt(list.size()));
String word = english.getWord();
String chinese = english.getChinese();
System.out.println("單詞:"+word);
System.out.print("英譯漢:");
in_chinese = scan.nextLine();
System.out.println("正確答案:"+chinese);
if(chinese.contains(in_chinese)) {
score ++;
}else {
score --;
}
System.out.println("得分:"+score);
if(score==100) {
break;
}
System.out.println("---------------------");
}
System.out.println("恭喜通關");
}
}
打包成Jar包
右鍵專案選擇Export
終端啟動jar包
在jar包的同一級下建立run.txt
run.txt寫入命令java -jar main.jar
將字尾改為.bat
雙擊執行