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

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

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

файл, структура, бинарное дерево - C++

24.05.2009, 16:08. Просмотров 739. Ответов 1
Метки нет (Все метки)

--------------------------------------------------------------------------------

Доброго времени суток!!! Помогите решить задачку, у самой не получается=((

Написать программу, которая содержит динамическую информацию о нарушении правил дорожного движения. (на один автомобиль база может содержать записи о нескольких нарушениях). Сведения о каждом автомобиле включает в себя:
-номер автомобиля (3-х значный);
-фамилию владельца;
-список нарушений;
-размер штрафа за каждое нарушение из списка.
Программа должна обеспечивать:
1. начальное формирование из файла базы данных об автомобилях в виде бинарного дерева, по номеру автомобиля.
2. при уплате всех штрафов (сумма и номер автомобиля вводиться с консоли пользователем) автомобиль удаляется из базы нарушителей.
3. по запросу в файл выводятся сведения о нарушителях.

Заранее огромное спасибо!!!

Задача в С++, изначально данные находятся в файле .txt
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2009, 16:08     файл, структура, бинарное дерево
Посмотрите здесь:

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

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

бинарное дерево?Файл? - C++
объясните пожалуйста что означает слово бинарное?

Бинарное дерево в типизированный файл - C++
Задача над которой бьюсь уже третий день. 1. Сделать базу данных клиентов банка на основе бинарного дерева дерева Сделать...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево - C++
Столкнулся с уникальной проблемой от которой волосы дыбом встают. Вот код, достаточно первой итерации цикла, я ввожу данные а потом...

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

Бинарное дерево - C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к...

Бинарное дерево - C++
Только начал изучать тему "деревья". Подскажите в чем ошибка)#include <iostream> using namespace std; struct Node{ int...

Бинарное дерево - C++
Как организовать вывод бинарного дерева?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
24.05.2009, 17:12     файл, структура, бинарное дерево #2
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <string>
#include <vector>
#include <map>
#include <iostream>
#include <algorithm>
#include <functional>
#include <numeric>
 
#include <boost/lambda/lambda.hpp>
namespace lm = boost::lambda;
 
struct traffic_violation
{
    std::string name;   // Имя нарушения
    int penalty_;       // Размер штрафа
};
 
struct avto
{
    int number_;        // Номер автомобиля
    std::string ownerName_; // Имя владельца
    std::vector<traffic_violation> violations_; // Список нарушений
};
 
typedef std::map<int, avto> avto_db;
 
// Чтение базы нарушителей из файла
void read_db(avto_db& db)
{
    std::cerr << "Чтение базы из файла недоступно в демонстрационной версии программы." << std::endl;
    db.clear();
}
 
// Запись базы нарушителей в файл
void save_db(avto_db& db)
{
    std::cerr << "Запись базы в файл недоступна в демонстрационной версии программы." << std::endl;
    db.clear();
}
 
// Поиск и удаление нарушителей
void paid_penalty(avto_db& db, const std::string& name, int money)
{
    avto_db::iterator found =  std::find_if(db.begin(), db.end(), 
            &(&lm::_1 ->* &avto_db::value_type::second) ->* &avto::ownerName_ == name);
 
    if (found == db.end())
    {
        std::cout << "У " << name << " нет нарушений, насяльника!" << std::endl;
        return;
    }
 
    int penalty = std::accumulate(
        found->second.violations_.begin(), found->second.violations_.end(), 0,
        lm::_1 + &lm::_2 ->* &traffic_violation::penalty_
        );
    if (money < penalty)
    {
        std::cout << "Маловато денег, насяльника!" << std::endl;
        return;
    }
    else
        if (money > penalty)
        {
            std::cout << "Многовато денег, насяльника! Ты мне чё, взятку предлагаешь?" << std::endl;
            return;
        }
    
    std::cout << "Смотри у меня, больше не нарушай!" << std::endl;
    db.erase(found);
}
 
int main()
{       
    avto_db db;
 
    /*
    // testing ...
    avto av;
    av.number_ = 123;
    av.ownerName_ = "Вася";
    
    traffic_violation tv;
    tv.name = "Управление в нетрезвом виде";
    tv.penalty_ = 1000;
    av.violations_.push_back(tv);
    tv.name = "Выезд на пешеходный переход";
    tv.penalty_ = 1500;
    av.violations_.push_back(tv);
 
    avto_db db;
    db[123] = av;
    */
 
    read_db(db);
    
    std::string violator;
    int penalty;
    std::cin >> violator >> penalty;    // Вводим имя нарушителя и размер штрафа
    paid_penalty(db, violator, penalty);        // Поиск в базе
 
    save_db(db);
 
    return 0;
}
Используемые средства:
Visual Studio 2008
Boost C++ Library
Yandex
Объявления
24.05.2009, 17:12     файл, структура, бинарное дерево
Ответ Создать тему
Опции темы

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