#pragma once #include <iostream> #include <string> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> using namespace std; class Student { public: Student(void) { } Student(int id,string name,double score):_id(id),_name(name),_score(score) { } virtual ~Student(void) { } int GetId() { return _id; } string GetName() { return _name; } double GetScore() { return _score; } void SetId(int id) { _id=id; } void SetName(string name) { _name=name; } void SetScore(double score) { _score=score; } private: int _id; string _name; double _score; friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & _id; ar & _name; ar & _score; } };
#pragma once #include <deque> #include <string> #include "Student.h" #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/deque.hpp> using namespace std; typedef deque<Student> STU_LIST; typedef STU_LIST::iterator STU_LIST_ITER; class StudentManager { friend class boost::serialization::access; public: StudentManager(void); virtual ~StudentManager(void); void AddStu(const Student&); void DelStu(int); Student& FindStu(int); void PrintStuByLikeName(string); void Display(); void SaveFile( ); StudentManager& ReadFile(); Student& FindByIndex(int); void EditByIndex(int,int,string,double); private: STU_LIST _stuList; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & _stuList; } }; //———————————————————————————————
#include "StudentManager.h" #include "Student.h" #include <string> #include <deque> #include <iostream> #include <sstream> #include <fstream> #include <iterator> #include <boost\archive\text_oarchive.hpp> #include <boost\archive\text_iarchive.hpp> using namespace std; StudentManager::StudentManager(void) { } void StudentManager::AddStu(const Student& s) { _stuList.push_back(s); } void StudentManager:: Display() { STU_LIST_ITER iter; Student stu; for(iter=this->_stuList.begin();iter!=this->_stuList.end();++iter) { stu=(*iter); cout<<stu.GetId()<<" "<<stu.GetName()<<" "<<stu.GetScore()<<endl; } } void StudentManager::DelStu(int id) { STU_LIST_ITER it; for(it=this->_stuList.begin(); it!=_stuList.end(); ) { Student stu=(* it); if(stu.GetId() == id) { it = _stuList.erase(it); } else { ++it; } } } void StudentManager::PrintStuByLikeName(string likename) { STU_LIST_ITER it; string::size_type position; for(it=this->_stuList.begin(); it!=_stuList.end(); ) { Student stu=(* it); position= stu.GetName().find(likename); if(stu.GetName().npos != position ) { cout<<stu.GetId()<<" "<<stu.GetName()<<" "<<stu.GetScore()<<endl; ++it; } else { ++it; } } } void StudentManager::SaveFile( ) { ofstream file("c:\\123.txt"); boost::archive::text_oarchive oa(file); oa<<(*this); } StudentManager& StudentManager::ReadFile() { StudentManager* sm=new StudentManager; std::ifstream file("c:\\123.txt"); boost::archive::text_iarchive ia(file); ia>>(*sm); return (*sm); } StudentManager::~StudentManager(void) { _stuList.clear(); } Student& StudentManager::FindByIndex(int index) { return this->_stuList.at(index); } void StudentManager::EditByIndex(int index,int id,string name,double score) { Student& stu=_stuList.at(index); stu.SetId(id); stu.SetName(name); stu.SetScore(score); }
#include <boost\serialization\base_object.hpp> #include <boost\serialization\utility.hpp> #include <boost\serialization\list.hpp> #include <boost\serialization\assume_abstract.hpp> #include <boost\archive\text_oarchive.hpp> #include <boost\archive\text_iarchive.hpp> #include "Student.h" #include "StudentManager.h" #include <string> #include <iostream> #include <fstream> using namespace std; void main() { StudentManager stum; cout<<"新增了三个学生"<<endl; Student stu(1,"sss",129); Student stu1(2,"aas",119); Student stu2(3,"dds",125.5); stum.AddStu(stu);//增 stum.AddStu(stu2); stum.AddStu(stu1); stum.Display();//遍历 cout<<"删了1个学生"<<endl; stum.DelStu(1);//删 stum.Display();//遍历 cout<<"查找名字中含有s的学生"<<endl; stum.PrintStuByLikeName("s");//模糊查找 stum.SaveFile();//保存到文件中 cout<<"保存文件后,load出来"<<endl; StudentManager stum2= stum.ReadFile();//从文件中载入内存 stum2.Display(); cout<<"修改下标为零的student后"<<endl; stum2.EditByIndex(0,999,"nyh",150.55); stum2.Display(); }
相关推荐
《C++实现学生信息管理系统详解》 在信息技术领域,学生信息管理系统是一种常见的应用,它用于高效、有序地管理和处理学校中的学生数据。本系统利用C++编程语言进行开发,涵盖了学生基本信息管理、学生成绩管理以及...
**基于C++的命令行学生信息管理系统** 在计算机科学领域,C++是一种强大的、面向对象的编程语言,常用于开发高效、稳定且可扩展的软件系统。本项目“基于C++的命令行学生信息管理系统”是针对大一学生在学习C++时的...
首先,学生管理系统的核心功能包括学生信息管理、课程管理、成绩管理等。在C++中,我们可以利用类(class)来封装这些功能,每个类代表一个实体,如“学生”类、“课程”类和“成绩”类。通过类的实例化,我们可以...
【标题】基于C++的水闸信息管理系统源码 该标题揭示了这是一个使用C++编程语言编写的水闸信息管理系统的源代码。C++是一种通用的、面向对象的编程语言,以其高效性、灵活性和丰富的库支持而闻名,是开发系统软件、...
在本项目中,"C++ 面向对象 学生管理系统(带有文件操作)" 是一个使用 C++ 编程语言实现的学生信息管理程序,它利用面向对象编程的特性来设计和组织代码,同时具备文件操作功能,可以持久保存和读取学生数据。...
Boost.Asio是一个功能强大的C++库,它为编写高性能网络应用程序提供了便利。在Boost.Asio中,SSL(Secure Sockets Layer)支持允许开发人员实现加密的网络连接,以确保数据在客户端和服务器之间传输时的安全性。在您...
在本“vc++学生信息和课程信息序列化”作业中,学生可能需要实现一个系统,能够有效地保存和加载学生和课程的相关信息。 首先,我们需要理解C++中的数据结构和类设计。在处理学生信息和课程信息时,我们通常会定义...
"C++学生通讯系统"是一个基于C++设计的软件应用,旨在实现对大量学生信息的有效管理和通信功能。这个系统能够帮助教育机构或学校管理学生的个人信息,以及方便学生之间的交流。 1. **C++基础** C++是C语言的扩展,...
这种转换器在电源管理、电池供电设备和分布式电源系统中广泛应用。Boost电路通常由电感器、电容器、开关元件(如MOSFET)和控制器组成。 2. 闭环控制系统:闭环控制系统是基于反馈机制的控制系统,其核心是将系统...
系统可能包括员工信息管理、考勤记录、工资计算等功能。涉及的知识点有: - 类的设计:创建员工类,包含姓名、职位、工资等属性,以及请假、加班等行为。 - 权限控制:根据员工角色分配不同操作权限,涉及访问...
在这个系统中,我们可以通过C++编程语言来实现学生信息的增删改查功能,从而实现对学生的录入、修改、删除以及查询操作。下面我们将详细探讨如何使用C++来构建这样一个系统。 首先,我们需要理解C++的基础知识。C++...
这个项目可能涉及到类的设计,比如“Student”类,包含姓名、学号、成绩等属性,以及相关的操作如添加、删除、查询学生信息。C++的面向对象特性,如封装、继承和多态,会在这里得到体现。同时,可能需要使用STL容器...
电力电子技术是现代电子工程领域中的重要组成部分,它涉及到电能的转换、控制和管理。在众多电力电子变换器中,升压转换器(Boost Converter)是一种广泛应用的直流-直流变换器,它能够将较低的直流电压提升到较高的...
模块介绍 1、user:学生基础信息 2、managements:学生信息管理 3、statistic:教室人流管理 4、reserve:教室预约 安装教程 0.pip换源(清华): pip config set global.index-url ...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
2. **学生信息管理**:录入和管理学生的个人信息,如学号、姓名、班级等。 3. **宿舍分配**:根据学生需求和宿舍空余情况自动或手动分配宿舍。 4. **入住退宿管理**:处理学生的入住申请、退宿手续,更新宿舍状态。 ...
3. **课程管理系统**:在教育领域,职工管理系统可能与其他课程管理系统相结合,帮助教师、教务人员管理教学计划、学生信息和成绩。这类系统可以自动化课程安排、出勤记录、作业提交和成绩录入等过程,减轻了教师的...
同时,Simulink模型也可以作为教学工具,帮助学生理解Buck-Boost转换器的工作原理。总的来说,利用MATLAB进行Buck-Boost转换器的开发,不仅能够提高设计效率,还能提供深入的理论和实践学习体验。
这通常涉及到学生信息管理、书籍库存管理、借阅记录跟踪等功能。 基于“db_library”这个标签,我们可以推测这个项目可能包含了一个数据库库(library),用于存储和操作数据。这可能是一个自定义的数据库管理系统...
7. **算法与数据结构**:在处理学生信息、课程调度等问题时,可能会用到排序、查找等算法,以及链表、树、集合等数据结构。 8. **编译与调试**:开发过程中,开发者可能使用了GCC、Clang或Visual Studio等编译器,...