zoukankan      html  css  js  c++  java
  • EX 8

    人生的许多大困难,只要活着,没什么是解决不了的,时间和智慧而已

                            ——三毛

    ps:以后不能说自闭了,之前说了一次,然后一语成谶,以后要说rank1。

    手慢无场

    Problem A: Person类与Student类的关系

    main函数:

    int main()
    {
        string n;
        int a, g;
        cin>>n>>a>>g;
        Student student(n, a, g);
        student.Person::show();
        student.show();
        return 0;
    }

    没什么考点吧应该,怎么说怎么写,本来以为是考虚函数的,结果发现想多了。。。。

    AC代码:

    #include <bits/stdc++.h>
    using namespace std;
     
    class Person
    {
        string name;
        int age;
    public:
        Person(string _name,int _age):name(_name),age(_age){cout << "A person " << name << " whose age is " << age << " is created." << endl;}
        ~Person()
        {
            cout << "A person " << name << " whose age is " << age << " is erased." << endl;
        }
        void show()
        {
            cout << "Name is " << name << " and age is " << age << "." << endl;
        }
    };
    class Student :public Person
    {
            int grade;
        public:
            Student(string _name,int _age,int _grade):Person(_name,_age),grade(_grade){cout << "A student whose grade is " << grade << " is created." << endl;}
            ~Student()
            {
                cout << "A student whose grade is " << grade << " is erased." << endl;
            }
            void show()
            {
                cout << "Grade is " << grade << "." << endl;
            }
    };

    Problem B: 家教课程

    main函数:

    int main()
    {
        string s1, s2, s3, s4;
        int i;
        cin>>s1>>s2>>s3>>s4>>i;
        Person person1(s1), person2(s2);
        Teacher teacher(s1, s3);
        Student student(s2, i);
        Course course(s1, s2, s3, s4, i);
        return 0;
    }

    细节题,我看到了hint,但是我居然认为它在框我,想想我脑回路也是清奇。

    类的继承加上类的组合吧,但不算难。

    AC代码:

    #include <bits/stdc++.h>
    using namespace std;
    class Person
    {
        friend class Student;
        friend class Teacher;
       string name;
       public:
           Person(string _name):name(_name){
           cout << "Person " << name << " is created." << endl;
           }
           ~Person()
           {
               cout << "Person " << name << " is erased." << endl;
           }
    };
    class Student :public Person
    {
          int id;
      public:
        Student(string _name,int _id):Person(_name),id(_id){
            cout << "Student " << name << " with id " << id << " is created." << endl;
        }
        ~Student()
        {
            cout << "Student " << name << " with id " << id << " is erased." << endl;
        }
    };
    class Teacher:public Person
    {
        string work;
    public:
        Teacher(string _name,string _work):Person(_name),work(_work){
            cout << "Teacher " << name << " with position " << work << " is created." << endl;
        }
        ~Teacher()
        {
            cout << "Teacher " << name << " with position " << work << " is erased." << endl;
        }
    };
    class Course
    {
        Teacher t;
        Student s;
        string OPP;
    public:
        Course(string _name1,string _name2,string _work,string _OPP,int _id):t(_name2,_work),s(_name2,_id),OPP(_OPP){
        cout << "Course " << OPP << " is created." << endl;
        }
        ~Course()
        {
            cout << "Course " << OPP << " is erased." << endl;
        }
    };

    Problem C: 一帮学生

    main函数:

    int main()
    {
        int year, month, day, id, i;
        string name;
        int num;
        cin>>num;
        Student **students = new Student*[num];
        for (i = 0; i < num; i++)
        {
            cin>>year>>month>>day>>id>>name;
            students[i] = new Student(year, month, day, name, id);
        }
        for (i = 0;i <num; i++)
            delete students[i];
        delete[] students;
        return 0;
    }

    考点:静态数据成员+继承

    AC代码:

    #include <bits/stdc++.h>
    using namespace std;
    class Date
    {
        friend class Person;
        friend class Student;
        int yy,mm,dd;
    public:
        Date(int _y,int _m,int _d):yy(_y),mm(_m),dd(_d){
            cout << "Date " << yy << "-" << mm << "-" << dd << " is created." << endl;
        }
        ~Date()
        {
            cout << "Date " << yy << "-" << mm << "-" << dd << " is erased." << endl;
        }
    };
    class Person
    {
        friend class Student;
        Date birth;
        string name;
        static int numOfPersons;
    public:
        Person(int _y,int _m,int _d,string _name):birth(_y,_m,_d),name(_name){numOfPersons++;
           cout << "The " << numOfPersons << "th person " << name << " whose birthday is " << birth.yy << "-" << birth.mm << "-" << birth.dd << " is created." << endl;
        }
        ~Person()
        {
            numOfPersons--;
            cout << "Person " << name << " whose birthday is " << birth.yy << "-" << birth.mm << "-" << birth.dd <<" is erased." << endl;
        }
     
    };
    class Student :public Person
    {
            int id;
            static int numOfStudents;
        public:
            Student(int _y,int _m,int _d,string _name,int _id):Person(_y,_m,_d,_name),id(_id){numOfStudents++;
            cout << "The " << numOfStudents << "th student " << name <<  " whose birthday is " << birth.yy << "-" << birth.mm << "-" << birth.dd << " and id is " << id << " is created." << endl;
            }
            ~Student()
            {
                cout << "Student " << name << " whose birthday is " << birth.yy << "-" << birth.mm <<"-"<< birth.dd <<" and id is " << id << " is erased." << endl;
     
                numOfStudents--;
            }
    };
    int Person::numOfPersons = 0;
    int Student::numOfStudents = 0;
  • 相关阅读:
    LeetCode 258. Add Digits
    LeetCode 257. Binary Tree Paths
    LeetCode 周赛 184
    js算法初窥05(算法模式02-动态规划与贪心算法)
    js算法初窥04(算法模式01-递归)
    js算法初窥03(搜索及去重算法)
    js算法初窥02(排序算法02-归并、快速以及堆排序)
    js算法初窥01(排序算法01-冒泡、选择、插入)
    用js来实现那些数据结构16(图02-图的遍历)
    用js来实现那些数据结构15(图01)
  • 原文地址:https://www.cnblogs.com/baihualiaoluan/p/10926007.html
Copyright © 2011-2022 走看看