博文

骑士周游算法(2005-09-24 20:54:00)

摘要: 骑士周游算法     /*===================骑士周游算法--用链栈实现===================*/#include<stdio.h>#include <malloc.h>#define LEN sizeof(struct stack)struct stack{int row;int col;int dir;struct stack *next;struct stack *prior;};struct stack*head = (struct stack*)malloc(LEN);struct stack*q=head;void push(int i,int j,int v){struct stack *p=(struct stack*)malloc(LEN);p->row=i;p->col=j;p->dir=v;p->next=q;q=p;}void pop(){struct stack *temp;temp=q->prior;free(q);q=temp;}void start(){ int y,z,v=0;int i,j;int move[8][2]={2,1,1,2,1,-2,2,-1,-2,1,-1,2,-1,-2,-2,-1};int c[6][6];for(i=0;i<6;i++){for(j=0;j<6;j++)c[j]=0;}printf("input y:");scanf("%d",&y);printf("input z:");scanf("%d",&z);int account=0;while(account<35){while(v<8){i=y+move[v][0];j=z+move[v][1];if(i>=0&&i<=5&&j>=0&&j<=5&&c[j]==0){ push(y,z,v+1);account++;c[y][z]=account;y=i;z=j;v=0;}else v++;}if(v==8&&account>0&&a......

阅读全文(1919) | 评论:0

C++基础:常量成员函数特殊说明(2005-09-24 20:53:00)

