1.通过构造函数实现5个学生数据的初始化
2.设立一个input函数实现学生数据的输入
3.设立一个函数sort实现学生按成绩降序排序
4.设立一个函数MAX,在MAX中找出5个学生中成绩最高的,并输出学号
5.设立一个函数search,实现按姓名查找学生(考虑可能存在同名学生)
6.写出主函数对上述函数的调用
跪求大佬指点!!!
1.通过构造函数实现5个学生数据的初始化
2.设立一个input函数实现学生数据的输入
3.设立一个函数sort实现学生按成绩降序排序
4.设立一个函数MAX,在MAX中找出5个学生中成绩最高的,并输出学号
5.设立一个函数search,实现按姓名查找学生(考虑可能存在同名学生)
6.写出主函数对上述函数的调用
跪求大佬指点!!!
采纳后可以帮你完善sort和search的代码
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
Student(string n,float s):number(n),score(s){}
friend void max(Student *); //声明友元函数
private:
string number; //将学号声明为字符串
float score;
};
void max(Student *p)
{
int i;
for(i=0;i<5;i++)
{
if(p->score<(p+i)->score)
{
p=(p+1); //将指向较大值的指针赋给指向较小值的指针
}
}
cout<<"最高成绩为:"<<p->score<<endl;
cout<<"学生学号为:"<<p->number;
}
int main()
{
Student Stud[5]={
Student("201024131101",99),
Student("201024131102",92),
Student("201024131103",99.5),
Student("201024131104",95),
Student("201024131105",93)
}; //定义一个对象数组数组并初始化对象
Student *p=Stud; //定义一个指向对象的指针
max(p); //调用函数
return 0;
}
https://blog.csdn.net/xiao_song_shu/article/details/69252661
// Q753145.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
Student(string n, string na, float s):number(n),score(s),name(na) {} //构造函数
void max(Student *);
void sort(Student *, int);
void search(Student *, string, int);
void display()
{
cout << name << " " << number << " " << score << endl;
}
private:
string number; //将学号声明为字符串
string name;
float score;
};
void Student::max(Student *p)
{
int i;
for(i=0;i<5;i++)
{
if(p->score<(p+i)->score)
{
p=(p+1); //将指向较大值的指针赋给指向较小值的指针
}
}
cout<<"最高成绩为:"<<p->score<<endl;
cout<<"学生姓名为:"<<p->name<<endl;
cout<<"学生学号为:"<<p->number << endl;
}
void Student::sort(Student *p, int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
{
if (p[j].score < p[j + 1].score)
{
string tn = p[j].number;
string tna = p[j].name;
float ts = p[j].score;
p[j].number = p[j + 1].number;
p[j].name = p[j + 1].name;
p[j].score = p[j + 1].score;
p[j + 1].number = tn;
p[j + 1].name = tna;
p[j + 1].score = ts;
}
}
}
void Student::search(Student *p, string name, int n)
{
int found = 0;
for (int i = 0; i < n - 1; i++)
{
if (p[i].name == name)
{
found = 1;
p[i].display();
}
}
if (!found) cout << "no result" << endl;
}
int main()
{
Student Stud[5]={
Student("201024131101", "a",99),
Student("201024131102", "b",92),
Student("201024131103", "b",99.5),
Student("201024131104", "c",95),
Student("201024131105", "cc",93)
}; //定义一个对象数组数组并初始化对象
Student *p=Stud; //定义一个指向对象的指针
p->max(p); //调用函数
cout << "search b:" << endl;
p->search(p, "b", 5);
cout << "sort:" << endl;
p->sort(p, 5);
for (int i = 0; i < 5; i++)
p[i].display();
return 0;
}
最高成绩为:99.5
学生姓名为:b
学生学号为:201024131103
search b:
b 201024131102 92
b 201024131103 99.5
sort:
b 201024131103 99.5
a 201024131101 99
c 201024131104 95
cc 201024131105 93
b 201024131102 92
Press any key to continue . . .