07 2013 档案
摘要:介绍本文主要讲解Asp.Net应用程序中的状态管理技术(Asp.Net中有多种状态管理技术),并批判性地分析所有状态管理技术的优缺点。背景HTTP是无状态的协议。客户端发起一个请求,服务器响应完请求后,立即断开。服务器断开后,所有因请求而分配的资源会全部被清除。这些资源包括在请求期间创建的对象,分配的内存等等。Windows应用程序开发者可能会感到很惊讶,因为他没有办法依靠对象和成员变量来跟踪Web应用程序的当前状态。如果我们要跟踪用户在多个页面访问间,或同一页的多个访问间的信息,我们就需要使用由ASP.NET提供的状态管理技术。状态管理是由ASP.NET用以让开发者在相同或不同页面的多个请求
阅读全文
摘要:由于在数据库连接部分,新建连接的时候一直报“出错原因:超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。”于是,我便想查看一下数据库的活动连接,看看究竟是哪个程序占用了过多的数据库连接。我们可以用sp_who(或sp_who2)来显示所有活动的连接。USE master;GOEXEC sp_who2;GO查询的结果如表1。为了可读性,表1中的结果有删减了一些列和一些行。但删去的内容不影响我们要讲的东西。表1 sp_who2查询的结果从表1中,我们可以看到有很多进程状态(见Status列)显示sleeping,并且当前正在执行的命
阅读全文
摘要:初学者总是认为代码写好了,把程序给跑起来了,这事就算完了。想象电器商,你就知道绝不是这样的,一件电器卖出去了,那么通常商家还得为我们保修一两年,为他们可能犯的错误买单。写程序也是这样,程序是写好了,但是你犯了的错误不能让用户去解决,我们也不希望用户去解决,因为他们常用的解决方案就是不用你的用别人的。 当错误发生的时候,你需要做这几件事情:1、看以前的代码,问以前写代码的老人(这一步通常不能省,因为你必须要了解业务,才能对软件进行修改)2、你需要搭建一个测试环境。搭建一个测试环境,通常意味着你要为连调相关的软件,这通常是一个比较不好搞的活。因为你可能需要修改其他软件的代码以便适应测试的要求,过后
阅读全文
摘要:1、顺序结构描述的队列在这一章中,我们选择用Rear队尾的指针来指示最后一个入队的元素在队列中的位置。我们选择队列内存储的数组的Data[0]作为队头,每次取数据的时候,队头弹出(out)。具体的代码如下所示:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DataStructure.Queue{ class SeqQueue: IQueue { int Rear =-1;//队尾 constint MaxSize=100;//队列的最大容量 T[] Data
阅读全文
摘要:以下都是从友善之臂《04- Tiny6410 Linux开发指南-20111020》复制出来的,我所做的工作就是将友善之臂提供的源程序进行详细注释,另外将一些大函数分解成小函数。这段代码不长,但是涉及到多个比较不容易接触的C语言知识点。说明:armcomtest 是友善之臂为了方便测试而开发的linux 下的简易实用串口终端程 序,它使用标准的系统调用,和硬件无关。一般Linux 系统系统启动后,串口 0,1,2对应的设 备名分别为/dev/ttySAC0,1,2,3 测试串口2 需要借助另一台带有串口的PC,使用我们提供的串口线和扩展小板( 选购 配件) ,连接好 C...
阅读全文
摘要:栈的定义:栈是限定仅在表尾进行插入和删除的线性表。从栈的定义,我们可以知道栈是线性表的一种特殊情况,与线性表不同,栈中元素的弹出(pop)和压入(push)都只能在栈顶进行,对于我们编程来讲,我们不必考虑是否需要在某个地方插入,某个地方删除。也不必考虑在特殊节点做特别的处理。同线性表相同,栈也可以用数组或者用链表来描述。在栈中,很重要的一个东西就是栈顶,通常我们会用Top来指示栈顶所在的位置,我们可以形象地把栈必成是一叠盘子(如图1),因为盘子是一块块叠上去的,并且要拿到最后一块盘子,你必须先拿起最后一块盘子上面的盘子,这跟栈的特性先进后出一样。其中Top就是用来指向盘子顶(栈顶)的。图1 一
阅读全文
摘要:我们将在单链表的基础上讨论循环链表的实现,循环链表中的节点node沿用单链表中的节点。循环链表的算法思想基本上与单链表没有什么差异,唯一比较大的差异就是原来我们通过判断node.next==null来判断链表的结束,现在改成判断node.next==Head,因为我们已经把尾节点链接到头节点上,在逻辑上形成循环链表。具体的代码如下所示using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DataStructure{ /// /// 循环链表 /// /// 类型..
阅读全文
摘要:基本上,我们可以认为双向链表是单链表的一个改进。这个改进一个有益的地方就是,双链表不必像单链表一样,为了查找一个元素,沿着链表的特定一个方向,从头遍历到尾。通过双链表,我们可以沿着正反两个方向对链表内的元素进行查找。双链表的结点与单链表(循环链表)的稍稍有点不同,主要的不同就在与,双链表的节点多出了一个连接前一个节点的字段(详见灰色部分)。如下所示class DulNode{ private T data; /// /// 数据域 /// public T Data { get {return data;} set { data = value;} } private DulNode ne..
阅读全文
摘要:在单链表中,我们需要在内部有一个头节点,我们可以通过这个头节点找到其他的节点,相当于一个线索。 纵观顺序结构的线性表和单链表的实现,难点基本上都在于添加和删除操作。基于数组的线性表中,数组的索引就相当于是线性表的序号,但在单链表中,我们没有序号这个东西,所以在添加和删除操作中,我们需要先找到指定的元素,然后才能继续进行操作。在插入操作中,我们需要同时保存有当前节点的前一个节点和当前的节点,因为当...
阅读全文
摘要:1、我们将实现一个顺序存储结构 经典的C语言描述的线性表顺序存储结构通常使用数组来实现的,下面我们也将用数组来实现。我们将实现线性表的增删改查的功能。 顺序存储结构操作的要点和难点其实就是数组的批量移动。因为在数组描述的顺序表中,删除操作,需要将从待删除元素的位置之后的所有元素都往前移动一位;而插入操作,需要将待插入元素的位置,包括原先在该位置的元素及其后面的元素都往前移动一位。而实现删除和插...
阅读全文
摘要:从本篇文章中,我们将从代码层面知道委托和事件的差异和用处,并且我们不会用猫和老鼠之类奇怪的比喻来混淆大家。首先,我们知道委托和事件都可以用来调用跟自己方法签名一样的方法。容易混淆大家的地方大多在于这两者之间的区别。从我们使用委托delegate和事件event上的主要有两大区别(如表1所示)。 表1 委托和事件的区别序号区别委托事件1是否可以使用=来赋值是否2是否可以在类外部进行调用是否3是否是一个类型是否,事件修饰的是一个对象--参考MSDN上关于委托和事件的定义。一个例子我们将创建两个类ClassA和ClassB,这两个类都很简单,只有一个方法,并且这两个类的方法签名一样。ClassC内有
阅读全文
摘要:发布这系列的EDA课程VHDL实验是因为有着和单片机系列同样的理由,另外,这个系列的文档只进行过波形图仿真,部分的程序可能不能在硬件上运行。目录实验二 8位加法器设计实验三 组合逻辑电路的VHDL设计实验四 时序逻辑电路的VHDL设计实验五 含有控制信号的计数器VHDL设计实验六 序列信号检测器的VHDL设计实验七 状态机设计ADC0809采样控制电路
阅读全文
摘要:一、实验目的学习用状态机实现A/D转换器ADC0809的采样控制电路。二、实验内容利用QuartusⅡ实现A/D转换器ADC0809的采样控制电路状态机设计;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证设计电路对ADC0809的控制功能。三、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。四、实验用VHDL 设计的状态机的一般结构有以下几部分组成:1. 说明部分说明部分中有新数据类型TYPE 的定义及其状态类型(状态名)和在此新数据类型下定义的状态变量。状态类型一般用枚举类型,其中每一个状态名可任意选取。但为了便于辨认和含义明确,状态名最好有明显的解
阅读全文
摘要:一、实验目的(1)进一步熟悉Quartus II软件和GW48-PK2S实验系统的使用方法;(2)用状态机实现序列检测器的设计,了解一般状态机的设计与应用二、实验内容1. 基本命题利用Quartus II实现一个8位的序列检测器设计;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证设计电路对给定序列的检测功能。2. 扩展命题在上述设计基础上,通过修改设计,实现以最简便的预置方法,获得n位序列检测器的功能。三、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。四、实验1. 基本命题① 总体设计设计两个进程。进程Com1:实现序列的检测进程Com2:实现检测结
阅读全文
摘要:一、实验目的学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。二、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。三、实验1. 基本命题在QuartusⅡ上设计一个含计数使能、异步复位和计数值并行预置功能的4位加法计数器,并进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。1) 实验原理由数电知识可知,4位加法计数器由clk时钟,rst置位,en使能,cq输出,cout进位输出构成。2) 程序设计3) 编译仿真波形图1 4位加法计数器波形从图1分析可知,在每一个时钟上身沿到来的时候,4位加法计数器计数值加1(图中1),最大计数值为
阅读全文
摘要:一、实验目的熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序逻辑电路的设计、仿真和测试方法。二、实验1. 基本命题用VHDL文本设计触发器,触发器的类型可任选一种。给出程序设计、仿真分析、硬件测试及详细实验过程。① 实验原理由数电知识可知,D触发器由输入的时钟信号(CLK)、数据输入口(D)和数据输出(Q)构成。本程序通过进程监视CLK和D\,当CLK为上升沿的时候,将D赋值给Q,要完成这个赋值操作,必须再借助一个信号S来进行值的传递。② 程序设计③ 仿真分析仿真预测:输入一组波形,当且仅当CLK为上升沿的时候,Q输出D的值;否则,Q保持原值不变。图1 D触发器仿真波形图 结论:仿真的
阅读全文
摘要:一、实验目的熟悉QuartusⅡ的VHDL文本设计过程,学习简单组合逻辑电路的设计、仿真和测试方法。二、实验内容1. 基本命题完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤。最后在实验系统上进行硬件测试,验证本项设计的功能。2. 扩展命题将设计的2选1多路选择器看成是一个元件mux21a,利用元件例化语句设计能够满足图3-1所示仿真波形的逻辑功能的双2选1多路选择器。图3-1 仿真波形三、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。四、实验将实验原理、设计过程、仿真步骤、仿真波形和分析结果、硬件测试实验结果写进实验报告。2选
阅读全文
摘要:一、实验目的熟悉利用QuartusⅡ的图形编辑输入法设计简单组合电路,掌握层次化设计方法,并通过8位全加器的设计,进一步熟悉利用EDA软件进行数字系统设计的流程。二、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。三、实验内容1. 基本命题利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。2. 扩展命题利用文本输入法设计4位并行进位加法器,再利用层次设计方法构成8位加法器。通过时序仿真,比较两种加法器的性能。四、实验设计思路按照如图2-1,2-2,2-3设计半加器、全加器、串行级联加法器① 设计半加器图2-1半加器设计图② 设计全加器
阅读全文
摘要:1、查看系统事件,发现弹出如下的错误2、根据上面的错误,我们很容易就可以判断是禁用了账户引起的2.1后面进入计算机管理,再进入用户管理2.2双击点开Internet来宾用于,发现此用户已经停用了。2.3双击点开与IIS访问有关用户,发现用户已经停用了2.4我们只要去掉“账户已停用”的钩就行了。3、在事件查看器中,我们又发现新的警告(如3.1所示)3.1新的问题,用户首次登录前必须修改密码 描述: 由于错误 用户首次登录之前必须更改密码。 ,服务器无法登录 Windows NT 帐户 'IUSR_PC2012101915AEZ'。返回数据是错误代码。 3.2 去掉“用户下次登录时
阅读全文
摘要:有感于我做单片机实验的时候,在网上找的参考代码老是写得很糟糕又或者排版很丑,所以我决定将自己做单品机实验的源代码全部放出。另外,因为公布了题目和答案,也希望老师不要以这些千百年不变的题目作为课程的作业了。请看到本文的老师思考一下怎么将课程练习和实际的项目开发结合起来,因为没有人喜欢写那种没有实际应用价值的代码;请思考一下怎么通过实验来激发学生的兴趣,而不是动辄以学分威逼学生去完成课程作业。以下篇章中的代码有如下的特点: 1、注释多,因为这是面向初学者的,所以代码的注释中包含了很多相关的知识点,也写出了代码的目的,争取给初学者无障碍阅读代码的体验。 2、函数以小函数居多,争取不给人长长的函数那种
阅读全文
摘要:1.实现对红外遥控器的解码,并用其实现一些简单的控制/******************************************************************************** lcd1602显示遥控器接p3.2 * ** 按下上面的按键分辨显示遥控器上面的按键数据 * ** 连接方法:使用红外功能时 J1跳线短接 * *********************************************************************************/#include #include #define uchar unsig.
阅读全文
摘要:1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次接线:P0接J12、P1接J20、P2接J19/**1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次**/#include unsignedchar code table_LeftRight[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedchar code table_TopBottom[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};enum DisplayDirecte{ Left2Right, Right2Left, T
阅读全文
摘要:1.利用实验板和配件,设计一个时钟,时间显示在LCD1602上,并按秒更新,能够在实验板上设计3个按键调整时,分,秒。其功能为:功能选择键,数值增大和数值减小键。利用板上AT24C02设计实现断电保护显示数据的功能。=============Clock.h=============#ifndef __CLOCK_H__#define __CLOCK_H__//========全局变量区============================================unsignedchar T_High_50ms=(65536-45872)/256;unsignedint T_Low_5
阅读全文
摘要:1.利用单片机控制LCD1602,在LCD1602上显示字符串,并使其整屏左移。#include#define uchar unsigned char#define uint unsigned intuchar code table[]="Hello World!";uchar code table1[]="I am a boy!";sbit lcden=P2^7; //液晶使能端sbit lcdrs=P2^6;sbit LCDWR=P2^5;uchar num;/*********************************************
阅读全文
摘要:1.利用单片机控制PCF8591的AD转换,控制AD0和AD1电位器,在数码光上显示DA转换的值。2.利用单片机控制PCF8591的DA转换,让发光二极管D1由暗到亮变化,整个过程时间差不多2s左右,再由亮到暗变化,循环变化。以下代码将1、2实验合并成一个实验。Lab6.1#include#include #define PCF8591 0x90 //PCF8591 地址#define uchar unsigned char#define uint unsigned int#define ulong unsigned long//=========全局变量区==================
阅读全文
摘要:1. 用C语言编程,利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上,每过一秒将这个变化写入实验板上AT24C02,当关闭实验板电源,并再次打开实验板电源时,单片机从AT24C02中将原来写入的数据读出来,接着继续变化在数码管上。#include#define uchar unsigned char#define uint unsigned int//=========全局变量区============================================bit write=0; //写24C02的标志;sbit sda=P2^0; sbit scl=P2^1;sbit h
阅读全文
摘要:1. 以2400bps从计算机发送任一字节数据,当单片机收到该数据后,将其送到数码管显示,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned long/**题目要求:以2400bps从计算机发送任一字节数据,当单片机收到该数据后,将其送到数码管显示,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。**//**步骤接线方式:1、P0接数码管J12,实现段选2、译码器和数码管位选输
阅读全文
摘要:1.当单片机的INT0进入低电平触发方式,进入相应的中断服务程序,P0口做输出口,接8只发光二极管,点亮发光二级管,控制蜂鸣器响。当INT1为低电平时进入中断服务程序,发光二级管灭。接线:将P0和JP1连接、P3和JP5连接#include #define uchar unsigned char#define uint unsigned intsbit beer = P1 ^5; //蜂鸣器sbit button0 = P3 ^2; //独立按键3sbit button1 = P3 ^3; //独立按键4void int0() interrupt 0//外部中断0{ P0 =0; beer =
阅读全文
摘要:1. 单片机驱动蜂鸣器的实验;a) 说明:Lab51单片机实验板的蜂鸣器连接到单片机的P1.5b) 基本要求:控制蜂鸣器每2秒响0.5秒。#include #define unit unsigned int void delay(unit x){ unit i=x; unit j; for(;i>0;--i){ for(j=x;j>0;--j); }}void main(){ while(1){ P1=0x00; delay(250); //0.5秒 P1=0xff; delay(420);//2秒 }}2. 单片机驱动继电器输出实验;a) 说明:Lab51单片机实验板的蜂鸣器连接
阅读全文