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

Что-то вроде базы данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распечатать матрицу http://www.cyberforum.ru/cpp-beginners/thread61664.html
Задание на удивление простое: считать и вывести матрицу размером m x n !! Помогите, потому что я в это реальный чайник!! Завдання напрочуд просте: зчитати та вивести матрицю розміром m x n !! Поможіть, бо я в цьому реальний чайник!!
C++ Найти последнюю цифру. кто знает, как найти последнюю цифру какого-либо числа? http://www.cyberforum.ru/cpp-beginners/thread61649.html
C++ Problema с работой с фаилами и параметрами
У меня возникла такая проблема , я хочу передать в фаил параметр например WinExec ("HL.exe -game cstrike" ) можно ли туда добавить переменную в которой будет содержатся введеные пользователем параметры ? и как это сделать прошу выложить исходный код
C++ Найти отрезок в массиве.
Дан массив состоящий из N чисел , найти тот отрезок элементов сумма которого больше 100 . В массиве могут быть отрицательные числа. помогите решить пожалуйста)
C++ Массивы http://www.cyberforum.ru/cpp-beginners/thread61552.html
Помогите будущему программисту!Я болел и пропустил много тем и теперь задали лабу вот что нужно В одномерном массиве состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2)произведение элементов массива, расположенны между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоящие в...
C++ Codeblocks! Дело в том что я сижу под линуксом и пользуюсь Codeblocks. Я не как не могу разобраться, как там писать программы типа "космос", т.е. заголовочный, исходный и естественно главный файл? подробнее

Показать сообщение отдельно
Nicotino
0 / 0 / 0
Регистрация: 10.10.2009
Сообщений: 13

Что-то вроде базы данных - C++

06.11.2009, 17:13. Просмотров 401. Ответов 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
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <io.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>
 
typedef struct _DItem
{
    int Id;
    char Name[50];
    char Group[50];
    int  IQ;
    int TelefonNumber;
    char Adress[70];
    int Year;
    struct _DItem *prev, *next;
} DItem;
 
// Создает новый элемент списка
DItem* CreateItem();
// Добавляет новый элемент списка в его конец
void Add(DItem *end, DItem *NewElem);
// Удаляет элемент списка
void Delete(DItem *end, DItem *NewElem);
 
 
 
int main()
{
    // Настраиваим программу на используемый язык.
    char  buffer[255];
    DItem *Head = NULL;
    DItem *Curr;
    DItem *Old;
    DItem *Elem;
    int    NumbMenu;
    int    Id;
    clrscr();
 
    // Создание первого элемента
    Head    = CreateItem();
    Head->Id = 0;
    Head->Name[0] = NULL;
 
    for(;;)  //здесь в скобках два знака ;;, это форум определяет как смайл
    {
        // Вывод на экран меню
        cout << endl;
        cout << "0 - выход" << endl;
        cout <<"1 - новый элемент" << endl;
        cout << "2 - удалить элемент" << endl;
        cout << "3 - вывести весь список" << endl;
        cout << "Номер команды меню: ";
        cin >> NumbMenu;
        if(NumbMenu == 0)
            break;
 
        switch(NumbMenu)
        {
        case 1:
 
            // Создание нового элемента
            DItem *Elem = CreateItem();
            // Ввод информации в новый элемент
            cout << "Имя: ";
            cin >> Elem->Name;
            cout << "Группа: ";
            cin >> Elem->Group;
            cout << "IQ: ";
            cin >> Elem->IQ;
 
            Add(Head->prev, Elem);
            break;
 
        case 2:
 
 
            cout << "\nИдентификатор удаляемого элемента: ";
            cout << buffer;
            cin >> Id;
            Delete(Elem->prev, Elem);
            break;
        case 3:
            Curr = Head;
            cout << "\nВ списке находяться следующие элементы:";
    if(Curr)
    do
    {
        cout << endl << Curr->Id << endl;
        Curr = Curr->next;
        cout << Elem->Name  << endl;
        cout << Elem->Group << endl;
        cout << Elem->IQ << endl;
 
    }while(Curr != Head);
 
        }
 
    }
 
    cout << endl;
    cout << "\nПрограмма работу закончила";
    cout << endl << buffer << endl;
 
    getch();
    return 0;
}
 
///////////////////////////////////////////////////
// Создает новый элемент
// списка и возвращает указа-
// тель на него.
//
DItem* CreateItem()
{
    DItem* NewElem;
 
    NewElem = new DItem;
    NewElem->next = NewElem;
    NewElem->prev = NewElem;
 
    return NewElem;
}
 
///////////////////////////////////////////////////
//
void Add(
         DItem *end,    // указатель на первый элемент
         DItem *NewElem // указатель на новый элемент
         )
{
    if(!NewElem)
        return;
    if(end)
    {
        NewElem->prev = end;
        NewElem->next = end->next;
        end->next     = NewElem;
        NewElem->next->prev = NewElem;
    }
}
 
///////////////////////////////////////////////////
// Удаляет элемент списка
void Delete(
            DItem *end,  // указатель на удаляемый элемент списка
            DItem *NewElem  // указатель на замещаемый элемент списка
            )
{
    if(!NewElem)
        return;
 
    NewElem->next->prev = NewElem->prev;
    NewElem->prev->next = NewElem->next;
    NewElem->next = NewElem;
    NewElem->prev = NewElem;
    end;
}



Собсвенно просьба такая...помогите найти ошибки, а точнее отладить программу.... Пр. когда добавляешь первый элемент, все хорошо, когда следующий добавляешь он пишеться на тот...и в итоге 1ого элемента уже нет....при выводе всего списка....и почему-то не хочет работать удоление...Заранее большое спасибо.

Добавлено через 1 час 14 минут
Ню...идеи есть?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru