Форум программистов, компьютерный форум CyberForum.ru

Реализовать структуру Music - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Integer_sequence http://www.cyberforum.ru/cpp-beginners/thread1220019.html
Правильная ли такая реализация integer_sequence? У меня не компилируется, не могу сообразить почему.#include <iostream> #include <array> #include <utility> #include <tuple> namespace isq { template< class T, T... Ints > class integer_sequence { static size_t size() { return sizeof...(Ints); }
C++ Найти такие тройки натуральных чисел x,y,z из интервала от 1 до 20,для которых выполняется равенство x^2-y=z^2 найти все такие тройки натуральных чисел x,y,z из интервала от 1 до 20,для которых выполняется равенство x^2-y=z^2 http://www.cyberforum.ru/cpp-beginners/thread1220016.html
C++ Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры
Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры
Недопонимание с switch и выводом default C++
Задание: сделать так что бы при вводе целого числа (от 1 до 7 которые соответствует дням недели, 1- понедельник, 2 -вторник и т.д.) печаталось название дня недели. в случае неправильного ввода вывести сообщение об ошибки. Вот мой код: #include <iostream> #include<stdio.h> using namespace std; int main()
C++ Не осуществляется объединение двух контейнеров http://www.cyberforum.ru/cpp-beginners/thread1220006.html
set<string> matt, patt; set<string> matt_and_patt; Info_Processing(matt,"Matt"); // заполнение первого и второго множества Info_Processing(patt,"Patt"); std::set_union(matt.begin(), matt.end(), patt.begin(), patt.end(), std::insert_iterator<set<string>>(matt_and_patt, matt_and_patt.begin()) ); Нужно объединить matt и patt и скопировать в matt_and_patt. При этом после использования...
C++ Read() блокирует поток есть у меня процесс который записывает данные в пайп функцией write(), другой процесс считывает их read(), нормально не блокируясь. НО когда добавляю в Qt GUI приложение, отдельной ниткой модуль read(), эта нитка блокируется на функции read(). Почему это происходит? подробнее

Показать сообщение отдельно
gru74ik
Модератор
 Аватар для gru74ik
3068 / 1313 / 164
Регистрация: 20.02.2013
Сообщений: 3,740
Записей в блоге: 15
01.07.2014, 07:38     Реализовать структуру Music
Так, ну вот разобрались с записью в файл и чтением из файла.
Кликните здесь для просмотра всего текста

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/// [url]http://www.cyberforum.ru/cpp-beginners/thread1220023.html[/url]
/*
Задача.Описать структуру MUSIC, которая содержит информацию о музыкальных
дисках, которые продаются в магазине:
 
1.    название альбома;
2.    исполнитель;
3.    год создания альбома;
4.    жанр;
5.    цена диска;
 
 
Написать программу которая выполняет следующие действия:
 
1.    Ввод с клавиатуры данных в массив, состоящий из шести элементов типа MUSIC;
2.    Вывода данных на экран из массива структур;
3.    Запись массива структур в текстовый файл и считывания данных из файла в массив структур;
4.    Порядок записей по году создания альбома;
5.    Организовать поиск дисков по жанру выполнения: у пользователя запрашивается жанр и
      выводятся все диски, соответствующие условию (сравнение проводить с помощью функции
      сравнения строк);
*/
 
// Подключаем заголовочные файлы:
#include <iostream>     // для ввода-вывода
#include <windows.h>    // для отображения русского языка
#include <string>       // для строк класса string
#include <fstream>      // для чтения из файла
#include <ostream>      // для вывода в файл
 
using namespace std;    // подключаем стандартное пространство имён
 
struct music        // объявление структуры music
{
    string artist;  // исполнитель
    string name;    // название альбома
    string genre;   // жанр
    int year;       // год издания
    double price;   // цена диска
};
 
music songs[6];  // создаём массив структур типа music (можно
                 // будет ввести данные не более чем для 6 дисков)
 
