zoukankan      html  css  js  c++  java
  • 软件工程个人作业03

    程序设计思路:我们需要把数据库与我们的程序链接起来,所以我们运用了javaweb的技术来实现这个功能

    先将表达式求得的值放入数组,然后将用户输入的值与数组中的值进行比较,确定结果是否正确。在有多个

    运算符和括号的时候,可用用栈确定运算的优先级。用递归的思想计算表达式的值1.在进行不加括号的运算

    时,可以通过产生的表达式直接求得正确值,然后跟用户输入的值进行比较;2.有括号的运算时,我们可以

    通过循环求得每次循环所得值,并放入数组中;再通过判断循环后的运算符,来决定数组值之间的加减乘除,

    以求得最后正确值,然后跟用户输入的值进行比较。

    程序代码:

      1 <%@ page language="java" contentType="text/html; charset=utf-8"
      2 pageEncoding="utf-8"%>
      3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      4 <html>
      5 <head>
      6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      7 <title>结果</title>
      8 </head>
      9 <body background="picture/132.jpg">
     10 <%
     11 String[] s= (String[])session.getAttribute("v1");
     12 String[] answer= (String[])session.getAttribute("v2");
     13 String[] daan=new String[s.length];
     14 int count=0;//正确答案的个数
     15 for(int i=0;i<s.length;i++)
     16 {
     17 out.print("运算式为:");
     18 out.print(s[i]+" ");
     19 out.print("您的输入结果为:");
     20 daan[i]=request.getParameter("name"+i);
     21 out.print(daan[i]+" ");
     22 out.print("正确结果为:");
     23 out.print(answer[i]);
     24 if(Integer.parseInt(daan[i])==Integer.parseInt(answer[i]))
     25 {
     26 out.print("答对了,真棒!");
     27 count++;
     28 }
     29 else
     30 {
     31 out.print("答错了,真遗憾!");
     32 }
     33 out.print("<br>");
     34 }
     35 out.print("你一共答对的题目数:");
     36 out.print(count);
     37 %>
     38 </body>
     39 </html>
     40  
     41 <%@ page language="java" contentType="text/html; charset=utf-8"
     42 pageEncoding="utf-8"%>
     43 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     44 <html>
     45 <head>
     46 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     47 <title>首页</title>
     48 </head>
     49 <body background="picture/132.jpg">
     50 <form name="form1" method="post"action="ti.jsp">
     51 <center>四则运算</center>
     52 <table align="center">
     53 <tr>
     54 <td> 请输入要出题的题目数量: </td>
     55 <td> <input name="shuliang" type="text" id="shuliang"maxlength="5"></td>
     56 </tr>
     57 <tr>
     58 <td>请选择计算的难易程度:
     59 </td>
     60 <td>
     61 <select name="leixing">
     62 <option value=1>基础运算</option>
     63 <option value=2>高级运算</option>
     64 </select>
     65 </td>
     66 </tr>
     67 </table>
     68 <center><input type="submit"value="开始答题"></center>
     69 </form>
     70 </body>
     71 </html>
     72  
     73 <%@ page language="java" contentType="text/html; charset=utf-8"
     74 pageEncoding="utf-8"%>
     75 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     76 <html>
     77 <head>
     78 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     79 <title>Insert title here</title>
     80 </head>
     81 <body background="picture/132.jpg">
     82 <%
     83 String leixing=request.getParameter("leixing");
     84 if(Integer.parseInt(leixing)==1)
     85 {
     86 %>
     87  
     88 <%
     89  
     90 int answer; //所出题目的答案
     91 String j=request.getParameter("shuliang");//出的题的数量
     92 int shuliang= Integer.valueOf(j);
     93 String[] str=new String[shuliang];
     94 String[] daan=new String[shuliang];//用户输入的答案
     95 String[] answer1=new String[shuliang]; //计算之后的正确答案
     96 for(int i=0;i<shuliang;i++)
     97 {
     98 daan[i]="name"+i;
     99 //生成0-100之间的随机数
    100 int num1=(int)(Math.random()*100);
    101 int num2=(int)(Math.random()*100);
    102 int fuhao= (int)(Math.random()*4);
    103 if(fuhao==0)
    104 {
    105 str[i]=num1+"+"+num2+"=";
    106 answer=num1+num2;
    107 }
    108 else if(fuhao==1)
    109 {
    110 str[i]=num1+"-"+num2+"=";
    111 answer=num1-num2;
    112 }
    113 else if(fuhao==2)
    114 {
    115 str[i]=num1+"*"+num2+"=";
    116 answer=num1*num2;
    117 }
    118 else
    119 {
    120 str[i]=num1+"/"+num2+"=";
    121 answer=num1/num2;
    122 }
    123  
    124 answer1[i]=""+answer;
    125 out.print(str[i]);
    126  
    127  
    128 %>
    129 <br>
    130 <form name="form2"method="post"action="jieguo.jsp">
    131 请输入你的答案:<input name="<%=daan[i] %>" type="text" id="daan"maxlength="5">
    132 <br>
    133  
    134 <%
    135 }
    136 %>
    137 <%
    138 session.setAttribute("v1",str);
    139 session.setAttribute("v2",answer1);
    140 %>
    141 <input type="submit"value="确定">
    142 </form>
    143 <%
    144 }
    145 %>
    146  
    147 <%
    148 if(Integer.parseInt(leixing)==2)
    149 {
    150 int answer; //所出题目的答案
    151 String j=request.getParameter("shuliang");//出的题的数量
    152 int shuliang= Integer.valueOf(j);
    153 String[] str=new String[shuliang];
    154 String[] daan=new String[shuliang];//用户输入的答案
    155 String[] answer1=new String[shuliang]; //计算之后的正确答案
    156  
    157 for(int i=0;i<shuliang;i++)
    158 {
    159 daan[i]="name"+i;
    160 str[i]=""+(int)((Math.random()*100)); //在1-100之间随机产生一个数
    161 int num=(int)(Math.random()*4+2);
    162 int jisuan[]=new int[num+1];//用于保存中间结果
    163 jisuan[0]=Integer.parseInt(str[i]);
    164 char yunsuanfu[]=new char[num+1];
    165 for(int l=1;l<num;l++)
    166 {
    167 int fuhao= (int)(Math.random()*4);//用1-4代表符号,随机产生数字
    168 int num2=(int)(Math.random()*100);
    169 jisuan[l]=num2;
    170 if(fuhao==0)
    171 {
    172 str[i]+="+"+num2;
    173 yunsuanfu[l]='+';
    174 }
    175 if(fuhao==1)
    176 {
    177 str[i]+="-"+num2;
    178 yunsuanfu[l]='-';
    179 }
    180 if(fuhao==2)
    181 {
    182 str[i]+="*"+num2;
    183 yunsuanfu[l]='*';
    184 }
    185 if(fuhao==3)
    186 {
    187 str[i]+="/"+num2;
    188 yunsuanfu[l]='/';
    189 }
    190 }
    191 out.print(str[i]+"<br>");
    192 for(int l=1;l<num;l++)
    193 {
    194 if(yunsuanfu[l]=='*')
    195 {
    196 jisuan[l]=jisuan[l-1]*jisuan[l];
    197 jisuan[l-1]=0;
    198 yunsuanfu[l]=yunsuanfu[l-1];
    199 }
    200 else if(yunsuanfu[l]=='/')
    201 {
    202 jisuan[l]=jisuan[l-1]/jisuan[l];
    203 jisuan[l]=0;
    204 yunsuanfu[l]=yunsuanfu[l-1];
    205 }
    206 }
    207 for(int l=1;l<num;l++)
    208 {
    209 if(yunsuanfu[l]=='+')
    210 {
    211 jisuan[l]=jisuan[l-1]+jisuan[l];
    212 jisuan[l-1]=0;
    213 }
    214 else if(yunsuanfu[l]=='-')
    215 {
    216 jisuan[l]=jisuan[l-1]-jisuan[l];
    217 jisuan[l-1]=0;
    218 }
    219 }
    220 answer1[i]=""+jisuan[num-1];
    221 %>
    222 <br>
    223 <form name="form2"method="post"action="jieguo.jsp">
    224 请输入你的答案:<input name="<%=daan[i] %>" type="text" id="daan"maxlength="5">
    225 <br>
    226 <%
    227 }
    228 %>
    229 <%
    230 session.setAttribute("v1",str);
    231 session.setAttribute("v2",answer1);
    232 %>
    233 <input type="submit"value="确定">
    234 </form>
    235 <%
    236 }
    237 %>
    238  
    239 <table>
    240 <tr>
    241 </tr>
    242 </table>
    243 </body>
    244 </html>

    编程分析总结:

    这个程序连接上数据库,要求我们要完成对数据的记录,只要把结果写入到数据库中就好,这就要求我们一方面对编程要过关,还有一定的SQL语句能力,总的来说,对于我们二人感觉还是不太好做,

    但是通过这个实验也掌握到了很多的东西。

    两人合作的照片:

  • 相关阅读:
    【1】数据库表如何水平拆分和垂直拆分
    【JUC】JDK1.8源码分析之ReentrantReadWriteLock
    【1】【JUC】JDK1.8源码分析之ArrayBlockingQueue,LinkedBlockingQueue
    【JUC】CopyOnWriteArrayList
    <T extends Comparable<? super T>>什么意思
    深拷贝和浅拷贝及实现
    序列化和反序列化的底层实现原理
    willMoveToParentViewController和didMoveToParentViewController
    自定义 ViewController 容器转场
    iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
  • 原文地址:https://www.cnblogs.com/zeminzhang/p/7023145.html
Copyright © 2011-2022 走看看