jhljx面向对象

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 10 总提交人数: 11

题目描述

jhljx最近听说你们学了面向对象,然而当你们打开Microsoft Excel的时候,按Ctrl+G,然后在定位条件中选择对象这一栏时,奇迹出现了。。
这居然是来自Microsoft的chao feng......Orz
jhljx为了找到丢失的对象,一怒之下写了这样一个程序。

请你在该程序的基础上完成一些简单的操作。 给你n个人的个人信息,请你按照学号的从小到大顺序输出出来。

输入

输入多组数据。
每组数据第一行为一个正整数n(1<=n<=10)。 下面n行每行有5个变量,分别表示姓名(字符串长度小于20),学号,生日的年,月,日。(输入数据保证信息合法)

输出

按照学号从小到大的顺序输出结果。样例程序中cout<<stu<<endl;可以直接输出这个学生的信息。 所以大家只需要对Student类的对象数组进行排序即可。详细做法见提示。

输入

4
mmdwjh 14211098 1996 10 8
microhhh 14211116 1995 11 21
cool_breeze 14211068 1996 12 30
jhljx 13211026 1995 12 25

输出样例

Name:jhljx
StudentId:13211026
Birth:1995.12.25
Name:cool_breeze
StudentId:14211068
Birth:1996.12.30
Name:mmdwjh
StudentId:14211098
Birth:1996.10.8
Name:microhhh
StudentId:14211116
Birth:1995.11.21

jhljx温馨提示

 本题需要声明Student stu[20];数组。
 然后在输入数据的时候,学号尽量用int,便于排序。
 使用Student类的setName,setId和setBirthDate函数设置对象的参数。
 比如:
 char name[20];
 int id,y,m,d; 
 cin>>name>>id>>y>>m>>d;
 stu[i].setName(name);
 stu[i].setId(id);
 stu[i].setBirthDate(y,m,d);
 排序的时候可以用到冒泡排序:
 for(int i=1;i<=n-1;i++){
     for(int j=1;j<=n-i;j++){
          if(stu[j].getId()>stu[j+1].getId()){
                交换两个对象
          }
     }
 }
 交换方法类似于int t=a;b=a;a=t;这样。因此需要一个临时对象s来存储
 stu[j]的全部值。相当于int t=a;的一步。
 Student s1=stu[j];stu[j]=stu[j+1];stu[j+1]=s1;或者swap(stu[j],stu[j+1]);
 

相关推荐