摘要: C++基础:常量成员函数特殊说明     1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。  2. char carry[10] = {0}; 编译器会将其后所有的东西都置0;  3. 函数返回值为const时,返回的东西付给一个类型相同的标示后其不能为左值;  4. const int *i; int const *i; int * const i; 前两个功能相同,说明I所指向的内容不变;最后一个说明指针指向的地址不变,但内容可变。  5. 类中的const成员函数。定义为在原型后加const。常量函数不能修改类中的任何属性。但有两种方法可以修改。  a) {(myclass *)this->member1 = values;}  b) 将一个成员定义成mutable即可被常量函数修改。  6. 类中的常量const 类型的,不能在类中被用来定义数组。而enum {ONE=100; TWO=2};定义的ONE、TWO却可以。通常的enum定义的置分配问题:enum A{ L=9, Z};此时Z的值为10。  7. 用const定义的int可用来开辟数组,但const定义的常量数组中的元素,不能用来定义数组。  8. 用sizeof计算变量的空间,如果是数组,按实际空间返回;常量字符串(实际上是在静态内存区开辟的变量)sizeof返回比实际长度加一。如果是指针则不考虑它指向的空间大小,仅仅返回指针类型的大小。如果用sizeof计算函数的行参,即使是属组也仅仅返回一个相关类型指针的大小。  9. 形如int iarray[] = {12, 124, 433};编译器会自动给iarray分配3个元素的长度。元素长度的个数计算公式为sizeof(iarray) / sizeof(*iarray)。  10. 拷贝构造函数:当行参和实参结合时,如果是复杂对象的传值类型,则调用拷贝构造函数生成一个临时对象作为实参,退出函数时,临时对象被调用析构函数释放。当返回值是复杂对象是,也是调用拷贝构造函数来赋值。这就出现构造函数和析构函数被调用次数不相等的情况。拷贝构造函数的原型为A(A&......

阅读全文(3288) | 评论:0

被入侵计算机系统恢复指南(2005-09-24 20:49:00)

摘要: 被入侵计算机系统恢复指南 点击数:496    发布日期:2005-6-29 19:18:00   【评论】【打印】【收藏此页到365Key】   A.准备工作   1.商讨安全策略   如果你的组织没有自己的安全策略,那么需要按照以下步骤建立自己的安全策略。   1.1.和管理人员协商   将入侵事故通知管理人员,可能在有的组织中很重要。在be aware进行事故恢复的时候,网络管理人员能够得到内部各部门的配合。也应该明白入侵可能引起传媒的注意。   1.2.和法律顾问协商   在开始你的恢复工作之前,你的组织需要决定是否进行法律调查。   注意CERT(Computer Emergency Response Team)只提供技术方面的帮助和提高网络主机对安全事件的反应速度。它们不会提出法律方面的建议。所以,对于法律方面的问题建议你咨询自己的法律顾问。你的法律顾问能够告诉你入侵者应该承担的法律责任(民事的或者是刑事的),以及有关的法律程序。   现在,是你决定如何处理这起事故的时候了,你可以加强自己系统的安全或者选择报警。   如果你想找出入侵者是谁,建议你与管理人员协商并咨询法律顾问,看看入侵者是否触犯了地方或者全国的法律。根据这些,你可以报案,看看警方是否愿意对此进行调查。   针对与入侵事件,你应该与管理人员和法律顾问讨论以下问题:   如果你要追踪入侵者或者跟踪网络连接,是否会触犯法律。   如果你的站点已经意识到入侵但是没有采取措施阻止,要承担什么法律责任。   入侵者是否触犯了全国或者本地的法律。   是否需要进行调查。   是否应该报警。   1.3.报警   通常,如果你想进行任何类型的调查或者起诉入侵者,最好先跟管理人员和法律顾问商量以下。然后通知有关执法机构。   一定要记住,除非执法部门的参与,否则你对入侵者进行的一切跟踪都可能是非法的。   1.4.知会其他有关人员   除了管理者和法律顾问之外,你还需要通知你的恢复工作可能影响到的人员,例如其他网络管理人员和用户。   2.记录恢复过程中所有的步骤   毫不夸张地讲,记录恢复过程中你采取的每一步措施,是非常重要的。恢复一个被侵入的系统是一件很麻烦的事,要耗费大量的时间,因此经常会......

阅读全文(1769) | 评论:0

电脑死机原因全集(2005-09-24 20:46:00)

摘要: 电脑死机原因全集 点击数:1238    发布日期:2005-7-16 1:48:00   【评论】【打印】【收藏此页到365Key】     1.保证正确的Bios设置。Bios里面的设置一定要合适,错误的Bios设置会使你在运行Windows的时候死机。    2.经常检查电脑配件接触情况。在板卡接触不良的情况下运行会引起系统死机,因此在更换电脑配件时,一定要使板卡与主机板充分接触。    3.定期清洁机箱。灰尘太多会使板卡之间接触不良,引起系统在运行中死机,因此机箱要随时清洁,不要让太多的灰尘积存在机箱中。    4.坚持认真查杀病毒。对来历不明的光盘或软盘,不要轻易使用,对邮件中的附件,要先用杀毒软件检查后再打开。    5.按正确的操作顺序关机。在应用软件未正常结束运行前,别关闭电源,否则会造成系统文件损坏或丢失,引起在启动或运行中死机。    6.避免多任务同时进行。在执行磁盘整理或用杀毒软件检查硬盘期间,不要运行其他软件,否则会造成死机。    7.勿过分求新。各种硬件的驱动不一定要随时更新,因为才开发的驱动程序往往里面有bug,会对系统造成损害,引起系统死机,最新的不一定是最好的。    8.在卸载软件时,用自带的反安装程序或Windows里面的安装/卸载方式,不要直接删除程序文件夹,因为某些文件可能被其他程序共享,一旦删除这些共享文件,会造成应用软件无法使用而死机。    9.设置硬件设备时,最好检查有无保留中断(IRQ),不要让其他设备使用该中断号,以免引起中断冲突,造成系统死机。    10.在上网冲浪的时候,不要打开太多的浏览器窗口,否则会导致系统资源不足,引起系统死机。    11.如果你的机器内存不是很大,千万不要运行占用内存较大的程序,如Photoshop,否则运行时容易死机。    12.对于系统文件或重要的文件,最好使用隐含属性,这样才不至于因错误操作删除这些文件,引起系统死机。    13.修改硬盘主引导记录时,最好先保存原来的记录,防止因修改失败而无法恢复原来的引导记录。    14.CPU、显卡等配件一般不要超频,若确实需要超,要注意超频后板卡的温度,CPU、显卡等长期在非正常频率和温度下工作轻则自动重启或死机,重者......

阅读全文(2740) | 评论:0

汇编语言超浓缩教程[转]经典(2005-09-24 20:44:00)

摘要: 汇编语言超浓缩教程[转]经典     Content:     “ 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣……;二、汇编直接与硬件打交道,如果你想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在干什么、究竟怎么干?一个真正的硬件发烧友,不懂这些可不行。三、如今玩DOS的多是“高手”,如能像吾一样混入(我不是高手)“高手”内部,不仅可以从“高手”朋友那儿套些黑客级“机密”,还可以自诩“高手”尽情享受强烈的虚荣感--#$%& “醒醒!”   对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?―― Here we go!(阅读时看不懂不要紧,下文必有分解)   因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提)   CPU是可以执行电脑所有算术╱逻辑运算与基本 I/O 控制功能的一块......

阅读全文(2884) | 评论:0

无线数据传输系统的实现(2005-09-24 09:00:00)

摘要: 无线数据传输系统的实现 [ 作者:山东大学信息科学与工程学院 | 转贴自:本站原创 | 点击数:2087 | 更新时间:2002-12-5 | 文章录入:admin ] 从我国目前情况来看,广泛应用的大量VHF/UHF电台多为模拟话音电台,通信手段仍以短波、超短波话音通信为主,不能适应当前数字化数据传输的要求,限制了现在众多的电台发挥更大的作用。本文提出了一种方案,利用无线调制解调器芯片MSM6948做成的MODEM与电台的话音接口连接,同时还可与主控计算机或其他具有标准RS-232接口的数据设备相连,从而实现数据通过现有的电台进行无线传输,有效地利用了现有设备,在一定程度上满足了日益增长的高速数据传输的要求.系统总体框图及其原理系统框图如图1所示,作为数据的双向传输系统,每一方都必须具有数据的发送和接收功能,因此通信双方的结构是等价的。它们都是由RS-232电平转换电路、单片机电路、无线调制解调器和超短波电台组成的。计算机发送数据时,首先由RS-232电平转换电路将计算机串口发送数据的RS-232电平转换为单片机所能接收的TTL电平,单片机接收到数据后,在单片机的控制下将数字信号送入无线调制解调器芯片进行调制,调制后的模拟信号送往超短波电台的发送语音通道,并由超短波电台发射出去。接收方的超短波电台收到发射方的发射信号后,电台内的鉴频输出端将输出恢复后的模拟信号,此信号送到调制解调器芯片,解调出数字信号,将此信号送入单片机进行处理,在单片机的控制下,将收到的数字信号依次经RS-232电平转换电路将TTL电平转换为计算机串口所需的RS-232电平,并由计算机对收到的信号进行处理. 图1 系统框图图2 MSM6948原理框图图3 硬件电路图4 控制板与电台的连接图5 软件流程图 硬件电路设计在硬件电路中,单片机是整个系统的核心,它决定了整个系统的总体结构和可升级能力。在本系统中,单片机采用ATMEL公司的AT90系列单片机AT90S8515。无线调制解调器采用OKI公司的MSM6948芯片,RS-232电平转换电路采用MAX232。由于MAX232的应用已相当普遍,在此不再赘述。下面主要介绍AT90S8515及MSM6948的......

阅读全文(4170) | 评论:0

VC通过串口收发短消息1(2005-09-24 07:47:00)

摘要: 通过串口收发短消息(上)     选择自 bhw98 的 Blog 关键字   短消息,串口,SMS,PDU,Unicode 出处   Q 用串口连接GSM手机发送和接收短消息,在应用程序中如何编程实现? Q 我们打算开发一个基于GSM短消息方式的GPS系统,如何利用SMS进行数据通信? A 首先,我们要对由ESTI制订的SMS规范有所了解。与我们讨论的短消息收发有关的规范主要包括GSM 03.38、GSM 03.40和GSM 07.05。前二者着重描述SMS的技术实现(含编码方式),后者则规定了SMS的DTE-DCE接口标准(AT命令集)。一共有三种方式来发送和接收SMS信息:Block Mode, Text Mode和PDU Mode。Block Mode已是昔日黄花,目前很少用了。Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDU Mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。Text Mode比较简单,而且不适合做自定义数据传输,我们就不讨论了。下面介绍的内容,是在PDU Mode下发送和接收短消息的实现方法。PDU串表面上是一串ASCII码,由‘0’-‘9’、 ‘A’-‘F’这些数字和字母组成。它们是8位字节的十六进制数,或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其它信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的PDU串,结构是不完全相同的。我们先用两个实际的例子说明PDU串的结构和编排方式。 例1 发送:SMSC号码是+8613800250500,对方号码是13851872468,消息内容是“Hello!”。从手机发出的PDU串可以是08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 00 00 06 C8 32 9B FD 0E 01对照规范,具体分析: 分段 含义 说明 08 SMSC地址信息的长度 共8个八位字节(包括91) 91 SMSC地址格式......

阅读全文(2722) | 评论:0

Delphi中利用MSCOMM控件进行GPS数据采集 (2005-09-23 12:38:00)

摘要: Delphi中利用MSCOMM控件进行GPS数据采集 日期:2005年1月3日 作者:杨辉 薛向锋 人气: 430 人 [ 大 中 小 ]    1、准备  GPS(Global Positioning System),即全球定位系统,利用24颗GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统、江河流域的灾害信息管理和预测系统中,GPS得到了广泛的应用。本文利用MSCOMM控件实现了GPS数据的采集,可为信息管理和指挥调度等提供定位数据。  本文采用GPS的异步串行传送方式,将GARMIN 12C按NMEA-0183协议输出的数据采集到了微机,并将接收到的地理坐标转换成为直角坐标。  在DELPHI 5.0 IDE中新建一工程,名为GPSReceiver,在主界面上放置四个TEDIT控件,用于显示接收到的地理坐标和转换后的直角坐标,其“name”属性分别为:Editlatitude、Editlongitude、Editxcoord和Editycoord;在四个TEDIT控件下方放置三个按钮,用于数据接收的控制和退出程序,其“Caption”属性分别为“接收”、“断开”和“返回”;在界面上任意位置放置一个Ttimer控件、其属性interval值为“1000”,主要用于每隔一秒接收一次GPS数据;一个TMSCOMM控件。程序运行后的界面如图1所示:      图1   2、编写代码  1) 在FORM的implementation部分添加以下声明 varnn,x,y,sm,n,weidud,jinchad,firstpxl,secondpxl,a,b,longitude,longitudemargin,latitude:double;weidustr,weidustrcpy,longitudestr1cpy,longitudestrccpy,weidustr1,weidustr2,jinchastr,jinchastr1,jinchastr2,longitudestr1,longitudestr11,longitudestr12,longitudestrc,longitudestrc1,longitudestrc2:string;gps......

阅读全文(2402) | 评论:0

GPS/GPRS车辆监控系统中移动终端的开发(2005-09-23 12:37:00)

摘要: GPS/GPRS车辆监控系统中移动终端的开发 上网时间 : 2004年04月03日   打 印 版   推 荐 给 同 仁   发 送 查 询 越来越多的民用车辆开始使用GPS定位技术实现定位、监控和导航等功能。本文介绍了一种采用SA1110 CPU和Q2400 GPRS/GSM模块的车辆定位监控系统,提出了在嵌入式平台上实现车载信息处理终端的开发方案,详细介绍了各个硬件和软件模块的功能和实现方法。 近年来,对地域广泛、机动性强、数量众多的移动目标有效监控、紧急救援和各种信息服务的需求,在客运、公安、银行、物流管理等行业表现得尤为突出。全球定位系统技术的发展使得移动目标的实时定位成为可能,同时无线通信技术的技术也得到了长足进展,对移动目标进行远程监控调度成为可能。特别是GPRS业务的出现,使得人们能够对移动目标进行全国范围、实时、全天候监控调度。 监控系统介绍 车辆调度系统的建设首先要考虑监控覆盖范围、实时性、调度业务、车辆容量和刷新速率等的要求,选择合适的无线数据链路和电子地图,以及开发相应业务软件满足用户的要求。就目前的GPS车辆监控系统而言,无线数据链路应用较多的为GSM通信方式,这主要由于其覆盖范围广、无需架设基站、可实现语音/短信等功能优点所决定的,但是采用短消息传送车载信息不但容量有限,而且实时性不能得到保证,并且还存在着费用过高的问题。幸运的是新兴的GPRS数据业务解决了这些问题。GPRS/IP/TCP/UDP协议栈可以满足数据的实时交换,在现有的公用无线通信系统中拥有最大的带宽,与目前流行的短消息相比,在相同数据长度、相同时间间隔下通讯费用是短消息方式的1/6,甚至更少。监控系统主要由以下部分组成: 1. 车载信息处理终端:包括中央处理单元、显示单元(可选)、GPS接收机、GPS天线、GPRS手机模块(或CDMA等其它通信模块)、报警器(防盗、超速、抢劫、特殊功能报警等)。终端能够提供定位、导航、通话、报警和远程控制等功能。 2. 无线通信数据链路:无线数据传输设备作为基站与各移动目标进行信息交换的枢纽,是整个车辆调度系统中的重要组成部分,在本方案......

