四则运算二(java web)
最近我和我的小伙伴yaoyali结成对子,共同写网页版的四则运算。虽然现在还没弄好,但是比起上次用纯java写的四则运算有了很大改进。
一.存放四则运算题目和答案的类
package com.jaovo.msg.model;
public class DoubleOperation {
private static int operationNumber;
private static double[] result;
private static String[] question;
public static String[] getQuestion() {
return question;
}
public static void setQuestion(String[] question) {
DoubleOperation.question = question;
}
public int getOperationNumber() {
return operationNumber;
}
public void setOperationNumber(int operationNumber) {
this.operationNumber = operationNumber;
}
public double[] getResult() {
return result;
}
public void setResult(double[] result) {
this.result = result;
}
}
二.Welcom页面
@charset "UTF-8";
/****四则运算题目表格(<table>)****/
.box{
margin-top: 50px;
}
/****结果输入框(<input>)****/
.result{
width: 60px;
padding: 5px;
border:none;
font-size:20px;
border-bottom: solid yellowgreen 5px;
text-align:center;
}
/****题目(<td>)****/
.expr{
font-size: x-large;
} /****非分数/运算符(<div>)*****/
.nomal{
text-align:center;
float:left;
position: relative;
top: 16px;
margin-left: 3px;
margin-right: 3px;
width="20px"
}
/****分数(<div>)****/
.fraction{
text-align:center;
float: left;
margin-left:3px;
margin-right: 3px;
width="20px"
}
/****题目选择*****/
.option{
text-align: center;
}
/******你准备好了吗?按钮******/
.submit1{
padding-top: 10px;
padding-bottom: 10px;
padding-left: 20px;
padding-right: 20px;
background: #C90;
font-family: "微软雅黑";
font-weight: bold;
font-size: 20px;
}
/*****提交按钮*****/
.submit{
padding-top: 10px;
padding-bottom: 10px;
padding-left: 20px;
padding-right: 20px;
border-radius: 5px;
background: cornflowerblue;
border: none;
cursor: pointer;
color:lightyellow;
font-family: "微软雅黑";
font-weight: bold;
font-size: 20px;
}
/******计时器*******/
.timer{
position:fixed;
top: 10px;
right: 10px;
border: none;
width:50px;
text-align: right;
background: none;
}
.pause{
position:fixed;
top: 30px;
right: 10px;
}
/****题目选项****/
.option{
margin-left:auto;
margin-right:auto;
width:600px;
margin-top: 130px;
border:dashed #9ACD32 2px;
padding-top: 100px;
padding-bottom: 100px;
}
/****答题按钮*****/
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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">
<link rel="stylesheet" href="css/style.css"/>
<title>小学生四则运算</title>
<style type="text/css">
body
{
background-image:url(image/2.jpg);
}
#p1{text - indent:2em;text - align:center;font:italic 35px/40px 幼圆}
</style>
</head>
<body>
<p id="p1">欢迎小朋友来到小猪佩奇的数学乐园,快跟小猪佩奇一起去冒险吧!</p>
<form action="choose.jsp" class="option">
<button class="submit1" style="margin-top:60px">你准备好了吗?</button>
</form>
</body>
</html>
结果截图

三.选择出题数量及题目种类
choose.jsp和Connect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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">
<link rel="stylesheet" href="css/style.css"/>
<title>小学生四则运算</title>
<style type="text/css">
body{
background-image:url(image/4.jpg);
}
</style>
</head>
<body>
<div style="text-align:right;">
<a href="Welcome.jsp">退出</a><br><br>
</div>
<form action="Connect.jsp" class="option">
<center><h2>题目定制</h2></center>
<p>选择题目类型:
<select name="elementNum">
<option>2</option>
<option>3</option>
</select>元运算<br /></p>
选择题目数量:
<input name="count" value="10" type="radio" />10
<input name="count" value="20" type="radio" />20
<input name="count" value="30" type="radio" />30
<input name="count" value="40" type="radio" />40
<input name="count" value="50" type="radio" />50
<input name="count" value="5000" type="radio" />5000<br/>
<input name="count" value="1000000" type="radio" />10000000(极限测试,慎选!!)
<br /><br />
<button class="submit" style="margin-top:50px">开始答题!</button>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
<%
String type=request.getParameter("elementNum");
String OperationNumber=request.getParameter("count");
if(OperationNumber==null||"".equals(OperationNumber))
{
OperationNumber="10";
}
if(type.equals("2"))
{
response.sendRedirect("DoubleOperation.jsp?OperationNumber="+OperationNumber);
}
else
{
response.sendRedirect("ThreeOperation.jsp?OperationNumber="+OperationNumber);
} %> </body>
</html>

四.二元四则运算
DoubleOperation.jsp
<%@ page import="java.util.Random" %>
<%@ page import="java.lang.Math" %>
<%@ page import="com.jaovo.msg.model.DoubleOperation" %>
<%@ page import="java.math.BigInteger" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
<form action="doDoubleOperation.jsp" method="post">
<div style="text-align:right;">
<a href="choose.jsp">题目定制</a>
<a href="Welcome.jsp">退出</a><br><br>
</div>
<%
int character=0;//运算符+,-,*,/
int num1=0;//运算式中第一个数
int num2=0;//运算式中第二个数
int correct=0;//计算正确的数目
int error=0;//计算错误的数目
String operat=null;//计算式
Random random = new Random();
int Endtime=1; //跳转时间
int operationNumber=Integer.parseInt(request.getParameter("OperationNumber"));//打印题目的数量
String question[]=new String[operationNumber];
double result[]=new double[operationNumber];//计算式的结果
for(int i=0;i<operationNumber;i++)//初始化计算式的结果
{
result[i]=0;
question[i]=null;
} DoubleOperation doubleoperation=new DoubleOperation();//初始化.java文件中存储的计算公式个数,问题,答案
doubleoperation.setOperationNumber(operationNumber);
doubleoperation.setQuestion(question);
doubleoperation.setResult(result); for(int i=0;i<operationNumber;i++)
{ character=random.nextInt(4)%4+1;
if(character==1)//计算加法
{
num1=random.nextInt(100)%100;//随机出一个0~100的数
num2=random.nextInt(100)%100;
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"+"+number2+"=";
result[i]=num1+num2;
}
else if(character==2)//计算减法
{
num1=random.nextInt(100)%100;//随机出一个1~100的数
if(num1==0)
num1=num1+2;//若num1=0,则加2
num2=(int)random.nextInt(num1)%(num1);//随机出一个0~num1的数
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"-"+number2+"=";
result[i]=num1-num2;
}
else if(character==3)//计算乘法
{
num1=random.nextInt(9)%9;//随机出一个0~9的数
num2=random.nextInt(9)%9;
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"*"+number2+"=";
result[i]=num1*num2;
}
else //计算除法
{
do{
num1=random.nextInt(81)%81;//随机出一个0~81的数
if(num1>9)
num2=random.nextInt(9)%9;
else
{
if(num1==0)
num1++;
num2=(int)random.nextInt(num1)%(num1);
}
if(num2==0)//当num2=0再重新生成num2
{
num2=num2+1;
}
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"/"+number2+"=";
result[i]=num1/num2;
}while((result[i]>=10)||(num1%num2!=0));//商为10以内的数 } if(Double.valueOf(result[i])>100) {//如果结果大于100或小数位数大于1则不输出
i--;
}
else {
question[i]=operat;
%>
<%=operat %><input type="text" name="child_result<%=i %>" ><br> <br> <% }
} %>
<input type="submit" value="提交" name="提交"> <% doubleoperation.setOperationNumber(operationNumber);
doubleoperation.setQuestion(question);
doubleoperation.setResult(result); %> <%-- <meta http-equiv="refresh" content ="<%=Endtime*60 %>;url=doDoubleOperation.jsp"> --%>
<!-- Endtime分钟后跳转到结果界面 -->
</form>
</body>
</html>

doDoubleOperation.jsp
<%@ page import="com.jaovo.msg.model.DoubleOperation" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title> </head>
<body>
<div style="text-align:right;">
<a href="choose.jsp">题目定制</a>
<a href="Welcome.jsp">退出</a><br><br>
</div> <%
int correct=0;//计算正确的数目
int error=0;//计算错误的数目
int nullerror=0;//没答题的数目
DoubleOperation doubleoperation=new DoubleOperation();
double[] result=doubleoperation.getResult();
String[] question=doubleoperation.getQuestion();
int operationNumber=doubleoperation.getOperationNumber();
System.out.println("count="+operationNumber);
for(int i=0;i<operationNumber;i++)
{
String child_result=request.getParameter("child_result"+i);
%> <%=question[i] %><%=child_result %>
<%
if((null==child_result)||("".equals(child_result)))
{
nullerror++;
%>
正确答案是<%=result[i]%><br><br>
<%
}
else
{
double child_result2=Double.valueOf(child_result);
if(child_result2==result[i])
{
correct++;
%>
√<br><br>
<%
}
else
{
error++;
%>
× 正确答案是<%=result[i]%><br><br>
<%
}
}
}
%>
<!-- <iframe src='DoubleOperation.jsp'/> -->
恭喜你!答对了<%=correct %>道题,答错了<%=error %>道题,没答<%=nullerror %>道题!!!
</body>
</html>

