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

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

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

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

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

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

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

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

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

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

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

Структура, по строкам построить бинарное дерево поиска - C++
помогите найти ошибку в этом коде. Этот код должен по строкам построить бинарное дерево поиска #include<iostream> #include<string> ...

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

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

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

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

1
Rififi
2359 / 1052 / 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
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2009, 17:12
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Необходимо построить бинарное дерево с методами inorder_tree_walk, tree_search, tree_minimum, tree_successor, tree_insert и tree_delete....

Бинарное дерево - C++
Здравствуйте, нужно помощь в написании программы. Условие: Каждая вершина бинарного дерева содержит: - 2 указателя (на каждый...

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

Бинарное дерево - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; int last; void add(double volue) { //double *arr = new...


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

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

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