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;
}

浙公网安备 33010602011771号