学习记录--课后作业1

Posted on 2020-12-26 21:35  Mikrokosmos  阅读(315)  评论(0)    收藏  举报

1.建立一个对象数组,内存放5个学生的数据(学号,成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。

#include<iostream>
#include<string>
using namespace std;
class student
{
public:
    student() {};
    void setID(int id)
    {
        this->m_id = id;
    }
    void setScore(int score)
    {
        this->m_grade = score;
    }
    int getID()
    {
        return this->m_id;
    }
    int getGrade()
    {
        return this->m_grade;
    }
private:
    int m_id;
    int m_grade;
};
int main()
{
    student array[5] , * p;
    int id = 0;
    int grade = 0;
    for (int i = 0; i < 5; i++)
    {
        cout << "请输入第"<<i+1<<"个学生的学号与成绩:";
        cin >> id; cin >> grade;
        array[i].setID(id);
        array[i].setScore(grade);
    }
    for (p = array; p < array + 5; p += 2)
    {
        cout << p->getID() << "    " << p->getGrade() << endl;
    }
    system("pause");
    return 0;
}
2.有一个学生类student,包括学生的姓名,成绩,设计一个友元函数,比较两个学生成绩的高低,并给出最高分和最低分的学生的信息。
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    Student();
    void setName(string name);
    string getName();
    void setScore(int score);
    int getScore();
    friend int compare(Student& s1, Student& s2);
private:
    string m_name;
    int m_score;
};
Student::Student() {}
void Student::setName(string name)
{
    m_name = name;
}
string Student::getName()
{
    return m_name;
}
void Student::setScore(int score)
{
    m_score = score;
}
int Student::getScore()
{
    return m_score;
}
//返回两个中成绩更高的一个人的·成绩
int compare(Student& s1, Student& s2)
{
    if (s1.getScore() > s2.getScore())
    {
        return 1;//大于
    }
    else if (s1.getScore() == s2.getScore())
        return 2;//等于
    else
        return 3;//小于

}
int main()
{
    //建立对象数组
    Student s[100], *p;
    string name;
    int score;
    int num;
    cout << "请输入学生人数:";
    cin >> num;
    for (int i = 0; i < num; i++)
    {
        cout << "请输入第" << i + 1 << "个学生姓名与成绩:" << endl;
        cin >> name;
        cin >> score;
        s[i].setName(name);
        s[i].setScore(score);
    }
    int max = 0;
    int min = 0;
    for (int i = 1; i < num; i++)
    {
        if (compare(s[max], s[i]) == 3)
            max = i;
        else if (compare(s[min], s[i]) == 1)
            min = i;
    }
    cout << "姓名:" << s[max].getName() << "    " << "分数:" << s[max].getScore() << endl;
    cout << "姓名:" << s[min].getName() << "    " << "分数:" << s[min].getScore() << endl;
}

3.采用友元函数的方法设计复数的类complex点,求两个复数加法运算。

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3