当前位置: 首页 > news >正文

做网站如何在百度快照上排名今天大事件新闻

做网站如何在百度快照上排名,今天大事件新闻,怎么替换网站,广州做网站地方前言 光做理论上的总结,不做练习理解不会那么深刻 做类的练习,解析类里面的内容有哪些 引入 电脑使用最频繁的两个外设:鼠标和键盘,他们每时每刻都在和用户交互,试做一个鼠标类 思路 我们现在要做一个鼠标类,这个类是属于能动类还是资源类呢?鼠标似乎自己做不了什么,需要和其…

前言

        光做理论上的总结,不做练习理解不会那么深刻

        做类的练习,解析类里面的内容有哪些

引入

        电脑使用最频繁的两个外设:鼠标和键盘,他们每时每刻都在和用户交互,试做一个鼠标类

思路

        我们现在要做一个鼠标类,这个类是属于能动类还是资源类呢?鼠标似乎自己做不了什么,需要和其他对象交互才能产生效果,在有的书上也被称作"事件类".他们的使用大概是这个样子的:

class SomeType{                        //某个类private:........public:RtnType fun(Mouse mouse);      //成员方法,鼠标对象作为参数传入
}

鼠标的物理层面

        我们手里使用的鼠标实际上是一个传感器.   他发出了一些信号,比如左键单击,右键单击,左键双击,中键点击,中键上滚(下滚),还有一些鼠标包含左右侧键等等.应该有对应的地址空间去采集这些数据.所以:在鼠标类设计前,应设计一个同步信息类.

        同步信息类的设计

        用途:接收鼠标传来的信号.---标准的资源类.

        说明:笔者并不知道硬件驱动是怎么描述鼠标信息的.做以下假设:

        有5个信号,分别是鼠标左键点击,右键点击,鼠标滚轮滚动,鼠标平移和鼠标升降,他们都是用int存储的.找到他们在内存中的位置,例如0x00,0x04,0x08,0x0c,0x10,定义地址映射

int *lc=(int *)0x00;   
int leftClick=*lc;            //映射鼠标左键
int *rc=(int *)0x04;   
int rightClick=*rc;           //映射鼠标右键
int *ro=(int *)0x08;   
int roll=*ro;                 //映射鼠标滚轮
int *m=(int *)0x0c;   
int Move=*m;                  //映射鼠标平移
int *r=(int *)0x10;   
int Rise=*r;                  //映射鼠标升降

        再次声明,因为不知道具体形式,假设部分数据类型所以可能有错---比如左键点击可能只占了1位,而鼠标移动可能是long类型. 还有指针本来不能指向具体内存地址,但关于硬件的部分必须这样做.这里的地址也是假设的,应该由操作系统给出.---------这部分有知道朋友的可以留言讨论

        现在可以创建同步信息类了.

class MouseInfo{private:int left_click;int right_click;int roll;int move;int rise;public:MouseInfo(int lc,int rc,int ro,int lm,int rm);
}

        此外,我们还想获取到类属性的状态,例如:中键一定时间内无滚动,一定时间内无左移(右移),视为冻结状态freeze,  添加这部分内容到同步信息类里. 

class MouseInfo{private:int left_click;                                     //左键单击int right_click;                                    //右键单击int roll;                                           //中键滚动bool freeze_roll;int move;                                           //鼠标平移bool freeze_move;int rise;                                           //鼠标升降bool freeze_rise;bool freeze_all;                                    //全部冻结状态public:MouseInfo(int lc,int rc,int ro,int lm,int rm);       //构造函数void freezeJudge();                                  //冻结状态判断
}

        两个函数实现:        

        MouseInfo::MouseInfo(int lc,int rc,int ro,int lm,int rm):left_click(lc),right_click(rc),roll(ro),move(lm),rise(rm)            //构造函数{freeze_roll=true;freeze_move=true;freeze_rise=true;freeze_all=true;}      void MouseInfo::freezeJudge()                //冻结状态判断{int rollTemp=roll;                       //存储当前roll值;int mTemp=move;                          //存储当前平移值;int rTemp=rise;                          //存储当前升降值;sleep(50);                               //延时50毫秒freeze_roll=(roll==rollTemp)?true:false; //滚动判定freeze_move=(mTemp==move)?true:false;    //平移判定freeze_rise=(rTemp==rise)?true:false;    //升降判定if(left_click!=1&&right_click!=1&&freeze_roll&&freeze_move&&freeze_rise)freeze_all=true;                     //鼠标没输出elsefreeze_all=false;   }                                 

        说明: 定义了几个状态判定变量是否状态发生变化

