程序设计与算法(三)第二周测验(2018春季) 001 编程填空:学生信息处理程序
网址:http://cxsjsxmooc.openjudge.cn/2018t3springw2/001/
【题目描述】
- 总时间限制: 1000ms 内存限制: 1024k
- 描述
-
实现一个学生信息处理程序,计算一个学生的四年平均成绩。
要求实现一个代表学生的类,并且类中所有成员变量都是【私有的】。
补充下列程序中的 Student 类以实现上述功能。
-
1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 #include <cstring> 5 #include <sstream> 6 #include <cstdlib> 7 using namespace std; 8 9 class Student { 10 // 在此处补充你的代码 11 }; 12 13 int main() { 14 Student student; // 定义类的对象 15 student.input(); // 输入数据 16 student.calculate(); // 计算平均成绩 17 student.output(); // 输出数据 18 }
- 输入
- 输入数据为一行,包括:
- 姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
- 其中姓名为由字母和空格组成的字符串(输入保证姓名不超过20个字符,并且空格不会出现在字符串两端),年龄、学号和学年平均成绩均为非负整数。信息之间用逗号隔开。
- 输出
- 输出一行数据,包括:
- 姓名,年龄,学号,四年平均成绩。
- 信息之间用逗号隔开。
- 样例输入
- Tom Hanks,18,7817,80,80,90,70
- 样例输出
- Tom Hanks,18,7817,80
- 【问题分析】
- 关键在于读取输入中的名字字符串,可用%[^,]
- 【代码】
1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 #include <cstring> 5 #include <sstream> 6 #include <cstdlib> 7 using namespace std; 8 9 class Student { 10 private: 11 char name[23]; 12 int age; 13 int xuehao; 14 int score1,score2,score3,score4; 15 double ave; 16 public: 17 void input(){ 18 scanf("%[^,],%d,%d,%d,%d,%d,%d",name,&age,&xuehao,&score1,&score2,&score3,&score4); 19 } 20 void calculate(){ 21 ave=(score1+score2+score3+score4)/4.0; 22 } 23 void output(){ 24 printf("%s,%d,%d,%g",name,age,xuehao,ave); 25 } 26 }; 27 28 int main() { 29 Student student; // 定义类的对象 30 student.input(); // 输入数据 31 student.calculate(); // 计算平均成绩 32 student.output(); // 输出数据 33 }
【附】