josex.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //*********************
  2. //**    josex.cpp    **
  3. //*********************
  4. #include <iostream.h>
  5. #include "ring.h"         //告诉编译,本文件中将使用Ring
  6. #include "josex.h"
  7. void Jose::Initial()
  8. {
  9.   int num,begin,m;
  10.   cout <<"please input the number of boys," 
  11.          "begin position,interval per count :n";
  12.   cin >>num >>begin >>m;
  13.   if(num<2){
  14.     cerr<<"bad number of boysn";
  15.     return;
  16.   }
  17.   if(begin<0){
  18.     cerr<<"bad begin position.n";
  19.     return;
  20.   }
  21.   if(m<1||m>num){
  22.     cerr<<"bad interval number.n";
  23.     return;
  24.   }
  25.   //输入数据都合法时,予以赋值
  26.   numOfBoys=num;
  27.   beginPos=begin;
  28.   interval=m;
  29. }
  30. void Jose::GetWinner()
  31. {
  32.   Ring x(numOfBoys);     //小孩围成圈
  33.   x.Count(beginPos);     //转到开始位置
  34.   for(int i=1; i<numOfBoys; i++){      //处理除了获胜者之外的所有小孩
  35.     x.Count(interval);   //数小孩
  36.     x.PutBoy();          //输出小孩编号
  37.     x.ClearBoy();        //当前小孩脱离环链
  38.   }
  39.   cout <<"nthe winner is ";
  40.   x.PutBoy();   //获胜者
  41. }