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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Последовательность действительных чисел. http://www.cyberforum.ru/cpp-beginners/thread323978.html
Дана последовательносдействительныхть чисел а1,а2,а3...аn. Выяснить, будет ли она возрастающей. Помогите пожалуйста решить)
C++ Перевод из 2сс в 10сс Помогите пожалуйста написать программу! Перевод дробной части 2го числа в дробное десятичное! Входное 2ое число константа задается как массив символов, выходное 10ое число типа float, т.е. входное 0,101 выходное 0,625. !Не использовать библиотечные функции http://www.cyberforum.ru/cpp-beginners/thread323975.html
C++ Всё же может кто напишет блок схему?
Удалить из s1, ... , sn все слова с нечетными порядковыми номерами и перевернуть все слова с четными номерами. Например, если n=21 и данная последовательность символов представляет собой последовательность во_что_бы_то_ни_стало, то должна получиться последовательность отч_от_олатс. #include <stdio.h> #include <string.h> #include <conio.h> int main ( ) { int i=0; //объявление...
Написать программу нахождения наибольшего и наименьшего значения функции C++
Написать программу нахождения наибольшего и наименьшего значения функции y=3x*x+x-4 на интервале c шагом 0.1!!! очень нужно пожалуйста помогите программисты!!! ЯЗЫК C++ Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое.
C++ Решение в VC++ http://www.cyberforum.ru/cpp-beginners/thread323957.html
Для каждой введенной цифры (0 - 9) вывести соответствующее ей название на английском языке (0 - zero, 1 - one, 2 - two,... ). Решить задачу в VC++.
C++ В файл вывести седловые точки матрицы Доброго времени суток. В input.txt лежат n(количество строк),m(количество столбцов) и элементы матрицы. В output.txt нужно вывести количество седловых точек. Седловой точкой этой матрицы назовем элемент, который одновременно является минимумом в своей строке и максимумом в своем столбце. Полное условие тут У меня получилось что-то такое #include <fstream> int w,i,j,n,m,d,k,x,r; main(){ ... подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.06.2011, 22:13     Найти названия книг заданного пользователем автора
Посмотри на это, 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:
 
Текущее время: 08:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru