![]() |
#2
qlc002009-11-02 12:36
#include <iostream>
#include <string> using namespace std; class Student { public: Student(string n,int no ,int a,float s) { name=n; number=no; age=a; score=s; } Student() { name="null"; number=0; age=0; score=0.0; } ~Student(); void input() { cout<<"\n 输入姓名:"; cin>>name; cout<<"\n 输入号码:"; cin>>number; cout<<"\n 输入年龄:"; cin>>age; cout<<"\n 输入分数:"; cin>>score; } void output() { cout<<"姓名:"<<name<<endl; cout<<"号码:"<<number<<endl; cout<<"年龄:"<<age<<endl; cout<<"分数:"<<score<<endl; } string get_name() { return name; } int get_number() { return number; } int get_age() { return age; } void change(Student k) { name=k.get_name(); number=k.get_number(); age=k.get_age(); score=k.get_score(); } float get_score() { return score; } private: string name; int number; int age; float score; }; Student::~Student() { cout<<"调用虚构函数。"<<endl; } int main() { Student stu[5]; Student temp; for(int i=0;i<5;i++) { cout<<"请输入第"<<i+1<<"个学生的信息"<<endl; stu[i].input(); cout<<endl; } for(i=0;i<5;i++) { stu[i].output(); cout<<endl; } for(i=0;i<4;i++) for(int j=i+1;j<5;j++) { if(stu[i].get_score()>stu[j].get_score()) { temp.change(stu[i]); stu[i].change(stu[j]); stu[j].change(temp); } } for(i=0;i<5;i++) { stu[i].output(); cout<<endl; } return 0; } 给你一个参考,自己多编下 |
建立一个对象数组,内存放5个学生数据(学号,成绩),用指针指向数组首元素,调用成员函数Print,输出所有学生信息。在此基础,定义函数指针ftr指向成员函数print,调用函数指针ftr输出所有学生信息,再设立一个函数max,用指向对象指针作函数参数,在max函数中找出5个学生成绩最高者,并输出其学生所有信息。
下面是我自己编的点,但定义指针ftr指向后面的就不会了,希望高手帮我解决哈。
#include<iostream.h>
class Students
{
public:
Students(int num,int sco):number(num),score(sco){}
int print();
private:
int number;
int score;
};
int Students::print()
{
cout<<"学号:"<<number<<" 分数为"<<score<<endl;
}
int main()
{
int i;
Students a[5]={
Students(1,91),Students(2,97) ,Students(3,92) ,
Students(4,93) ,Students(5,98)};
for(i=0;i<5;i++)
a[i].print();
}