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点,求两个复数加法运算。
浙公网安备 33010602011771号