华科面向对象程序设计作业二:编写程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分
作者:互联网
题目描述
编写程序,输入N个学生数据,包括学号、姓名、成绩,要求输
出这些学生数据并计算平均分。要求:
➢设计学生类 CStud , 除了包括 no( 学 号 ) 、 name( 姓 名 ) 和
score(成绩)数据成员外,有两个静态变量sum和num,分别存
放总分和人数
➢有两个普通成员函数setdata()和disp(),分别用于给数据成员
赋值和输出数据成员的值
➢另有一个静态成员函数avg(),它用于计算平均分
➢main()函数中定义对象数组用于存储输入的学生数据
代码
#include "CStud.h"
#include <string.h>
#include <iostream>
using namespace std;
class CStud
{
private:
char no[10];//学号
char name[10];//姓名
double score;//成绩
static double sum;//总分
static int num;//总人数
public:
//给数据成员赋值
void setdata(char* _no, char* _name, double _score) {
strcpy(no, _no);
strcpy(name, _name);
score = _score;
sum += score;
num++;
}
//输出数据成员的值
void disp() {
cout << "学号:" << no << " 姓名:" << name << " 分数:" << score << endl;
}
//计算平均分
static double avg() {
return sum / num;
}
};
double CStud::sum = 0;
int CStud::num = 0;
int main() {
int n;
cout << "请输入学生人数" << endl;
cin >> n;
CStud* stu = new CStud[n];
cout << "请依次输入学生的学号、姓名和分数" << endl;
int i;
for (i = 0; i < n; i++) {
char tno[10];
char tname[10];
double tscore;
cin >> tno;
cin >> tname;
cin >> tscore;
stu[i].setdata(tno, tname, tscore);
}
for (i = 0; i < n; i++) {
stu[i].disp();
}
double a = CStud::avg();
cout << "平均分:" << a << endl;
}
注意事项
如果vs2019报错
C4996 ‘strcpy’: This function or variable may be unsafe. Consider using
则在c++预编译器下预编译定义下,新加一条
_CRT_SECURE_NO_WARNINGS
标签:char,num,编写程序,double,学生,CStud,score,华科,name 来源: https://blog.csdn.net/weixin_45184581/article/details/120969403