Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37

Простенькая БД на С++

20.06.2011, 17:29. Показов 2010. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте,нужно было написать простую БД
В меню 4 пункта,допустим выбираем пункт 2 " 2. Udalenie " << endl;,обращаемся к функции... вот вопрос ,как функцию описать и куда?

Вот,что написал

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
#include <iostream>
 
 using namespace std;
 
 int main ()     {
     char e,t; // создаём символы
        
     do {
                         
            system ("cls");
cout << "     *************   Menu    *************** " << endl << endl<< endl;
  
  cout << "_____________________________" << endl;
  cout <<  " 1. Sozdanie " <<   endl ;
    cout <<   " 2. Udalenie "  << endl;
      cout << " 3 .Redaktirovanie " <<endl;
        cout << " 4 .Peremeshenie" << endl;
        
        cout << "__________________________" << endl<< endl<< endl<< endl<< endl;
        cout <<" " << endl<< endl<< endl<< endl<< endl<< endl<< endl;
cin>> e;
 
 
 switch (e)
 {
      case '1' :
       
       
        cout << "Sozdayu fail..."<< endl ;
  
         system ("cls");
               cout << "fail sozdan" << endl;
 break;
 
          case '2' :
    cout << "Udalayu fail..." << endl;
    
       system ("cls");
    cout << "fail udalen" << endl;
 break;
 
  
               case '3' :
    cout << "Redaktiruyu fail..." << endl;
    
       system ("cls");
    cout << "Redaktirovanie Zaversheno" << endl;
 break;
 
  
                    case '4' :
    cout << "Peremeshayu fail..." << endl;
   
      system ("cls");
    cout << "Peremeshenie  Zaversheno" << endl;
 break;
 
 default : // остальные символы
     system ("cls");
    cout << "takogo punkta ne sushestvuet..." << endl;
   
 }
cout << " Prodolzit (y/n)" ;
 cin>>t ;
 
}while (t== 'y') ;
 
cout << "Konec";
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2011, 17:29
Ответы с готовыми решениями:

Простенькая БД
Нужно создать БД &quot;Аптека&quot;, которая будет включать хранение, реализацию и поставку. Очень нужно, буду очень благодарен

Простенькая БД
Помогите пожалуйста, кому не сложно. Имеется база данных. Как бы готова она полностью. Прикрепил к сообщению. По ней нужно сделать...

Простенькая БД
В универе дали задание сделать БД. А объяснить ничего не объяснили... Вот сейчас сижу голову ломаю. Создал простенькую БД в access, с...

16
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
23.06.2011, 05:41  [ТС]
подскажите пожалуйста
0
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
23.06.2011, 09:30
ну мы при похожих заданиях описывали функции в глобалке, до main, а в меню потом их просто вызываешь с нужными аргументами. а так по коду понять что-то не реально. БД через список надо делать или через простой массив?
0
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
23.06.2011, 09:44  [ТС]
через список...можете выложить ваш вариант...мне нужна любая программа,не обязательно как я написал
0
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
23.06.2011, 10:02
есть без записи в файл и удаления, но вообще это делается так же, как с масивом - из оперативной памяти запись списка в файл и обратно при необходимости. лучше делать две функции - загрузка в файл и выгрузка. редактирование - найти нужный элемент по люболму полю, а потом последовательно переписать записи

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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
#include "stdafx.h"
#include <string.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#include<conio.h>
struct avto
{char name[10];
char fam[10];
int num;
struct avto *next,*prev;};
struct avto *first,*cut,*temp,*p1,*p2,*p3,*p4,*p5, *lst,*p;
 
void Insert( )
{
system("cls");
 if ((temp=(struct avto*)malloc(sizeof(struct avto)))==NULL)exit(1);
 printf("Enter name: ");
 gets((*temp).name);
 printf("Enter surname: ");
 gets((*temp).fam);
 printf("Enter the number of car: ");
 scanf("%d",&(*temp).num);
 if (first==NULL)
  {
   (*temp).next=NULL;
   (*temp).prev=NULL;
   first=temp;
   cut=temp;
  }
  else
   {
    (*temp).next=NULL;
    (*temp).prev=cut;
    (*cut).next=temp;
    cut=temp;
   }
 system("cls");
}
void Delete (int key)
{system("cls");
struct avto  *p, *q, *r, *h;
 char fcon[10];
void clrscr();
 if (first==NULL) printf("The list is empty\n");
 else
 {
 
 h=first;
        while (h!=NULL)
        {
            p=h;
            if ((*p).num==key)
            {
                if((p->prev!=NULL)&&(p->next!=NULL))
                {
                    q=p->prev;
                    r=p->next;
                    q->next=r;
                    r->prev=q;
                    free(p);
                }
                if ((p->prev==NULL)&&(p->next!=NULL))
                {
                    q=p->next;
                    q->prev=NULL;
                    free(p);
                    first=q;
                }
 
                if((p->next==NULL)&&(p->prev!=NULL))
                {
                    q=p->prev;
                    q->next=NULL;
                    free(p);
                }
                break;
            }
            h=h->next;
        }
 
}
}
void Searsh()
{char s[15]; 
int key;
int key1;
system("cls");
void clrscr();
if (first==NULL) printf("The list is empty");
else
{printf("Enter the number of machines: ");
scanf("%d", &key1);
temp=first;
while(temp!=NULL)
    {
        if ((*temp).num==key1)
        {
             printf("\n|----------------------------|\n");
             printf("| Name     | Surname | Number|");
             printf("\n|----------------------------|");
             printf("\n|%10s|%9s|%-7d|",(*temp).name,(*temp).fam,(*temp).num);
             printf("\n|----------------------------|");
             temp=(*temp).next;
        }
        else temp=(*temp).next;
    }
printf("\nDelete? 1 - Yes or 2 - No: ");
scanf("%d",&key);
getchar();
switch(key)
    {
    case    1: Delete(key1);
    case    2: system("cls");
    }
 
}
 
}
void List ( )
{system("cls");
void clrscr();
 if (first==NULL) printf("The list is empty");
  else
  {
   printf("\n|--------------------------------|\n");
   printf("| Name     | Surname | Number      |");
   printf("\n|--------------------------------|");
   temp=first;
   do
   {
    printf("\n|%10s|%9s|%-11d|",(*temp).name,(*temp).fam,(*temp).num);
    printf("\n|--------------------------------|");
    temp=(*temp).next;
   }
   while (temp!=NULL);
  }
 
 getchar();
 getchar();
 
  system("cls");
}
void sort(void)
{p=first;
system("cls");
while(p!=NULL)
    {p1=p;
    p2=p;
    while(p1!=NULL)
        {if(p1->num<p2->num)
            {p2=p1;}
        p1=p1->next;}
    if(p!=p2)
    {if(p->next==p2)
        {if(p->prev!=NULL)
            {p1=p->prev;
            p2->prev=p1;
            p1->next=p2;}
        else
            {p2->prev=NULL;
            first=p2;}
        if(p2->next!=NULL)
            {p1=p2->next;
            p->next=p1;
            p1->prev=p;}
        else
            {p->next=NULL;}
        p->prev=p2;
        p2->next=p;
        }
    else
        {p1=p->prev;
        p3=p->next;
        p4=p2->prev;
        p5=p2->next;
        if(p1!=NULL)
            {p1->next=p2;
            p2->prev=p1;}
        else
            {p2->prev=NULL;
            first=p2;}
        if(p3!=NULL)
            {p3->prev=p2;
            p2->next=p3;}
        else
            {p2->next=NULL;}
        if(p4!=NULL)
            {p4->next=p;
            p->prev=p4;}
        else
            {p->prev=NULL;}
        if(p5!=NULL)
            {p5->prev=p;
            p->next=p5;}
        else
            {p->next=NULL;}
        }
    p=p2->next;}
    else 
    {p=p->next;}
    }
 
}
void main()
{ system("chcp 1251");
 system("cls");
 char key;
 first=NULL;
 while(1)
 {
    void   clrscr();
    printf("\t\tMenu:\n1 - Add record\n");
  printf("2 - View complete list\n3 - Searsh\n4 - Sorting \n0 - Exit\n");
  printf("Your action: ");
  scanf("%d",&key);
  getchar();
   switch(key)
   {
    case 1:Insert();break;
    case 2:List();break;  
    case 3:Searsh();break;
    case 4:sort();break;
    case 0:exit(0);  
   } 
 }
system("cls");
}
1
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
23.06.2011, 10:09  [ТС]
спасибо,кажется то,что надо
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
23.06.2011, 10:16
C++
1
2
3
4
5
6
    case '2' :
        cout << "Udalayu fail..." << endl;
        system ("cls");
        delete_file();
        cout << "fail udalen" << endl;
        break;
1
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
23.06.2011, 10:56  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
3
4
5
6
    case '2' :
        cout << "Udalayu fail..." << endl;
        system ("cls");
        delete_file();
        cout << "fail udalen" << endl;
        break;

delete_file нужно же как - то описать вначале(((
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
23.06.2011, 10:59
Цитата Сообщение от Blacccatt
delete_file нужно же как - то описать вначале(((
C++
1
2
3
4
5
void delete_file()
{
    cout << "func: delete file" << endl;
    // continue
}
вообще, функция не должна ничего выводить, вывод ты пишешь для того, чтобы видеть, где происходит запуск, пока ты её не написал
1
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
23.06.2011, 11:19  [ТС]
Цитата Сообщение от zaxi Посмотреть сообщение
ну мы при похожих заданиях...

а как сделать,чтоб при выполнении всех пунктов программа сама закрывалась?

Добавлено через 10 минут
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
3
4
5
void delete_file()
{
    cout << "func: delete file" << endl;
    // continue
}
вообще, функция не должна ничего выводить, вывод ты пишешь для того, чтобы видеть, где происходит запуск, пока ты её не написал
Вот написал текст,ничего не упустил?...и ещё нужно,чтоб только при выполнении всех пунктов программа сама закрывалась

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
#include <iostream>
 
 using namespace std;
 
 void delete_file()
{
    cout << "func: delete file" << endl;
      
}
 
void create_fail(){
    
    cout << "func: create file" << endl;
}
 
void  edit_fail()
 {  cout << "func: edit file" << endl;
}
void    cut_fail ()
{   cout << "func: cut file" << endl;   
}
 
int main ()
{
 
     char e,t; // создаём символы
   
     do {
                         
            system ("cls");
cout << "     *************   Menu    *************** " << endl << endl<< endl;
  
  cout << "_____________________________" << endl;
  cout <<  " 1. Sozdanie " <<   endl ;
    cout <<   " 2. Udalenie "  << endl;
      cout << " 3 .Redaktirovanie " <<endl;
        cout << " 4 .Peremeshenie" << endl;
        
        cout << "__________________________" << endl<< endl<< endl<< endl<< endl;
        cout <<" " << endl<< endl<< endl<< endl<< endl<< endl<< endl;
cin>> e;
 
 
 switch (e)
 {
      case '1' :
       
       
        cout << "Sozdayu fail..."<< endl ;
           system ("cls");
             create_fail();
               cout << "fail sozdan" << endl;
 break;
 
          case '2' :
        cout << "Udalayu fail..." << endl;
        system ("cls");
        delete_file();
        cout << "fail udalen" << endl;
        break;
 
  
               case '3' :
    cout << "Redaktiruyu fail..." << endl;
           system ("cls");
           edit_fail();
    cout << "Redaktirovanie Zaversheno" << endl;
 break;
 
  
                    case '4' :
    cout << "Peremeshayu fail..." << endl;
      system ("cls");
         cut_fail ();
    cout << "Peremeshenie  Zaversheno" << endl;
 break;
 
 default : // остальные символы
     system ("cls");
    cout << "takogo punkta ne sushestvuet..." << endl;
   
 }
cout << " Prodolzit (y/n)" ;
 cin>>t ;
 
}while (t== 'y') ;
 
cout << "Konec";
 
}
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
24.06.2011, 02:22
в самом верху
C++
1
bool menu_flags[4] = { false };
изменения в цикле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    case '1' :
        cout << "Sozdayu fail..."<< endl ;
        system ("cls");
        create_fail();
        cout << "fail sozdan" << endl;
        flags[0] = true;
        break;
 
...
 
    while (t == 'y'
        && !(menu_flags[0]
          && menu_flags[1]
          && menu_flags[2]
          && menu_flags[3]));
0
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
24.06.2011, 07:11  [ТС]
Сделал,но при выполнении любого одного пункта закрывает программу((

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
#include <iostream>
 
 using namespace std;
 
 bool flags[4] = { false };
 void delete_file()
{
    cout << "func: delete file" << endl;
    }
 
void create_fail(){
    
    cout << "func: create file" << endl;
}
 
void  edit_fail()
 {  cout << "func: edit file" << endl;
}
void    look_fail ()
{   cout << "func: look file" << endl;   
}
 
int main ()
{
              char e,t,h; // создаём символы
   
     do {
                         
            system ("cls");
cout << "     *************   Menu    *************** " << endl << endl<< endl;
  
  cout << "_____________________________" << endl;
  cout <<  " 1. Sozdanie " <<   endl ;
    cout <<   " 2. Udalenie "  << endl;
      cout << " 3 .Redaktirovanie " <<endl;
        cout << " 4 .Prosmotr" << endl;
        
        cout << "__________________________" << endl<< endl<< endl<< endl<< endl;
        cout <<" " << endl<< endl<< endl<< endl<< endl<< endl<< endl;
cin>> e;
  
 switch (e)
 {
      case '1' :
       
       
        cout << "Sozdayu fail..."<< endl ;
           system ("cls");
             create_fail();
               cout << "fail sozdan" << endl;
                flags[0] = true;
 break;
 
          case '2' :
        cout << "Udalayu fail..." << endl;
        system ("cls");
        delete_file();
        cout << "fail udalen" << endl;
         flags[1] = true;
        break;
          
               case '3' :
    cout << "Redaktiruyu fail..." << endl;
           system ("cls");
           edit_fail();
    cout << "Redaktirovanie Zaversheno" << endl;
     flags[2] = true;
 break;
 
                      case '4' :
    cout << "view fail..." << endl;
      system ("cls");
         look_fail ();
    cout << "prosmotr  Zavershen" << endl;
     flags[3] = true;
 break;
 
 default : // остальные символы
     system ("cls");
    cout << "takogo punkta ne sushestvuet..." << endl;
    }
cout << " Prodolzit (y/n)" ;
 cin>>t ;
 
}while (t== 'y'
 && !(flags[0]
          && flags[1]  && flags[2]  && flags[3] 
          ));
    cout << "Konec";    }
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
24.06.2011, 09:36
C++
1
bool flags[4] = { false };
массив флагов должен быть в main() возле e, t, h

C++
1
cout << flags[0] << flags[1] << flags[2] << flags[3] << t << endl;
напиши после cin >> t перед while
1
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
24.06.2011, 11:14  [ТС]
Спасибо!!!программа пошла

А если я захочу,чтоб программа была полноценной базой с записями и удалять их и редактировать,нужно только через структуры?
0
2 / 2 / 0
Регистрация: 18.01.2010
Сообщений: 23
24.06.2011, 19:25
Цитата Сообщение от Blacccatt Посмотреть сообщение
а как сделать,чтоб при выполнении всех пунктов программа сама закрывалась?
Вообще есть библиотечная функция exit(0), а так можно просто при нужной команде сделать выход из цикла
1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.06.2011, 05:45
Цитата Сообщение от Blacccatt
А если я захочу,чтоб программа была полноценной базой с записями
нужно избегать глобальных переменных
функции без аргументов подразумевают работу с глобальными переменными

C++
1
2
3
4
void delete_file(const char *fname)
{
    cout << "func: delete file" << endl;
}
в main() наверху определяешь имя файла, которое потом передаёшь в функции

Цитата Сообщение от Blacccatt
и удалять их и редактировать,нужно только через структуры?
одна запись базы данных хранится в структуре, тогда можно сделать массив структур, где каждый элемент является отдельной записью
его потом можно передавать в функции
1
0 / 0 / 1
Регистрация: 13.02.2011
Сообщений: 37
25.06.2011, 12:27  [ТС]
Спасиб,мужики,контрольную засчитали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2011, 12:27
Помогаю со студенческими работами здесь

Простенькая задача
Не могу понять в чем ошибка. &lt;html&gt; &lt;head&gt; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot;&gt; &lt;script...

Простенькая задача по JS
Я что-то не пойму, как сделать этот код еще короче? for (i=1; i&lt;=20; i++){ if ((i%3)+(i%5) === 0){ var s =...

Простенькая гостевая
Доброго времени суток проблемка с гостевой книгой, а именно с дублированием сообщений. &lt;?php $login=$_REQUEST;// вход в гостевую...

Простенькая процедура
// Вторая лаба.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Простенькая Задачка
Вводятся числа a и b. Найти количество таких чисел в диапазоне , которые не принадлежат отрезку .


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru