![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++/c#
文章平均质量分 75
tsunzhang
这个作者很懒,什么都没留下…
展开
-
c排序方法
冒泡排序:void bubbleSort(int *x,int n){ int temp,i,j; for(i=1;i=i;j--){ if(*(x+j)2009-04-03 21:32:35 · 101 阅读 · 0 评论 -
在.NET环境中使用单元测试工具Nunit
简介编写单元测试是一种验证行为,更是一种设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是功能验证方面的反馈循环。虽然由程序开发人员自己写Unit Tests(单元测试)来测试自己写的程序代码已经行之有年,但是大部分的Unit Tests都是写在主要的程序代码已经设计好、写好之后。大部分的程序开发人员都有相同的的经验,在主要程序代码写好之后再来加入Unit Te...原创 2009-12-17 16:56:47 · 83 阅读 · 0 评论 -
NUnit2.0详细使用方法
1、初识NUnitNUnit是一个开源单元测试框架,它提高一套API,同时拥有自己的GUI,如下: 在此不想过多地讨论GUI的布局和功能,毕竟这个GUI还是简单易用的,各个面板和菜单的功能都是很直观的,一看就明白了。2、NUnit常用属性(1)TestFixture:这个属性标记一个类是测试用例类,也就是说NUnit根据这个数据判断一个类是否是测试类。当然,NUnit对测试类也是有要求...原创 2009-12-17 16:58:59 · 113 阅读 · 0 评论 -
NUnit2.0详细使用方法
5 .测试生命周期合约 如果记得test case的定义,其中一个属性是测试的独立性或隔离性.SetUp/TearDown方法提供达到测试隔离性的目的.SetUp确保共享的资源在每个测试运行前正确初始化,TearDown确保没有运行测试产生的遗留副作用. TestFixtureSetUp/TestFixtureTearDown同样提供相同的目的,但是却在test fixture范围里,我们刚才描述...原创 2009-12-17 17:00:22 · 70 阅读 · 0 评论 -
如何编写单元测试用例(转载自CSDN)
一、 单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 测试的覆盖种类 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。 2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。 3.条件...原创 2009-12-17 17:01:56 · 516 阅读 · 0 评论 -
图解在VS2005利用NUnit进行测试
一、介绍NUnit是一款用于在.net环境进行单元测试的工具,它的官方网站是:http://www.nunit.org,需要了解历史和下载最新版本的朋友可以去官方网站下载,目前最新版本是2.4.6了,提供msi安装文件和压缩包形式下载,并且支持.net1.1和.net2.0。二、开发NUnit的运行界面利用NUnit进行开发之前,需要先添加类库引用,如下图:添加对NUnit.fra...原创 2009-12-21 12:53:02 · 101 阅读 · 0 评论 -
checkedListBox控件绑定数据和获取值的代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using PMSystem.cla...原创 2009-07-08 12:47:33 · 324 阅读 · 0 评论 -
处理资源 'http://localhost/ws/Service.asmx' 时出错(iis,.netframework安装顺序造成的错)
刚刚学习webservices,很多东西都不懂。写了个最简单的例子,在vs2005下直接按ctrl+F5便可运行,可是拷贝到iis目录下执行却提示出错【名称以无效字符开头。处理资源 'http://localhost/ws/Service.asmx' 时出错。第 1 行,位置: 2】真的是不知道是什么原因,没办法在网络上大肆搜索,终于找到解决办法运行C:\WINDOWS\Microsoft.NET...原创 2009-12-30 17:10:12 · 423 阅读 · 0 评论 -
C# DateTime
//今天DateTime.Now.Date.ToShortDateString();//昨天,就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDateString();//明天,同理,加一DateTime.Now.AddDays(1).ToShortDateString();//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天...原创 2009-07-17 11:14:40 · 63 阅读 · 0 评论 -
C#数据导出到Excel
C#数据导出到ExcelC#导出到EXCEL1.首先声明,这些方法也都是本人搜集的资料,然后为已所用,程序中不足之处,还请高手指点. 这些方法都没有关闭Excel进程。2.网上有好多关于用SQL语句导入导出的例子,这里不再重复写了。方法1:调用com组件,导出access数据到Excel,就是直接调用access的导出功能,此方法速度超级快using Access;Access.Applicati...原创 2009-07-17 11:37:37 · 513 阅读 · 0 评论 -
vs 打包winform程序步骤经验总结
1、 应用程序文件夹 : 在应用程序文件夹下新建一文件夹重名为你的程序名并把待打包,在里面新建一文件夹并命名为icon把程序图标引入。 添加一个msiexec.exe(卸载用)进去,这个文件在c:\windows\system32文件夹下。 这样在用户进行安装的时候无论路径怎么更改都不会出现问题 2、 用户的程序菜单中 : 在“用户的程序菜单中”新建一个文件夹重名名为你的程序名,并...原创 2010-01-06 09:47:45 · 252 阅读 · 0 评论 -
ZedGraph控件的使用
在我们编写程序的时候,有时候是要做一些统计的,为了达到一目了然的效果,饼状图,曲线图,柱状图都是很好的表现统计的直观形式。这个时候,ZedGraph控件给我们带来了极大的方便。 1.下载ZedGraph.dll 2.在项目中引用这个控件 (: 首先,在项目解决方案里添加,然后在工具箱中点击右键,选择项,COM,浏览,打开,我们就 会在工具箱的最下方发现这个控件了,确定。然后就可以在一个WI...原创 2009-07-20 19:19:39 · 227 阅读 · 0 评论 -
C#编程中的预处理指令
在C#中, 虽然编译器没有单独的预处理器,但在处理预处理指令时如同存在一个单独的预处理器;这些指令用于辅助条件编译。与 C 和 C++ 指令不同,不能使用这些指令创建宏。预处理器指令必须是行上的唯一指令。 C# 语言的预处理器指令: #if #else #elif #endif # define #undef #warning #error #lin...原创 2010-01-13 11:22:27 · 76 阅读 · 0 评论 -
CMPP短信网关客户端发送程序
最近无聊,玩了玩ubuntu,想学点linux,找了几年前写的老代码,编译竟然不通过,就作了点修改。原来的代码是2002年在红旗下编译通过的,不记得是哪个版本了。和现在不同的地方有gettimeofday()定义变动write(),read()等头文件包含不同pthread_create()中,新的线程变成了void* (*)(void*)类型,感觉更合理了。化了点时间修改了,在ubuntu5.1...2010-04-06 11:12:09 · 552 阅读 · 0 评论 -
常用正则表达式
匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?&...原创 2009-07-27 14:21:39 · 50 阅读 · 0 评论 -
TreeView高效绑定数据
前俩个项目都是做政府的门户网,他们的栏目、部门都要以树形展示,一开始数据比较少,直接递归绑定到TreeView上,后来数据越来越多,树越来越慢,到后面打开一次导入数据至少要等待2分钟。客户不满意了,只能对树形绑定数据进行修改,去网上查了下,发现下面的方法速度比较快第一次只导入所有根栏目,就是数据库ParentId=0的数据。点击父栏目,如果有子栏目,再从数据库查询其子栏目、绑定。代码如下:树形...原创 2009-08-13 17:28:52 · 131 阅读 · 0 评论 -
TreeView-demo
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using test1.ItemBase; //添加引用using ...2009-08-14 17:22:35 · 104 阅读 · 0 评论 -
ListBox相互移动
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using test1.ItemBase; //添加引用using S...2009-08-14 17:33:53 · 96 阅读 · 0 评论 -
.NET命名空间使用介绍
在ASP.NET中,.NET Framework为我们提供了丰富的基类,为了能在程序中引用这些基类,我们必须先引用这些基类的命名空间。我们都知道,如果我们想在C++中引用一个文件函数时,我必须先调用该文件,例如<#include studio.h>,其实它和ASP.NET中命名空间的引用是同一原理。但是它们又有本质上的区别。 在ASP.NET中,命名空间提供了一种组织相...原创 2009-12-17 11:29:03 · 103 阅读 · 0 评论 -
一种清晰而又简单通用的分页算法
分页,是WEB开发中面对的最常见的编程,实现方法多种多样。我也不来评论这些方法的好坏。 但我总感觉它们太复杂,不够清晰不够简单。我十分欣赏PHP中一个Pager.php分页类的算法。http://www.phpclasses.org/browse/file/288.html,作者不详。也在不同的项目中把这种思想转换成不同语言的分页类,你不妨也试试。 这种算法的思路是这样的: 1、把分页...原创 2009-12-17 10:03:40 · 197 阅读 · 0 评论 -
C#数据结构-双向链表
在结点中设两个引用域,一个保存直接前驱结点的地址,叫prev,一个直接后继结点的地址,叫next,这样的链表就是双向链表(Doubly Linked List)。 双向链表的结点结构示意图如上,双向链表结点的定义与单链表的结点的定义很相似,因此,双向链表节点类的实现可以参考单链表的节点类。 C#实现: 1接口 引用线性表的接口IListDS<T> 2实现 (1)双...原创 2009-12-17 09:54:14 · 82 阅读 · 0 评论 -
C#.net同步异步SOCKET通讯和多线程总结
同步套接字通信Socket支持下的网上点对点的通信服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出...原创 2009-04-05 11:51:09 · 122 阅读 · 0 评论 -
基于C#的接口基础教程之一
第一节 接口慨述 接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。 接口好比一种模版,这种模版定义了对象必须实...原创 2009-04-05 11:56:14 · 68 阅读 · 0 评论 -
基于C#的接口基础教程之二
第二节 定义接口 从技术上讲,接口是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码可以调用组件对象的功能。 定义接口的一般形式为:[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;] 说明: 1、attributes(可选):附加的...原创 2009-04-05 11:57:25 · 64 阅读 · 0 评论 -
基于C#的接口基础教程之三
第三节 定义接口成员 接口可以包含一个和多个成员,这些成员可以是方法、属性、索引指示器和事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。接口定义创建新的定义空间,并且接口定义直 接包含的接口成员定义将新成员引入该定义空间。 说明: 1、接口的成员是从基接口继承的成员和由接口本身定义的成员。 2、接口定义可以定义零个或多个成员。接口...原创 2009-04-05 11:58:16 · 79 阅读 · 0 评论 -
基于C#的接口基础教程之四
第四节、访问接口 对接口成员的访问 对接口方法的调用和采用索引指示器访问的规则与类中的情况也是相同的。如果底层成员的命名与继承而来的高层成员一致,那么底层成员将覆盖同名的高层成员。但由于接口支持多继承,在多继承中,如果两个父接口含有同名的成员,这就产生了二义性(这也正是C#中取消了类的多继承机制的原因之一),这时需要进行显式的定义: using System ;...原创 2009-04-05 11:59:04 · 67 阅读 · 0 评论 -
基于C#的接口基础教程之五
第五节、实现接口 1、显式实现接口成员 为了实现接口,类可以定义显式接口成员执行体(Explicit interface member implementations)。显式接口成员执行体可以是一个方法、一个属性、一个事件或者是一个索引指示器的定义,定义与该成员对应的全权名应保持一致。using System ;interface ICloneable { obj...原创 2009-04-05 12:00:18 · 76 阅读 · 0 评论 -
基于C#的接口基础教程之六
第六节、接口转换 C#中不仅支持.Net 平台,而且支持COM平台。为了支持 COM和.Net,C# 包含一种称为属性的独特语言特性。一个属性实际上就是一个 C# 类,它通过修饰源代码来提供元信息。属性使 C# 能够支持特定的技术,如 COM 和 .Net,而不会干扰语言规范本身。C# 提供将COM接口转换为 C#接口的属性类。另一些属性类将 COM类转换为C# 类。执行这些转换不需要任何...原创 2009-04-05 12:01:21 · 88 阅读 · 0 评论 -
基于C#的接口基础教程之七
第七节、覆盖虚接口 有时候我们需要表达一种抽象的东西,它是一些东西的概括,但我们又不能真正的看到它成为一个实体在我们眼前出现,为此面向对象的编程语言便有了抽象类的概念。C#作为一个面向对象的语言,必然也会引入抽象类这一概念。接口和抽象类使您可以创建组件交互的定义。通过接口,可以指定组件必须实现的方法,但不实际指定如何实现方法。抽象类使您可以创建行为的定义,同时提供用于继承类的一些公共实现。...原创 2009-04-05 12:02:14 · 53 阅读 · 0 评论 -
C# WInForm 无框窗体移动
调用APIusing System.Runtime.InteropServices;[DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, in...原创 2009-11-12 13:56:32 · 260 阅读 · 0 评论 -
关于配置文件的读取
在1.0/1.1版本,都流行的是appSettings这个节点读取;无论web.config,还是app.exe.config都可以使用这个节点配置。如:<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="TestKey" value=原创 2009-11-18 16:52:45 · 97 阅读 · 0 评论 -
listBox数据库操作
SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=zhy");con.Open();SqlCommand com = new SqlCommand("select * from student",con);SqlDataReader dr = com.ExecuteReader();this.lis...2009-06-13 14:08:15 · 203 阅读 · 0 评论 -
C#委托和事件(简单示例)
1.委派的实现过程。首先来看一下委派,委派其实就是方法的传递,并不定义方法的实现。事件其实就是标准化了的委派,为了事件处理过程特制的、稍微专业化一点的组播委派(多点委派)。下面举一个例子,我觉得把委派的例子和事件的例子比较,会比较容易理解。using System;class Class1{ delegate int MathOp(int i1,int i2); ...原创 2009-12-16 15:46:48 · 347 阅读 · 0 评论 -
深入理解C#中的委托和事件:委托的定义
委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、委托和事件对Observer设计模式的意义、.Net Framewo...2009-12-16 16:04:54 · 111 阅读 · 0 评论 -
C# 在运行中改变控件大小的类 并获取最后控件的大小
C# 在运行中改变控件大小的类 并获取最后控件的大小收藏使用方式 private Zgke.WindowFrom.Window.Controls.ControlMove _Move; private void Form1_Load(object sender, EventArgs e) { _Move = n...原创 2009-06-24 11:32:41 · 341 阅读 · 0 评论 -
winform+c#之窗体之间的传值
窗体传值可以分为两类。1、主窗体往子窗体传值有两种方法,一种是在子窗体提供重载构造函数,利用重载构造函数传递值,适用于传值数量比较少;第二种是,在子窗体中定义一个主窗体对象,然后就可以接收到主窗体的属性值了,适用于传值数量大。主窗体代码如下: public partial class frmParent : Form { private string strValueA = ...原创 2009-06-26 10:26:35 · 88 阅读 · 0 评论 -
C#实现Winform间的数据交互的三种方法
1、修改子窗体的构造函数: 简单地说就是通过修改子窗体Form的构造函数,如下所示: public Frm_Child(string Para1, ArrayList List1, TextBox textBox1, Form. Frm_Main) { InitializeComponent(); } 上面的例子中,为子窗体Frm_Child添加了4个参数,分别是...原创 2009-06-26 14:02:45 · 473 阅读 · 0 评论 -
读书笔记c#高级编程 委托和事件
在C#中使用一个类时,分两个阶段。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非只使用静态方法)实例化类的一个对象。使用委托时,也需要经过这两个步骤。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型代表了那种类型的方法,然后创建该委托的一个或多个实例。定义委托是从delegate开始的然而它是如何运作的呢。也许弄个鼠标事件会容易理解一些,这里还是拿出书中的例子来...原创 2009-12-17 09:49:41 · 83 阅读 · 0 评论 -
在C# 中如何动态地添加控件
通常在写程序的时候,当要用到某些组件,采用的方法一般都是动态创建,用完以后就释放掉。Visual C#在程序运行的时候也可以动态创建组件,下面就结合一个程序例子来具体介绍如何用Visual C#动态生成组件。首先让我们了解一下,在动态创建组件的过程中要用到的一些概论和理论。 一. Boxing (装箱)和Unboxing (出箱): 在用Visual ...原创 2009-09-09 11:05:22 · 444 阅读 · 0 评论