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

Сортировка структур по названию книги - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В заданной строке определить наибольшее количество одинаковых символов, идущих подряд http://www.cyberforum.ru/cpp-beginners/thread879237.html
Ввести несколько строк. В заданной строке определить наибольшее количество одинаковых символов, идущих подряд. Вот программа, но мне нужно ввести массив и вывести символ который повторяется. Помогите пожалуйста #include <stdio.h> #include <string.h> int main() { char str, ch; int max, last, pos1, pos2, i, j; int m; printf("Vvedite stroku: "); gets(str);
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить: Помогите пожалуйста написать программу на С++,очень надо((. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. максимальный по модулю элемент массива; 2. сумму элементов массива, расположенных между первым и вторым положительными элементами Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных http://www.cyberforum.ru/cpp-beginners/thread879228.html
1. Написати програму, що вводить рядок і виводить її, скорочуючи щораз на 1 символ доти, поки в рядку не залишиться 1 символ C++
1. Написати програму, що вводить рядок і виводить її, скорочуючи щораз на 1 символ доти, поки в рядку не залишиться 1 символ.
Перевод календарных дат различных форматов в текст C++
Дали такую тему курсача. Написал пока только перевод самого месяца,но только в одном формате... помогите пожалуйста написать перевод числа и года /* sscanf example */ #include <stdio.h> int main () { char sentence ="Rudolph is 12 years old"; char str ; int i;
C++ Поиск последовательности символов и ее замена на другую http://www.cyberforum.ru/cpp-beginners/thread879210.html
Дана строка. Найти последовательность символов, например "!!" и заменить ее на "??" Прошу помощи!
C++ Сортировка матрицы Помогите, люди добрые! нужно отсортировать матрицу вот так: http://s017.***********/i406/1305/48/c1dc8b04b080.jpg есть набросок, нужно немного изменить. #include <iostream> #include <algorithm> #include <vector> using namespace std; подробнее

Показать сообщение отдельно
Megadrummer
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 20

Сортировка структур по названию книги - C++

26.05.2013, 15:15. Просмотров 440. Ответов 6
Метки (Все метки)

Помогите пожалуйста. Идея такая: с помощью функции void write_to_file() записать параметры книги в файл. С помощью функции sortirovka_name() нужно прочесть информацию о книге с файла и сортировать все структуры по названию книги. Это делается аналогично, как и с фамилиями только всё равно у меня не выходит помогите найти ошибку. Программа компилируется, но при вызове функции sortirovka_name() консоль закрывается.
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
#include "iostream"
#include "fstream"
#include "string"
#include "cstdlib"
#include "iomanip"
using namespace std;
 
const int costmin=50;
struct book {
            char FIO[30]; // фамилия афтора
            char name[30]; // название книги
            int data; // год публикации
            int page; // кол-во страниц
            int price; // цена книги
            };
 
void write_to_file()
{
     int a;
     struct book *shelf;
     int N;
     ofstream f;
     f.open("Library.txt", ios::binary | ios::app | ios::out); 
     cout<<"Enter amount of book"<<endl;
     cin>>N;
     shelf=new book [N*sizeof(shelf)];
 
     for (int i=0;i<N;i++){
                           cout<<endl<<"Enter Name of Writer"<<endl;
                                   cin>>shelf[i].FIO;
                                   cout<<endl<<"Enter Name of book"<<endl;
                                   cin>>shelf[i].name;
                                   cout<<endl<<"Enter the year of publication"<<endl;
                           cin>>shelf[i].data;
                                   cout<<endl<<"Amount of page"<<endl;
                                   cin>>shelf[i].page;
                                   shelf[i].price=costmin+shelf[i].page;
                                   f.write((char*)&shelf[i], sizeof(shelf[i]));
                                   }
     delete[] shelf;
     f.close();
}
 
 
void sortirovka_yaer()
{
     ifstream ff;
     ff.open("Library.txt",ios::binary);
     int N;
     struct book s[N];
     struct book p;
     while( ff.read((char*)&s, sizeof(s))){
                                           N++;
                                           }
     for(int i=0;i<N-1;i++)
     for(int j=i+1;j<N;j++)
     if(strcmp(s[i].name,s[j].name)>0){
                                       p=s[i];
                                       s[i]=s[j];
                                       s[j]=p;
                                       }
    
     ff.close();
}
 
void menu()
{   
     cout<<"1 - Write to file "<<endl;
     cout<<"1- Sort"<<endl;
int main()
{
    menu();
    char ch;
 
    do {
       cout<<"\n  Press  1,2 and q to quit: "<<endl;
       cin>>ch;
       cout<<"\n";
       switch(ch) {
                  case '1':{write_to_file(); menu(); break;};
        
                  case '2':{sortirovka_yaer(); menu(); break;}
        
                  default: cout<<"enter number from 1 to 5.\n";
                  }
       } while(ch != 'q');
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru