设计一个类:要求对类进行分开(源文件和头文件分开)
学生类:
成绩:语文、数学、英语。要求用数组
学号:要求用真实学号
姓名:要求用中文,String
功能:当用const函数要用到
1、要求构造函数
2、改变学号、成绩、姓名功能函数
3、 求平均成绩
4打印学习成绩(学号、姓名、各科成绩、 平均成绩)
这是.h
#ifndef __STU_H__
#define __STU_H__
#include<iostream>
#include<cstring>
class Stu
{
private:
std::string name;
int id;
int type;
float sorce[3];
public:
Stu(std::string n,int i,float math,float eng,float yv)
{
name = n;
id = i;
sorce[0] = math;
sorce[1] = eng;
sorce[2] = yv;
};
void change();
float pj();
void print_s(float sum);
};
#endif
这是.cpp
#include<iostream>
#include<cstring>
#include<stu.h>
using namespace std;
void Stu::change()
{
cout << "请输入修改的学号,成绩,姓名:" << endl;
cin >> id >> sorce[0] >> sorce[1] >> sorce[2] >> name;
}
float Stu::pj()
{
float pjsorce = 0;
pjsorce = (sorce[0] + sorce[1] + sorce[2]) / 3;
return pjsorce;
}
void Stu::print_s(float sum)
{
cout << "学号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "各科成绩(数学,英语,语文):" << sorce[0] << " " << sorce[1] << " " << sorce[2] << endl;
cout << "平均成绩:" << sum << endl;
}
int main()
{
Stu s1("A", 1, 86, 56, 70);
float sum = s1.pj();
s1.print_s(sum);
s1.change();
float sum2 = s1.pj();
s1.print_s(sum2);
return 0;
}
头文件
#pragma once
#include <string>
enum CourseType {
CHINESE = 0,
MATH,
ENGLISH,
COUNT,
};
class Student
{
public:
Student(void);
Student(std::string name, std::string num);
~Student() {}
void setName(const std::string& name);
void setNum(const std::string& num);
void setScore(CourseType type, int score);
std::string getName(void) const;
std::string getNum(void) const;
int getScore(CourseType type) const;
float getAverage(void) const;
private:
std::string name_;
std::string num_;
int score_[COUNT] = { 0 };
};
cpp
#include "Student.h"
Student::Student(void)
{
}
Student::Student(std::string name, std::string num)
: name_(name)
, num_(num)
{
}
void Student::setName(const std::string& name)
{
name_ = name;
}
void Student::setNum(const std::string& num)
{
num_ = num;
}
void Student::setScore(CourseType type, int score)
{
score_[type] = score;
}
std::string Student::getName(void) const
{
return name_;
}
std::string Student::getNum(void) const
{
return num_;
}
int Student::getScore(CourseType type) const
{
return score_[type];
}
float Student::getAverage(void) const
{
int sum = 0;
for (int i=0; i<COUNT; ++i)
{
sum += score_[i];
}
return (float)sum / COUNT;
}