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

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

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

Массив строк - список книг определенного автора - C++

13.04.2012, 20:37. Просмотров 591. Ответов 7
Метки нет (Все метки)

Подскажите как делать. Если есть дайте ссылку на подобные задачи.

Массив строк.
Каждая строка содержит:
-шифр книги
-ФИО автора
-год издания
-год количество страниц
Определить список книг определенного автора, изданных в определенном месте и не ранее указанного года.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2012, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив строк - список книг определенного автора (C++):

Бинарные файлы. Вывести названия книг определенного автора, изданных до 2000 года. Определить долю книг - C++
помогите пожалуйста: В файле хранятся сведения о личной библиотеке: фамилия автора, название, издательство, год издания, тематика книги....

Дан файл , содержащий сведения о книгах. Сведения о каждой из книг – это фамилия автора, название и год издания. а) Найти названия книг данного автор - C++
Здравствуйте,я тот несчастный студент,который учился в школе где не было программирования.Поэтому нуждаюсь в вашей помощи.Теорию удалось...

Cтруктуры, поиск книг заданного автора - C++
Добрый вечер. Была поставлена задача следующим образом: "Для книг, хранящихся в библиотеке, задаются: -автор; -название; ...

Найти названия книг заданного пользователем автора - C++
Пожалуйста помогите написать программу на С++ в четверг нужно сдать, а тему не проходили эту и я не могу сделать вот задание. Дан...

Вывести колво книг каждого автора и отсортировать по авторам - C++
фамилия автора, название, издательство, год. Вывести колво книг каждого автора и отсортировать по авторам, вывести список

Найти названия книг заданного автора, которые были изданы начиная с 1960 г - C++
Есть информационный массив f, в котором находятся данные о книгах(ФИО автора, название и год издания). а) найти названия книг заданного...

7
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
13.04.2012, 21:02 #2
это все нужно разделять каким-то символом, например |, тогда строка будет выглядеть примерно следующим образом:
1|Пушкин А.С.|1982|100
Затем через strtok разделить и дальше по заданию)
0
Soup_990
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 34
13.04.2012, 21:31  [ТС] #3
Цитата Сообщение от ZoRT Посмотреть сообщение
это все нужно разделять каким-то символом, например |, тогда строка будет выглядеть примерно следующим образом:
1|Пушкин А.С.|1982|100
Затем через strtok разделить и дальше по заданию)
Лексемы на которые разобьем строку нужно будет сравнивать по символьно, или можно как-то их целиком сравнивать?
0
GHOST12
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 87
16.04.2012, 11:43 #4
Помогите сделать, ни чего не получается.

Добавлено через 48 минут
У меня задача почти такая же
Каждая строка содержит:
-ФИО работника
-Профессию
-Время работы
По запросу определить количество работников данной профессии работающих дольше заданного времени.
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.04.2012, 12:30 #5
Цитата Сообщение от GHOST12 Посмотреть сообщение
Помогите сделать, ни чего не получается.
выкладывайте что смогли сделать, допишем. Если не разбираетесь то совет открыть книжку и разобраться
0
GHOST12
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 87
16.04.2012, 19:13 #6
Цитата Сообщение от panicwassano Посмотреть сообщение
выкладывайте что смогли сделать, допишем. Если не разбираетесь то совет открыть книжку и разобраться
Может кто может дать код подобной задачи?
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
16.04.2012, 20:05 #7
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
#include <iostream>
#include <string.h>
#define QUAN 3
using namespace std;
 
      main()
      {
              char string[QUAN][100]   =
              {
                    "I.V.Ivanov,   sportsman, 6 hours",
                    " P.A.Sidorov, writer,   4 hours ",
                    "A.S.Petrov,   student,   0 hours"
             };
 
      char cmp[50];
      int fl = 0,quan = 0;
 
      cout << "\nEnter a timework :  ";
      cin.getline(cmp,50);
 
        for(int i = 0; i< QUAN; i++)
        {
           if(strstr(string[i], cmp))
           {
            cout << " Found at :   " << string[i] << "\n";
            quan ++;
            fl++;
            }
        }
 
     if(!fl) cout << " Not found .\n";
 
      cout << " Quantity  " << quan << endl;
     system("pause");
}
1
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
16.04.2012, 21:55 #8
Создайте файл books.txt и заполните его данными в формате 1|Пушкин А.С.|1982|100.
Скомпилируйте код ниже, и проверьте работает ли он. Пишите.

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
    static char author[256] = "\0";
    static char city[256] = "\0";
    static char year[256] = "\0";
    printf("Vvedite avtora knig: "); gets(author);
    printf("Vvedite gorod: ");       gets(city);
    printf("Vvedite god izdania: "); gets(year);
 
    FILE* fp = NULL; 
    static char* filename = "d:\\books.txt";
    if ((fp = fopen(filename,"r")) == NULL)
        printf("Unable to open file %s\n",filename);
 
    static char psz[256] = "\0";
    while (fgets(psz,256,fp) != NULL)
    {
        char** ppsz = new char*[4];
        for (int i = 0, count = 0; (psz[i] != '\0') 
            && (i < strlen(psz)); i++)
            if (psz[i] == '|')
            {
                int k = i+1, n = 0;
                static char attr[256] = "\0";
                while ((psz[k] != '|') && (k < strlen(psz))) 
                    attr[n++] = psz[k++];
 
                attr[n] = '\0';
 
                ppsz[count] = new char[256];
                strcpy(ppsz[count++],attr);
            }
 
        if (!strcmp(ppsz[0],author) && !strcmp(ppsz[1],city) &&
            atoi(ppsz[2]) >= atoi(year)) printf("%s\n",psz);
    }
 
    fclose(fp);
1
16.04.2012, 21:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 21:55
Привет! Вот еще темы с ответами:

Найти названия книг заданного автора и вывести их на экран в порядке убывания года издания - C++
Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания книги. Найти названия книг заданного автора и...

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

Подсобите отсортировать список книг - C++
В инвентарной книге библиотеки для каждой книги указаны данные: инвентарный номер (7 цифр), автор, название, год издания, место издания...

Полный список книг по программированию - C++
Где найти полный список литературы по программированию?


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

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

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