指针对象(类和对象实验二)

指针对象(类和对象实验二)

题目描述

 在前面章节内容里已经学习了数组和指针之间的关系,现在对象数组练习题的基础上,把对象数组改为对象指针重新实现同一功能,看看使用对象指针与普通类型指针有何不同?比如要构造三个学生类对象,只能使用指针动态分配方法实现(new 指令),最后,我们对初始化后的n个对象中的姓名字段属性按升序排序,输出排序后的各对象姓名属性,特别要注意的是对对象指针初始化需要注意什么(提示:可以在类外面定义一个方法,该方法的参数是对象指针/数组,对传入的对象按要求进行排序输出)。

输入

第一行输入需要n个测试对象

每行依次输入各对象的属性

输出

输出排好序后的对象姓名属性,每行一个

样例输入

2
Tom 男 2012222222 计算机学院 13333333333
John 男 2013333333 计算机学院 12444444444

样例输出

John
Tom

【my code】

#include <iostream>
using namespace std;

class Stu{
private:
	string name, id, sex, col, tel;
public:
	Stu(){}
	Stu(string n, string d, string s, string c, string t)
		:name(n), id(d), sex(s),col(c), tel(t) {}
	void input(string n, string d, string s, string c, string t) {
		name = n;
		id = d;
		sex = s;
		col = c;
		tel = t;
	}
	string getName() {
		return name;
	}
	void show() {
		cout << name << endl;
	}
};

void sort(Stu *a, int n) {
	int i, j; 
	for(i = 0; i < n; i++) {
		for(j = i + 1; j < n; j++) {
			if(a[i].getName() > a[i+1].getName()) {
				Stu temp;
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}
}

int main() {
	int t;
	cin >> t;
	Stu *stu = new Stu[t];
	for(int i = 0; i < t; i++) {
		string name, id, sex, col, tel;
		cin >> name >> id >> sex >> col >> tel;
		stu[i].input(name, id, sex, col, tel);
	}
	sort(stu, t);
	for(int i = 0; i < t; i++) {
		stu[i].show();
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Xindolia_Ring/article/details/80283355
今日推荐