Vladislav_Bezruk

Untitled

Nov 6th, 2021 (edited)
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. #define SIZE 50
  5.  
  6. using namespace std;
  7.  
  8. class Student {
  9. private:
  10.     char* name;
  11.     int course;
  12.     bool gender;
  13.  
  14. public:
  15.     string s_gender;
  16.  
  17.     Student() {
  18.         name = new char[SIZE];
  19.     }
  20.  
  21.     Student(char* _name, int _course, bool _gender) : Student() {
  22.         strcpy(name, _name);
  23.         course = _course;
  24.         gender = _gender;
  25.     }
  26.  
  27.     ~Student() {
  28.         delete[] name;
  29.     }
  30.  
  31.     void set() {
  32.  
  33.         cout << "Student information:" << endl;
  34.  
  35.         cout << "Enter name: ";
  36.         cin >> name;
  37.         cout << "Enter course: ";
  38.         cin >> course;
  39.         cout << "Enter gender (male or female): ";
  40.         cin >> gender;
  41.  
  42.         if (s_gender == "male") {
  43.             gender = false;
  44.         }
  45.         else if (s_gender == "female") {
  46.             gender = true;
  47.         }
  48.         else {
  49.             cout << "error";
  50.  
  51.             exit(1);
  52.         }
  53.  
  54.         cout << endl;
  55.     }
  56.  
  57.     void get() {
  58.         string s_gender = "male";
  59.  
  60.         if (gender) s_gender = "female";
  61.  
  62.         cout << "Student information:" << endl;
  63.  
  64.         cout << "Name: " << name << endl;
  65.         cout << "Course: " << course << endl;
  66.         cout << "Gender: " << s_gender << endl << endl;
  67.     }
  68.  
  69.     friend istream& operator >> (istream& is, Student& x);
  70.  
  71.     friend ostream& operator << (ostream& os, Student& x);
  72. };
  73.  
  74. istream& operator >> (istream& is, Student& x) {
  75.     string s_gender;
  76.     cout << "Student information:" << endl;
  77.  
  78.     cout << "Enter name: ";
  79.     is >> x.name;
  80.     cout << "Enter course: ";
  81.     is >> x.course;
  82.     cout << "Enter gender (male or female): ";
  83.     is >> s_gender;
  84.  
  85.     if (s_gender == "male") {
  86.             x.gender = false;
  87.     }
  88.     else if (s_gender == "female") {
  89.         x.gender = true;
  90.     }
  91.     else {
  92.         cout << "error";
  93.  
  94.         exit(1);
  95.     }
  96.  
  97.     cout << endl;
  98.  
  99.     return is;
  100. }
  101.  
  102. ostream& operator << (ostream& os, Student& x) {
  103.     string s_gender = "male";
  104.  
  105.     if (x.gender) s_gender = "female";
  106.  
  107.     os << "Student information:" << endl;
  108.     os << "Name: " << x.name << endl;
  109.     os << "Course " << x.course << endl;
  110.     os << "Gender: " << s_gender<< endl;
  111.     os << endl;
  112.  
  113.     return os;
  114. }
  115.  
  116. int main() {
  117.  
  118.     Student x;
  119.  
  120.     cin >> x;
  121.  
  122.     cout << "Test by cout: " << endl;
  123.     cout << x;
  124.  
  125.     cout << "Test by get(): " << endl;
  126.     x.get();
  127.  
  128.     cout << endl;
  129.  
  130.     return 0;
  131. }
  132.  
Add Comment
Please, Sign In to add comment