流萤k423 2024-03-25 19:31 采纳率: 84.4%
浏览 17
已结题

定义一个生日类 Birthday

定义一个生日类 Birthday

数据成员 (private):

年、月、日

成员函数 (public):

构造函数:数据成员初始化(年、月、日)

修改生日信息:设置新的年、月、日

获取年信息

获取月信息

获取日信息

打印生日信息

定义一个学生类Student

数据成员 (private):

学生姓名(char *name)、性别(bool sex)、学号、出生日期(Birthday birth)、专业课门数、专业课成绩(double *score)

成员函数 (public):

构造函数:对学生的姓名、性别、学号、出生日期、专业课门数进行初始化

Student(char *_name, bool _sex, int _sno, int year, int month, int day, int _num);

析构函数:释放系统资源(堆空间)

提供拷贝构造函数

录入专业课的成绩 void input(double *s);

修改某门专业课的成绩 void change(int i, double s);

获取某门专业课的成绩 double get(int i);

获取专业课门数

计算专业课平均成绩

计算不及格专业课的门数

显示学生基本信息

要求:将以上两个类的定义与类成员函数的实现分开。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-25 22:44
    关注

    【以下回答由 GPT 生成】

    class Birthday {
    private:
        int year;
        int month;
        int day;
    
    public:
        Birthday(int _year, int _month, int _day) : year(_year), month(_month), day(_day) {}
    
        void modify(int _year, int _month, int _day) {
            year = _year;
            month = _month;
            day = _day;
        }
    
        int getYear() {
            return year;
        }
    
        int getMonth() {
            return month;
        }
    
        int getDay() {
            return day;
        }
    
        void printInfo() {
            cout << "Birthday: " << year << "-" << month << "-" << day << endl;
        }
    };
    
    class Student {
    private:
        char *name;
        bool sex;
        int sno;
        Birthday birth;
        int num;
        double *score;
    
    public:
        Student(char *_name, bool _sex, int _sno, int year, int month, int day, int _num) {
            name = _name;
            sex = _sex;
            sno = _sno;
            birth = Birthday(year, month, day);
            num = _num;
            score = new double[num];
        }
    
        ~Student() {
            if (score != nullptr) {
                delete[] score;
            }
        }
    
        Student(const Student& other) {
            name = other.name;
            sex = other.sex;
            sno = other.sno;
            birth = other.birth;
            num = other.num;
            score = new double[num];
            for (int i = 0; i < num; i++) {
                score[i] = other.score[i];
            }
        }
    
        void input(double *s) {
            for (int i = 0; i < num; i++) {
                score[i] = s[i];
            }
        }
    
        void change(int i, double s) {
            score[i] = s;
        }
    
        double get(int i) {
            return score[i];
        }
    
        int getNum() {
            return num;
        }
    
        double calculateAverageScore() {
            double sum = 0;
            for (int i = 0; i < num; i++) {
                sum += score[i];
            }
            return sum / num;
        }
    
        int countFailCourses() {
            int count = 0;
            for (int i = 0; i < num; i++) {
                if (score[i] < 60) {
                    count++;
                }
            }
            return count;
        }
    
        void displayInfo() {
            cout << "Name: " << name << endl;
            cout << "Sex: " << (sex ? "Male" : "Female") << endl;
            cout << "Student Number: " << sno << endl;
            birth.printInfo();
            cout << "Number of Courses: " << num << endl;
            cout << "Average Score: " << calculateAverageScore() << endl;
            cout << "Number of Fail Courses: " << countFailCourses() << endl;
        }
    };
    
    以上是针对定义了Birthday和Student两个类的完整代码实现,包括构造函数、析构函数、成员函数等。希望能够帮助您解决问题。
    


    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥30 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关