Guest User

Untitled

a guest
Dec 9th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4. #define SIZE 10
  5. #define DEBUG 10
  6.  
  7. using namespace std;
  8.  
  9. char* ptochar(int num){
  10. char str[8] = "";
  11. itoa(num, str, 10);
  12. return str;
  13. }
  14.  
  15. template <class typeArray> class tArray{
  16. protected:
  17. typeArray B[SIZE];
  18. int n;
  19. public:
  20. tArray(int l){n=l;}
  21. void input();
  22. void output();
  23. };
  24. template <class typeArray > void tArray < typeArray >::input(){
  25. for (int i=0;i<n;i++){
  26. cin>>B[i];
  27. }
  28. }
  29. template <class typeArray > void tArray < typeArray >::output(){
  30. for (int i=0;i<n;i++){
  31. cout<<B[i];
  32. }
  33. }
  34. class sportsmen{
  35. #ifndef DEBUG
  36. int id;
  37. char surname[10];
  38. int result;
  39. #endif //DEBUG
  40. public:
  41. #ifdef DEBUG
  42. int result;
  43. int id;
  44. char surname[10];
  45. #endif //DEBUG
  46. int operator<(sportsmen ob2);
  47. friend ostream &operator<<(ostream &stream, sportsmen ob);
  48. friend istream &operator>>(istream &stream, sportsmen &ob);
  49. friend ofstream &operator<<(ofstream &stream, sportsmen ob);
  50. friend ifstream &operator>>(ifstream &stream, sportsmen &ob);
  51. void store(fstream &stream);
  52. void retrive(fstream &stream);
  53. };
  54. int sportsmen::operator <(sportsmen ob2){
  55. if(result<ob2.result)
  56. return true;
  57. else
  58. return false;
  59. }
  60.  
  61. class sportsmenArray: public tArray<sportsmen>{
  62. public:
  63. sportsmenArray(int l):tArray<sportsmen>(l){};
  64. void inputBFile(char* filename);
  65. void outputBFile(char* filename);
  66. void getWinner();
  67. };
  68. void sportsmenArray::outputBFile(char* filename){
  69. fstream out(filename, ios::out | ios::binary);
  70. if (!out){
  71. cout << "Cann't open file " << filename << " for output!" << endl;
  72. exit;
  73. }
  74. for (int i=0;i<n;i++){
  75. B[i].store(out);
  76. }
  77. out.close();
  78. }
  79. void sportsmenArray::inputBFile(char* filename){
  80. fstream in(filename, ios::in | ios::binary);
  81. if (!in){
  82. cout << "Cann't open file " << filename << " for input!" << endl;
  83. exit;
  84. }
  85. for (int i=0;i<n;i++){
  86. B[i].retrive(in);
  87. }
  88. in.close();
  89. }
  90. void sportsmenArray::getWinner(){
  91. int max = B[0].result;
  92. int k=-1;
  93. for(int i=0; i < n; i++){
  94. if(B[i].result>max){
  95. max = B[i].result;
  96. k=i;
  97. }
  98. }
  99. cout <<
  100. "winner is:nid: " << B[k].id <<
  101. "tname: " << B[k].surname <<
  102. "tresult: " << B[k].result << endl;
  103. }
  104.  
  105. ostream &operator<<(ostream &stream, sportsmen ob){
  106. cout << ob.id << " t " << ob.surname << " t " << ob.result << endl;
  107. return stream;
  108. }
  109. istream &operator>>(istream &stream, sportsmen &ob){
  110. cout << endl;
  111. cout << "Input id: "; cin>>ob.id;
  112. cout << "Input Surname: "; cin>>ob.surname;
  113. cout << "Input result: "; cin>>ob.result;
  114. return stream;
  115. }
  116.  
  117. ofstream &operator << (ofstream &stream, sportsmen ob){
  118. stream << ob.id << " " << ob.surname << " " << ob.result << endl;
  119. return stream;
  120. }
  121.  
  122. ifstream &operator >> (ifstream &stream, sportsmen &ob){
  123. stream >> ob.id;
  124. stream >> ob.surname;
  125. stream >> ob.result;
  126. return stream;
  127. }
  128.  
  129. void sportsmen::store(fstream &stream){
  130. stream.write(ptochar(id),sizeof(int));
  131. stream.write(surname,sizeof(surname));
  132. stream.write(ptochar(result),sizeof(int));
  133. }
  134.  
  135. void sportsmen::retrive(fstream &stream){
  136. stream.read(ptochar(id),sizeof(int));
  137. stream.read(surname,sizeof(surname));
  138. stream.read(ptochar(result),sizeof(int));
  139. }
  140.  
  141.  
  142. int main(){
  143. sportsmenArray C(3);
  144. C.input();
  145. C.outputBFile("test.txt");
  146. C.inputBFile("test.txt");
  147. C.output();
  148. C.getWinner();
  149. return 0;
  150. }
Add Comment
Please, Sign In to add comment