四.三元运算
ThreeOperation.jsp
<%@ page import="java.util.Random" %>
<%@ page import="java.lang.Math" %>
<%@ page import="com.jaovo.msg.model.DoubleOperation" %>
<%@ page import="java.math.BigInteger" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
<form action="doDoubleOperation.jsp" method="post">
<div style="text-align:right;">
<a href="choose.jsp">题目定制</a>
<a href="Welcome.jsp">退出</a><br><br>
</div> <%
int character1=0;//第一个运算符+,-,*,/
int character2=0;//第二个运算符
int num1=0;//运算式中第一个数
int num2=0;//运算式中第二个数
int num3=0;//运算式中的第三个数
int correct=0;//计算正确的数目
int error=0;//计算错误的数目
String operat=null;//计算式
int operationNumber=Integer.parseInt(request.getParameter("OperationNumber"));//打印题目的数量
String question[]=new String[operationNumber];
double result[]=new double[operationNumber];//计算式的结果
Random random = new Random();
int Endtime=1; //跳转时间 for(int i=0;i<operationNumber;i++)//初始化计算式的结果
{
result[i]=0;
question[i]=null;
} DoubleOperation doubleoperation=new DoubleOperation();//初始化.java文件中存储的计算公式个数,问题,答案
doubleoperation.setOperationNumber(operationNumber);
doubleoperation.setQuestion(question);
doubleoperation.setResult(result); for(int i=0;i<operationNumber;i++)
{ character1=random.nextInt(4)%4+1;
if(character1==1)//计算加法
{
num1=random.nextInt(100)%100;//随机出一个0~100的数
num2=random.nextInt(100)%100;
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"+"+number2;
result[i]=num1+num2;
}
else if(character1==2)//计算减法
{
num1=random.nextInt(100)%100;//随机出一个1~100的数
if(num1==0)
num1=num1+2;//若num1=0,则加2
num2=(int)random.nextInt(num1)%(num1);//随机出一个0~num1的数
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"-"+number2;
result[i]=num1-num2;
}
else if(character1==3)//计算乘法
{
num1=random.nextInt(9)%9;//随机出一个0~9的数
num2=random.nextInt(9)%9;
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"*"+number2;
result[i]=num1*num2;
}
else //计算除法
{
do{
num1=random.nextInt(81)%81;//随机出一个0~81的数
if(num1>9)
num2=random.nextInt(9)%9;
else
{
if(num1==0)
num1++;
num2=(int)random.nextInt(num1)%(num1);
}
if(num2==0)//当num2=0再重新生成num2
{
num2=num2+1;
}
String number1=String.valueOf(num1);
String number2=String.valueOf(num2);
operat="第("+(i+1)+")题"+number1+"/"+number2;
result[i]=num1/num2;
}while((result[i]>=10)||(num1%num2!=0));//商为10以内的数 } character2=random.nextInt(4)%4+1;
if(character2==1)//计算第二个加号
{
num3=random.nextInt(100)%100;
String number3=String.valueOf(num3);
operat=operat+"+"+num3+"=";
result[i]=result[i]+num3;
}
else if(character2==2)//第二个运算符是减号
{
if(result[i]==0)
result[i]=result[i]+2;
if(result[i]<100){
num3=(int)random.nextInt((int)result[i])%((int)result[i]);//随机出一个小于被减数的数
}
else
{
num3=random.nextInt(100)%100;
}
String number3=String.valueOf(num3);
operat=operat+"-"+num3+"=";
result[i]=result[i]-num3;
}
else if(character2==3)//乘号
{
if(character1==2)//若第一个运算符是减号,则再随机出来一个第二个数与第三个随机的数小于第二个数 num1>=num2*num3 num3<=num1/num2
{
if(num2>9)
{
num2=(int)random.nextInt(9)%(9);
}
if(num1==0)
num3=0;
else
{
if(num2==0) num2=num2+1;
int num4=num1/num2;
num3=(int)random.nextInt(num4)%(num4);
}
if(num3>9)
{
num3=(int)random.nextInt(9)%(9);
}
String number3=String.valueOf(num3);
operat="第("+(i+1)+")题"+num1+"-"+num2+"*"+num3+"=";
result[i]=num1-(num2*num3);
}
else //第一个符号是加乘除。若是加,则先计算num2与num3,若是乘除,则计算顺序不变
{
if(character1==1){//第一个运算符是加号
num3=(int)random.nextInt(100)%(100);
String number3=String.valueOf(num3);
operat=operat+"*"+num3+"=";
result[i]=num1+(num2*num3);
}
else if(character1==3)//第一个符号是乘号,num1*num2<=9
{
String number2,number3;
do{
num2=(int)random.nextInt(9)%(9);
result[i]=num1*num2;
System.out.println("连乘"+result[i]);
number2=String.valueOf(num2);
}while(result[i]>9);
num3=(int)random.nextInt(9)%(9);
number3=String.valueOf(num3);
operat="第("+(i+1)+")题"+num1+"*"+num2+"*"+num3+"=";
result[i]=num1*num2*num3;
}
else {//第一个符号是除号
num3=(int)random.nextInt(9)%(9);
String number3=String.valueOf(num3);
operat=operat+"*"+num3+"=";
result[i]=result[i]*num3;
}
}
}
else//第二个运算符是除号
{ if(num2>81){//第二个符号是除号
num2=(int)random.nextInt(81)%(81);
}
if(character1==1)//第一个运算符是加号,先算num2/num3,再算num+(num2/num3)
{
String number3,number2;
if(num2>81){//第二个符号是除号
num2=(int)random.nextInt(81)%(81);
}
do{ if(num2>9)
num3=random.nextInt(9)%9;
else
{
if(num2==0)
num2++;
num3=(int)random.nextInt(num2)%(num2);
}
if(num3==0)
{
num3=num3+1;
}
number3=String.valueOf(num3);
num2=random.nextInt(81)%(81);
}while(((num2/num3)>=10)||(num2%num3!=0));//商为10以内的数
operat="第("+(i+1)+")题"+num1+"+"+num2+"/"+num3+"=";
result[i]=num1+(num2/num3);
}
else if(character1==2)//第一个运算式减号,则num1-num2/num3
{
String number3=null;
int k=0;
if(num2>81){//第二个符号是除号
num2=(int)random.nextInt(81)%(81);
}
do{
if(num2>9)
num3=random.nextInt(9)%9;
else
{
if(num2==0)
num2++;
num3=(int)random.nextInt(num2)%(num2);
} if(num3==0)
{
num3=num3+1;
}
number3=String.valueOf(num3);
num2=(int)random.nextInt(81)%(81); }while(((num2/num3)>=10)||(num2%num3!=0)||((num2/num3)>num1));//商为10以内的数
operat="第("+(i+1)+")题"+num1+"-"+num2+"/"+num3+"=";
result[i]=num1-(num2/num3);
}
else if(character1==4)//第一个运算符是除号,按顺序计算
{
String number3;
do{
if(result[i]>9)
num3=random.nextInt(9)%9;
else
{
if(result[i]==0)
num2++;
num3=(int)random.nextInt((int)result[i])%((int)result[i]);
}
if(num3==0)
{
num3=num3+1;
}
number3=String.valueOf(num3); }while(((result[i]/num3)>=10)||(result[i]%num3!=0));//商为10以内的数
operat=operat+"/"+number3+"=";
result[i]=result[i]/num3;
}
else //第一个运算符是乘号,按顺序计算
{
do{
if(result[i]>9)
num3=random.nextInt(9)%9;
else
{
if(result[i]==0)
result[i]++;
num3=(int)random.nextInt((int)result[i])%((int)result[i]);
}
if(num3==0)
{
num3=num3+1;
}
String number3=String.valueOf(num3);
}while(((result[i]/num3)>=10)||(result[i]%num3!=0));//商为10以内的数
operat=operat+"/"+num3+"=";
result[i]=result[i]/num3;
}
}
if(Double.valueOf(result[i])>100) {//如果结果大于100或小数位数大于1则不输出
i--;
}
else {
question[i]=operat;
System.out.println(operat+result[i]);
%>
<%=operat %><input type="text" name="child_result<%=i %>" ><br> <br>
<% }
} %>
<input type="submit" value="提交" name="提交"> <% doubleoperation.setOperationNumber(operationNumber);
doubleoperation.setQuestion(question);
doubleoperation.setResult(result); %>
</form>
</body>
</html>

doThreeOperation.jsp
<%@ page import="com.jaovo.msg.model.DoubleOperation" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<div style="text-align:right;">
<a href="choose.jsp">题目定制</a>
<a href="Welcome.jsp">退出</a><br><br>
</div> <%
int correct=0;//计算正确的数目
int error=0;//计算错误的数目
int nullerror=0;//没答题的数目
DoubleOperation doubleoperation=new DoubleOperation();
double[] result=doubleoperation.getResult();
String[] question=doubleoperation.getQuestion();
int operationNumber=doubleoperation.getOperationNumber();
System.out.println("count="+operationNumber);
for(int i=0;i<operationNumber;i++)
{
String child_result=request.getParameter("child_result"+i);
%> <%=question[i] %><%=child_result %>
<%
if((null==child_result)||("".equals(child_result)))
{
nullerror++;
%>
正确答案是<%=result[i] %><br><br>
<%
}
else
{
double child_result2=Double.valueOf(child_result);
if(child_result2==result[i])
{
correct++;
%>
√<br><br>
<%
}
else
{
error++;
%>
× 正确答案是<%=result[i]%><br><br>
<%
}
}
} %>
恭喜你!答对了<%=correct %>道题,答错了<%=error %>道题,没答<%=nullerror %>道题!!! </body>
</html>

四则运算二(java web)的更多相关文章
- Java Web高性能开发(二)
今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...
- Java Web 前端高性能优化(二)
一.上文回顾 上回我们主要从图片的合并.压缩等方面介绍前端性能优化问题(详见Java Web 前端高性能优化(一)) 本次我们主要从图像BASE64 编码.GZIP压缩.懒加载与预加载以及 OneAP ...
- JAVA Web 之 struts2文件上传下载演示(二)(转)
JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...
- Java Web项目(Extjs)报错二
1.Java Web项目(Extjs)报错二 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ...
- Java Web入门学习(二) Eclipse的配置
Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后 ...
- java web 二维码生成
pom支持: <!-- 二维码支持包 start--> <dependency> <groupId>com.google.zxing</groupId> ...
- Java Web Servlet知识点讲解(二)
一.定义Servlet: public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpSer ...
- Java Web学习(十二)Tomcat核心
一.引言 其实按道理来说,学习Java web应该在前面的篇幅就写有关tomcat相关的知识点,不过近期看了一些资料,觉得以前仅仅只是知道用tomcat去发布我的项目,一些细节的东西也没有好好总结,这 ...
- Java web与web gis学习笔记(二)——百度地图API调用
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
随机推荐
- Workerman安装流程
第一步检测安装环境 curl -Ss http://www.workerman.net/check.php | php 操作结果显示 报错了 需要找到php.ini文件 解决办法如下: 打开 php ...
- oracle Instant Client install
Installation See the Instant Client Home Page for more information. Installation of ZIP files: 1. Do ...
- 结合Mysql和kettle邮件发送日常报表_20161001
十一假期 参加婚礼 稍晚点发博 整体流程步骤是: 写SQL-导出到excel设定excel模板调整格式-设置kettle转换--设置kettle邮件作业--完成 第一.写SQL 保持最近12个周的数据 ...
- AtCoder Grand Contest 002 F:Leftmost Ball
题目传送门:https://agc002.contest.atcoder.jp/tasks/agc002_f 题目翻译 你有\(n*k\)个球,这些球一共有\(n\)种颜色,每种颜色有\(k\)个,然 ...
- JAVA,MYSQL,ORACLE的数据类型对比
MySQL Data Type Oracle Data Type Java BIGINT NUMBER(19, 0) java.lang.Long BIT RAW byte[] BLOB BLOB, ...
- saltstack syndic安装配置使用
salt-syndic是做神马的呢?如果大家知道zabbix proxy的话那就可以很容易理解了,syndic的意思为理事,其实如果叫salt-proxy的话那就更好理解了,它就是一层代理,如同zab ...
- Lagom学习 四 CompletionStage
Future: Java 8 之前的 Java 版本功能较弱,仅支持两种用法:要么检查 future 是否已经完成,要么等待 future 完成; Java 8 增加了 CompletableFutu ...
- Jmeter查看结果树Unicode编码转中文方法
本文为转载微信公众号文章,如作者发现后不愿意,请联系我进行删除 在jmeter工具的使用中,不管是测试接口还是调试性能时,查看结果树必不可少,然而在查看响应数据时,其中的中文经常以Unicode的编码 ...
- 《SpringBoot揭秘 快速构建微服务体系》读后感(一)
SpringIOC IOC有两种方式:一种是DI,另一种是DL,即Dependency Lookup(依赖查找).前者是当前软件实体被动接受其依赖的其他组件被IoC容器注入,而后者则是当前软件实体主动 ...
- go语言中将函数作为变量传递
在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用,通过下面这个例子我们可以看到test ...