我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C++ -> C++综合 -> 文章内容  
栏目导航
· C++综合 · C++通信
· C++视图 · C++图象
· C++系统 · C++多媒体
· C++界面 · C++文件
· C++数据库 · C++网络
热门文章
· C/C++中的结构体
· C/C++中结构体(struct..
· C++中类的继承特性
· C++启蒙之控制结构
· C++面向对象编程入门:..
· C++面向对象编程入门:..
· 理解C++面向对象程序设..
· C++类对象的复制-拷贝..
· C++类静态数据成员与类..
· C++友元的入门教程
· C++中类的多态与虚函数..
· 类的分解,抽象类与纯..
相关文章

· C++中理解“传递参数..
· C++箴言:理解隐式接..
· C++箴言:理解typen..
· 深入理解C语言指针奥..
· 深入理解C语言指针奥..
· WEB2.0一些看法和理..
· “红客现象”为什么..
· Cisco IOS嵌入式呼叫..
· 深入理解C语言指针的..
· 流和缓冲区的理解及..
查看更多与理解C++面向对象程序设计中的抽象理论相关内容

理解C++面向对象程序设计中的抽象理论
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 17:11:56  发布人:ghostfire

减小字体 增大字体

  很多书在一开始就开始学习josephus问题,为了让大家前面学起来较为容易我把前面涉及到此问题的地方都故意去掉了,现在我们已经学习过了结构体和类,所以放在这里学习可能更合适一些。

  在正式开始学习之前我们先回顾一下如何利用数组和结构体的方式来解决,最后我们再看一下如何利用面向对象的抽象理念进行解决此问题的程序设计,相互对比,找出效率最高,最容易理解,最方便维护的程序来,说明利用面向对象的抽象理念进行程序设计的好处。

  josephus问题其实就是一个游戏,一群小孩围成一个圈,设置一个数,这个数是个小于小孩总数大于0的一个整数,从第一个小孩开始报数,当其中一个小孩报到你设置的那个数的时候离开那个圈,这样一来反复报下去,直到只剩下最后一个小孩的时候那个小孩就是胜利者,写程序来找出这个小孩。

  以下是数组方法:

  由于数组的限制我们必须预先假设好有多少个小孩,离开的小孩他自身设置为0来标记离开状态。

  代码如下:

#include<iostream> 
usingnamespacestd; 
voidmain() 
{ 
  constintnum=10; 
  intinterval; 
  inta[num]; 
  for(inti=0;i<num;i++) 
  { 
   a[i]=i+1; 
  } 
   cout<<"pleaseinputtheinterval:"; 
  cin>>interval; 
  for(inti=0;i<num;i++) 
  { 
   cout<<a[i]<<","; 
  } 
   cout<<endl; 
 
intk=1; 
intp=-1; 
 
while(1) 
{ 
   for(intj=0;j<interval;) 
   { 
     p=(p+1)%num; 
     if(a[p]!=0) 
     { 
       j++; 
     } 
   } 
   if(k==num) 
   { 
     break; 
   } 
   cout<<a[p]<<","; 
   a[p]=0; 
   k++; 
} 
cout<<" No."<<a[p]<<"boy'vewon. "; 
cin.get(); 
cin.get(); 
}

  就数组解决来看,程序简短但效率不高可读性也不好,此代码没有什么特别之处主要依靠一个加1取模的方式来回到首位置,形成环链:p=(p+1)%num;。

  以下是利用结构体的方法解决josephus问题:

查看更多与理解C++面向对象程序设计中的抽象理论相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      C++类对象的复制-拷贝构造函数       C++面向对象编程入门:构造函数与析构函数
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图