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

C#编程

开发平台:

Visual C++

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