0 / 0 / 0
Регистрация: 29.09.2021
Сообщений: 37
1

Пожалуйста подскажите как переделать С++

16.11.2021, 11:26. Показов 220. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно переделать под эту задачу
Написать программу для обработки информации о книгах
(автор, название, издательство, год издания).
Программа обязана предоставлять юзеру возможность вводить данные с клавиатуры и заносить их в файл; читать данные из файла и выводить на экран список книг нужного автора, изданных до 2009 г.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
//#include <ctime>
#include <iomanip>
#include <fstream>
#include <string>
//#include <vector>
 
using namespace std;
 
 
struct Books
{ 
    string autor;
    string name;
    string place;
    unsigned int year;
 
};
//------------------------------------------------------------------------------------
void inBooks(Books* arrBooks,int size)//-ввод с клавиатуры данных в массив, 
                             //состоящий из 5 элементов типа BOOKS, и занесение их в файл данных
{
    ofstream fin("books.txt");
    if (!fin)
    {
        cout << "Файл не может быть открыт или создан\n";
        exit(1);
    }
    for (int i = 0; i < size; ++i)
    {
        cout << setw(35) << "Введите данные о книге № " << i + 1 << endl;
        cout << "Введите автора книги" << endl;
        getline(cin, arrBooks[i].autor);
        fin <<"Автор - "<< arrBooks[i].autor << ", ";
        cout << "Введите название книги" << endl;
        getline(cin, arrBooks[i].name);
        fin <<"Название книги - "<< arrBooks[i].name << ", ";
        cout << "Введите место издания книги" << endl;
        getline(cin, arrBooks[i].place);
        fin <<"Место издания - "<< arrBooks[i].place << ", ";
        cout << "Введите год издания книги" << endl;
        cin >> arrBooks[i].year;
        fin <<"Год издания - "<< arrBooks[i].year <<endl;
        cin.ignore(32767, '\n');
        cout << endl;
    }
}
//--------------------------------------------------------------------------------
void outBooks()  //Вывод данных из файла
{
    cout << "Вывод данных из файла" << endl;
    string outBook;
    ifstream fin("books.txt");
    if (!fin)
    {
        cout << "Файл не может быть открыт или создан\n";
        exit(1);
    }
    while (fin)
    {
        getline(fin, outBook);
        cout << outBook << endl;
    }
}
//---------------------------------------------------------------------------------
void print(Books* arrBooks, int id)
{
    cout << "Автор - " << arrBooks[id].autor << ", ";
    cout << "Название - " << arrBooks[id].name << ", ";
    cout << "Место издания - " << arrBooks[id].place << ", ";
    cout << "Год издания - " << arrBooks[id].year << endl;
}
 
void endBooks(Books* arrBooks,int size) //-вывод на экран самого последнего издания
{
    int maxYear = arrBooks[0].year;
    for (int i = 1; i < size; ++i)
    {
        if (maxYear < arrBooks[i].year)
            maxYear = arrBooks[i].year;
    }
    for (int i = 0; i < size; ++i)//Выводим все последнии издания
        if (maxYear == arrBooks[i].year)
            print(arrBooks, i);
}
//------------------------------------------------------- Поиск книги по городу
int search(Books* arrBooks, int size)
{
    string searchPublishing;
    int a=0;
    cout << "Введите город издания: " << endl;
    cin.ignore(32767, '\n');
    getline(cin, searchPublishing);
    for (int i = 0; i < size; ++i)
    {
        if (arrBooks[i].place == searchPublishing)
        {
            print(arrBooks, i);
            a = 1;
        }
    }
    return a;
}
 
//------------------------------------------------------------------------------------
int main()
 
{
 
    const int size = 5;//Колличество элементов массива
    cout <<setw(40)<< "Заполните массив: " << endl;
    Books arrBooks[size];
    inBooks(arrBooks, size);
 
    cout <<
        "1. - чтение данных из файла и вывод их на экран" << endl <<
        "2. - вывод на экран книг, изданных в городе, который введен с клавиатуры(если таких нет - вывести сообщение об этом)" << endl <<
        "3. - вывод на экран самого последнего издания" << endl <<
        "0. - выход" << endl;
    int menu=0;
    while (true)
    {
        cin >> menu;
        switch (menu)
        {
        case 1:outBooks();
            break;
        case 2: 
        {
            int a = 0;
            a = search(arrBooks, size);
            if (a != 1)cout << "Книг изданных в этом городе нет. " << endl;
            break;
        }
        case 3:endBooks(arrBooks, size);
            break;
        case 0:return 0;
        }
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2021, 11:26
Ответы с готовыми решениями:

подскажите пожалуйста как переделать запрос
в запросе id_status_visit = 1 это значит, что посещал Помогите пожалуйста данный запрос с...

Подскажите пожалуйста, Как переделать на постусловие
Чего-то не сообразить, как переделать на постусловие. Так то ясно, что условие, если оно не...

Подскажите пожалуйста как программу с формой переделать в консольную?
Здравствуйте! Столкнулся с такой проблемой, есть программа public partial class FormMy : Form ...

Не удается переделать функцию с C# на PHP. Подскажите пожалуйста
/// &lt;summary&gt; /// Возвращает буквенный символ столбца Microsoft Excel, соответствующий заданному...

0
16.11.2021, 11:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2021, 11:26
Помогаю со студенческими работами здесь

Подскажите пожалуйста!Правильно ли написан код квадратного уравнения работая с консолью или можно его переделать произвести модернизацию кода! Мож
// нахождение корней уравнения через дискриминант class D { public static void main (String...

расскажите пожалуйста как переделать программу!
Условие: Функция подбирает одного случайного пациента доктору. Всего 20 пациентов и 5 врачей ....

расскажите пожалуйста как переделать программу!
Условие: Дана числовая матрица $matrix. С помощью цикла for совершить перебор матрицы. Если...

Подскажите как переделать из С++ в С#
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; // std::string ParseASymbol(const...

Подскажите как переделать
помогите что бы выводило не по рейтингу, а по группам &quot;Очередь (FIFO) Все студенты, обучающиеся в...

Подскажите как переделать функцию
Вообщем нужно большую строковую переменную переделать в параметр post запроса function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru