c++输入字符串和数字以逗号隔开

tech2022-07-17  174

以一个问题为例对“c++输入字符串和数字以逗号隔开”进行具体说明。

例:实现一个学生信息处理程序,计算一个学生的四年平均成绩。

要求实现一个代表学生的类,并且类中所有成员变量都是【私有的】。

补充下列程序中的 Student 类以实现上述功能。

#include <iostream> #include <string> #include <cstdio> #include <cstring> #include <sstream> #include <cstdlib> using namespace std; class Student { // 在此处补充你的代码 }; int main() { Student student; // 定义类的对象 student.input(); // 输入数据 student.calculate(); // 计算平均成绩 student.output(); // 输出数据 }

输入

输入数据为一行,包括: 姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。 其中姓名为由字母和空格组成的字符串(输入保证姓名不超过20个字符,并且空格不会出现在字符串两端),年龄、学号和学年平均成绩均为非负整数。信息之间用逗号隔开。

输出

输出一行数据,包括: 姓名,年龄,学号,四年平均成绩。 信息之间用逗号隔开。

样例输入

Tom Hanks,18,7817,80,80,90,70

样例输出

Tom Hanks,18,7817,80

完整的代码

#include <iostream> #include <string> #include <cstdio> #include <cstring> #include <sstream> #include <cstdlib> using namespace std; class Student { // 在此处补充你的代码 private: int a1, a2, a3, a4; int age, num; double aver; string name; public: Student() {}; ~Student() {}; void input() { //Tom Hanks, 18, 7817, 80, 80, 90, 70 getline(cin, name, ','); cin >> age;// cout << "age"; int a = 0; while (cin.get() == ',') { switch (a) { case 0: cin >> num; a = a + 1; break; //cout << "学号"; case 1: cin >> a1; a = a + 1; break; case 2: cin >> a2; a = a + 1; break; case 3: cin >> a3; a = a + 1; break; case 4: cin >> a4; a = a + 1; break; default:break; } } cout << endl; } void calculate() { aver = 1.0*(a1 + a2 + a3 + a4)/4; } void output() { //cout << name<<"," << age<<"," << num <<","<< a1 << "," <<a2 << "," <<a3 << "," <<a4 << endl; cout << name << "," << age << "," << num << "," << aver << endl; //cout << aver << endl; } }; int main() { Student student; // 定义类的对象 student.input(); // 输入数据 student.calculate(); // 计算平均成绩 student.output(); // 输出数据 system("pause"); }

 

最新回复(0)