Problem C: 学生的排序
Problem C: 学生的排序
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 274 Solved: 136
[Submit][Status][Web Board]
Description
输入若干个学生的姓名和年龄,将他们排序后输出,并求输入的若干个学生的最大者。
定义一个类Student,拥有属性age(int类型)和name(字符串),重载其大于、输出和输入运算符。大于运算符比较的规则是先比较年龄,年龄大的对象为大;如果年龄相同,则比较姓名,姓名大的对象为大。
基于Student类定义类StudentGroup,该类有若干个学生组成,定义其add方法、srt方法和show方法,用于增加1个学生、对所有的学生排序和显示所有的学生信息。
Input
输入有若干行,每行包括一个字符串(无空白符)、一个整数,分别学生的姓名name和年龄age。
Output
先按照学生比较规则按照递增序输出所有学生信息,每个学生信息占一行。最后一行输出最大学生的信息,格式见样例。
Sample Input
Jack 21
Mary 20
Tom 22
Jack 13
Sample Output
Tom 19
Mary 20
Jack 21
Tom 22
The max is Tom 22
HINT
Append Code
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
class Student
{
public:
int age;
string name;
Student(string s="",int a=0):age(a),name(s){}
friend istream & operator>>(istream &in, Student &A){
in >> A.name >> A.age;
return in;
}
friend ostream & operator<<(ostream &os, Student &p)
{
os<<p.name<<" "<<p.age<<endl;
return os;
}
bool operator <(const Student &p)
{
if(age==p.age)
return name<p.name;
else
return age<p.age;
}
};
class StudentGroup:public Student
{
public:
vector<Student> s;
void add(Student &p)
{
s.push_back(p);
}
bool cmp(Student a,Student b)
{
return a<b;
}
void srt()
{
int l=s.size();
for(int i=0;i<l;i++)
for(int j=i;j<l;j++)
{
if(!(s[i]<s[j]))
{
int t;
string r;
t=s[i].age;
s[i].age=s[j].age;
s[j].age=t;
r=s[i].name;
s[i].name=s[j].name;
s[j].name=r;
}
}
}
Student operator =(const Student &p)
{
return Student(p.name,p.age);
}
void show()
{
for(int i=0;i<s.size();i++)
cout<<s[i].name<<" "<<s[i].age<<endl;
}
};
int main()
{
Student stu, max;
StudentGroup stuG;
while(cin>>stu)
{
if (!(stu < max))
max = stu;
stuG.add(stu);
}
stuG.srt();
stuG.show();
cout<<"The max is "<<max<<endl;
return 0;
}
Problem C: 学生的排序的更多相关文章
- Problem T: 结构体--学生信息排序
Problem T: 结构体--学生信息排序 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2219 Solved: 1305[Submit][Sta ...
- YTU 2878: 结构体--学生信息排序
2878: 结构体--学生信息排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 297 解决: 148 题目描述 定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院 ...
- (C语言)学生成绩排序-期末考倒数第二题结构体数组排序
假设学生的基本信息包括学号.姓名.三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型.输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息.如果平均分相同 ...
- hdu 5427 A problem of sorting(字符排序)
Problem Description There are many people's name and birth in a list.Your task is to print the name ...
- 题目1005:Graduate Admission(结构体排序)
问题来源 http://ac.jobdu.com/problem.php?pid=1005 问题描述 这道题理解题意有些麻烦,多看几遍先理解题意再说.每个学生有自己的三个成绩,一个编号,以及一个志愿列 ...
- 排序算法----调用库函数qsort进行快速排序
功 能: 快速排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const ...
- 数据结构(c语言)之学生信息管理系统
程序思维导图 代码表示(代码参考:长春大学-牛言涛老师) 如有错误请指出欢迎交流 #include<stdio.h> #include<malloc.h>//动态存储分配函数头 ...
- 用 Python 排序数据的多种方法
用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...
- 还是把一个课程设计作为第一篇文章吧——学生学籍管理系统(C语言)
#include <stdio.h> #include<stdlib.h> #include<string.h> typedef struct student { ...
随机推荐
- jmeter测试教程
http://www.cnblogs.com/TankXiao/p/4045439.html
- C - Coin Change (III)(多重背包 二进制优化)
C - Coin Change (III) Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- http://codeforces.com/contest/834
A. The Useless Toy time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- Ionic3学习笔记(四)修改返回按钮文字、颜色
本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...
- VB.NET生成重复窗体
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ...
- C# 使用FileUpload控件上传图片,将文件转换成二进制进行存储与读取
状况描述: 需要上传文件,但是不想要保存到实体路径下,便可以用该功能来实现. 效果图: 点击[Upload]按钮,上传文件到数据库: 点击[Preview],预览文件: 具体实现: 前台: <t ...
- Centos7安装Percona5.7
OS: Centos7.0 DB: Percona5.7 1. 通过yum安装 ## 删除之前的mysql数据库, 我用的是centos7.再安装虚拟机的时候,预装了很多软件.所以mysql和mari ...
- C#微信公众号/订阅号开发 接口源码
using System; using System.Web; using System.IO; using System.Text; using System.Web.Security; using ...
- commons-pool与commons-pool2连接池
commons-pool和commons-pool2是用来建立对象池的框架,提供了一些将对象池化必须要实现的接口和一些默认动作.对象池化之后可以通过pool的概念去管理其生命周期,例如对象的创建,使用 ...
- 使用svn与maven管理的项目导入Eclipse,但是与本地svn客户端关联不上?
因为这个问题,导致我的项目导了删,删了导.现在终于弄明白了. 首先,需求场景是: 1.使用svn进行版本控制; 2.使用maven进行项目管理. 3.使用Tortoise svn将项 ...