Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Методы и системы программирования»
МИНПРОСВЕЩЕНИЯ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Тульский государственный педагогический университет им. Л.Н. Толстого» (ТГПУ им. Л.Н. Толстого)
Кафедра информатики и информационных технологий
ОТЧЕТ по дисциплине: «Методы и системы программирования» Индивидуальное ВАРИАНТ № 19
Выполнил: студент группы 121591 факультета математики, физики и информатики Сергеев Д.А.
Тула – 2020 #include <iostream> #include <fstream> #include <Windows.h> #include <string> #include <vector> #include <stdexcept> #include <map> #include <cstdlib> #include <cmath> using namespace std;
class JournalArticle { public: string name; int year; string author; int numberOfPages; string theme; };
class JournalArticles { public: vector <JournalArticle> journalArticles;
JournalArticles() { int vibor; cout << "Ввести вручную(1) или из файла(2)?" << endl; cout << ">>"; cin >> vibor; if(vibor == 1) { SetJournalArticles(); } if(vibor == 2) { SetJournalArticlesFromFile(); } }
void SetJournalArticles() { int count; JournalArticle JA; cout << "Ввод вручную: " << endl; cout << "Введите количество: "; cin >> count; for(int i = 0; i < count; i++) { journalArticles.push_back(JA); cout << i+1 << "-ая статья: " << endl; cout << "---------------------------" << endl; cout << "Введите автора статьи: "; cin >> journalArticles[i].author; cout << "Введите год выпуска статьи: "; cin >> journalArticles[i].year; cout << "Введите название статьи: "; cin >> journalArticles[i].name; cout << "Введите количество страниц в статье: "; cin >> journalArticles[i].numberOfPages; cout << "Введите тему статьи: "; cin >> journalArticles[i].theme; cout << endl; cout << "---------------------------" << endl; } }
void SetJournalArticlesFromFile() { string fileName1 = "1.txt"; int count = 0; char buffer[1000];
ifstream file1(fileName1); while (!file1.eof()) { // Увеличить счетчик строк count++;
// Считать одну строку в буфер file1.getline(buffer, 1000); } file1.close();
JournalArticle JA; ifstream file(fileName1);
if (!file) { cout << "Файл не удалось открыть" << endl; } else { for (int i = 0; i < count; i++) { journalArticles.push_back(JA); file >> journalArticles[i].name >> journalArticles[i].author >> journalArticles[i].year >> journalArticles[i].theme >> journalArticles[i].numberOfPages; } } }
void ShowArticleOfName() { int count = 0; string j_name; cout << "Введите название статьи: "; cin >> j_name; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_name == journalArticles[i].name) { count++; cout << "Статья " << journalArticles[i].name << ": " << endl; cout << "---------------------------" << endl; cout << "Автор статьи: " << journalArticles[i].author << endl; cout << "Год выпуска статьи: " << journalArticles[i].year << endl; cout << "Количество страниц в статье: " << journalArticles[i].numberOfPages << endl; cout << "Тема статьи: " << journalArticles[i].theme << endl; cout << "---------------------------" << endl; } } if(count == 0) { cout << "Статей с таким названием нет." << endl; } }
void ShowAuthorOfArticle() { int count = 0; string j_author; cout << "Введите автора статьи: "; cin >> j_author; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_author == journalArticles[i].author) { count++; cout << "Статья данного автора: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "У данного автора нет статей." << endl; } }
void ShowArticleOfAuthor() { int count = 0; string j_article; cout << "Введите название статьи: "; cin >> j_article; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_article == journalArticles[i].name) { count++; cout << "Автор данной статьи: " << journalArticles[i].author << endl; } } if(count == 0) { cout << "Такой статьи не существует" << endl; } }
void ShowArticleOfTheme() { int count = 0; string j_theme; cout << "Введите автора статьи: "; cin >> j_theme; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_theme == journalArticles[i].theme) { count++; cout << "Статья по данной теме: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей с такой темой нет." << endl; } }
void ShowArticleOfAuthorAndYear() { int count = 0; string j_author; int j_year; cout << "Введите автора статьи: "; cin >> j_author; cout << "Введите год выпуска статьи: "; cin >> j_year; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_author == journalArticles[i].author && j_year == journalArticles[i].year) { count++; cout << "Статья данного автора и года выпуска: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей с данным автором и выпуском года нет." << endl; } }
void ShowArticleOfAfterYear() { int count = 0; int j_year; cout << "Введите год: "; cin >> j_year; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_year <= journalArticles[i].year) { count++; cout << "Статья выпущенная после " << j_year << " года: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей выпущенных после данного года нет." << endl; } }
void ShowArticleOfBeforeYear() { int count = 0; int j_year; cout << "Введите год: "; cin >> j_year; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_year >= journalArticles[i].year) { count++; cout << "Статья выпущенная до " << j_year << " года: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей выпущенных до данного года нет." << endl; } }
void ShowArticleOfMustPages() { int count = 0; int j_pages; cout << "Введите количество страниц: "; cin >> j_pages; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_pages <= journalArticles[i].numberOfPages) { count++; cout << "Статьи в которой больше " << j_pages << "страниц: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей в которых больше " << j_pages << " страниц нет." << endl; } }
void ShowArticleOfLessPages() { int count = 0; int j_pages; cout << "Введите количество страниц: "; cin >> j_pages; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_pages >= journalArticles[i].numberOfPages) { count++; cout << "Статьи в которой меньше " << j_pages << "страниц: " << journalArticles[i].name << endl; } } if(count == 0) { cout << "Статей в которых меньше " << j_pages << " страниц нет." << endl; } }
void DeleteArticle() { int count = 0; string j_name; cout << "Введите название статьи: "; cin >> j_name; for(size_t i = 0; i < journalArticles.size(); i++) { if(j_name == journalArticles[i].name) { journalArticles.erase(journalArticles.begin() + i); cout << "Статья " << j_name << " удалена." << endl; count++; } } if (count == 0) { cout << "Статьи с таким название не существует." << endl; } }
void ShowArticles() { for(size_t i = 0; i < journalArticles.size(); i++) { cout << i+1 << "-ая статья: " << endl; cout << "---------------------------" << endl; cout << "Автор статьи: " << journalArticles[i].author << endl; cout << "Год выпуска статьи: " << journalArticles[i].year << endl; cout << "Название статьи: " << journalArticles[i].name << endl; cout << "Количество страниц в статье: " << journalArticles[i].numberOfPages << endl; cout << "Тема статьи: " << journalArticles[i].theme << endl; cout << "---------------------------" << endl; } }
JournalArticle operator[] (int index) { return journalArticles[index]; }
};
int main () { setlocale(LC_ALL, "ru_RU.UTF-8"); SetConsoleCP(1251); SetConsoleOutputCP(1251); JournalArticles ja; int menu = -1; while (menu != 0) { cout << "Меню: " << endl; cout << "0 - выход" << endl; cout << "1 - информация об авторе" << endl; cout << "2 - вывести все журнальные статьи" << endl; cout << "3 - вывести статью по названию" << endl; cout << "4 - вывести статью по автору" << endl; cout << "5 - вывести автора по статье" << endl; cout << "6 - вывести статьи по теме" << endl; cout << "7 - вывести статью по автору и году выпуска" << endl; cout << "8 - вывести статьи выпущенные после определенного года" << endl; cout << "9 - вывести статьи выпущенные до определенного года" << endl; cout << "10 - вывести статьи в которых больше определенного количества страниц" << endl; cout << "11 - вывести статьи в которых меньше определенного количества страниц" << endl; cout << "12 - удалить статью по названию" << endl; cout << " >> "; cin >> menu;
if(menu == 1) cout << "Подготовил студент Сергеев Даниил группы 121591" << endl; if(menu == 2) ja.ShowArticles(); if(menu == 3) ja.ShowArticleOfName(); if(menu == 4) ja.ShowAuthorOfArticle(); if(menu == 5) ja.ShowArticleOfAuthor(); if(menu == 6) ja.ShowArticleOfTheme(); if(menu == 7) ja.ShowArticleOfAuthorAndYear(); if(menu == 8) ja.ShowArticleOfAfterYear(); if(menu == 9) ja.ShowArticleOfBeforeYear(); if(menu == 10) ja.ShowArticleOfMustPages(); if(menu == 11) ja.ShowArticleOfLessPages(); if(menu == 12) ja.DeleteArticle(); } }
file:
7
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 61; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.008 с.) |