Long Bro博客——查看其它Long Bro影院
单词大师网页版2

  作者:赵成龙  发布时间:2019-03-02 19:17:39  所属类别:学习笔记  浏览量:440



 

        早在2018年9月份的时候就写了一篇博客单词大师网页版1,介绍了如何通过java程序从文件向数据库中批量录入单词。这里向大家道歉,由于各种原因,到今天才决定写这篇单词大师网页版2来接着叙述如何实现类似扇贝单词大师的功能,也即让学单词以选择题的形式进行。/images/upload/eng.png">

        接下来上代码...这里数据的查询就使用原生jdbc来操作吧

		Connection con=null;
                Statement st=null;
Class.forName(Utils.driver);
con=DriverManager.getConnection(Utils.url, "root",Utils.pass);
st=con.createStatement();
ArrayList<Integer> a=Test.four();
int first=a.get(0);
int second=a.get(1);
int third=a.get(2);
int fourth=a.get(3);
ArrayList<String> eng=new ArrayList<String>();//用来放查询的英语
ArrayList<String> chi=new ArrayList<String>();//用来放查询到的汉语
ArrayList<String> pro=new ArrayList<String>();//用来放查询到的音标
//SQL语句查询数据库方法
String sql="select * from words where w_Id="+first+" or w_Id="+second+" or w_Id="+third+" or w_Id="+fourth;
// System.out.println(sql);
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
String english=rs.getString("w_English");
String chinese=rs.getString("w_Chinese");
String pronounce=rs.getString("w_Pronounce");
eng.add(english);
chi.add(chinese);
pro.add(pronounce);
}
//将链表中第一个单词作为题
String problem=eng.get(0);
out.write("<h1 title='发音:"+pro.get(0)+"'>"+problem+"</h1><br>");
String answer="";
//实现选项随机安排分配,正确答案随机次序显示
char[] ch={'A','B','C','D'};
//主要就是chi.get(0)是正确答案,给他分配一个选项,其他的按顺序来
int t=new Random().nextInt(4);//正确答案所在的选项
if(t==0){//正确答案在A选项
out.write("<input name=\"choice\" type=\"radio\" checked><em title='英语:"+eng.get(0)+"发音:"+pro.get(0)+"'><b>"+ch[0]+":"+chi.get(0)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(1)+"发音:"+pro.get(1)+"'><b>"+ch[1]+":"+chi.get(1)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(2)+"发音:"+pro.get(2)+"'><b>"+ch[2]+":"+chi.get(2)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(3)+"发音:"+pro.get(3)+"'><b>"+ch[3]+":"+chi.get(3)+"</b></em><br>");
}else if(t==1){//正确答案在B选项
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(1)+"发音:"+pro.get(1)+"'><b>"+ch[0]+":"+chi.get(1)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" checked><em title='英语:"+eng.get(0)+"发音:"+pro.get(0)+"'><b>"+ch[1]+":"+chi.get(0)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(2)+"发音:"+pro.get(2)+"'><b>"+ch[2]+":"+chi.get(2)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(3)+"发音:"+pro.get(3)+"'><b>"+ch[3]+":"+chi.get(3)+"</b></em><br>");
}else if(t==2){////正确答案在C选项
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(1)+"发音:"+pro.get(1)+"'><b>"+ch[0]+":"+chi.get(1)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" checked><em title='英语:"+eng.get(0)+"发音:"+pro.get(0)+"'><b>"+ch[1]+":"+chi.get(0)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(2)+"发音:"+pro.get(2)+"'><b>"+ch[2]+":"+chi.get(2)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(3)+"发音:"+pro.get(3)+"'><b>"+ch[3]+":"+chi.get(3)+"</b></em><br>");
}else if(t==3){//正确答案在D选项
out.write("<input name=\"choice\" type=\"radio\"><em title='英语:"+eng.get(1)+"发音:"+pro.get(1)+"'><b>"+ch[0]+":"+chi.get(1)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(2)+"发音:"+pro.get(2)+"'><b>"+ch[1]+":"+chi.get(2)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" ><em title='英语:"+eng.get(3)+"发音:"+pro.get(3)+"'><b>"+ch[2]+":"+chi.get(3)+"</b></em><br>");
out.write("<input name=\"choice\" type=\"radio\" checked><em title='英语:"+eng.get(0)+"发音:"+pro.get(0)+"'><b>"+ch[3]+":"+chi.get(0)+"</b></em><br>");
}

        别问我为什么不抛异常...自己抛去。以上代码中调用了自己定义的一个方法Test.four();该方法随机生成四个指定范围内的互不相等的整数并返回其组成的链表

public static ArrayList<Integer> four(){
ArrayList<Integer> f=new ArrayList<Integer>();
for(int i=0;i<4;i++){
int s=gener(3407);//随机生成一个整数
//判断是否已生成过,若是,重新生成

for(int t:f){
if(s==t){
s=gener(3407);
}
}
f.add(s);//将该整数添加至整型链表
}
return f;
}

        以上方法中又调用了gener(3407);方法,该方法随机生成一个0到3407内的整数

//随机生成一个0-m之间的整数
public static int gener(int m){
Random ran=new Random();
int i=ran.nextInt(m);
if(i==0){
return gener(m);
}else{
return i;
}
}

        好了,到这里代码部分算是列完了,由于代码是很久之前写的,所以可能有很多不足或赘余之处,最近也没心思修改,大家可以按照自己的思路写出更简洁更优的算法。

        感谢您的阅读!553影院553音乐网欢迎你的访问~_~

        





本文出自LongBro博客,如需转载请注明出处。
本文链接:http://www.longqcloud.cn/blogs/71.html
上一篇:工作生涯正式开始
下一篇:java笔试题详解之冒泡排序




如果你觉得这篇文章对你有用,欢迎 打赏(打赏记录)

打赏多少,你高兴就行,谢谢你对Long Bro这小子的支持  ^-^

来自:223.88.45.143的评论

553影院欢迎您

2018-07-17 11:24:05