阅读全文(3206) | 评论:1

VC++实现GPS全球定位系统定位数据的提取(2005-09-22 21:19:00)

摘要: VC++实现GPS全球定位系统定位数据的提取 作者: 郎锐 信息产业部电子第二十二研究所青岛分所   摘要: 本文提出了一种在VC下实现对GPS全球定位系统定位信息的接收以及对各定位参数数据的提取方法。  引言  卫星导航技术的飞速发展已逐渐取代了无线电导航、天文导航等传统导航技术,而成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长足进步。现不仅应用于物理勘探、电离层测量和航天器导航等诸多民用领域,在军事领域更是取得了广泛的应用--在弹道导弹、野战指挥系统、精确弹道测量以及军用地图快速测绘等领域均大量采用了卫星导航定位技术。有鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。我国也于2000年10月31日和12月21日成功发射了第一颗和第二颗导航定位试验卫星并建立了我国第一代卫星导航定位系统--"北斗导航系统",但由于起步晚也没有得到广泛应用。目前在我国应用最多的还是美国的GPS系统。本文就针对当前比较普及的GPS系统,对其卫星定位信息的接收及其定位参数提取的实现方法予以介绍。  定位信息的接收  通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分组成。由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS接收机传送到计算机中进行信息提取处理。从串口读取数据有多种方法,在此直接使用 Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为"文件",因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置: m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); file://以异步方式打开COM1口SetCommMask (m_hCom, EV_RXCHAR ) ; file://添加或修改Windows所报告的事件列表SetupComm (m_hCom,READBUFLEN/*读缓冲*/,WRITEBUFLEN/*写缓冲*/); // 初始化通讯设备参数 // ......

阅读全文(3057) | 评论:0