- 博客(130)
- 资源 (14)
- 收藏
- 关注
原创 链队列之C++实现
链队列时建立在单链表的基础之上的。由于是动态分配节点内存,所以无需判满。 下面介绍下C++实现的链队列,VC6下调试通过。1、文件组织 2、lq.h链队列类的说明#ifndef _LQ_H_#define _LQ_H_typedef int dataType;struct node //队列节点{
2013-08-31 19:31:53
4843
原创 顺序队列之C++实现
下面介绍下用C++实现的顺序队列,在VC6下调试通过。1、文件组织形式 2、sq.h顺序队列类的说明#ifndef _SQ_H_#define _SQ_H_typedef int dataType;#define maxSize 100class sq{public: sq(); //~sq(); void push(dataType
2013-08-31 18:05:13
3149
原创 链栈之C++实现
链栈是借用单链表实现的栈。其不同于顺序栈之处在于:1、链栈的空间是程序运行期间根据需要动态分配的,机器内存是它的上限。而顺序栈则是静态分配内存的。2、链栈动态分配内存的特性使得它一般无需考虑栈溢出的问题。 链栈的的组织结构如下图所示。容易发现其是架构的单链表的基础之上的。 下面介绍下我用C++实现的链栈,VC6下调试。1
2013-08-30 20:58:22
10597
原创 顺序栈之C++实现
顺序栈就是用顺序表(数组)实现的栈。其组织形式如下图所示: 下面介绍下我用C++实现的顺序栈,在VC6下调试通过。不足之处还请指正。1、文件组织 2、ss.h栈类的声明及宏的定义#ifndef _SS_H_#define _SS_H_typedef int dataType;#define maxSize 100clas
2013-08-30 13:36:45
3009
原创 双向链表之C++实现
双向链表只是在单向链表的基础上增加了一条前向链,其中的很多处理方法都是相似的。比如求链表长、寻找某一节点等。所有相似的部分就不一一实现了。有兴趣可以参考前面的博文。 以下我实现的双向链表(VC6下实现)。错误之处还请指正。1、代码组织 2、dll.h双链表及节点的说明#ifndef _DLL_H_#define _DLL_H_#define da
2013-08-28 13:07:06
1468
原创 怎么证明一个链表是循环链表
如题:怎么证明一个链表是循环链表呢?1、从head出发一直向下寻找节点的next指针域,找到NULL或者找到head指针。2、设计两个不同的步长,比如1和2,同时开始向下扩展,如果能够再次相遇则证明是循环链表。(来自程序员面试宝典)
2013-08-27 19:04:55
1748
原创 单链表之C++实现
在实现单链表时要注意对单链表的逻辑存储、物理存储有清晰的概念。如上图链表已经完成,其逻辑结构如上。当需要对其进行操作,比如插入、删除,通常需要引入指针,如上的ptr1、ptr2。在编程时一定要注意通过ptr1、ptr2对链表结构的操作是正确的。而不仅仅是你觉得正确的。 下面给大家看下我的单链表的实现,错误之处还请指正。1、VC6实现,包括三个文件:sll.h、sll.c
2013-08-25 11:33:28
1653
原创 Edit Box多行显示时如何使滚动条始终在下方
两种方法:① CEdit *pEdit = ((CEdit*)GetDlgItem(IDC_EDIT_RXDATA)); pEdit->LineScroll(pEdit->GetLineCount()); //滚动条滚动到最下端 int tmpLen = pEdit->GetWindowTextLength(); pEdit->SetSel(tmpLen,-1
2013-08-17 14:52:02
2118
原创 奇偶校验码
在数据传输的过程中可能会发生错误。分为由信道特性引起的偶发错误和由外部突发情况引起的突发错误。并且,突发错误可能会造成一串数据的错误,而偶发错误一次出错位数则较少。 因为数据传输过程存在出错的可能性,所以为了发觉错误,检错码和纠错码就应运而生了。本博文将介绍一种基本的检错码——奇偶校验码。检错码的思想就是发送方在发送的信息位后添加一定的冗余位,接收方通过接收信息位和冗余
2013-06-14 23:47:13
3917
原创 linux基本命令备忘(持续更新)
2013/6/5 24:20 init 0 ---关机init 1 ---注销注:这两个命令都需要root权限才可以运行。2013/6/5 17:51普通用户获取root权限:su然后输入root密码即可。pwd ---显示路径拷贝文件并删除源文件:mv [源文件路径及文件名] [目的文件及文件名]绝对路径用/xxx/x
2013-06-05 00:22:02
1147
原创 漂亮的代码,忍不住拿出来
学习tinyos lession2中看到的代码。觉得很好,就拿出来大家一起看看哈!主要是用来将task的时间分散开的。uint32_t i;task void computeTask() { uint32_t start = i; for (;i < start + 10000 && i < 400001; i++) {} if (i >= 400000) { i
2013-06-03 15:26:07
1595
原创 数据库,角色,用户,安全
登录SQL server 2008可以用windows身份验证也可以用sql server身份验证,不论那种,进入数据库后都拥有超级用户的权限,这显然是不太安全的。合理的做法是:对于一个数据库,应该是由不同权限的用户进行操作和管理。 本博文将结合一个例子来讲解如何建立数据库,并为数据库建立不同权限的用户。 一、登录数据库管理系统(首先要打开SQL Serve
2013-06-01 16:39:32
1751
原创 输入输出设备的重定向
学过JAVA,用过Eclipse的人都会发现:程序的运行并不是像用VC6.0编译好的程序直接调用控制台。而是在Eclipse软件的下方输入与输出。那就是重定向了。本博文将简单介绍下输入输出的重定向问题。主要是通过例子来演示。 重定向的方法是:在控制台的命令提示符后输入:程序名 [ 输出设备名]其中,程序名就是你编译好准备运行的程序;''号后是你重定向的输出设备名,比如
2013-05-21 23:53:59
1771
原创 禁止guest登录
如何禁止guest登录到系统呢?操作如下:sudo gedit /etc/lightdm/lightdm.conf在打开的文件中添加一行:allow-guest=false然后保存退出。注销系统,重新登录时就可以发现已经不能guest登录了。
2013-05-14 22:33:08
2372
原创 普通用户升为root用户
用普通用户登录Linux后,如何使得该用户成为root用户呢?操作如下:sudo gedit /etc/passwd然后找到描述该用户的段落,将其id改为0。保存后注销用户,重新登录该用户,此时的用户已经是root用户了。举个例子:在passwd中找到下面这行lulipeng:x:1000:1000:,,,:/home/lulipeng:/bin/bash
2013-05-14 22:25:01
1433
原创 在普通用户下进入root用户
在普通用户下登录Linux,首次启用root的操作如下:XX:~$ sudo passwd root[sudo] password for XX: 输入密码确认:输入密码再确认:输入密码提示成功更新密码此时,root用户已经启用。进入root的操作如下:XX:~$ su root密码:输入密码此时,已经可以进行root权限的操作了。也
2013-05-14 01:14:25
1954
原创 请大家做道题
题目: 三个进程P1\P2\P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程
2013-05-13 23:15:08
5000
原创 不用信号量的进程互斥
不用信号量进制来实现进程互斥,你想过吗?让我们来感受下这段优美的代码吧!这段代码好像在两个进程互斥上性能比较好,进程多了就不行了。非本人原创!
2013-05-13 22:53:50
1433
原创 大三快结束了
学计算机的人真的很累,硬件、软件、数学,硬是要把那一堆冷冰冰的铁给赋予这样那样的意义。当别人都在陶醉这个系统、那个软件是如何的好用的时候,我们更多的是在思考---还存在什么样的问题。还在思考这我们怎么才能提供更好的功能,拥有更好的性能。我们往往得忽略已有的好而去循环迭代地寻找依旧存在的问题,解决问题。硬是要理解硬件是怎么工作的,软件是怎么运行的,有的时候甚至要深入到指令。但这也正是
2013-05-11 18:52:31
1665
1
原创 第十一篇 BCD码调整
无论是X86汇编还是MCS-51的指令集中都会有BCD码调整指令。本博文将浅谈下BCD码调整的相关情况。 一、BCD码是十进制数在计算机中的表现形式。 我们一直都说计算机只能表示0、1二进制,这毫无疑问是正确的。但人对十进制数较为熟悉,为了迎合人的方便,8421BCD码用来在计算机中表示十进制数。当然了,BCD码也是用0、1二进制来表示的。所以,需要注意理解的
2013-05-11 18:27:59
3684
1
原创 导出短信.xml,提取信息
本博文介绍下如何通过C++文件流方式,把从手机导出的.xml格式的短信信息进行处理后存放到磁盘文件中。对.xml进行的处理包括:提取发信者姓名、发信时间、短信内容。最后统计下各方发信的条数,以及各方发信的字数。 一、提取出的.xml文件格式如下: 二、处理后的结果如下: 三、处理方法简要介绍如下:通过对.xml文件分析可以发现,我们需要的信息包括在:
2013-04-22 12:19:15
3747
原创 VGA接口之显示彩色条
本博文介绍下spartan-3e start kit board上的VGA接口的用法。 一、VGA简介VGA(Video Graphics Array)是IBM于1987年提出的一个使用模拟信号的电脑显示标准,最早指的是显示器640X480这种显示模式。本实验程序用的是640X480模式,即每一行有640个像素,整个显示区域一共有480行。VGA接口是一种D型接口,采用非对称分
2013-03-23 16:58:52
9234
原创 写数据到LCD显示器
本博文介绍如何向开发板上集成的LCD显示器写数据以显示。一、实验效果1、LCD显示器可以显示Created by 和 clear lcd lulipeng lulipeng2、通过滑动开关SW0(L13)和SW1(L14)可以在两种显示之间任意切换。 二、设计过程1、LCD的控制器内部有DD
2013-03-10 23:44:37
5103
原创 spartan-3e starter kit board 入门
本篇博文简要介绍下通过ISE操作spartan-3e starter kit board上的4个滑动开关和8个led灯。 一、设计思路1、板子上的led灯一端已经接低电平了,所以,要点亮的话就要向另一端输出高电平即可。2、板子上自带的50MHZ晶振以及reset键都是设计模块的输入。以便能够及时响应3中的输入。3、4个滑动开关中SW2、SW1、SW0作为另一组输入。4、SW
2013-03-06 18:55:54
4874
原创 第七篇 GDI编程
学过8086汇编的人基本都写过向控制台输出的程序吧!我们是向内存的一些特殊区域写,然后直接会显示在屏幕上。Windows的来临使得我们不能直接操作内存。基于Windows的图形编程当然不可能还像8086那样了。 在GDI编程时,我们不会再去关注是针对何种硬件的了,一切硬件设备都被看成是虚拟的。Windows提供给用户一系列的接口函数,用户对硬件的操作,都变成了使用这些函数,函数的执
2013-02-28 12:03:26
1271
原创 第六篇 Windows定时器
大家都知道在8086汇编中,我们可以直接利用int 8h中断来达到计时的目的。显然,Win32编程是不会直接让用户来操作中断的。Windows提供了定时器来达到相同的目的。当用户需要使用定时器时,要向Windows申请,SetTimer;结束时,需要释放,KillTmer。需要注意的是,Windows定时器还是基于时钟中断的,所以精度是55ms。如果用户设定一个任意时间产生中断,则
2013-02-27 20:28:28
1215
原创 通过命令行开启和结束应用程序
通过命令行来开始和结束应用程序?感觉真够老土的......放着图形界面的方便不用,自找麻烦!“计算机技术”系列的文章是属于计算机GEEK的。也希望大家可以补充、丰富。 一、打开首先,从“开始”处输入“cmd”,打开“命令提示符”。这是一切操作的开始。1、如果你需要经常通过命令行打开同一个应用程序那么你可以设置“环境变量”Win7下设置方法如下:开始—控制面板—系
2013-02-23 17:12:12
8443
原创 第十篇 jmp $
在汇编中 $ 的作用是取 $ 所在处的地址。所以jmp $就是一个死循环了。除非有中断,会转去执行中断服务程序。但要注意的是:返回的地址还是jmp $,而不是其下一条语句。 因为,在jmp $执行是会把jmp $语句所在的地址装到程序计数器PC中。中断来临后PC被压栈。中断服务程序返回后,从栈中取回PC的值并开始执行。此时,PC的值是jmp $的地址!
2013-01-06 16:43:20
4540
1
原创 第九篇 单步中断
单步中断在学习基本的8086指令和程序设计时基本很少被提及,以至于很多人对其都不太了解。本博文简单介绍少单步中断的执行过程以及用途。 调用单步中断一般是设置标志寄存器的内容,使得TF=1,则会在下一条指令执行完成后进入单步中断服务程序。单步中断的服务程序与其他中断服务程序没有区别。程序员可以设置其中想写的内容。如果TF=1一直没有被清零,那么以后一直会单步执行程序,也就是说每执
2013-01-02 12:33:02
2870
原创 第五篇 对话框控件的使用
对话框对控件的支持使得建立对话框变得格外的简单,而不需要再像建立普通窗口那样麻烦。用户只需在资源文件中定义好控件,那么Windows在初始化对话框时就会为我们把控件一一添加上去。当然,用户还需要对控件进行一些初始化的工作。 一、控件使用1、控件的定义control 文本 , ID , 类 , 风格 , x , y , 宽度 ,高度 [ ,扩展风格 ]其中值得注意的是
2012-12-14 11:45:44
2304
原创 分解因式
求解:4770000 / 40 = X * Y ? 要求 X 与 Y 是可以用16二进制表示的无符号数。 一、观察法4770000 / 40 =119250 = X * Y ,然后猜测 X 和 Y 的值。119250还是比较大的数,比较难猜! 二、技巧法1、4770000 / 40 = 477000 / 4 =477 * 1000 / 4 =477 * ( 1000 /
2012-12-07 12:52:38
938
原创 第四篇 对话框的建立与使用
对话框分为模态对话框和非模态对话框。模态对话框是指只有其销毁后,才能对其父窗口进行操作的对话框;而非模态则无此要求。本博文将会介绍下模态对话框的资源定义与使用。 一、基本知识对话框主要是用来进行和用户交互的,其存在可以使得主窗口更加简洁。对话框也是基于窗口的。但Windows的封装使得建立对话框比建立窗口简单的多。下面看看建立窗口、模态对话框与非模态对话框的异同:
2012-12-04 16:38:20
1428
原创 补码消除减法运算
计算机进行运算引入补码主要就是为了消除减法运算,但根据补码的定义,形成补码过程中又出现的减法运算。比如:x = - 1011[x]补 = 2^(4+1) + x = 100000 - 1011 = 1,0101若把模2^5 = 100000 =11111 + 00001 时,则上式可表示为:[x]补 = 2^5 + x = 11111 + 00001 + x又因 x 是
2012-12-03 00:21:48
1814
原创 第三篇 菜单、图标与光标的使用
这篇博文将会简单介绍下菜单、图标与光标在Windows窗口程序中如何使用。 一、菜单、图标、光标都是作为资源在资源文件中定义的。1、菜单的定义方法:菜单ID MENU [DISCARDABLE]BEGIN 菜单项定义END 菜单项定义:定义普通菜单项:MENUITEM 菜单文字 ,命令ID [,选项列表]定义分割线:
2012-12-02 14:45:59
1422
原创 第八篇 TSR程序设计初探
这篇博文介绍一个简单的TSR程序设计的例子。 一、TSR是什么TSR是内存驻留程序(Terminate and Stay Resident Program)的简称。内存驻留程序是指这样一种程序,TA在执行结束后,将一部分留在内存中,受到操作系统的保护,可由外界激活。一般来说,TSR都会和DOS或BIOS中断相联系。 二、本篇博文介绍的TSR的设计思路是什么设计的功能
2012-11-30 00:36:30
3350
原创 第二篇 第一个窗口程序
这篇博文介绍下一个简单的窗口的建立过程。 一、建立窗口的过程如下:1、注册窗口类---利用建立的窗口类建立窗口---消息循环等待处理消息2、主要的函数如下:RegisterClassEx---[ CreateWindowEx ShowWindow UpdateWindow ]---[ GetMessage TranslateMessage Dis
2012-11-25 16:40:41
1106
原创 第一篇 开发环境的搭建
这篇博文主要给大家介绍下Win32汇编开发所必须的一些套件。 一、汇编源代码编译器——ml.exe。这是开发32汇编所必须的编译器,其他较低版本的都不可用。用法:ml /c /coff *.asm其中,/c表示只编译不链接;/coff表示把汇编源文件(*.asm)编译成coff文件格式。 二、资源编译器——rc.exe。资源编译器顾名思义就是用来编译用户定义的
2012-11-23 23:12:41
836
原创 第七篇 使用8253计数器
本篇博文主要介绍如何利用8253计数器计时。8253计数器每秒大概计数18次。每计数一次就会向CPU发出中断请求。也即每55ms就会发一次中断请求。CPU响应中断,调用的是int 1ch。以下代码的作用时利用int 1ch中断计时60秒,在屏幕上显示00至59,然后程序自动退出。 一、代码initint equ 1chdata segment addr dw ?,?
2012-11-14 20:19:37
1841
原创 第六篇 键盘中断与应用程序读取键盘缓冲区
这篇博文主要介绍在X86下键盘的中断过程,以及应用程序如何利用中断读取键盘缓冲区内容。 一、撰写该篇博文的背景介绍在我们全屏看视频时,按下Esc键,播放器还原或者最小化;在利用其他软件的时候,我们会发现,设置可以设置打开或关闭程序的快捷方式......应用程序为什么可以根据键盘的指示工作?又是如何工作的呢? 二、对于键盘中断的介绍当我们在按下按键时,键盘会把按键的扫
2012-11-13 15:31:33
6840
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人