2023/10/11 每日总结

实验6:原型模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解原型模式的动机,掌握该模式的结构;

2、能够利用原型模式解决实际问题

 

[实验任务一]:向量的原型

 

实验要求:

1.画出对应的类图;

2.提交源代码(用C++完成);

3.注意编程规范。

类图

 源代码

#include <iostream>
#include <vector>
#include <algorithm>

class Student {
public:
    std::string name;
    int id;
    int age;

    Student(std::string n, int i, int a) : name(n), id(i), age(a) {}
};

int main() {
    std::vector<Student> students;

    // 添加学生信息
    students.push_back(Student("zhangsan", 20210001, 20));
    students.push_back(Student("lisi", 20210002, 22));
    students.push_back(Student("wangwu", 20210003, 18));
    students.push_back(Student("zhaoliu", 20210004, 24));
    // 添加更多学生信息...

    // 按照学号从小到大排序
    std::sort(students.begin(), students.end(), [](const Student& s1, const Student& s2) {
        return s1.id < s2.id;
    });

    // 使用迭代器遍历学生信息(从小到大)
    for (const auto& student : students) {
        std::cout << "Name: " << student.name << ", ID: " << student.id << ", Age: " << student.age << std::endl;
    }

    std::cout << std::endl;

    // 按照学号从大到小排序
    std::sort(students.begin(), students.end(), [](const Student& s1, const Student& s2) {
        return s1.id > s2.id;
    });

    // 使用迭代器遍历学生信息(从大到小)
    for (const auto& student : students) {
        std::cout << "Name: " << student.name << ", ID: " << student.id << ", Age: " << student.age << std::endl;
    }

    return 0;
}

  

posted @ 2023-10-11 19:31  樱花开到我身边  阅读(30)  评论(0)    收藏  举报