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

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

Войти
Регистрация
Восстановить пароль
 
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465
#1

Ф-я добавления и удаления элемента - C++

07.05.2012, 20:32. Просмотров 348. Ответов 0
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста, у меня есть программа, все отлично работает, но мне нужно реализовать удаление и добавление элемента в оба списка, помогите пожалуйста, а то как-то не понятно, вот собственно код программы, в котором добавление элемента в самом низу кода:

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <string>
#include <fstream>
#include <iostream>
#include "conio.h"
 
using namespace std;
 
typedef struct BusInfo
{
    int nummarsh;
    char name[50];
    char from[50];
    char to[50];
    int price;
    int numofseats;
    
    BusInfo *next;
};
 
typedef struct PasInfo
{
    int nummarsh;
    string name;
    string from;
    string to;
    int price;
    int numofseats;
    
    PasInfo *next;
};
 
int main ()
{
    ifstream finp ("pass.txt"), fina ("auto.txt");
    ofstream fout ("protocol.txt"), fg ("out.txt");
    BusInfo *heada = NULL;
    PasInfo *headp = NULL;
/*  char test[1];
    finp >> test;
        if(test == "")
    {
        std::cout << "\tФайл pass.txt пуст" << std::endl;
        return 0;
    }
    finp.seekg( 0, std::ios::beg );
    fina >> test;
    if(test == "")
    {
        std::cout << "\tФайл auto.txt пуст" << std::endl;
        return 0;
    }*/
    fina.seekg( 0, std::ios::beg );
    int ma=0;
    
    while (!fina.eof())
    {
        BusInfo *cur = new BusInfo;
        cur->next = heada;
        fina >> cur->nummarsh;   fout << "Добавлено:" << cur->nummarsh<< "\n";
        fina >> cur->name;       fout << "Добавлено:" << cur->name << "\n";
        fina >> cur->from;       fout << "Добавлено:" << cur->from << "\n";
        fina >> cur->to;         fout << "Добавлено:" << cur->to<< "\n";
        fina >> cur->price;      fout << "Добавлено:" << cur->price<< "\n";
        fina >> cur->numofseats; fout << "Добавлено:" << cur->numofseats<< "\n";
 
        fout << "Маршрут добавлен:" << cur->name<< "\n\n";
        heada=cur; ma++;
    } 
    fout << "Добавлено маршрутов: " << ma << endl << endl << endl;
    fina.close();
    finp.seekg( 0, std::ios::beg );
    int pa=0;
    
    
    while (!finp.eof())
    {
        PasInfo *curs = new PasInfo;
        curs->next = headp;
        finp >> curs->nummarsh;   fout << "Добавлено:" << curs->nummarsh<< "\n";
        finp >> curs->name;       fout << "Добавлено:" << curs->name << "\n";
        finp >> curs->from;       fout << "Добавлено:" << curs->from << "\n";
        finp >> curs->to;         fout << "Добавлено:" << curs->to<< "\n";
        finp >> curs->price;      fout << "Добавлено:" << curs->price<< "\n";
        finp >> curs->numofseats; fout << "Добавлено:" << curs->numofseats<< "\n";
        
        fout << "Пассажир из очереди инициализирован как:" << curs->name<< "\n\n";
        headp=curs;pa++;
    } 
    fout << "Количество пассажиров в очереди = " << pa << endl << endl << endl;
    finp.close();
 
    BusInfo *cur=heada;
    while (cur) 
    {
        PasInfo *curs=headp;
        while (curs)
        { fout  << "Выполняется проверка маршрута и пассажира " 
                << cur->name << "  "
                << curs->name << endl;
            if (curs->nummarsh==cur->nummarsh 
             && curs->from==cur->from 
             &&curs->to==cur->to
             &&curs->price==cur->price
             && cur->numofseats-curs->numofseats>=0) 
             {
                 fout << "Пассажир добавлен в автобус\n\n";
                 cur->numofseats=cur->numofseats-curs->numofseats;
            }
            else fout << "Невозможно добавить пассажира\n\n";
            curs=curs->next;
        }
        cur=cur->next;
    }
 
    // getch ();
}
 
 
void EnterNewBus (int nummarsh, 
             char name[50], char from[50],  
             char to[50], int price, int numofseats, int &ma, ofstream fout)
{
        BusInfo *cur = new BusInfo;
        cur->next = heada;
        cin >> cur->nummarsh;    fout << "Добавлено:" << cur->nummarsh<< "\n";
        cin >> cur->name;        fout << "Добавлено:" << cur->name << "\n";
        cin >> cur->from;        fout << "Добавлено:" << cur->from << "\n";
        cin >> cur->to;      fout << "Добавлено:" << cur->to<< "\n";
        cin >> cur->price;       fout << "Добавлено:" << cur->price<< "\n";
        cin >> cur->numofseats; fout << "Добавлено:" << cur->numofseats<< "\n";
        fout << "Маршрут добавлен:" << cur->name<< "\n\n";
        heada=cur; ma++;
}
 
Заранее благодарна!
Добавлено через 6 часов 9 минут
Все, я сама разобралась)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ф-я добавления и удаления элемента (C++):

Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) - C++
Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый”...

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

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

Методы добавления, удаления объекта - C++
Делал по примеру, ошибки разгребаю по мере появления. Помогите, пожалуйста, реализовать методы добавления addBus() и удаления delBus()...

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

Функции добавления, удаления данных в массиве. - C++
Есть код в котором создается новый массив, помогите написать функции добавления, удаления и вывода инфы. void Add(Array *arr, double...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 20:32
Привет! Вот еще темы с ответами:

Не работают функции удаления и добавления данных в класс - C++
не работают функции удаления страны и добавления.. помогите исправить ошибки..просто срочно нужно.. #include&lt;math.h&gt; ...

функция удаления и добавления элементов. что не так с програмой? - C++
#include &lt;iostream&gt; using namespace std; struct node{ double a; double b; node *next;}; node *head= NULL; node *p,...

Красно-черное прошитое дерево с функцией добавления и удаления элементов - C++
Доброго времени Суток! Помогите пожалуйста,необходимо реализовать красно-чёрное дерево по таким условиям: &quot;Создать красно-черное прошитое...

Создать очередь, написать функции для добавления/удаления элементов - C++
Добрый. Помогите, пожалуйста. Задание: Разработать функции, позволяющие: 1)создать очередь; 2)добавлять в нее элементы; 3)извлекать...


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

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

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