博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算网页版
阅读量:5249 次
发布时间:2019-06-14

本文共 11110 字,大约阅读时间需要 37 分钟。

·主要思路:在完成控制出题界面后,根据选择控制输出,将答案计算出来,连接到数据库,其中还涉及到最大公约数计算分数运算。

源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
出题系统

出题系统

请输入出题数量:
请输入运算元数:
输入数值范围:

1.整数四则运算 2.真分数四则运算
选择: 有
有无乘除: 有
有无负数: 有
有无余数: 有
有无括号: 有
是否显示答案: 有

  

Yunsuan.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@   page   import= "size.com.* "%>
Insert title here<% JspWriter mout=pageContext.getOut();String zh = request.getParameter("shuliang");String zhh = request.getParameter("choose");String Min=request.getParameter("xiao");String Max=request.getParameter("da");String shu = request.getParameter("geshu");String chu = request.getParameter("chengchu");String hao=request.getParameter("kuohao");int x=Integer.parseInt(zh);int y=Integer.parseInt(zhh);int min=Integer.parseInt(Min);int max=Integer.parseInt(Max);int z=Integer.parseInt(shu);int xx=Integer.parseInt(chu);int t=Integer.parseInt(hao);int m,n,j,jj;char []ch=new char[4];int a1,b1;ch[0]='+';ch[1]='-';ch[2]='*';ch[3]='/';if(y==1){ int []M=new int[10]; String []N=new String[10]; for(int ii=1;ii<=x;ii++) { mout.print("30道题目"); mout.print("
"); String []A=new String[30]; a1=(int)(Math.random()*(z-1)+1); b1=a1+1; for(int i=0;i<30;i++) { A[i]=""; for(int o=0;o
"); }*/ StringBuffer temp = new StringBuffer(ss); int former = (int)(Math.random()*length+1); int end = (int)(Math.random()*length+1); while(num<=2&&former !=1&&end != length) { former = (int)(Math.random()*length+1); end = (int)(Math.random()*length+1); } if(former == 1) { temp.insert(former-1, '('); int next = (int)(Math.random()*num); while(next == 0) next = (int)(Math.random()*num); temp.insert(in[next]+1, ')'); end--; } if(former >1&&end
2) { int first = (int)(Math.random()*num);//括起来的第一个数 int next = (int)(Math.random()*num);//括起来的最后一个数 while(next-first<=1) { first = (int)(Math.random()*num);//括起来的第一个数 next = (int)(Math.random()*num);//括起来的最后一个数 } temp.insert(in[first]+1, '('); temp.insert(in[next]+1, ')'); } if(end == length) { temp.insert(end, ')'); int first = (int)(Math.random()*num); while(first == num-1) first = (int)(Math.random()*num); temp.insert(in[first]+1, '('); } ss = temp.toString(); A[iii]=ss; } } double[] K=new double[30]; double[] C=new double[30]; for(int i=0;i<30;i++) { if(t==1) { while(A[i].indexOf('(')!=-1) { int left=0; int right=A[i].length(); char op; for(int i4=0;i4
"); mout.print(strq); mout.print("
"); /* C[i]=YL.fun1(strq); B[i]=A[i].substring(0,left-1)+String.valueOf(C[i])+A[i].substring(right+1,A[i].length()-1);*/ } /*K[i]=YL.fun1(B[i]); mout.print("
"); mout.print(C[i]); mout.print("
");*/ } else K[i]=YL.fun1(B[i]); } for(int i=0;i<30;i++) { mout.print((i+1)+". "+A[i]); mout.print("
"); } mout.print("答案:"); mout.print("
"); for(int i=0;i<30;i++) { mout.print((i+1)+"、"+K[i]); mout.print("
"); } mout.print("-"+ii+"-"); mout.print("
"); }}if(y==2){ for(int ii=1;ii<=x;ii++) { int a,b,c,d; String aa,bb; mout.print("30道题目"); mout.print("
"); String []B=new String[30]; for(int i=0;i<30;i++) { a=(int)(Math.random()*100+1); b=(int)(Math.random()*100+1); if(a>b) aa=b+"/"+a; else if(a
d) bb=d+"/"+c; else if(c
"); } mout.print("-"+ii+"-"); mout.print("
"); mout.print("-"+ii+"-"); mout.print("
"); }}%>

  check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@   page   import= "size.com.* "%>
Insert title here<% JspWriter mout=pageContext.getOut();String zh = request.getParameter("shuliang");String zhh = request.getParameter("choose");String Min=request.getParameter("xiao");String Max=request.getParameter("da");String shu = request.getParameter("geshu");String chu = request.getParameter("chengchu");String hao=request.getParameter("kuohao");int x=Integer.parseInt(zh);int y=Integer.parseInt(zhh);int min=Integer.parseInt(Min);int max=Integer.parseInt(Max);int z=Integer.parseInt(shu);int xx=Integer.parseInt(chu);int t=Integer.parseInt(hao);int m,n,j,jj;char []ch=new char[4];int a1,b1;ch[0]='+';ch[1]='-';ch[2]='*';ch[3]='/';if(y==1){ int []M=new int[10]; String []N=new String[10]; for(int ii=1;ii<=x;ii++) { mout.print("30道题目"); mout.print("
"); String []A=new String[30]; a1=(int)(Math.random()*(z-1)+1); b1=a1+1; for(int i=0;i<30;i++) { A[i]=""; for(int o=0;o
"); }*/ StringBuffer temp = new StringBuffer(ss); int former = (int)(Math.random()*length+1); int end = (int)(Math.random()*length+1); while(num<=2&&former !=1&&end != length) { former = (int)(Math.random()*length+1); end = (int)(Math.random()*length+1); } if(former == 1) { temp.insert(former-1, '('); int next = (int)(Math.random()*num); while(next == 0) next = (int)(Math.random()*num); temp.insert(in[next]+1, ')'); end--; } if(former >1&&end
2) { int first = (int)(Math.random()*num);//括起来的第一个数 int next = (int)(Math.random()*num);//括起来的最后一个数 while(next-first<=1) { first = (int)(Math.random()*num);//括起来的第一个数 next = (int)(Math.random()*num);//括起来的最后一个数 } temp.insert(in[first]+1, '('); temp.insert(in[next]+1, ')'); } if(end == length) { temp.insert(end, ')'); int first = (int)(Math.random()*num); while(first == num-1) first = (int)(Math.random()*num); temp.insert(in[first]+1, '('); } ss = temp.toString(); A[iii]=ss; } } double[] K=new double[30]; double[] C=new double[30]; for(int i=0;i<30;i++) { if(t==1) { while(A[i].indexOf('(')!=-1) { int left=0; int right=A[i].length(); char op; for(int i4=0;i4
"); mout.print(strq); mout.print("
"); /* C[i]=YL.fun1(strq); B[i]=A[i].substring(0,left-1)+String.valueOf(C[i])+A[i].substring(right+1,A[i].length()-1);*/ } /*K[i]=YL.fun1(B[i]); mout.print("
"); mout.print(C[i]); mout.print("
");*/ } else K[i]=YL.fun1(B[i]); } for(int i=0;i<30;i++) { mout.print((i+1)+". "+A[i]); mout.print("
"); } mout.print("答案:"); mout.print("
"); for(int i=0;i<30;i++) { mout.print((i+1)+"、"+K[i]); mout.print("
"); } mout.print("-"+ii+"-"); mout.print("
"); }}if(y==2){ for(int ii=1;ii<=x;ii++) { int a,b,c,d; String aa,bb; mout.print("30道题目"); mout.print("
"); String []B=new String[30]; for(int i=0;i<30;i++) { a=(int)(Math.random()*100+1); b=(int)(Math.random()*100+1); if(a>b) aa=b+"/"+a; else if(a
d) bb=d+"/"+c; else if(c
"); } mout.print("-"+ii+"-"); mout.print("
"); mout.print("-"+ii+"-"); mout.print("
"); }}%>

  Caculate.class

package demo;import java.util.HashMap;import java.util.Map;import java.util.Stack;public class Caculate {    /*public static void main(String[] args) {    // TODO Auto-generated method stub    String str1="22+4*(2+3)";    double result=fun2(str1);    System.out.println(result);    }*/    public static Map pro=new HashMap();    public static void init()    {        pro.put('+', 1);        pro.put('-', 1);        pro.put('*', 2);        pro.put('÷', 2);    }    public static int getIndex(String str)    {       int index1=(str.indexOf('+')==-1?str.length():str.indexOf('+'));       int index2=(str.indexOf('-')==-1?str.length():str.indexOf('-'));       int index3=(str.indexOf('*')==-1?str.length():str.indexOf('*'));       int index4=(str.indexOf('÷')==-1?str.length():str.indexOf('÷'));       int index=index1
0) { int index=getIndex(str); st1.push(Double.parseDouble(str.substring(0,index))); if(index!=str.length()) { char op=str.charAt(index); str=str.substring(index+1); while(true) { if((int)pro.get(op)>fop) { st2.push(op); fop=(int)pro.get(op); break; } else { double num2= (double) st1.pop(); double num1=(double) st1.pop(); double result=cal((char)st2.pop(),num1,num2); st1.push(result); if(st2.size()==0) { st2.push(op); fop=(int)pro.get(op); break; } char cop=(char) st2.pop(); fop=(int)pro.get(cop); st2.push(cop); } } } else { break; } } while(st2.size()!=0) { double num2=(double) st1.pop(); double num1=(double) st1.pop(); char op=(char) st2.pop(); st1.push(cal(op,num1,num2)); } double result=(double) st1.pop(); return result; } public static double fun2(String str) { while(str.indexOf('(')!=-1) { int left=0; int right=str.length(); char op; for(int i=0;i

  fencal.class

package demo;public class fencal {    public static String fenmu(String ss,int n,int m)    {//n 几元,m 有无括号        ss = '='+ss+'=';        String result="";        String cal = "";        int num = n*2+1;        if(m == 1)        {            num = num + 2;        }        int length = ss.length();        int[] in = new int[num];//操作符下标数组        String[] str = new String[n];//分母数组        String[] str1 = new String[n];//分子数组                int i=0;//操作符计数器        int j=0;//字符串计数器        int z=0;//分母数组计数器        double fm=1;                for(j=0;j
0) { j=i-1; str2[j] = str2[j] + str2[i]; break; } } for(j=j+1;j

  Action.class

package demo;import java.sql.*;public class Action {    public void add(int num,String str1,String str2) throws SQLException{         Connection conn  = Main.getConn();  //获取数据库连接         Statement st = conn.createStatement();         String sql = "insert into calTable([number],[question],[answer]) values('"+ num +"','" + str1 + "','" + str2 + "')";         st.executeUpdate(sql);         st.close();         conn.close(); }}

  Main.class

package demo;import java.sql.*;public class Main {    public static Connection getConn(){       String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";      Connection dbConn = null;      String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Size";      String userName="sa";      String userPwd="123456";     try    {        Class.forName(driverName);        System.out.println("加载驱动成功!");    }catch(Exception e){        e.printStackTrace();        System.out.println("加载驱动失败!");    }    try{         dbConn=DriverManager.getConnection(dbURL,userName,userPwd);                     System.out.println("连接数据库成功!");    }catch(Exception e)    {        e.printStackTrace();        System.out.print("SQL Server连接失败!");    }    return dbConn;    } }

  

 

截图:

 

 

 

 总结:四则运算的完成是我和张家星同学一起完成的 ,虽然有些不足和不满意的地方,但是在以后会注意并改正。

 

转载于:https://www.cnblogs.com/ylx111/p/6686926.html

你可能感兴趣的文章
啊,我的程序为啥卡住啦
查看>>
Day 11:静态导入、增强for循环、可变参数的自动装箱与拆箱
查看>>
第三次scrum冲刺
查看>>
正则的限定符 ?
查看>>
找出如下数组中最大的元素和最小的元素,
查看>>
gulp 常见插件及作用
查看>>
div的浮动(float)
查看>>
我发誓以后绝对不再错过有Don Box参与的msdn tv
查看>>
打印网页内容
查看>>
利用github pages创建简单的网站
查看>>
如何使用VMWare共享Win7中的文件夹,对应Linux中的哪个目录下面?
查看>>
CentOS命令行连接带密码的wifi
查看>>
GetFileSaveName多参数用法
查看>>
Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决
查看>>
spring boot 接口返回值去掉为null的字段
查看>>
重载<<操作符
查看>>
PHP函数积累
查看>>
SIRO Challenge 状态压缩 + DP 未解
查看>>
【语文学习资料】议论文专题学案-复习向
查看>>
Linux中查看端口占用情况
查看>>