54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
/*
|
||
* exercise_2.hpp
|
||
*
|
||
* Created on: 15 окт. 2021 г.
|
||
* Author: alexander
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include <iostream>
|
||
#include <numeric>
|
||
#include <fstream>
|
||
#include "src-gen/exercise_2.pb.h"
|
||
|
||
void exercise_1_2()
|
||
{
|
||
exercise_2::FullName fn;
|
||
fn.set_name("Alexander");
|
||
fn.set_surname("Zhirov");
|
||
fn.set_patronymic("Alexandrovich");
|
||
|
||
exercise_2::Student s;
|
||
*s.mutable_name() = fn;
|
||
s.add_grades(5);
|
||
s.add_grades(2);
|
||
s.add_grades(4);
|
||
s.add_grades(3);
|
||
s.add_grades(4);
|
||
s.add_grades(3);
|
||
s.add_grades(4);
|
||
s.add_grades(3);
|
||
s.set_avg_score(std::accumulate(s.grades().begin(), s.grades().end(), 0) / s.grades().size());
|
||
|
||
exercise_2::StudentsGroup sg;
|
||
*sg.add_students() = s;
|
||
|
||
std::ofstream out("student.bin", std::ios_base::binary);
|
||
sg.SerializeToOstream(&out);
|
||
out.close();
|
||
|
||
exercise_2::StudentsGroup new_sg;
|
||
std::ifstream in("student.bin", std::ios_base::binary);
|
||
if (new_sg.ParseFromIstream(&in))
|
||
{
|
||
std::cout << new_sg.students(0).name().surname() << std::endl;
|
||
std::cout << new_sg.students(0).avg_score() << std::endl;
|
||
}
|
||
else
|
||
{
|
||
std::cout << "Error!" << std::endl;
|
||
}
|
||
in.close();
|
||
}
|