|
本帖最后由 meguro 于 2022-7-1 16:28 编辑
设计一个学生类(CStudent),它具有的私有数据成员是:注册号、姓名、数学、外语、 计算机课程的成绩。
具有的公有成员函数是:求三门课总成绩的函数 sum;求三门课平均成绩的函数 average;显示学生数据信息的函数display;设置学生数据信息的函数 setData。
然后通过主函数,从键盘对学生对象的数组(全班学生信息)进行输入,而后求出每一学生 的总成绩、平均成绩,并显示全班学生总成绩最高者那一同学的全部数据信息。
不知道为什么报错,哪里出了问题T-T,希望有大佬可以帮忙看看
- class CStudent {
- unsigned long reg_num;//数据成员:注册号
- char* name; //数据成员:姓名
- float math, eng, comp; //数据成员:数学、英语、计算机成绩
- public:
- CStudent(unsigned long r, char* n, float m, float e, float c);
- CStudent() {};
- float sum(); //求三门课总成绩的函数 sum
- float average(); //求三门课平均成绩的函数 average
- void display(); //显示学生数据信息的函数 display
- void setData(unsigned long r, char* n, float m, float e, float c); //设置学生数据信息的函数 setData
- };
- int main()
- {
- CStudent stud[50];
- int n, i;
- cin >> n;
- for (i = 0; i < n; ++i)
- {
- stud[i].setData(1, "sample", 123, 124, 125);
- }
- for (i = 0; i < n; ++i)
- {
- stud[i].display();
- }
- int maxj = 0;
- float max = 0;
- for (i = 0; i < n; ++i)
- {
- if (stud[i].average() > max)
- {
- max = stud[i].average();
- maxj = i;
- }
- }
- stud[maxj].display();
- return 0;
- }
- CStudent::CStudent(unsigned long r, char* n, float m, float e, float c)
- {
- reg_num = r;
- size_t n_len;
- n_len = strlen(n) + 1;
- name = new char[n_len + 1];
- memset(name, 0, n_len);
- strcpy_s(name, n_len, n);
- math = m;
- e = eng;
- c = comp;
- }
- float CStudent::sum()
- {
- return (math + eng + comp);
- }
- float CStudent::average()
- {
- return (math + eng + comp) / 3;
- }
- void CStudent::setData(unsigned long r, char* n, float m, float e, float c)
- {
- cout << "请输入学生信息" << endl;
- cin >> r;
- cin >> name;
- cin >> m;
- cin >> e;
- cin >> c;
- reg_num = r;
- size_t n_len;
- n_len = strlen(n) + 1;
- name = new char[n_len + 1];
- memset(name, 0, n_len);
- strcpy_s(name, n_len, n);
- math = m;
- eng = e;
- comp = c;
- }
- void CStudent::display()
- {
- cout << this->reg_num << this->sum() << this->average() << endl;
- }
复制代码
报错的内容
|
上一篇: 查资料的时候找到了这个消息,请问怎么响应啊,萌新一只~下一篇: 站长教程代码求助
|