int main()  // функция main согласно стандарту C++ должна быть типа int
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int n;
    cout << "Введите количество дисков, для которых Вы желаете ввести информацию (не более 6 дисков): ";
    cin >> n;
    cin.ignore();
    cout << endl;
 
    if (n>6 || n<=0)
    {   // если пользователь ввёл неверное число, выводится уведомление и программа завершается:
        cout << "Извините, данная реализация программы не расчитана на запись такого объёма данных.\n"
                "Максимальное количество дисков должно быть не более шести. Минимальное - один." << endl;
 
        cout << endl;   // выводим на экран пустую строку для лучшего визуального восприятия текста
    }
 
    else
    {   // иначе выполняется следующий код:
        for (int i=0; i<n; i++)
        {
            cout << "\nВведите имя исполнителя: ";
            getline (cin, songs[i].artist);     // используем функцию getline для чтения строк с пробелами
            cin.clear();    // очищаем поток от лишних символов новой строки, попадающих в поток с нажатием
                            // пользователем клавиши Enter
            cout << "Введите название диска: ";
            getline (cin, songs[i].name);
            cin.clear();
 
            cout << "Введите жанр: ";
            getline (cin, songs[i].genre);
            cin.clear();
 
            cout << "Введите год издания: ";
            cin >> songs[i].year;
            cin.clear();
 
            cout << "Введите цену диска: ";
            cin >>  songs[i].price;
            cin.ignore();
        }
 
        for (int i=0;i<n;i++)
        {   // выводим введённые пользователем данные на экран
            cout << endl;
            cout << songs[i].artist << endl;
            cout << songs[i].name   << endl;
            cout << songs[i].genre  << endl;
            cout << songs[i].year   << endl;
            cout << songs[i].price  << endl;
            cout << endl;
        }
    }
 
//=========== Запись данных введённых пользователем в файл music.txt =============
    char userAnswer;
    cout << "\nЖелаете сохранить введённые Вами данные в текстовый файл? (да/нет): ";
    cin >> userAnswer;
    if (userAnswer == 'д' || userAnswer == 'Д' || userAnswer == 'y' || userAnswer == 'Y')
    {
        cout << "\nВведённые Вами данные будут сохранены в файл music.txt.\n";
        ofstream fout;              // создание объекта fout типа ofstream
        fout.open("music.txt");     // ассоциирование объекта c файлом music.txt
 
        // используем созданный нами объект fout по аналогии с объектом cout
        for (int i=0;i<n;i++)
        {   // записываем введённые пользователем данные на в файл music.txt
            fout << songs[i].artist << endl;
            fout << songs[i].name   << endl;
            fout << songs[i].genre  << endl;
            fout << songs[i].year   << endl;
            fout << songs[i].price  << endl;
        }
        fout.close ();  // закрытие соединения вывода с файлом
    }
//--------- Специальный блок для красоты ---------
 
// С небольшой задержкой будут выведены 20 точек
// одна за другой, как будто программа думает:
 
    cout << endl;
    for (int counter = 1; counter < 20; counter++)
    {
    Sleep(600);
    cout << ".";
    }
    cout << endl;
//------------------------------------------------
 
    cout << "\nДанные были успешно сохранены.\n";
 
//===============================================================================
 
//======= Чтение данных введённых пользователем из файла music.txt на экран =======
    cout << "\nЖелаете вывести введённые Вами данные из текстового файла? (да/нет): ";
    cin >> userAnswer;
    if (userAnswer == 'д' || userAnswer == 'Д' || userAnswer == 'y' || userAnswer == 'Y')
    {
        cout << "\nВы сохранили следующие данные в файле music.txt:\n";
        ifstream fin;              // создание объекта fin типа ifstream
        fin.open("music.txt");     // ассоциирование создание объекта fin c файлом music.txt
 
        // используем созданный нами объект fin по аналогии с объектом cin
        for (int i=0; i<n; i++)
        {
            cout << "------------------------------" << endl;
            getline (fin, songs[i].artist);     // используем функцию getline для чтения строк с пробелами
            cout << songs[i].artist << endl << endl;
            fin.clear();
 
            getline (fin, songs[i].name);
            cout << songs[i].name << endl << endl;
            fin.clear();
 
            getline (fin, songs[i].genre);
            cout << songs[i].genre << endl << endl;
            fin.clear();
 
            fin >> songs[i].year;
            cout << songs[i].year << endl << endl;
            fin.clear();
 
            fin >>  songs[i].price;
            cout << songs[i].price << endl << endl;
            fin.ignore();
        }
        fin.close ();   // закрытие соединения ввода с файлом
    }
//===============================================================================
 
    system("pause");    // для ожидания реакции пользователя
 
    return 0;   // успешное завершение программы
}


Осталось 4-й и 5-й пункт задачи реализовать.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru