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

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

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

Найти названия книг заданного пользователем автора - C++

21.06.2011, 20:53. Просмотров 579. Ответов 6
Метки нет (Все метки)

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

Дан файл, содержащий следующие сведения о книгах: фамилия автора, название, год издания.
а) Найти названия книг заданного пользователем автора, изданных с указанного пользователем года или сообщить, что таких книг нет.
б) Определить, имеется ли книга с заданным пользователем названием. Если да, то сообщить фамилию автора и год издания. Если таких книг несколько, то сообщить имеющиеся сведения обо всех этих книгах.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 20:53     Найти названия книг заданного пользователем автора
Посмотрите здесь:

C++ Найти названия книг заданного автора, которые были изданы начиная с 1960 г
C++ Удалить книги заданного автора
C++ Вывести список книг, изданных после заданного года
Массив строк - список книг определенного автора C++
C++ Бинарные файлы. Вывести названия книг определенного автора, изданных до 2000 года. Определить долю книг
Дан файл , содержащий сведения о книгах. Сведения о каждой из книг – это фамилия автора, название и год издания. а) Найти названия книг данного автор C++
C++ Вывести колво книг каждого автора и отсортировать по авторам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
21.06.2011, 21:06     Найти названия книг заданного пользователем автора #2
А какой компилятор?
Oleg_17
1 / 1 / 0
Регистрация: 21.06.2011
Сообщений: 15
21.06.2011, 21:33  [ТС]     Найти названия книг заданного пользователем автора #3
кампилятор - Microsoft
iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
21.06.2011, 21:39     Найти названия книг заданного пользователем автора #4
Microsoft - не компилятор
Oleg_17
1 / 1 / 0
Регистрация: 21.06.2011
Сообщений: 15
21.06.2011, 22:10  [ТС]     Найти названия книг заданного пользователем автора #5
Ой извеняюсь не то написал компилятор - vizhoal studio

Добавлено через 25 минут
Нет я просто в програмировании полный чайник некак не могу понять но из-за этого мне здачу програмы некто не отменит я спросил у человека он ответил что в vizhoal studio использовается кампилятор и посоветовал его
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
21.06.2011, 22:13     Найти названия книг заданного пользователем автора #6
Oleg_17, правильно писать Visual studio
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2011, 22:13     Найти названия книг заданного пользователем автора
Еще ссылки по теме:

C++ Найти названия книг заданного автора и вывести их на экран в порядке убывания года издания
C++ Из структуры, содержащей название книги, автора, год издания, удалить издания с годом меньше заданного.
В файле найти сведения о книгах данного автора изданных начиная с заданного года C++
Cтруктуры, поиск книг заданного автора C++
C++ Вывести список книг, изданных после заданного года

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

Или воспользуйтесь поиском по форуму:
xAtom
913 / 738 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.06.2011, 22:13     Найти названия книг заданного пользователем автора #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Посмотри на это, Oleg_17

Формат файла:

Аравинд,Белый тигр,2009
Дженет,На свете есть не только апельсин,2003
Дженет,Страсть,2003
Леопольдо,Счастливые беглецы,2004
Леопольдо,Кларин дэ новела,2004
Леопольдо,Конекс Диплома аль Мерито,2004
Анджей,Фабрика мухоловок,2010


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
#include <locale.h>
#include <list>
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
 
 
 
typedef struct book {
    char  author[18];
    char  name[32];
    int      year;
} *pbook;
 
 
 
bool   is_author(const char* str, const char* _author, int _num, int _year = 0) {
    if(! stricmp(str, _author) && ! _year && ! _num ||
       ! stricmp(str, _author) && _year == _num)
            return true;
    return  false;
}
 
 
void  main(void){
 
    setlocale(LC_ALL, "Russia"); 
 
 
    fstream file;
    file.open("X:\\book.txt", ios_base::in); 
 
    list<book>  list_book;
 
     // считывание с файла
    while(!  file.eof() ) {
        char buf[1024];
        file.getline(buf, sizeof(buf), '\n');
        if(strlen(buf) > 10) {
            book  b;
            memset(&b, 0, sizeof(book));
            char* tok = strtok(buf, ",");
            strcpy(b.author, tok);
            tok = strtok(NULL, ",");
            strcpy(b.name, tok);
            tok = strtok(NULL, ",");
            b.year = atoi(tok);
            list_book.push_back(b);
        }
    }
    file.close();
    file.clear();
 
 
    // поиск по автору и году выпуска, можно просто по-автору укажите в параметрах числа=0
    char* author = "Леопольдо";
    int  year        = 2004;
    short isb = 0;
    for( list<book>::iterator  iter = list_book.begin(); iter != list_book.end(); ++iter) {
        pbook p=  &(*iter);
        if(is_author(p->author, author, p->year, year)) {
            cout << "Название книги: " << p->name  << endl;
            isb = 1;
        }
    }
    if(! isb)
        cout << "Такого автора нет !!!" << endl;
 
     cout.put('\n');
 
           // поиск по-названию книги
    char*  name_book       = "Страсть";
    isb = 0;
    while(! list_book.empty()  ) {
        pbook  p = &list_book.front();
        if(! stricmp(p->name, name_book))  {
            cout << "Автор: " << p->author << ", год издания -" << p->year << endl;
            isb = 0;
        }
        list_book.pop_front();
    }
    if(! isb)
        cout << "Таких книг нет !!!" << endl;
 
 
 
      cin.get();
}
:cofee2:
Yandex
Объявления
21.06.2011, 22:13     Найти названия книг заданного пользователем автора
Ответ Создать тему
Опции темы

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