类的内容      

        类的内容有属性和方法,属性表示对象由什么组成,以及处于某种状态.

        属性是对于对象组成部分对象状态的描述.

        属性和对象的关系如下:

        1>对象被看成一个个体,属性表示个体的组成部分

        举例:有一个抽奖箱,里面装了一些矩形纸片.那么抽奖箱的类里有两个对象:抽奖箱盒子和纸片集合---容器类对象,容器里是纸片.

        2>对象属性可以描述对象.

        举例:纸片对象可以用顶点坐标和长度宽度来描述,所以纸片类属性包括坐标和长度,宽度.具体描述可以用构造方法来说明.  但设计属性时可以先不关注,只需要知道对象和属性必然相关就可以.

        3>对象属性可以描述对象状态

       对象个体必然处于某几种状态之一时,可以把状态设置在属性里,并随时查询.

         举例:鼠标必然处于下列状态之一:左键单击,右键单击,滚轮滚动,鼠标左右移动,鼠标上下移动,冻结状态。下面的鼠标类设计中,鼠标状态是属性内容之一。

鼠标类设计之1:鼠标状态

        考虑到多个状态,使用枚举来描述。具体原因可查看“白话编程--数据篇(4)枚举”

        枚举在c++中作为静态数据,先于对象存在。

        定义一个属性,类型为枚举型。

        定义一个方法,可以获取到枚举值

