Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
#1

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

30.06.2014, 16:25. Просмотров 1754. Ответов 43
Метки нет (Все метки)

 Комментарий модератора 
Язык форума - русский. Переведите!

 Комментарий модератора 
Vitaliy1212, при повторном нарушении пункта правил 1.4. тема будет закрыта

Задача.Описати структуру MUSIC,яка містить інформацію про музичні
диски які продаються в магазині:
-назва альбому,
-виконавець,
-рік створення альбому,
-жанр,
-ціна диска
Написати програму що виконує наступні дії:
1. введення з клавіатури даних в масив, що складається з шести елементів типу MUSIC;
2. виведення даних на екран з масиву структур;
3. запис масиву структур в текстовий файл та зчитування даних з файлу в масив структур;
4. впорядкування записів по року створенняальбому;
5. організувати пошук дисків по жанру виконання:у користувача запрошується жанр і виводяться
усі диски,відповідні умові(Порівняння проводити за допомогою функціі порівняння рядків)[/CODE]
Значит структуру я описал и 1 и 2 пункт решил вот мой код
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
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <string.h>
#include <fstream>
#include <stdlib.h>
const int L_N=30,L_I=30,L_Y=15,L_G=15,L_C=10;//Обьявление длинны строк.
struct MUSIC//Описывание структуры.
{
    char nazva[L_N+1];//Название альбома
    char ispolnitel[L_I+1];//Исполнитель.
    double year;//Год издания.
    char ghanr[L_G+1];//Жанр.
    double cena;//Цена диска.
};
MUSIC songs[5];
void main()
{
    
    using namespace std;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n=2;
    for (int i=0;i<n;i++)
    {
        cout<<"Введите название альбома:";
        cin.ignore();
        cin.getline(songs[i].nazva,L_N);
        cout<<"Введите исполнителя:";
        cin>>songs[i].ispolnitel;
        cout<<"Введите год издания альбома:";
        cin>>songs[i].year;
        cout<<"Введите жанр альбома:";
        cin>>songs[i].ghanr;
        cout<<"Введите цену диска:";
        cin>>songs[i].cena;
        cout<<"============================"<<'\n';
        
    }
    
 
    system("pause");
 
}
Прошу помогите с 3,4,5 пунктом(желательно не отрывками а вставить в мой код ваше и прокоментировать)
Заранее всем огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 16:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать структуру Music (C++):

Как реализовать структуру - C++
Доброго времени суток. Никак не могу скомпиллировать эту структуру. struct tree{ char inf; list&lt;tree*&gt; lt;}; Выдает вот эти ошибки ...

Реализовать структуру Student - C++
HELP GUYS :help: Следующие задания требуется решить с использованием классов.При этом обязательно оформить методы для выполнения...

Как лучше реализовать структуру класса? - C++
Есть задача создать класс авто-архив. Класс реализовал со структурой внутри класса. Создал указатель на структуру с полями, марка, модель,...

Реализовать структуру данных «сбалансированное дерево поиска» - C++
Добрый вечер. Дали задание, не до конца ясна реализация, не могли бы подбросить пару шаблонов, или готовых решений, чтобы посмотреть на...

Описать структуру с именем airport. Реализовать сортировку записей - C++
Всем привет. Собственно описал структуру, данные в массив тоже сделал. А попросить хотел вас, помочь с написание алгоритма для вывода в...

Реализовать структуру данных стек, содержащую следующие методы: - C++
Реализовать структуру данных стек, содержащую следующие методы: добавить элемент в стек, удалить элемент из стека, получить значение с...

