网页版四则运算(未全部完成)

这次作业一直在做,一直在拖着,总感觉心里亏欠点什么,但是人就是这样,一件事情本来做起来就没有太多成功的几率,就想着延长工期,那就一直拖着吧,拖得时间越久你就会越发清晰地意识到自己已经非常触头去做那件事情了,仿佛它成了你的软肋,仿佛你命中注定就该不会去解决它一般。幸好,我还有继续做下去的勇气。。。

———来自星星的感悟

实现思路:其实思路并不难。

1. 先编写一个运行界面HTML文件,用DW做非常简单。界面中包含定量的一些数据:比如参加运算的个数,运算数据的范围

2.以及一些用户输入的数据,如:计算结果

3.和运行界面返回的数据,如:生成的计算式,以及正确的计算结果,以及用户正确回答和错误回答的个数;

4.编写运行程序.jsp文件,参数从先编写好的HTML文件中传到.jsp文件中

5.具体实现方法以及详细步骤前面的习题中已经写过,前面使用的c++语言,这儿用的Java但是思想是一致的。

以下是实现代码:

index.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>四则运算计算器</title>
<style type="text/css">
<!--
a {
    font-family: Georgia, Times New Roman, Times, serif;
    font-weight: bold;
}
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
a:link {
    color: #0000FF;
}
a:visited {
    color: #FF00FF;
}
a:hover {
    color: #00FFFF;
}
a:active {
    color: #00FF55;
}
-->
</style></head>
<form action="Untitled-1.jsp" method="get">
</form><body background="1449af6eddc451daf9216940b6fd5266d21632e5.jpg">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="771" height="49" title="落花雨">
  <param name="movie" value="蒋蒋%20-%20落花雨%20%5Bmqms2%5D.mp3">
  <param name="quality" value="high">
  <embed src="蒋蒋%20-%20落花雨%20%5Bmqms2%5D.mp3" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="771" height="49"></embed>
</object>
<div align="center">
  <table width="40%"  border="2" cellpadding="1">
    <caption align="left">
    <div align="center" class="style1">
      <h2 align="center"><strong>四则运算计算器
      </strong></h2>
    </div>

    </caption>
    <tr>
      <th width="67%" bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">参加计算的数的个数:</th>
      <td width="33%" align="center" valign="top" bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#FFFFFF"><div align="center" class="style1">
<select name="number" size="1">
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<br/>
      </div></td>
    </tr>
    <tr>
      <th bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">参加计算的数据范围:</th>
      <td bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#2A3F55"><div align="center"><input type="text" name=fanwei/><br/>
</div></td>
    </tr>
    <tr>
      <th bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">生成结果:</th>
      <td bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#808080"><div align="center">
       <%
      request.setCharacterEncoding("utf-8");
      String shizi= request.getParameter("Suanshi");
      %>
      <%="shizi"%>
      <br/>
      </div></td>
    </tr>
    <tr>
      <th bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">您的计算结果:</th>
      <td bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#00FF00"><div align="center"><input type="text" name=jieguo/><br/>
      </div></td>
    </tr>
    <tr>
      <th bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">正确答案:</th>
      <td bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#FF00FF"><div align="center"><br/>
      </div></td>
    </tr>
    <tr>
      <th bordercolor="#D41F00" bgcolor="#C0C0C0" scope="row">总计:</th>
      <td bordercolor="#0000FF" background="../1449af6eddc451daf9216940b6fd5266d21632e5.jpg" bgcolor="#A0A0A4"><div align="center"><input type="text" name=sum/><br/>
      </div></td>
    </tr>
  </table>

  <h2 >
    <input type ="submit" name="submit" value="提交">
    <input type ="reset" name="rein" value="重置">
  </h2>
  <h2 >&nbsp;</h2>
</div>

</body>
</html>

.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
处理代码
</title>
</head>
<body>
<%      request.setCharacterEncoding("utf-8");
        String n = request.getParameter("number");
        int number=Integer.valueOf(n);
        String ra = request.getParameter("rightAs");
        double    rightAs=Double.valueOf(ra);
        String fw = request.getParameter("fanwei");
        int fanwei=Integer.valueOf(fw);
        String jg = request.getParameter("jieguo");
        double jieguo=Double.valueOf(jg);
%>
<%
class Did
{
     double Date[]=new double[10];//存放数据的数组
     char Operator[]=new char [11];//存放运算符的数组\
     char OperatorGo()//生成运算符的方法
     {
         double a;
         a = Math.random() % 4;
         if (a == 0)
         {
             return‘+‘;
         }
         if (a == 1)
         {
             return‘-‘;
         }
         if (a == 2)
         {
             return‘*‘;
         }
         else
         {
             return‘/‘;
         }

     }

char Brackets()
{
    return‘(‘;
}
void Cun(int number, int scope)//将生成的数据存到数组内,scope为数据范围
{
    int control=0;
    for (int i = 0; i < number; i++)
    {
        Date[i] =Math.random()%scope;
    }
    for (int j = 0; j < number +1; j++)
    {
        double m =Math.random()*6;
        if ((int)m==0&&control==0)
        {
            Operator[j]=Brackets();
            control++;
        }
        else
        {
            Operator[j] = OperatorGo();
        }

    }
}
void ChangeDate(int scope)
{
    for (int i = 0; i < 10; i++)
    {
        if (Date[i] == 0||Date[i]<1)
        {
            Date[i] = Math.random()%scope ;
        }
    }
}
void ChangeOpreator(int number)
{

    for (int i = 0; i < number; i++)
{

        if (Operator[i] == ‘(‘&&i<=number-2)

        {

            Operator[i+2] = ‘)‘;

        }

        if (Operator[i] == ‘(‘&&i >= number - 2)

        {

            Operator[i] = OperatorGo();

        }

    }
}
String  Output(int number, int scope)//输出计算式
{
    String Suanshi="";
    ChangeOpreator( number);
    ChangeDate(scope);

    for (int i = 0; i <number-1; i++)
    {
        Suanshi+=Date[i];
        if (Operator[i] == ‘(‘)
        {
            if (Operator[i - 1] == ‘+‘)
            {
                Suanshi=Suanshi+"+";
            }
            if (Operator[i - 1] == ‘-‘)
            {
                Suanshi=Suanshi+"-";
            }
            if (Operator[i - 1] == ‘*‘)
            {
                Suanshi=Suanshi+"×";
            }
            if (Operator[i - 1] == ‘/‘)
            {
                Suanshi=Suanshi+"÷";
            }
            System.out.println ( Operator[i]);
        }
        else if (Operator[i] == ‘)‘)
        {
            System.out.println ( Operator[i]);
            if (Operator[i - 1] == ‘+‘)
            {
                Suanshi=Suanshi+"+";
            }
            if (Operator[i - 1] == ‘-‘)
            {
                Suanshi=Suanshi+"-";
            }
            if (Operator[i - 1] == ‘ב)
            {
                Suanshi=Suanshi+"+";
            }
            if (Operator[i - 1] == ‘/‘)
            {
                Suanshi=Suanshi+"÷";
            }
        }
        else
        {
            Suanshi=Suanshi+ String.valueOf(Operator[i]);
        }
        ChangeOpreator(number);
        ChangeDate(scope);

    }
    return Suanshi;
}
//以上为生成算式部分
//下面是计算方法
double Calculate(int number)
{
    for (int k = 0; k < number - 1;k++)
    {
        if (Operator[k] == ‘(‘)
        {
            if (Operator[k + 1] == ‘+‘)
            {
                Date[k + 2] = Date[k + 1] + Date[k + 2];
                Date[k + 1] = 0;
                Operator[k] = ‘+‘;
                Operator[k + 2] = ‘+‘;
            }

            if (Operator[k + 1] == ‘-‘)
            {
                Date[k + 2] = Date[k + 1] - Date[k + 2];
                Date[k + 1] = 0;
                Operator[k] = ‘+‘;
                Operator[k + 2] = ‘+‘;
            }
            if (Operator[k + 1] == ‘*‘)
            {
                Date[k + 2] = Date[k + 1]*Date[k + 2];
                Date[k + 1] = 0;
                Operator[k] = ‘+‘;
                if (Operator[k - 1] == ‘+‘)
                {
                    Operator[k+1] = ‘+‘;
                }
                if (Operator[k - 1] == ‘-‘)
                {
                    Operator[k+1] = ‘-‘;
                }
                if (Operator[k - 1] == ‘*‘ )
                {
                    Date[k + 1] = 1;
                }

                if (Operator[k - 1] == ‘/‘)
                {
                    Date[k + 1] = 1;
                    Operator[k + 1] = ‘/‘;
                }
                     Operator[k + 2] = ‘+‘;
            }
            if (Operator[k + 1] == ‘/‘)
            {
                Date[k + 2] = Date[k + 1] / Date[k + 2];
                Date[k + 1] = 0;
                Operator[k] = ‘+‘;
                if (Operator[k - 1] == ‘+‘)
                {
                    Operator[k + 1] = ‘+‘;
                }
                if (Operator[k - 1] == ‘-‘)
                {
                    Operator[k + 1] = ‘-‘;
                }
                if (Operator[k - 1] == ‘*‘)
                {
                    Date[k + 1] = 1;
                }

                if (Operator[k - 1] == ‘/‘)
                {
                    Date[k + 1] = 1;
                    Operator[k + 1] = ‘/‘;
                }
                Operator[k + 2] = ‘+‘;
            }

        }
    }
    for (int i = 0; i < number - 1; i++)
    {
        if (Operator[i] == ‘*‘)
        {
            Date[i + 1] = Date[i] * Date[i + 1];
            Date[i] = 0;
            if (i == 0)
            {
                Operator[i] = ‘+‘;
            }
            if (Operator[i - 1] == ‘+‘)
            {
                Operator[i] = ‘+‘;
            }
            if (Operator[i - 1] ==‘-‘)
            {
                Operator[i] = ‘-‘;
            }
        }
        if (Operator[i] == ‘/‘)
        {
            Date[i + 1] = Date[i] / Date[i + 1];
            Date[i] = 0;
            if (i == 0)
            {
                Operator[i] = ‘+‘;
            }
            if (Operator[i - 1] == ‘+‘)
            {
                Operator[i] = ‘+‘;
            }
            if (Operator[i - 1] == ‘-‘)
            {
                Operator[i] = ‘-‘;
            }
        }

    }
    for (int j = 0; j < number - 1; j++)
    {
        if (Operator[j] == ‘+‘)
        {
            Date[j + 1] = Date[j] + Date[j + 1];
            Date[j] = 0;
        }
        if (Operator[j] == ‘-‘)
        {
            Date[j + 1] = Date[j] - Date[j + 1];
            Date[j] = 0;
        }
    }
    return Date[number - 1];

}

}
 %>
 <% class Do
 {

     public void main(String args[])

     {
        Did a=new Did();
        String Suansi;
        double Rightas;
        int R = 0, E = 0;
        for (int k = 0; k <number; k++)
        {
            a.Cun(number, fanwei);
            Suansi=a.Output(number, fanwei);
            Rightas=a.Calculate(number);

       }
   }
 }
 %>
 <jsp:forward page="zuoye.htm">
 </jsp:forward>
</body>
</html>

文件运行结果截图:

时间: 2024-10-04 00:06:00

网页版四则运算(未全部完成)的相关文章

网页版的四则运算出题

用javaweb编写的网页版的四则运算出题 这个网页自己可以控制总的出题数目,以及自己所要要求的每行输出的个数, 之后再出题中应用到了随机数,并且在代码中,保证每一道题不是重复的,在一次做题中仅仅出现一次,并且自己还设定了相应的出题规则. 主要代码如下主要分为四个界面. 界面1: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8&qu

结对作业:四则运算网页版

coding克隆仓地址:https://git.coding.net/huyifeng1998/jieduixiangmu.git 一.预期PSP: 二.结对编程对接口的设计 information hiding: 信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的. 我们在结对项目中将各种经常用到的类和方法放在外联,而不是内嵌在一个类中,这样每个类分工明确,便于修改.信息隐藏同时体现在各种类.算法对用户不可见,能隐藏复杂度

Pongo网页版JavaScript源代码及设计思路

1.游戏背景介绍(写在前面的废话): 五月初的某天,看到某网推荐了这款游戏,Pongo,看着还不错的样子就用ipad下下来试玩了下,玩了两局感觉还错挺过瘾的,因为是手欠类游戏嘛大家懂的. 但是没一会发现游戏在ipad似乎有些bug,玩一会就会卡住然后只能强退了,真是揪心,记录还等着破呢. 怎么办?玩游戏不如玩自己的游戏的念头又邪恶的出现了,然后就把pad丢给了朋友虐心去,我默默回到电脑前开始动手自己写个不会卡的. 大概两小时吧,写出了基本框架,然后扔sinaapp里试了下效果基本能玩就洗洗睡了.

网页版批量文件重命名

功能:这是一个网页版的文件批量重命名 操作步骤: 输入文件所在的绝对路径, 输入你想要替换的关键字, 输入你想要用什么字符来替换他(可为空), 点击确定,文件将会批量被重命名, 点击撤回就会还原出起初的文件名字, 点击清空主要是一键清除文本框里面的内容. 总的有1个jsp,四个Java程序共同完成这个功能: start.jsp(显示界面)   CodeFilter.java(过滤器,主要负责编码)   ReceiveStartServlet.java(接受启动,进行文件操作) RevokeSer

利用 JavaScript SDK 部署网页版“Facebook 登录”

利用 JavaScript SDK 部署网页版"Facebook 登录" 通过采用 Javascript 版 Facebook SDK 的"Facebook 登录",用户可以使用 Facebook 凭据登录您的网页.即使您因为一些原因而无法使用我们的 JavaScript SDK,也一样可以实施"Facebook 登录". 要在不使用 JavaScript SDK 的情况下实施"Facebook 登录",请参阅手动构建登录流程

网页版批量提取目录下特定文件类型

功能: 这是一个网页版的文件批量提取特定目录下的某种类型的文件的功能. 初始化页面文本框中值为空,当输入完成确认后,文本框中数据不会发生变化,撤销也不会发生变化,点击清空按钮则全部清空. 主要思路: 1.文本框中的值用(String)session.getAttribute()来填充,第一次打开界面,用if语句来判断,显示空,跳转过来的就显示第一次输入的值. 2.ReceiveStartServlet.java,RevokeServlet.java,ClearServlet.java都跳转到起始

通过网页版邮箱的实现“联系我们”

最近的项目中有一个监督投诉的栏目.这块的初始设计和其它站点类似,就是通过"mailto:邮件地址" 实现这个功能.这样能够实现本地client的响应. 可是.客户对这个方式不惬意.事实上我们细致想想也是,对于普通的网友,他们使用outlook或者Foxmail的比例是相对低的,大部分人使用的是网页版的邮箱. 所以.把监督投诉的这个功能设置成跳转邮箱登录页面相对更加的人性化. 以下就讲一下我是怎么实现的. 我把页面设置成了类似如图的样式: 然后依据用户输入邮箱.跳转到对应的邮箱登录页面.

基于jQuery仿QQ音乐播放器网页版代码

基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="m_player" id="divplayer" role="application" onselectstart="return false" style="left: 0px;"> <div class=&

游戏——网页版别踩白块

一 项目简介 主要知识点:JavaScript.HTML.CSS这是一个主要用JS实现的网页版小游戏,游戏规则很简单,通过点击不断下落的黑块来消灭它并获取分数,如果不幸黑块掉落下来或点到了白色区域那么游戏就会终止.游戏截图如下: 二 游戏框架 整个游戏可分为以下几个步骤实现:1. HTML和CSS画出静态的游戏框架:2. DOM结构说明:游戏元素使用嵌套的div元素来实现,是一个4*4的方格地图:最外层容器main(一个) > 次外层容器container(一个) > 行容器row(四行) &