【C++对象和类题目】学生类(静态成员)
作者:互联网
来源:http://acm.ujn.edu.cn
Description
编写student类,类成员包括学号,姓名,年龄。
(1)编写构造函数,能够接受键盘输入的学生姓名和年龄,完成对象的初始化。学生学号自动生成,第一个student对象学号为1,第二个为2,以此类推。
(2)编写display函数,输出学生信息,包括学号,姓名,年龄,中间用空格隔开
(3)在主函数中计算学生的平均年龄,并输出,结果保留2位小数。
主函数如下:
int main()
{
student s[5];
float avg = 0.0;
for(int i=0;i<5;i++)
{
s[i].display();
}
(自行补充计算平均年龄的代码。。。)
return 0;
}
Input
5个学生的信息,姓名,年龄
Output
5个学生的信息和年龄的平均值,每一个学生信息占一行,平均年龄占一行。
Sample Input
Mary 19
Alex 21
Mike 20
Lucy 18
Jim 20
Sample Output
1 Mary 19
2 Alex 21
3 Mike 20
4 Lucy 18
5 Jim 20
19.60
题解
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 class student 5 { 6 public: 7 student(string n="a",int a=0);//构造函数声明 8 void display();//输出学生信息 9 void write_student(string n,int a);//用于写入学生姓名和年龄 10 void write_num(int i);//用于自动生成学号 11 int read_age();//用于读取学生年龄 12 protected: 13 int number;//学号 14 int age;//年龄 15 string name;//姓名 16 17 }; 18 int main() 19 { 20 student s[5]; 21 string str; 22 int ageval; 23 float avg = 0.0 , sum = 0.0; 24 for(int i=0;i<5;i++)//从键盘读入学生的姓名和年龄 25 { 26 cin>>str>>ageval; 27 s[i].write_student(str,ageval); 28 } 29 for(int i=0;i<5;i++) s[i].write_num(i);//生成学号 30 for(int i=0;i<5;i++) s[i].display();//输出学生信息 31 for(int i=0;i<5;i++) sum+=s[i].read_age(); //读取年龄,计算学生年龄总和 32 avg = sum/5 ; 33 printf("%.2f",avg); 34 return 0; 35 } 36 student::student(string n,int a)//构造函数 37 { 38 name=a; 39 age=a; 40 } 41 void student::write_student(string n,int a)//设值函数,设学生姓名年龄 42 { 43 name = n ; 44 age = a ; 45 } 46 int student::read_age()//读值函数,读学生年龄 47 { 48 return age; 49 } 50 void student::write_num(int i)//设值函数,设置自动生成学号 51 { 52 number=i+1; 53 } 54 void student::display() //输出学生信息 55 { 56 cout<<number<<" "<<name<<" "<<age<<endl; 57 }
总结
1.注意使用读值函数和设值函数,
设值函数,用于实现从键盘读入数据,
读值函数,用于在主函数中使用对象的成员数据。
2.类的构造函数,在声明时一定一定要初始化,否则定义会出问题。
标签:题目,函数,静态,C++,学生,int,student,20,年龄 来源: https://www.cnblogs.com/sparse-shadow/p/16365522.html