Advertisement
Guest User

Untitled

a guest
May 4th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4.  
  5.  
  6. char itoc(int);
  7. void readGrid(int[][8]);
  8. void printGrid(int[][8]);
  9. void checkOuts(int[][8]);
  10. void transfers(int[][8]);
  11. int ** getVacancies(int[][8]);
  12. int getNumberOfVacancies(int[][8]);
  13.  
  14. int main()
  15. {
  16. int beds[5][8];
  17. readGrid(beds);
  18. printGrid(beds);
  19. checkOuts(beds);
  20. transfers(beds);
  21. printGrid(beds);
  22. return 0;
  23. }
  24.  
  25. char itoc(int val)
  26. {
  27. switch(val)
  28. {
  29. case 0:
  30. return 'V';
  31. break;
  32. case 1:
  33. return 'C';
  34. break;
  35. case 2:
  36. return 'O';
  37. break;
  38. case 3:
  39. return 'W';
  40. break;
  41. case 4:
  42. return 'T';
  43. break;
  44. case 5:
  45. return 'X';
  46. break;
  47. }
  48. }
  49.  
  50. void printGrid(int beds[][8])
  51. {
  52. using std::cout;
  53. using std::endl;
  54. for(int i = 0; i < 5; i++)
  55. {
  56. for(int j = 0; j < 8; j++)
  57. {
  58. cout << itoc(beds[i][j]) << " ";
  59. if(j==7)
  60. cout << endl;
  61. }
  62. }
  63. cout << "\n";
  64. }
  65.  
  66. void readGrid(int beds[][8])
  67. {
  68. using std::fstream;
  69. using std::cout;
  70. using std::endl;
  71. using std::string;
  72. using std::ios;
  73. fstream infile("beds.txt", ios::in);
  74. string filetext;
  75. for(int i = 0; i < 5; i++)
  76. {
  77. for(int j = 0; j < 8; j++)
  78. {
  79. infile >> filetext;
  80. beds[i][j] = atoi(filetext.c_str());
  81. }
  82. }
  83. infile.close();
  84. }
  85.  
  86. void checkOuts(int beds[][8])
  87. {
  88. for(int * iter = &beds[0][0]; iter != &beds[0][0] + 8 * 5; iter++)
  89. {
  90. if(*iter == 1)
  91. {
  92. *iter = 0;
  93. }
  94. }
  95. }
  96.  
  97. void transfers(int beds[][8])
  98. {
  99. int *transfers[40];
  100. int transcounter = 0;
  101. int **vacancies = getVacancies(beds);
  102. for(int * iter = &beds[0][0]; iter != &beds[0][0] + 8 * 5; iter++)
  103. {
  104. if(*iter == 4)
  105. {
  106. transfers[transcounter] = iter;
  107. transcounter++;
  108. *iter = 0;
  109. }
  110. }
  111. for(int i = 0; i < transcounter; i++)
  112. {
  113. **(vacancies+i) = 2;
  114. }
  115. }
  116.  
  117. int ** getVacancies(int beds[][8])
  118. {
  119. int vaccounter = 0;
  120. for(int * iter = &beds[0][0]; iter != &beds[0][0] + 8 * 5; iter++)
  121. {
  122. if(*iter == 0)
  123. {
  124. vaccounter++;
  125. }
  126. }
  127. int *vacancies[vaccounter];
  128. vaccounter = 0;
  129. for(int * iter = &beds[5][8]; iter != &beds[0][0]; iter--)
  130. {
  131. if(*iter == 0)
  132. {
  133. vaccounter++;
  134. vacancies[vaccounter] = iter;
  135. }
  136. }
  137. return vacancies;
  138. }
  139.  
  140. void newPatientInput(int beds[][8])
  141. {
  142. using std::cout;
  143. cout << "Please enter the number of new patients";
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement