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

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

Войти
Регистрация
Восстановить пароль
 
faust11
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 5
#1

Сформировать массив данных с помощью структуры. Отсортировать полученный список по полю «год издания» - C++

28.04.2013, 00:49. Просмотров 779. Ответов 1
Метки нет (Все метки)

Сформировать массив данных с помощью структуры. Предметная область –
список книг в библиотеке (номер по порядку, название, автор, год издания,
количество книг). Отсортировать полученный список по полю «год издания».
Вывод результатов оформить в виде таблицы.

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
#include<iostream.h>
#include<string.h>
 
int main()
{
struct strc
{
char reg[20];
char avt[30];
char nazv[60];
char god[10];
char izd[30];
char str[20];
char godsort [10];
}knig[200];
 
int m,i,j,k,p;
 
 
cout<<"Vvedite kol-vo knig"<<endl;
cin>>m;
 
 
for (i=0;i<m;i++)
{
cout<<"Vvedite registracionnii nomer: ";
cin>>knig[i].reg;
cout<<"Vvedite avtora: ";
cin>>knig[i].avt;
cout<<"Vvedite nazvanie: ";
cin>>knig[i].nazv;
cout<<"Vvedite god izdaniya: ";
cin>>knig[i].god;
cout<<"Vvedite izdatelstvo: ";
cin>>knig[i].izd;
cout<<"Vvedite kol-vo stranic: ";
cin>>knig[i].str;
cout<<endl;
 
}
 
strc stemp;
 
j=0;
p=1;
while(p<m)
{
k=strcmp(knig[j].avt,knig[p].avt);
if(k=1)
{
stemp=knig[p];
knig[p]=knig[j];
knig[j]=stemp;
j++;
p=j+1;
}
else
{
p++;
}
}
 
 
cout<<"Vvedite god poiska:";
cin>>knig[0].godsort;
cout<<endl;
 
for(i=0;i<m;i++)
{
 
 
if (strcmp(knig[i].god,knig[0].godsort)==1)
{
cout<<knig[i].reg<<" "<<knig[i].avt<<" "<<knig[i].nazv<<" "<<knig[i].god<<" "<<knig[i].izd<<" "<<knig[i].str<<endl;
}
}
 
return 0;
}
И ещё вот такой вопрос как мне Добавить
запись и чтение данных в/из файла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 00:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать массив данных с помощью структуры. Отсортировать полученный список по полю «год издания» (C++):

Из структуры, содержащей название книги, автора, год издания, удалить издания с годом меньше заданного. - C++
Задание: Структура содержит название книги, автора, год издания. Удалить издания с годом меньше заданного. Планирую сделать меню...

Структура содержит название книги, автора, год издания. Удалить издания с годом меньше заданного - C++
Структура содержит название книги, автора, год издания. Удалить издания с годом меньше заданного.

Отсортировать структуры по полю union - C++
Ребят, дали вот задание. Сделать структуру, у которой одна переменная объединенного типа (union). Потом отсортировать структуры по...

Составить программу формирования данных о книгах: автор, название, год издания, цена - C++
Задача: Книжный архив. Составить программу формирования данных о книгах: автор, название, год издания, цена. Организовать выбор книг,...

Как отсортировать список, по полю в структуре? - C++
есть список: #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;fstream&gt; using namespace std; struct Bus_Info { ...

Отсортировать список объектов по полю класса - C++
Добрый вечер, есть некая структура, храню в списке объекты этой структуры. Хочу упорядочить список относительно интересующего меня поля...

1
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
28.04.2013, 11:42 #2
faust11,

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
#include <iostream>
#include <string>
using namespace std;
 
struct strc{
 
    string reg;
    string avt;
    string nazv;
    string god;
    string izd;
    string str;
    string godsort;
 
};
 
void sort(strc *mas, const int size){
    for(int i = 0; i < size - 1; i++){
        for(int j = i + 1; j < size; j++){
            if(mas[i].izd > mas[j].izd){
                strc tmp = mas[i];
                mas[i] = mas[j];
                mas[j] = tmp;
            }
        }
    }
}
 
void input(strc *knig, const int size){
 
    for(int i = 0; i < size; i++)
    {
        cout<<"Vvedite registracionnii nomer: ";
            getline(cin, knig[i].reg, '\n');
        cout<<"Vvedite avtora: ";
            getline(cin, knig[i].avt, '\n');
        cout<<"Vvedite nazvanie: ";
            getline(cin, knig[i].nazv, '\n');
        cout<<"Vvedite god izdaniya: ";
            getline(cin, knig[i].god, '\n');
        cout<<"Vvedite izdatelstvo: ";
            getline(cin, knig[i].izd, '\n');
        cout<<"Vvedite kol-vo stranic: ";
            getline(cin, knig[i].str, '\n');
        cout<<endl;
    }
}
 
void output(strc *knig, const int size){
 
    for(int i = 0; i < size; i++)
    {
        cout<<knig[i].reg<<" "<<knig[i].avt<<" "<<knig[i].nazv<<" "<<
            knig[i].god<<" "<<knig[i].izd<<" "<<knig[i].str<<endl;
    }
}
int main()
{
    int size;
    cout << "Vvedite kol-vo knig" << endl;
        cin >> size; cin.ignore();
 
    strc *knig = new strc[size];
 
    input(knig, size);
    sort(knig, size);
    output(knig, size);
 
    cout << "\n\n";
    return 0;
}
а по поводу ввода/вывода то очень просто определяешь

C++
1
#include <fstream>
и далее в main

C++
1
2
ofstream fout("output.txt", ios::out);                                  //для записи
ifstream fout("input.txt", ios::in);                                  //для чтения
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 11:42
Привет! Вот еще темы с ответами:

Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; #include&lt;iomanip&gt; using namespace std; double const n=20; int vvod( double y, int n) { ...

Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив - C++
Кто может сделайте пожалуйста. Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный...

Динамические структуры данных. Сформировать динамический список, описать функцию, которая удаляет из списка за каждым вхождением элемента Е - C++
Сформировать динамический список (стек или очередь), считая, что длина списка (количество элементов) задана. Описать функцию, которая...

Отсортировать массив обектов по полю - C++
Описан дин. массив с объектами класса Car: Car * array; array= new Car(&quot;Acura&quot;, 2, 180); array= new Car(&quot;Dodge&quot;, 4, 220); array=...


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

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

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