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

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // boyring.cpp
  3. //=====================================
  4. #include"boyring.h"
  5. #include<iostream>
  6. using namespace std;
  7. //-------------------------------------
  8. BoyRing::BoyRing(int n){
  9.   if(n<2) throw exception();
  10.   pBegin = new Boy[n];
  11.   for(int i=1; i<=n; i++){
  12.     pBegin[i-1].next = &pBegin[i%n];
  13.     pBegin[i-1].code = i;
  14.   }
  15.   pivot = pCurrent = &pBegin[n-1];
  16. }//------------------------------------
  17. void BoyRing::countBy(int m){
  18.   for(int i=1; i<=m; ++i){
  19.     pivot = pCurrent;
  20.     pCurrent = pCurrent->next;
  21.   }
  22. }//------------------------------------
  23. int BoyRing::getNum() const {
  24.   return pCurrent->code;
  25. }//------------------------------------
  26. void BoyRing::disengage(){
  27.   pivot->next = pCurrent->next;
  28.   pCurrent = pivot;
  29. }//------------------------------------
  30. void BoyRing::printAll()const{
  31.   int numinLine = 0;
  32.   Boy* p = pCurrent;
  33.   do{
  34.     cout<<"  "<<p->code;
  35.     if(!(++numinLine%10)) cout<<"n";
  36.     p = p->next;
  37.   }while(p!=pCurrent);
  38.   cout<<"n";
  39. }//------------------------------------
  40. BoyRing::~BoyRing(){
  41.   delete[] pBegin;
  42. }//------------------------------------
  43.