43
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
30.06.2014, 16:45 #2
Сходу, навскидку:
1) Что за каша из украинского, русского и английского? Так трудно было на русский перевести задачу? Так трудно было все имена в программе сделать на английском?
2) С какого перепугу функция main типа void? Стандарт C++ уже не указ что ли?
3) Зачем использовать вперемежку строки в стиле C++ и строки в стиле C?
4) Зачем переменная year типа double?
0
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 16:52  [ТС] #3
gru74ik, так помоги мне, я просто почти ничего не шарю (
0
Kuzia-22
10 / 9 / 2
Регистрация: 21.11.2013
Сообщений: 50
30.06.2014, 16:53 #4
Запись в файл:

На Borland C начиная с 3.1:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
#include <...>
...
FILE *fp;
main(){
fp=fopen("file.txt","w");
...
fprintf (fp1,"%s\t%d\n",songs[i].ispolnitel,songs[i].year);
fclose (fp1);

На MS VC
Кликните здесь для просмотра всего текста

C++
1
2
3
ofstream out("file.txt",ios::binary);
out.write(songs,sizeof(MUSIC)*n);
out(close);
0
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 16:56  [ТС] #5
Вот перевел если так проще но только помоги мне
Код
Задача.Описаты структуру MUSIC, которая содержит информацию о музыкальных 
диски которые продаются в магазине: 
-название альбома, 
-исполнитель, 
-год создания альбома, 
-жанр, 
-цена диска 
Написать программу которая выполняет следующие действия: 
1. Ввод с клавиатуры данных в массив, состоящий из шести элементов типа MUSIC; 
2. Вывода данных на экран из массива структур; 
3. Запись массива структур в текстовый файл и считывания данных из файла в массив структур; 
4. Порядок записей по году создания альбома; 
5. Организовать поиск дисков по жанру выполнения: у пользователя запрашивается жанр и выводятся 
все диски, соответствующие условию (Сравнение проводить с помощью функции сравнения строк)
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
30.06.2014, 16:59 #6
Для начала. Переводим задачу на русский язык.
Кликните здесь для просмотра всего текста

Задача.Описать структуру MUSIC, которая содержит информацию о музыкальных
дисках, которые продаются в магазине:
  • название альбома;
  • исполнитель;
  • год создания альбома;
  • жанр;
  • цена диска;

Написать программу которая выполняет следующие действия:
  1. Ввод с клавиатуры данных в массив, состоящий из шести элементов типа MUSIC;
  2. Вывода данных на экран из массива структур;
  3. Запись массива структур в текстовый файл и считывания данных из файла в массив структур;
  4. Порядок записей по году создания альбома;
  5. Организовать поиск дисков по жанру выполнения: у пользователя запрашивается жанр и выводятся все диски, соответствующие условию (сравнение проводить с помощью функции сравнения строк);
0
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 17:01  [ТС] #7
Kuzia-22, а можешь показать куда вставлять это
C++
1
2
3
ofstream out("file.txt",ios::binary);
out.write(songs,sizeof(MUSIC)*n);
out(close);
и это
C++
1
2
3
ifstream input("data.txt",ios::binary);
input.read(songs,sizeof(MUSIC)*n);
input(close);
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
30.06.2014, 17:01 #8
Vitaliy1212, ты какой средой разработки пользуешься?
1
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 17:19  [ТС] #9
gru74ik, Visual C++ 2010 Express

Добавлено через 17 минут
gru74ik, так ты поможешь мне ?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
30.06.2014, 17:36 #10
Цитата Сообщение от Vitaliy1212 Посмотреть сообщение
gru74ik, так ты поможешь мне ?
Я такой же новичок, как и ты. Сижу, гуглю. Ты тоже поиск поюзай. Если я вперёд тебя найду что-то подходящее, маякну.
0
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 21:49  [ТС] #11
gru74ik, Ок спасибо а ты не знаешь случайно куда вставить вот это
запись массива в файл и чтение

C++
1
2
3
ofstream out("file.txt",ios::binary);
out.write(songs,sizeof(MUSIC)*n);
out(close);
C++
1
2
3
ifstream input("data.txt",ios::binary);
input.read(songs,sizeof(MUSIC)*n);
input(close);
Добавлено через 3 часа 57 минут
gru74ik, Ну чё ничего не нашел ?

Добавлено через 11 минут
zss, Сергей пожалуйста вставте эти строки
Кликните здесь для просмотра всего текста
C++
1
2
3
ofstream out("file.txt",ios::binary);
out.write(songs,sizeof(MUSIC)*n);
out(close);

и это
Кликните здесь для просмотра всего текста
C++
1
2
3
ifstream input("data.txt",ios::binary);
input.read(songs,sizeof(MUSIC)*n);
input(close);
в мой код:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <string.h>
#include <fstream>
#include <stdlib.h>
const int L_N=30,L_I=30,L_Y=15,L_G=15,L_C=10;//Обьявление длинны строк.
struct MUSIC//Описывание структуры.
{
    char nazva[L_N+1];//Название альбома
    char ispolnitel[L_I+1];//Исполнитель.
    int year;//Год издания.
    char ghanr[L_G+1];//Жанр.
    double cena;//Цена диска.
};
MUSIC songs[5];
int main()
{
    
    using namespace std;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n=2;
    for (int i=0;i<n;i++)
    {
        cout<<"Введите название альбома:";
        cin.ignore();
        cin.getline(songs[i].nazva,L_N);
        cout<<"Введите исполнителя:";
        cin>>songs[i].ispolnitel;
        cout<<"Введите год издания альбома:";
        cin>>songs[i].year;
        cout<<"Введите жанр альбома:";
        cin>>songs[i].ghanr;
        cout<<"Введите цену диска:";
        cin>>songs[i].cena;
        cout<<"============================"<<'\n';
        
    }
    ofstream out("file.txt",ios::binary);
    out.write(songs,sizeof(MUSIC)*n);
    out(close);
 
 
    system("pause");
    return 0;
 
}
0
zss
Модератор
Эксперт С++
6530 / 6092 / 2007
Регистрация: 18.12.2011
Сообщений: 15,844
Завершенные тесты: 1
30.06.2014, 21:57 #12
Запись у Вас уже вставлена (строки 40-42).
После них можно вставить чтение, а потом код,
выводящий массив на экран.

Только почему у Вас названия файлов (file.txt и data.txt) разные?
0
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 22:16  [ТС] #13
Цитата Сообщение от zss Посмотреть сообщение
Запись у Вас уже вставлена (строки 40-42).
так когда запись вот вставлена пробовал запустить а оно мне пишет
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\user\documents\visual studio 2010\projects\йцу\йцу\кен.cpp(42): error C2065: close: необъявленный идентификатор
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Цитата Сообщение от zss Посмотреть сообщение
После них можно вставить чтение, а потом код,
выводящий массив на экран.
не могли бы вы вставить просто я только учусь и почти нифига не понимаю(((

Цитата Сообщение от zss Посмотреть сообщение
Только почему у Вас названия файлов (file.txt и data.txt) разные?
не догледел не то скопировал
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
30.06.2014, 23:20 #14
Так, ну вот пока то же, что и ты написал (1-й и 2-й пункт задачи), только в более приемлемом виде:
Кликните здесь для просмотра всего текста

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
/*
Задача.Описать структуру 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;
        }
    }
 
    system("pause");    // для ожидания реакции пользователя
 
    return 0;   // успешное завершение программы
}
1
Vitaliy1212
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 15
30.06.2014, 23:29  [ТС] #15
gru74ik, Да это читается получше , кстати немного начинаю разбираться с записью в файл щас буду експерементировать
0
30.06.2014, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 23:29
Привет! Вот еще темы с ответами:

Реализовать ввод данных в структуру и поиск информации в ней - C++
1. Описать класс ORDER, реализующий однонаправленный линейный список для работы со следующими данными: • фамилия налогоплательщика; ...

Бинарное древо (реализовать структуру и обход веток с выводом на экран) - C++ - C++
Есть код: обход бинарного дерева 3 разными способа с авто заполнением чисел #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include...

Реализовать структуру для хранения массива произвольного типа с помощью шаблонов - C++
Помогите пожалуйста, как реализовать структуру?? Сегодня вам нужно реализовать структуру для хранения массива произвольного типа с ...

Реализовать структуру Student (не работает вывод на консоль - найти и исправить ошибки в коде) - C++
Описать структуру с именем STUDENT, содержащую следующие поля:-фамилия и инициалы;-номер группы;-успеваемость (массив из пяти...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru