华科面向对象程序设计作业二:编写程序,输入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
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45184581/article/details/120969403