【C++对象和类题目】学生类(静态成员)
2022/6/12 1:22:46
本文主要是介绍【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++对象和类题目】学生类(静态成员)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升