课堂结对作业:二维数组(4)
結(jié)隊(duì)成員:陳欣容、孫奇文
1.題目:四則運(yùn)算web版;把程序變成一個網(wǎng)頁程序,用戶通過設(shè)定參數(shù),就可以得到各種題目,并可實(shí)現(xiàn)在線答題并評判
四則運(yùn)算web版的程序設(shè)計(jì)思想:之前的程序是可以用戶自定義生成任意個數(shù)四則運(yùn)算題目的,這次試驗(yàn)是要求寫成web版的,用于給用戶提供一一個在線答題的平臺。這里需要用到Javaweb的方法,Javabean方法,jsp代碼編寫等方法。
2.源程序代碼:
Javabean1:
package DBBean;
?
import java.sql.*;
import java.util.*;
public class DBbean {
????private String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
????private String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=sizeyunsuan";
????private String dbusername = "sa";
????private String dbpassword = "123456";
????private Connection conn = null;
????private PreparedStatement pstmt = null;
?
????public DBbean()
????{
????????try
????????{
????????????Class.forName(driverStr);
????????????conn = DriverManager.getConnection(connStr, dbusername, dbpassword);
????????}
????????catch (Exception ex) {
????????????System.out.println("數(shù)據(jù)庫連接失敗!");
????????}
????????
????}
????public Vector<String> getEx(){
????????Vector<String> ex=new Vector<String>();
????????try{
????????????Random ran=new Random();
????????????String sql="select * from expression";
????????????pstmt=conn.prepareStatement(sql);
????????????ResultSet res=pstmt.executeQuery();
????????????while(true){
????????????????if(ex.size()>=20)
????????????????????break;
????????????????if(res.next()){
????????????????????String exp=res.getString("ex");
????????????????????String re=res.getString("result");
????????????????????ex.addElement(exp);
????????????????????ex.addElement(re);
????????????????}
????????????}
????????????
????????}
????????catch(Exception e){
????????????e.printStackTrace();
????????}
????????return ex;
????}
????public void insertEx(String ex[]){
????????if(ex.length!=5){
????????????System.out.println("插入表達(dá)式失敗!");
????????????return ;
????????}
????????else{
????????????String exp=""+ex[0]+ex[1]+ex[2]+ex[3];
????????????String resu=ex[4];
????????????try{
????????????????String sql = "insert into expression values('"+exp+"','" +resu+ "')";
????????????????pstmt=conn.prepareStatement(sql);
????????????????int rst=pstmt.executeUpdate();
????????????????if(rst!=0){
????????????????????System.out.print("成功插入表達(dá)式:");
????????????????????System.out.print(exp+resu);
????????????????????System.out.print("\n");
????????????????????return ;
????????????????}
????????????????else{
????????????????????System.out.println("插入表達(dá)式失敗!");
????????????????????return ;
????????????????}
????????????????????
????????????}
????????????catch(Exception e){
????????????????System.out.println("插入表達(dá)式失敗!");
????????????}
?
????????}
????}
????public void clear(){
????????try{
????????????String sql="delete expression";
????????????pstmt=conn.prepareStatement(sql);
????????????int rst=pstmt.executeUpdate();
????????????if(rst!=0){
????????????????System.out.println("成功清空數(shù)據(jù)表");
????????????} ???????????
????????}
????????catch(Exception e){
????????????System.out.println("delete語句執(zhí)行失敗!");
????????}
????}
}
Javabean2:
package DBEx;
?
?
import java.util.*;
public class DBEx{
????public int from,to,ifChengChu;
????public int randomArr[]=new int[4];
????public Random ran=new Random();
????public char randomCh[]={'+','-','*','÷'};
????//生成表達(dá)式
????public String[] creaExpression(int f,int t,int choose,int ifChengChu){
????????from=f; to=t;
????????String ex[]=new String[5];
????????char operator;
????????if(ifChengChu==1){
????????????int oper=ran.nextInt(4);
????????????operator=randomCh[oper];
????????}
????????else{
????????????int oper=ran.nextInt(2);
????????????operator=randomCh[oper];
????????}
?
????????if(choose==1){
????????????for(int i=0;i<2;i++){
????????????????randomArr[i]=randomNum(from,to);
????????????}
????????????if(operator=='-'||operator=='÷'){
????????????????int ra=0,rb=0;
????????????????while(true){
????????????????????ra=randomNum(from,to);
????????????????????rb=randomNum(from,to);
????????????????????if(ra>=rb&&ra%rb==0)
????????????????????????break;
????????????????}
????????????????randomArr[0]=ra;
????????????????randomArr[1]=rb;
????????????}
?
????????????ex[0]=""+randomArr[0];
????????????ex[1]=""+operator;
????????????ex[2]=""+randomArr[1];
????????????ex[3]="=";
????????????int result=calcuInt(ex[0],ex[1],ex[2]);
????????????String s=""+result;
????????????ex[4]=s;
????????????return ex;
?
????????}
????????else
????????????return null;
????????
?
????}
????//范圍生成隨機(jī)數(shù)
????public int randomNum(int fromA,int toB){
????????int x=ran.nextInt(toB-fromA)+fromA+1;
????????return x;
????}
????public int calcuInt(String numleft,String oper,String numright){
????????int a=Integer.parseInt(numleft);
????????int b=Integer.parseInt(numright);
????????if(oper.equals("+"))
????????????return a+b;
????????else if(oper.equals("-"))
????????????return a-b;
????????else if(oper.equals("*"))
????????????return a*b;
????????else if(oper.equals("÷"))
????????????return a/b;
????????else
????????????return -1;
????}
}
Set.jsp
<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"
????pageEncoding="utf-8"%>
<html>
<head>
<title>在線答題</title>
</head>
<body>
????<center>
????????<h1 style="color:red">答題設(shè)置</h1>
????????????<form action="settodb.jsp">
????????????????<table border="0">
????????????????????<tr>
????????????????????????<td>數(shù)字范圍:</td>
????????????????????????<td>小<input type="text" name="from" id="f"></td><br>
????????????????????????<td>大<input type="text" name="to" id="t"></td><br>
????????????????????</tr>
????????????????????<tr>
????????????????????????<td>是否有乘除法:</td>
????????????????????????<td><input type="radio" name="ifChengChu" value="1" checked>是</td>
????????????????????????<td><input type="radio" name="ifChengChu" value="2">否</td>
????????????????????</tr>
????????????????</table>
????????????<br>
????????????????
????????????????<input type="button" value="確定" style="color:#BC8F8F" οnclick="check()">
????????????</form>
?
????</center>
<script type="text/javascript">
????var text=document.getElementById("f");
????text.οnkeyup=function(){
????????this.value=this.value.replace(/\D/g,'');
????}
</script>
<script type="text/javascript">
????var text=document.getElementById("t");
????text.οnkeyup=function(){
????????this.value=this.value.replace(/\D/g,'');
????}
</script>
<script language="javascript">
function check(){
????var f=document.forms[0].from.value;
????var t=document.forms[0].to.value;
????if(f==""||t==""){
????????alert("請輸入范圍!"); ?
????}
????else{
????????if((f>0&&f<=1000) && (t>0&&t<=1000)){
????????????if(f>=t){
????????????????alert("“小”中的 數(shù)應(yīng)小于“大”中的數(shù)!");
????????????}
????????????else
????????????????document.forms[0].submit();
????????}
????????else{
????????????alert("請輸入1-1000的正整數(shù)!");
????????}
????????
????}
}
</script>
</body>
</html>
Settodb.jsp
<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"
????pageEncoding="utf-8"%>
<html>
<head>
<script language="javascript">
</script>
</head>
?
<body>
<jsp:useBean id="dbex" class="DBEx.DBEx"/>
<jsp:useBean id="db" class="DBBean.DBbean"/>
<%
????db.clear();
????int from=Integer.parseInt(request.getParameter("from"));
????int to=Integer.parseInt(request.getParameter("to"));
????String ifChengChu=(String)request.getParameter("ifChengChu");
????int ifcc=0;
????if(ifChengChu.equals("1")){
????????ifcc=1;
????}
????if(ifChengChu.equals("2")){
????????ifcc=2;
????}
????out.println(from+" "+to+" "+ifcc);
????String ex[];
????for(int i=0;i<10;i++){
????????ex=new String[5];
????????ex=dbex.creaExpression(from,to,1,ifcc);
????????db.insertEx(ex);
?
????}
????response.setHeader("refresh", "1;url=answer.jsp");
%>
?
</body>
</html>
Answer1.jsp
<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"
????pageEncoding="utf-8"%>
<html>
<head>
<title>在線答題</title>
?
<script language="javascript">
????function result(){
????????var va=new Array(document.forms[0].value1.value,
?????????????????????????document.forms[0].value2.value,
?????????????????????????document.forms[0].value3.value,
?????????????????????????document.forms[0].value4.value,
?????????????????????????document.forms[0].value5.value,
?????????????????????????document.forms[0].value6.value,
?????????????????????????document.forms[0].value7.value,
?????????????????????????document.forms[0].value8.value,
?????????????????????????document.forms[0].value9.value,
?????????????????????????document.forms[0].value10.value);
????????var right=0;
????????for(var i=0;i<10;i++){
????????????if(va[i]==null||va[i]==""){
????????????????window.alert("還有題目沒做完!");
????????????????return;
????????????}
????????}
????????for(var i=0;i<10;i++){
????????????if(va[i]==res[i]){
????????????????right++;
????????????}
????????}
????????result="您做對了"+right+"道題目";
????????if(right<=6){
????????????result+=",不太理想,繼續(xù)加油!"
????????????window.alert(result);
????????????location=location;
????????} ???
????????if(right>6&&right<=9){
????????????result+=",不錯呦,繼續(xù)努力!";
????????????window.alert(result);
????????????location=location;
????????}
????????if(right==10){
????????????result+=",太棒啦,全對!(づ ̄ 3 ̄)づ"
????????????window.alert(result);
????????????location=location;
????????}
????????
????}
</script>
</head>
<body>
<jsp:useBean id="db" class="DBBean.DBbean"/>
<style type="text/css">
.biaoti {
????font-family: "方正蘭亭超細(xì)黑簡體";
????font-size: 30px;
????color: #93F;
}
</style>
<form action="">
<%
????Vector<String> v=new Vector<String>();
????v=db.getEx();
%>
<center>
<span class="biaoti">四則運(yùn)算答題界面</span>
<br>
<%=v.get(0) %><input type="text" name="value1" id="input"> <br><br>
<%=v.get(2) %><input type="text" name="value2" id="input2"> <br><br>
<%=v.get(4) %><input type="text" name="value3" id="input3"> <br><br>
<%=v.get(6) %><input type="text" name="value4" id="input4"> <br><br>
<%=v.get(8) %><input type="text" name="value5" id="input5"> <br><br>
<%=v.get(10)%><input type="text" name="value6" id="input6"> <br><br>
<%=v.get(12)%><input type="text" name="value7" id="input7"> <br><br>
<%=v.get(14)%><input type="text" name="value8" id="input8"> <br><br>
<%=v.get(16)%><input type="text" name="value9" id="input9"> <br><br>
<%=v.get(18)%><input type="text" name="value10" id="input10"><br><br>
<input type="Button" value="確認(rèn)" onClick="result()">
</center>
<script>
????var res=new Array("<%=v.get(1)%>", "<%=v.get(3)%>", "<%=v.get(5)%>", "<%=v.get(7)%>", "<%=v.get(9)%>",
??????????????????????"<%=v.get(11)%>","<%=v.get(13)%>","<%=v.get(15)%>","<%=v.get(17)%>","<%=v.get(19)%>");
</script>
</form>
<script type="text/javascript">
var text = document.getElementById("input");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input2");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input3");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input4");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input5");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input6");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input7");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input8");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input9");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var text = document.getElementById("input10");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
</body>
</html>
Answer2.jsp
<%@ page import="java.sql.*,java.util.*"?language="java"?contentType="text/html; charset=utf-8"
????pageEncoding="utf-8"%>
<html>
<head>
<title>在線答題</title>
<script language="javascript">
????function result(){
????????var?va=new?Array(document.forms[0].value1.value,
?????????????????????????document.forms[0].value2.value,
?????????????????????????document.forms[0].value3.value,
?????????????????????????document.forms[0].value4.value,
?????????????????????????document.forms[0].value5.value,
?????????????????????????document.forms[0].value6.value,
?????????????????????????document.forms[0].value7.value,
?????????????????????????document.forms[0].value8.value,
?????????????????????????document.forms[0].value9.value,
?????????????????????????document.forms[0].value10.value);
????????var?right=0;
????????for(var?i=0;i<10;i++){
????????????if(va[i]==null||va[i]==""){
????????????????window.alert("還有題目沒做完!");
????????????????return;
????????????}
????????}
????????for(var?i=0;i<10;i++){
????????????if(va[i]==res[i]){
????????????????right++;
????????????}
????????}
????????result="您做對了"+right+"道題目";
????????if(right<=6){
????????????result+=",不太理想,繼續(xù)加油!"
????????????window.alert(result);
????????????location=location;
????????}??
????????if(right>6&&right<=9){
????????????result+=",不錯呦,繼續(xù)努力!";
????????????window.alert(result);
????????????location=location;
????????}
????????if(right==10){
????????????result+=",太棒啦,全對!(づ ̄ 3 ̄)づ"
????????????window.alert(result);
????????????location=location;
????????}
?????????
????}
</script>
</head>
<body>
<jsp:useBean id="db"?class="DBBean.DBbean"/>
<form action="">
<%
????Vector<String> v=new?Vector<String>();
????v=db.getEx();
%>
<%=v.get(0) %><input type="text"?name="value1"?id="input"> <br><br>
<%=v.get(2) %><input type="text"?name="value2"?id="input2"> <br><br>
<%=v.get(4) %><input type="text"?name="value3"?id="input3"> <br><br>
<%=v.get(6) %><input type="text"?name="value4"?id="input4"> <br><br>
<%=v.get(8) %><input type="text"?name="value5"?id="input5"> <br><br>
<%=v.get(10)%><input type="text"?name="value6"?id="input6"> <br><br>
<%=v.get(12)%><input type="text"?name="value7"?id="input7"> <br><br>
<%=v.get(14)%><input type="text"?name="value8"?id="input8"> <br><br>
<%=v.get(16)%><input type="text"?name="value9"?id="input9"> <br><br>
<%=v.get(18)%><input type="text"?name="value10"?id="input10"><br><br>
<script>
????var?res=new?Array("<%=v.get(1)%>",?"<%=v.get(3)%>",?"<%=v.get(5)%>",?"<%=v.get(7)%>",?"<%=v.get(9)%>",
??????????????????????"<%=v.get(11)%>","<%=v.get(13)%>","<%=v.get(15)%>","<%=v.get(17)%>","<%=v.get(19)%>");
</script>
<input type="Button"?value="確認(rèn)"?onClick="result()">
</form>
<script type="text/javascript">
var?text = document.getElementById("input");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input2");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input3");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input4");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input5");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input6");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input7");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input8");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input9");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
<script type="text/javascript">
var?text = document.getElementById("input10");
text.onkeyup = function(){
this.value=this.value.replace(/\D/g,'');
}
</script>
</body>
</html>
轉(zhuǎn)載于:https://www.cnblogs.com/sunqw/p/6986307.html
總結(jié)
以上是生活随笔為你收集整理的课堂结对作业:二维数组(4)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记账软件APP用哪个,一看就知道
- 下一篇: CS01 BOM客制化屏幕增强