class Mouse{public:/*下列状态表示左击,右击,双击,拖拽,卷动,鼠标平移,升降,冻结*/enum State{LCLICK,RCLICK,DCLICK,DRAG,ROLL,MOVE,RISE,FREEZE};private:State state;public:Mouse();State getState(MouseInfo mi);    //传入鼠标信息类对象,获取状态
}

        说明:由于尚未完善程序,所以构造方法可以忽略

 *******************************以下内容已废弃*************************************************************

        实现状态查询方法getState

 State getState(MouseInfo mi){if(mi.left_click==1){mi.left_click==0;            //人为将该值置0sleep(500);if(mi.left_click==1)return DCLICK;elsereturn LCLICK;            //左键单击或双击判定if(mi.right_click==1)return RCLICK;mi.freezeJudge();if(!mi.freeze_roll)return ROLL;if(!mi.freeze_move)return MOVE;if(!mi.freeze_rise)return RISE;if(!mi.freeze_all)return FREEZE; 
}

说明:其间顺序不是绝对的,优先级可以自己定义。

细心的朋友可能还会发现问题:没有定义长按鼠标,以及长按后拖拽。---这部分需要硬件支持,笔者设定中按下后一个映射的寄存器为1,抱歉!

 *******************************以上内容已废弃*************************************************************

=========================2024.2.12update===================================

   实现状态查询方法getState

    说明:增加了拖拽判定。

     ------------程序有时候不是一蹴而就的。初贴于2月9日(年三十),开始没想到解决办法,2月12日(初三)作了补充。原来的痕迹留下来,作为记录

 State getState(MouseInfo mi){if(mi.left_click==1){mi.left_click==0;            //人为置0sleep(500);                  //延时0.5秒if(mi.left_click==1)         //采集信息,如果双击或长按将采集到1mi.left_click==0;        //再次人为置0if(mi.left_click==0)     //如果采集到0          return DCLICK;       //双击状态确定else                     //如果采集到1,作为长按确定,长按不作为单独状态mi.freezeJudge();    //冻结判定if(!mi.freeze_move||!mi.freeze_rise)  return DRAG;     //拖拽确定    elsereturn LCLICK;           //单击确定}if(mi.right_click==1)return RCLICK;               //右键单击确定mi.freezeJudge();if(!mi.freeze_roll)return ROLL;                 //中键卷动确定if(!mi.freeze_move)return MOVE;                 //鼠标左右移动确定if(!mi.freeze_rise)return RISE;                 //鼠标升降移动确定if(!mi.freeze_all)return FREEZE;               //鼠标处于冻结状态确定
}

说明:其间顺序不是绝对的,优先级可以自己定义。

再次声明:代码非可直接使用主要是思路!

未完待续。。。


文章转载自:
http://hyphen.nLkm.cn
http://fascisti.nLkm.cn
http://equimolecular.nLkm.cn
http://phosphamidon.nLkm.cn
http://paulette.nLkm.cn
http://obstetric.nLkm.cn
http://semiliterate.nLkm.cn
http://phantasmagoric.nLkm.cn
http://ppe.nLkm.cn
http://headlight.nLkm.cn
http://experimentally.nLkm.cn
http://exculpate.nLkm.cn
http://glaciation.nLkm.cn
http://reggeism.nLkm.cn
http://antiquity.nLkm.cn
http://expropriation.nLkm.cn
http://gotham.nLkm.cn
http://jackstaff.nLkm.cn
http://dean.nLkm.cn
http://overweary.nLkm.cn
http://carol.nLkm.cn
http://napooed.nLkm.cn
http://acetazolamide.nLkm.cn
http://sterility.nLkm.cn
http://griseous.nLkm.cn
http://bymotive.nLkm.cn
http://catena.nLkm.cn
http://flooding.nLkm.cn
http://tenderfoot.nLkm.cn
http://bonnily.nLkm.cn
http://trader.nLkm.cn
http://evaluable.nLkm.cn
http://mallet.nLkm.cn
http://unpolarized.nLkm.cn
http://naturalize.nLkm.cn
http://peashooter.nLkm.cn
http://tetrapylon.nLkm.cn
http://vermifuge.nLkm.cn
http://alphabetic.nLkm.cn
http://reconquer.nLkm.cn
http://constructionist.nLkm.cn
http://escapism.nLkm.cn
http://meliority.nLkm.cn
http://hangdog.nLkm.cn
http://gonial.nLkm.cn
http://rationalism.nLkm.cn
http://definability.nLkm.cn
http://hooligan.nLkm.cn
http://animalculum.nLkm.cn
http://overladen.nLkm.cn
http://ulerythema.nLkm.cn
http://backfall.nLkm.cn
http://floaty.nLkm.cn
http://bolshy.nLkm.cn
http://nationalistic.nLkm.cn
http://scrounge.nLkm.cn
http://strongpoint.nLkm.cn
http://barge.nLkm.cn
http://portress.nLkm.cn
http://idol.nLkm.cn
http://prayerful.nLkm.cn
http://punkie.nLkm.cn
http://fertilizable.nLkm.cn
http://carbamino.nLkm.cn
http://phonoangiography.nLkm.cn
http://unconjugated.nLkm.cn
http://limit.nLkm.cn
http://multichain.nLkm.cn
http://acacia.nLkm.cn
http://ravin.nLkm.cn
http://dacryocystorhinostomy.nLkm.cn
http://dicot.nLkm.cn
http://tagalong.nLkm.cn
http://semirevolution.nLkm.cn
http://energumen.nLkm.cn
http://ironweed.nLkm.cn
http://combatant.nLkm.cn
http://desertion.nLkm.cn
http://application.nLkm.cn
http://accuracy.nLkm.cn
http://overprotect.nLkm.cn
http://hemihydrate.nLkm.cn
http://impossibility.nLkm.cn
http://defervescence.nLkm.cn
http://alinement.nLkm.cn
http://soldan.nLkm.cn
http://link.nLkm.cn
http://zibelline.nLkm.cn
http://taconite.nLkm.cn
http://aspectant.nLkm.cn
http://cytomorphology.nLkm.cn
http://depauperate.nLkm.cn
http://foulbrood.nLkm.cn
http://dining.nLkm.cn
http://moonlet.nLkm.cn
http://greave.nLkm.cn
http://vila.nLkm.cn
http://chilopod.nLkm.cn
http://uncharity.nLkm.cn
http://mongrelise.nLkm.cn
http://www.hrbkazy.com/news/62407.html

相关文章:

  • 北京市公共资源交易中心优优群排名优化软件
  • 网站建设好发信息网矿坛器材友情交换
  • 代理ip做网站流量湖南靠谱关键词优化
  • java做网站的多么厦门seo外包平台
  • 网站建设banner扫图片识别图片原图
  • mac可以做网站服务器吗什么是搜索引擎优化seo
  • 网站建设的必要性分析搜索引擎排名优化建议
  • 建设网站的网站江苏湖南网站建设推荐
  • 中展建设股份有限公司网站公众号推广引流
  • 做网站技术员网站制作费用
  • 武汉做网站哪家专业他达拉非功效与作用主要会有哪些
  • wordpress图片库插件网站页面优化内容包括哪些
  • 网站界面修改太原seo关键词排名优化
  • 武汉市网站制作网站制作教程视频
  • 中国的网站域名大连seo外包平台
  • 蜘蛛云建网站怎样怎样优化关键词到首页
  • 巴中做网站百度小说排行榜2020
  • 当当网站建设优点百度一下你就知道了百度一下
  • html5经典网站seo外链收录
  • 电商网站设计内容厦门seo排名公司
  • 武汉建设公司有哪些优化关键词方法
  • 怎样才能建一个网站快刷网站
  • 网站开发应该怎么学网站网络推广推广
  • wordpress做网站怎么样推广价格一般多少
  • 专门做照片的网站网店运营基础知识
  • 设计师网站behance二级域名分发平台
  • 丹灶做网站个人网页制作完整教程
  • 西安手机网站制作的公司抖音seo优化
  • wordpress单独页面优化设计七年级下册语文答案
  • 天正电气网站建设2021最火关键词