ieda 破解中如何使用juint方法

&>&juint-4.10
juint-4.10
上传大小:213KB
juint-4.10
juint-4.10
juint-4.10
juint-4.10
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
juint-4.10
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
dimensions_
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
juint-4.10void ddelay(uint k) { uint i,j; for(i=0;i&k;i++) { for(j=0;j&60;j++) {;} } }高手帮忙解释下这个函数_百度知道
void ddelay(uint k) { uint i,j; for(i=0;i&k;i++) { for(j=0;j&60;j++) {;} } }高手帮忙解释下这个函数
我有更好的答案
一个名叫 ddlelay的函数 参量一个 k双循环 i从0到k-1 j从0到59 然后什么都不做 就结束函数了
采纳率:41%
void ddelay(uint k) {
for(i=0;i&k;i++)
for(j = 0; j & 60; j++)
} }你看这个for循环什么都没做,叫做空循环,这时CPU在空跑而没有处理其他事。这种使用方法就叫做软件延时,一般都是几微秒到几十毫秒,这个函数延时的时间是60*k 个指令周期。
我看的程序是单片机中测速度的程序,这个软件循环在程序中能起到什么作用
延时是为了保证时序,比如你向AD芯片发送一个转换的命令,需要等待一段时间数据才能转换好,如果不延时,那读出来的很可能是错误的
这是个延时函数
{;} 这是个空函数 没得实际意义
只是占用时间起延时作用!
为您推荐:
其他类似问题
uint的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Bad Request
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.JUint学习笔记12---对servlet和filter进行单元测试1
第三部分& testing components
&&&&&&&&&&&&&&&&&&&&&& 从JUnit学习笔记1到11都是讲基本的测试尝试,懂得前面的知识,就可以开始Junit in action的最后一程了---测试组件。
&&&&&& 第三部分让你把在第一第二部分学到的测试知识实践于J2EE组件。我们将重点学习为各种J2EE组件编写单元测试,并能学习如何用Ant、Maven和Eclipse这些工具进行测试。
&&&&&第九章 对servlet和filter进行单元测试&& Unit-testing servlets and filters
&&&&&& 本章内容
示范测试驱动开发(TDD)方法用Cactus和mock objects编写servlet和filter的单元测试程序用Maven运行Cactus测试程序选择何时用Cactus,何时用mock objects
&&&&&介绍管理应用程序
&&&这个示例管理就是目的是要让管理者对关系数据库进行查询。下图就是典型的web应用框架:
&&&&&&&&&& 应用程序首先接受用户包含执行SQL查询的HTTP请求。请求被一个安全filter捕获,该安全filter是用来检查SQL查询是否是一个SELECT查询。如果不是,用户将被定向到一个错误的页面,如果查询是一个SELECT语句,那么就将调用AdminServlet。该servlet执行请求的数据库查询,并将结果传送到JSP显示页面。
用Cactus编写servlet测试
&&&&&& 在这部分的内容中,我们重点是进行AdminServlet部分执行单元测试。在写代码之前就开始写测试程序叫驱动测试开发或测试先行策略。
&&&&&&&先来分析一下AdminServlet的需求,该servlet从Http请求中提取包括将要执行命令的需用参数。然后它将使用提取的命令来获取数据。最后将控制权交给JSP页面来显示穿过来的数据。我们把对应于这些行为的方法分别称为getCommand、executeCommand和callView。
&&&&&&&设计第一个测试
&&&&&&&& 下面的代码给出了对getCommand方法的测试。
package junitbook.
import java.util.ArrayL
import java.util.C
import java.util.L
import javax.servlet.ServletE
import org.apache.cactus.ServletTestC
import org.apache.cactus.WebR
import org.apache.commons.beanutils.BasicDynaC
import org.apache.commons.beanutils.DynaB
import org.apache.commons.beanutils.DynaP
public class TestAdminServlet extends ServletTestCase
public void beginGetCommandOk(WebRequest request)测试有效的情况
定义了command
request.addParameter(&command&, &SELECT...&);作为Http的参数
public void testGetCommandOk() throws E
AdminServlet servlet = new AdminServlet();
String command = servlet.getCommand(request);
assertEquals(&SELECT...&, command);
public void testGetCommandNotDefined()测试无效的情况,没有定义命令参数
AdminServlet servlet = new AdminServlet();
servlet.getCommand(request);
fail(&Command should not have existed&);
catch (ServletException expected)
assertTrue(true);
能让TestAdminServlet编译通过的最简单的代码
package junitbook.
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
public class AdminServlet extends HttpServlet
public String getCommand(HttpServletRequest request)
throws ServletException
return null;
在你继续其它测试和实现满足测试的最小应用之前,设法运行Cactus测试。虽然是失败的,但是你至少知道为什么会失败。 然后,当你实现测试中的代码时,测试将会成功!
&& -----------------------------------------------------------------------------------------------&&&&
&& -JUnit最佳实践& 记得检验测试在应当失败的时候失败---------------------------------------------------
使用Maven来运行Cactus测试
&&&& 在前面我们已经学习了使用Cactus/Jetty集成,从一个IDE中来进行Cactus测试。这次,我们将学会使用Maven Cactus插件在Tomcat中进行测试。Tomcat是众所周知的servlet/JSP引擎。Maven Cactus插件是运行Cactus测试最容易的方法之一。所有的事物对于使用者来说都是自动和透明的:你的应用文件war文件的“cactus”化、启动你的容器、配置“cactus”化的war,执行Cactus测试,及停止你的容器。(“cactus化”就是自动附加Cactus
jars,并且把Cactus需要的入口附加在你的web.xml文件中)。
&&& 默认情况下,Maven Cactus插件在src/testcactus目录下查找Cactus测试程序。我们也需要将所有的元数据和资源文件放在src/webapp目录下。管理应用程序的web.xml文件如下:
1.0& encoding=&ISO-8859-1&?&
-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&
&http://java.sun.com/dtd/web-app_2_3.dtd&&
AdminServlet
&servlet-class&junitbook.servlets.AdminServletclass&
AdminServlet
/AdminServlet
&&&要用Maven运行Cactus测试,我们还要提供一个有效的project.xml文件,代码如下,关于细节,在前面的笔记中有描述:
1.0& encoding=&ISO-8859-1&?&
junitbook-servlets
JUnit in Action - Unit-testing servlets and filters
Manning Publications Co.
http://www.manning.com/
http://www.manning.com/front/dance.gif
&package&junitbook.servletspackage&
/images/jia.jpg
Chapter 9 shows how to unit test Servlets annd Filters using
both the Mock Object approach and the in-container approach.
It highlights how they complement each other and give
strategies on when to use them.
Chapter 9 of JUnit in Action: Unit-testing servlets and filters
http://sourceforge.net/projects/junitbook/
Vincent Massol
vmassol@users.sourceforge.net
Java Developer
commons-beanutils
commons-beanutils
servletapi
servletapi
mockobjects
mockobjects-core
**/Test*.java
**/Test*All.java
maven-cactus-plugin
首先,定义你要运行时需要的jar文件。你不需要包含Cactus相关jar,因为Maven Cactus插件自动包含这些jar。Maven Cactus插件使用war文件。元素告诉Maven在生产的成品war中包括Commons BeanUtils jars。成品war已被Maven Cactus插件cactus化。注意因为你将会在你的servlet中使用Commons BeanUtils jars,所以必须包含对BeanUtils的依赖关系。包含/排除纯粹的JUnit测试以匹配你想运行的测试。列出生成的报告。
在运行Cactus插件之前,你要通告Cactus插件,Tomcat被安装在你机器哪个位置,这样才能在能在容器中运行Cactus测试。Cactus插件需要你在你的project.properties文件中增加下面的这一行:
&&&&&&&&&& cactus.home.tomcat4x =C:/Apps/jakarta-tomcat-4.1.24
完成Cactus servlet测试
&使得测试通过的getCommand实现
package junitbook.
import java.util.C
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class AdminServlet extends HttpServlet
public static final String COMMAND_PARAM = &command&;
public String getCommand(HttpServletRequest request)
throws ServletException
String command = request.getParameter(COMMAND_PARAM);
if (command == null)
throw new ServletException(&Missing parameter [&
+ COMMAND_PARAM + &]&);
public void callView(HttpServletRequest request)
测试callView方法
在TestAdminServlet中添加如下代码:
private Collection createCommandResult() throws Exception
List results = new ArrayList();
DynaProperty[] props = new DynaProperty[] {
new DynaProperty(&id&, String.class),
new DynaProperty(&responsetime&, Long.class)
BasicDynaClass dynaClass = new BasicDynaClass(&requesttime&,
null, props);
DynaBean request1 = dynaClass.newInstance();
request1.set(&id&, &12345&);
request1.set(&responsetime&, new Long(500));
results.add(request1);
DynaBean request2 = dynaClass.newInstance();
request1.set(&id&, &56789&);
request1.set(&responsetime&, new Long(430));
results.add(request2);
public void testCallView() throws Exception
AdminServlet servlet = new AdminServlet();
// Set the result of the exection of the command in the
// HTTP request so that the JSP page can get the data to
// display
request.setAttribute(&result&, createCommandResult());
servlet.callView(request);
public void beginDoGet(WebRequest request)
request.addParameter(&command&, &SELECT...&);
使得测试通过的callView方法
&&&&&&&& 放到AdminServlet.java中
public void callView(HttpServletRequest request)
public Collection executeCommand(String command)
throws Exception
throw new RuntimeException(&not implemented&);
测试doGet方法&
doGet的单元测试
public void beginDoGet(WebRequest request)
request.addParameter(&command&, &SELECT...&);
public void testDoGet() throws Exception
AdminServlet servlet = new AdminServlet()
public Collection executeCommand(String command)
throws Exception
return createCommandResult();
servlet.doGet(request, response);
// Verify that the result of executing the command has been
// stored in the HTTP request as an attribute that will be
// passed to the JSP page.
Collection results =
(Collection) request.getAttribute(&result&);
assertNotNull(&Failed to get execution results from the &
+ &request&, results);
assertEquals(2, results.size());
使得测试通过的doGet方法
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException
Collection results =
executeCommand(getCommand(request));
request.setAttribute(&result&, results);
catch (Exception e)
throw new ServletException(
&Failed to execute command&, e);
有两点需要注意,首先,对callView的调用在doGet中没有出现;测试也没有要求。其次executeCommand被调用,将抛出RuntimeException异常,当然你也可以返回null,但是抛出异常是个比较好的做法,如果方法被错误的调用,你也就不会感到任何的惊奇。&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 笔记十二是描述使用mock objects测试servlet&
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?谈谈matlab中的uint8和double
今天在写图像灰度反转时,发现得到的结果不对,最后发现是图像数据类型的问题,分析一下matlab的数据类型。
先贴一下代码:
I = imread('breast.tif');
[m,n] = size(I);
J = zeros(m,n);
J(i,j) = 255-I(i,j);
%H = uint8(J);
subplot(121), imshow(I);
subplot(122), imshow(H);
&PRE&&/PRE&&&
&P&&SPAN&style="FONT-SIZE:&18&FONT-FAMILY:&Microsoft&YaHei"&起初,没有红色的行,显示结果如下(左边是原图,右边是处理后的图):&/SPAN&&/P&&&
&SPAN&style="FONT-SIZE:&18&FONT-FAMILY:&微软雅黑"&&/SPAN&&&
&P&&IMG&alt=""&src="http://hi.csdn.net/attachment//0_Iba4.gif"&&/P&&&
&P&&SPAN&style="FONT-SIZE:&18&FONT-FAMILY:&Microsoft&YaHei"&加上红色的行后,显示如下:&/SPAN&&/P&&&
&P&&SPAN&style="FONT-SIZE:&18&FONT-FAMILY:&Microsoft&YaHei"&&IMG&alt=""&src="http://hi.csdn.net/attachment//0_Dwj.gif"&&/SPAN&&/P&&&
&SPAN&style="FONT-SIZE:&18&FONT-FAMILY:&Microsoft&YaHei"&&/SPAN&&&
&PRE&&/PRE&&&
起初,没有红色的行,显示结果如下(左边是原图,右边是处理后的图):
加上红色的行后,显示如下:
灰度反转代码比较简单,起初也弄不清问题出在哪里,想能出问题的地方也就zeros
和imshow函数,查了一下这两个函数,果然找到问题。
先看zeros函数:
zeros函数族中有个函数为: zeros(m, n
,... classname)&,其中classname可以取“double”,
"uint8", "int8"等等(默认取double).
正因为zeros默认类型是double才导致我一开始的错误。(其实,matlab中的图像经过运算后类型都会转化为double,这样可以防止溢出,并保证精度)
在一开始,矩阵J的数据类型为double,
在进行了下面的反转运算后,J中的值的取值范围为[0& 255]
,下面我们再看一下imshow函数的一段说明:
&SPAN&style="FONT-SIZE:&16px"&%&If&your&grayscale&image&is&single&or&double,&the&default&display&range&is&&
%&&&[0&1].&If&your&image's&data&range&is&much&larger&or&smaller&than&the&default&&
%&&&&display&range,&you&may&need&to&experiment&with&setting&the&display&range&to&&
%&&&&see&features&in&the&image&that&would&not&be&visible&using&the&default&&
%&&&&display&range.&For&all&grayscale&images&having&integer&types,&the&default&&
%&&&display&range&is&[intmin(class(I))&intmax(class(I))].&&
&/SPAN&&&&
% If your grayscale image is single or double, the default display range is
[0 1]. If your image's data range is much larger or smaller than the default
display range, you may need to experiment with setting the display range to
see features in the image that would not be visible using the default
display range. For all grayscale images having integer types, the default
display range is [intmin(class(I)) intmax(class(I))].
即,如果imshow的参数类型为double
,那么参数的取值范围只有在[0 1]才会正常显示。当值大于1时,都显示白色。这与matlab的传统是一致的,
对于灰度图像,uint8表示范围是[0 255] ,double表示范围是[0 1]
正因为imshow的限制,我才在一开始没有得出正确的结果。
但是,imshow函数的一个重载形式可以帮助我们解决这个问题,
imshow(I, [low high]) (具体可以查看help) ,如果我们使用imshow(I, [])
,那么imshow将使用范围[min(I(:)), max(I(:))]
,即图像I中的最小值显示为黑色,最大值显示为白色(属于图像灰度拉伸的方法)
1.如上面程序做法,显示的将J转化为uint8类型
2.如上面所述, 使用J =zeros(m,n,'uint8')
&&&&&&&&&&
使用imshow(J,[])
4. imshow(J/256)
&&&&&&&&&&
但是上面各种方法的效果还是有区别的,我实验了最后两个方法的效果,发现方法3的对比要强烈一些 ,如下图:
默认情况下,
matlab将图像的数据类型存储为double型。当然,matlab为了节省空间,支持uint8,
uint16等。但是在运算时最好转化为double型,这样可以保证计算的精度,也会防止溢出。当然,如果要显示图像,还是要调整为图像的标准数据格式。
im2uint8 和
uint8 都是将图像数据转化为uint8 ,前者要求被转化的数据必须是符合图像数据标准(如:double [0 1])
,而uint8则不必,它会自动截断数据
和double 。double就是将一个数据的类型转化为double
,但是数值不变;im2double将输入的uint8或uint16归一化到[0 1]区间
,如果输入是double,则不进行归一化。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 ieda 使用mbg 的文章

 

随机推荐