MOOC-程序设计实习第二周作业:
在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的。
输入
其中姓名、学号为字符串,不含空格和逗号;年龄为正整数;成绩为非负整数。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
Tom,18,7817,80,80,90,70
各部分内容之间均用单个英文逗号","隔开,无多余空格。
Tom,18,7817,80
此次作业遇到的困难在于输入中,各部分内容之间要用英文逗号“,”隔开。
思路有两种:
1.将全部内容作为一个长字符串数组输入,然后将里面的“,”去掉,剩下的元素作为一个新的数组。再把新的数组元素分别赋予各个内容。
2.定义一个字符变量,来接受输入中各个内容之间的“,”。使用cin.get()函数来输入姓名和学号。
选择了第二种思路来实现:
#include<iostream>
using namespace std;
class stu{
private:
int age, y1, y2, y3, y4;
char name[20];
char num[20];
char k;
public:
void init();
void print();
void average_y();
};
void stu::init(){
cin.get(name, 20, ',');
cin >> k >> age >> k;
cin.get(num, 20, ',');
cin >> k >> y1 >> k >> y2 >> k >> y3 >> k >> y4;
}
void stu::print(){
cout << name << "," << age << "," << num << ",";
}
void stu::average_y(){
cout << (y1 + y2 + y3 + y4) / 4 << endl;
}
int main(){
stu c;
c.init();
c.print();
c.average_y();
return 0;
}