简单的学生信息处理程序实现
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的。
(注:评测系统无法自动判断变量是否私有。我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否则可能会影响作业成绩。)
输入
姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
其中姓名、学号为字符串,不含空格和逗号;年龄为正整数;成绩为非负整数。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
输出
一行,按顺序输出:姓名,年龄,学号,四年平均成绩(向下取整)。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
样例输入
样例输出
//在如何处理输入,遇到了问题。关于cin一定要再看.
代码:
#include <iostream>
#include<string.h>
using namespace std;
class Student
{
private:
char name[10];
char number[10];
int age;
int score[4];
public:
void SetName(char *);
void SetNumber(char *);
void SetAge(int);
void SetScore1(int);
void SetScore2(int);
void SetScore3(int);
void SetScore4(int);
int AverageScore();
};
void Student::SetName(char * name)
{
strcpy(this->name, name);
}
void Student::SetNumber(char * number)
{
strcpy(this->number, number);
}
void Student::SetAge(int age)
{
this->age = age;
}
void Student::SetScore1(int score1)
{
score[0] = score1;
}
void Student::SetScore2(int score2)
{
score[1] = score2;
}
void Student::SetScore3(int score3)
{
score[2] = score3;
}
void Student::SetScore4(int score4)
{
score[3] = score4;
}
int Student::AverageScore()
{
int average = (score[0] + score[1] + score[2] + score[3]) / 4;
return average;
}
int main()
{
char name[10] = { 0 };
cin.getline(name, 10, ',');
int age = 0;
char dot;
cin >> age >> dot;
char number[10] = { 0 };
cin.getline(number, 10, ',');
int score[4] = { 0 };
cin >> score[0] >>dot >> score[1] >> dot >> score[2] >> dot >> score[3];
Student s1;
s1.SetName(name);
s1.SetNumber(number);
s1.SetAge(age);
s1.SetScore1(score[0]);
s1.SetScore2(score[1]);
s1.SetScore3(score[2]);
s1.SetScore4(score[3]);
int average = s1.AverageScore();
cout << name << ',' << age << ',' << number << ',' << average << endl;
return 0;
}