大佬求教

休道安南 休道安南 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
求救 //请注意:只能在原句上修改,而不能增加或删除语句。本题一共含有6个错误。#include <iostream> #include <string> using namespace std; class StudentArray; class Student{ string name; //姓名 int age; //年龄 double score; //分数public: void input(); friend class StudentArray; //将StudentArray声明为友元类,方便操作};void Student::input(){ cout << "请输入学生姓名:"; cin >> name; cout << "请输入学生年龄:"; cin >> age; cout << "请输入学生成绩:"; cin >> score;}class StudentArray{ Student *p; //动态数组的指针 int len; //数组的长度 int last; //数组最后一个元素的下标public: StudentArray(int length = 0); ~StudentArray(); StudentArray(StudentArray &arr); StudentArray& operator=(StudentArray &arr); void add(Student &s); //增加对象s到该数组中 double getaverage(); //求出所有学生成绩的平均值 };StudentArray::StudentArray(int length = 0){ len = length; last = -1; if(len > 0) p = new Student[len]; else p = NULL;}StudentArray::~StudentArray(){ delete p[];}StudentArray::StudentArray(StudentArray &arr){ len = arr.len; last = -1; p = new Student[len]; for(int i = 0 ; i <= last ; i++) p[i] = arr.p[i];}StudentArray& StudentArray::operator=(StudentArray &arr){ delete []p; len = arr.len; last = arr.last; p = new Student[len]; for(int i = 0 ; i <= last ; i++) p[i] = arr.p[i]; return this;}void StudentArray::add(Student &s){ if(last == len) return; //已满则放弃增加 last++; p[last] = s;}double StudentArray::getaverage(){ if(last == -1) return 0; double sum = 0; for(int i = 0 ; i <= last ; i++) sum += p[i].score; return sum / last;}int main(){ StudentArray s1(3) , s2; Student temp; int i; for(i = 0 ; i < 3 ; i++) { temp.input(); s1.add(temp); cout << endl; } s2 = s1; //这里故意测试了=号的使用 cout << "三个人的均分是:" << s2.getaverage() << endl; return 0;}
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
休道安南
新技术前沿 6,128 成员 4,418 内容