Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Основам программирования"

Автор:   •  Ноябрь 23, 2022  •  Лабораторная работа  •  6,623 Слов (27 Страниц)  •  174 Просмотры

Страница 1 из 27

ПРИЛОЖЕНИЕ

Приложение 1 (текст программы)

#define _CRTDBG_MAP_ALLOC //Включение учета утечек памяти

#define _CRT_SECURE_NO_WARNINGS

#include <clocale>

#include <stdlib.h>

#include <crtdbg.h>

#ifdef _DEBUG

#ifndef DBG_NEW

#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )

#define newDBG_NEW

#endif

#endif

#include <iostream>

#include <iomanip>

#include <cctype>

#include <string>

#include <cstring>

#include <windows.h>

#include <fstream>

#include <vector>

#include <regex> //регулярные выражения

using namespace std;

vector<int> str_to_vec(string n) {//перевод из строки в вектор

vector<int> out;//вектор который хранит вектор значений

for (int i = 0; i < n.size(); i++) {

out.push_back(n[i] - '0');//заносим в вектор наши числа

}

return out;

}

bool check_length(string n, int length) //Проверка на длину

{

if (n.length() > length || n.length() == 0)

{

cout << "Длина строки должна быть меньше " << length << " символов и больше нуля!" << endl;

return false;

}

return true;

}

string vec_to_string(vector<int> arr) {//перевод из вектора в строку

string out;//вектор который хранит результат

for (int i = 0; i < arr.size(); i++)

out += arr[i] + '0';//заносим в строку числа из вектора

return out;

}

int get_num() {//ввод целого числа с проверкой ввода

int num;

do {

cin >> num;

if (cin.fail()) {

cout << "Неккоретный ввод числа. Повторите ввод\n";

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

}

else

break;

} while (true);

return num;

}

struct Student {//структура данных

string name;//имя студента

string group;//группа студента

vector<int> marks;//массив оценок студента

Student(string Name, string Group, vector<int> Marks) {//конструктор структуры

name = Name;

group = Group;

marks = Marks;

}

Student(const Student& s) {

name = s.name;

group = s.group;

marks = s.marks;

}

int sum_marks() {//посчитать сумму всех оценок

int res = 0;

for (int i = 0; i < marks.size(); i++)//суммируем все оценки

res += marks[i];

return res;

}

bool operator==(Student* s) {//функция сравнения двух структур

if (name == s->name && group == s->group) {//сравниваем имя и группу студентов

return true;

}

return false;

}

friend ostream& operator<<(ostream& out, Student* stud) {//функция вывода данных структуры //перегрузка оператора вывода

cout << "| " << setw(13) << stud->name << " | " << setw(14) << stud->group << " | "

<< setw(14) << vec_to_string(stud->marks) << " |" << endl;

...

Скачать:   txt (27.5 Kb)   pdf (84.1 Kb)   docx (24.4 Kb)  
Продолжить читать еще 26 страниц(ы) »
Доступно только на Essays.club