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

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

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

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

07.05.2012, 20:32. Просмотров 333. Ответов 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 минут
Все, я сама разобралась)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 20:32     Ф-я добавления и удаления элемента
Посмотрите здесь:

C++ Функции добавления, удаления данных в массиве.
C++ Не работают функции удаления и добавления данных в класс
Циклическая очередь, сбой после удаления/добавления элемента C++
C++ функция удаления и добавления элементов. что не так с програмой?
Стеки, функции добавления и удаления элементов C++
Определить структуру данных, поддерживающую функции добавления, удаления и вывода элементов C++
C++ Методы добавления, удаления объекта
Реализовать стек с двумя очередями используя массивы (операции удаления, добавления) C++
Формирования массивов Y и Z, определения максимального по модулю элемента, удаления элемента C++
Написать функции добавления и удаления произвольного элемента динамического массива C++
C++ Красно-черное прошитое дерево с функцией добавления и удаления элементов
C++ Создать очередь, написать функции для добавления/удаления элементов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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