Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 17.10.2014
Сообщений: 48
1

База данных

21.04.2015, 09:09. Показов 692. Ответов 4
Метки нет (Все метки)

Не могу разобраться что не так. Спасибо заранее!
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
#include <locale.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<iostream>
using namespace std;
int N;
int index[1000];
int i = 0;
typedef struct S
{
struct S *next, *head;
char fam[20];
char name[20];
char group[8];
char d[11];
int KS1;
int KS2;
 
};
int flag;
int p;
 char spis;
void Add(spis *p, int flag){ // ïðîöåäóðà äëÿ äîáàâëåíèÿ ñòóäåíòà â ñïèñîê
spis *temp = new spis;
if(flag==1)
cout<< "Ââåäèòå íîâîãî ñòóäåíòà:" <<endl<< "[Ôàìèëèÿ] [Èìÿ] [¹ ãðóïïû] [Ä.ðîæäåíèÿ] [1ûé ÊÑ] [2îé ÊÑ]" <<endl;
else if(flag==2)
cout<< "Ââåäèòå èçìåíåííîãî ñòóäåíòà: [Ôàìèëèÿ] [Èìÿ] [¹ ãðóïïû] [Ä.ðîæäåíèÿ] [1ûé ÊÑ] [2îé ÊÑ]" <<endl;
cin>> temp->fam>> temp->name >> temp->group >> temp->d >> temp->KS1 >> temp->KS2;
index[i] = (int)*(&temp);
temp->next = (*p)->head;
(*p)->head = temp;
if(flag==1)
cout<< "Ñòóäåíò óñïåøíî äîáàâëåí!" <<endl;
else if(flag==2)
cout<< "Ñòóäåíò óñïåøíî èçìåíåí!" <<endl;
getch();
}
void list(spis *p){     // âûâîä ñïèñêà íà ýêðàí
 
spis *temp = p->head;
int j=0;
while(temp != NULL){
if(((spis*)index[j])->fam[0]!='\0')
cout<< ((spis*)index[j])->fam<< " " << ((spis*)index[j])->name << " " << ((spis*)index[j])->group << " " << ((spis*)index[j])->d << " " << ((spis*)index[j])->KS1 << " " << ((spis*)index[j])->KS2 <<endl;
temp = temp->next;
j++;
}
}
void Del(spis **p, int flag){
char k[20];
if(flag==1)
cout<< "Ââåäèòå ôàìèëèþ äëÿ óäàëåíèÿ ñòóäåíòà:" <<endl;
else if(flag==2)
cout<< "Ââåäèòå ôàìèëèþ äëÿ èçìåíåíèÿ ñòóäåíòà:" <<endl;
cin>> k;
cout<< k<<endl;
spis *temp = (*p)->head;
int j = 0;
while(temp != NULL){
if(strcmp(temp->fam,k)==0){ memset(temp->fam,0,sizeof(char)); index[j]=0;}
j++;
temp = temp->next;
}
if(flag==1)
cout<< "Ñòóäåíò óñïåøíî óäàëåí!" <<endl;
else if(flag==2)
cout<< "Ñòóäåíò ãîòîâ ê èçìåíåíèþ!" <<endl;
getch();
}
void OutFile(spis **p){
FILE *out;
out = fopen("database","w");
int n = 0;
spis *temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0')
n++;
temp = temp->next;
}
fprintf(out,"%d\n",n);
temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0')
fprintf(out,"%s %s %s %s %d %d\n",temp->fam,temp->name,temp->group,temp->d,temp->KS1,temp->KS2);
temp = temp->next;
}
cout<< "Äàííûå î ñòóäåíòàõ óäà÷íî ñîõðàíåíû â ôàéë!" <<endl;
getch();
fclose(out);
}
void Clear(spis *p){ // ïðîöåäóðà î÷èñòêè ñïèñêà
while(p->head != NULL){
spis *temp = p->head->next;
delete p->head;
p->head = temp;
}
}
void InFile(spis **p){ // ïðîöåäóðà çàãðóçêè ñïèñêà èç ôàéëà
Clear(*p);
FILE *in;
in = fopen("database","r");
int n;
fscanf(in,"%d",&n);
N=n;
cout<< n<<endl;
while(n>0){
spis *temp = newspis;
fscanf(in,"%s %s %s %s %d %d\n",temp->fam,temp->name,temp->group,temp->d,&temp->KS1,&temp->KS2);
index[i] = (int)*(&temp);
temp->next = (*p)->head;
(*p)->head = temp;
n--; i++;
}
cout<< "Äàííûå óñïåøíî ñ÷èòàíû!" <<endl;
getch();
}
void Search(spis **p){ // ïðîöåäóðà ïîèñêà ñòóäåíòà ïî ôàìèëèè, èìåíè è íîìåðó ãðóïïû
cout<< "Ïîèñê ïî ôàìèëèè, èìåíè è íîìåðó ãðóïïû: " <<endl;
chartF[20],tN[20],tG[8];
cin>>tF>>tN>>tG;
int s = 0;
spis *temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0' &&strcmp(temp->fam,tF)==0 &&strcmp(temp->name,tN)==0 &&strcmp(temp->group,tG)==0){
cout<< temp->fam<< " " << temp->name << " " << temp->group << " " << temp->d << " " << temp->KS1 << " " << temp->KS2 <<endl;
s=1;
break;
}
temp = temp->next;
}
if(s==0) cout<< "Ïîèñê íå äàë ðåçóëüòàòîâ" <<endl;
getch();
}
int Less(int p, int q){
if(strcmp(((spis*)p)->group,((spis*)q)->group)<0)return 1;
else if(strcmp(((spis*)p)->group,((spis*)q)->group)>0) return 0;
else if(strcmp(((spis*)p)->fam,((spis*)q)->fam)>0) return 0;
else if(strcmp(((spis*)p)->fam,((spis*)q)->fam)<0) return 1;
else if(strcmp(((spis*)p)->name,((spis*)q)->name)>0) return 0;
else if(strcmp(((spis*)p)->name,((spis*)q)->name)<0) return 1;
return 0;
}
voidQuickSort(int L, int R){
int x = index[L];
int i = L;
int j = R;
while(i <= j){
while(Less(index[i],x)) i++;
while(Less(x,index[j])) j--;
if(i<= j){ int t = index[i];
index[i] = index[j];
index[j] = t;
i++;j--;
}
}
if(L < j) QuickSort(L,j);
if(i< R) QuickSort(i,R);
}
intmain(){
setlocale(LC_ALL, "Russian");
N = 0;
spis *head = newspis;
head->head = NULL;
while(1){
system("CLS");
cout<<endl<<endl<<endl;
puts("1. Äîáàâèòü");
puts("2. Óäàëèòü");
puts("3. Ðåäàêòèðîâàòü ");
puts("4. Ñîõðàíèòü â ôàéë");
puts("5. Çàãðóçèòü èç ôàéëà");
puts("6. Óïîðÿäî÷èòü è âûâåñòè");
puts("7. Íàéòè ");
puts("8. Âûéòè");
char m = getch();
switch(m){
case '1': Add(&head,1); break;
case '2': Del(&head,1); break;
case '3': Del(&head,2); Add(&head,2); break;
case '4': OutFile(&head); break;
case '5': InFile(&head); break;
case '6': QuickSort(0,N-1); list(head); system("PAUSE"); break;
case '7': Search(&head); break;
case 'q': case 'é': list(head); system("PAUSE"); break;
case '8': exit(0); break;
default: exit(0); break;
}
}
Clear(head);
return 0;
}
Добавлено через 37 секунд
C++
1
void Add(spis *p, int flag)
тут ошибка
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 09:09
Ответы с готовыми решениями:

Удалённая база данных - запрос и вывод данных
допустим у меня есть удалённая база данных в которой хранятся данные. можно ли через программу...

Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
всем доброго времени суток! есть у меня класс bd, массив элементов этого класса table, а вот сам...

База данных "Телеателье": создать систему управления базой данных (СУБД)
Задача: Создать систему управления базой данных (СУБД) в которой предусмотреть следующие режимы:...

База данных
Как создать базу данных со сведениями о студентах (курс, фио,пол ,возраст)

4
Модератор
Эксперт С++
11066 / 9125 / 5483
Регистрация: 18.12.2011
Сообщений: 24,392
21.04.2015, 09:29 2
Цитата Сообщение от vestr Посмотреть сообщение
typedef struct S
уберите typedef
0
0 / 0 / 1
Регистрация: 17.10.2014
Сообщений: 48
21.04.2015, 09:47  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<conio.h>
#include<iostream>
using namespace std;
int N;
int index[1000];
int i = 0;
struct S
{
struct S *next, *head;
char fam[20];
char name[20];
char group[8];
char d[11];
int KS1;
int KS2;
 
};
int flag;
int p;
int spis;
void Add(spis *p, int flag){ // ïðîöåäóðà äëÿ äîáàâëåíèÿ ñòóäåíòà â ñïèñîê
spis *temp = new spis;
ошибка
0
Миниатюры
База данных  
0 / 0 / 1
Регистрация: 17.10.2014
Сообщений: 48
21.04.2015, 10:09  [ТС] 4
Переделал, но все равно ошибка
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
#include <locale.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<iostream>
using namespace std;
int N;
int index[1000];
int i = 0;
int flag;
int spis;
char p;
struct S
{
struct S *next, *head;
char fam[20];
char name[20];
char group[8];
char d[11];
int KS1;
int KS2;
};
 
void Add(spis *p,  flag){ // ïðîöåäóðà äëÿ äîáàâëåíèÿ ñòóäåíòà â ñïèñîê
spis *temp = new spis;
if(flag==1)
cout<< "Ââåäèòå íîâîãî ñòóäåíòà:" <<endl<< "[Ôàìèëèÿ] [Èìÿ] [¹ ãðóïïû] [Ä.ðîæäåíèÿ] [1ûé ÊÑ] [2îé ÊÑ]" <<endl;
else if(flag==2)
cout<< "Ââåäèòå èçìåíåííîãî ñòóäåíòà: [Ôàìèëèÿ] [Èìÿ] [¹ ãðóïïû] [Ä.ðîæäåíèÿ] [1ûé ÊÑ] [2îé ÊÑ]" <<endl;
cin>> temp->fam>> temp->name >> temp->group >> temp->d >> temp->KS1 >> temp->KS2;
index[i] = (int)*(&temp);
temp->next = (*p)->head;
(*p)->head = temp;
if(flag==1)
cout<< "Ñòóäåíò óñïåøíî äîáàâëåí!" <<endl;
else if(flag==2)
cout<< "Ñòóäåíò óñïåøíî èçìåíåí!" <<endl;
getch();
}
void list(spis *p){     // âûâîä ñïèñêà íà ýêðàí
 
spis *temp = p->head;
int j=0;
while(temp != NULL){
if(((spis*)index[j])->fam[0]!='\0')
cout<< ((spis*)index[j])->fam<< " " << ((spis*)index[j])->name << " " << ((spis*)index[j])->group << " " << ((spis*)index[j])->d << " " << ((spis*)index[j])->KS1 << " " << ((spis*)index[j])->KS2 <<endl;
temp = temp->next;
j++;
}
}
void Del(spis **p, int flag){
char k[20];
if(flag==1)
cout<< "Ââåäèòå ôàìèëèþ äëÿ óäàëåíèÿ ñòóäåíòà:" <<endl;
else if(flag==2)
cout<< "Ââåäèòå ôàìèëèþ äëÿ èçìåíåíèÿ ñòóäåíòà:" <<endl;
cin>> k;
cout<< k<<endl;
spis *temp = (*p)->head;
int j = 0;
while(temp != NULL){
if(strcmp(temp->fam,k)==0){ memset(temp->fam,0,sizeof(char)); index[j]=0;}
j++;
temp = temp->next;
}
if(flag==1)
cout<< "Ñòóäåíò óñïåøíî óäàëåí!" <<endl;
else if(flag==2)
cout<< "Ñòóäåíò ãîòîâ ê èçìåíåíèþ!" <<endl;
getch();
}
void OutFile(spis **p){
FILE *out;
out = fopen("database","w");
int n = 0;
spis *temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0')
n++;
temp = temp->next;
}
fprintf(out,"%d\n",n);
temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0')
fprintf(out,"%s %s %s %s %d %d\n",temp->fam,temp->name,temp->group,temp->d,temp->KS1,temp->KS2);
temp = temp->next;
}
cout<< "Äàííûå î ñòóäåíòàõ óäà÷íî ñîõðàíåíû â ôàéë!" <<endl;
getch();
fclose(out);
}
void Clear(spis *p){ // ïðîöåäóðà î÷èñòêè ñïèñêà
while(p->head != NULL){
spis *temp = p->head->next;
delete p->head;
p->head = temp;
}
}
void InFile(spis **p){ // ïðîöåäóðà çàãðóçêè ñïèñêà èç ôàéëà
Clear(*p);
FILE *in;
in = fopen("database","r");
int n;
fscanf(in,"%d",&n);
N=n;
cout<< n<<endl;
while(n>0){
spis *temp = newspis;
fscanf(in,"%s %s %s %s %d %d\n",temp->fam,temp->name,temp->group,temp->d,&temp->KS1,&temp->KS2);
index[i] = (int)*(&temp);
temp->next = (*p)->head;
(*p)->head = temp;
n--; i++;
}
cout<< "Äàííûå óñïåøíî ñ÷èòàíû!" <<endl;
getch();
}
void Search(spis **p){ // ïðîöåäóðà ïîèñêà ñòóäåíòà ïî ôàìèëèè, èìåíè è íîìåðó ãðóïïû
cout<< "Ïîèñê ïî ôàìèëèè, èìåíè è íîìåðó ãðóïïû: " <<endl;
chartF[20],tN[20],tG[8];
cin>>tF>>tN>>tG;
int s = 0;
spis *temp = (*p)->head;
while(temp != NULL){
if(temp->fam[0]!='\0' &&strcmp(temp->fam,tF)==0 &&strcmp(temp->name,tN)==0 &&strcmp(temp->group,tG)==0){
cout<< temp->fam<< " " << temp->name << " " << temp->group << " " << temp->d << " " << temp->KS1 << " " << temp->KS2 <<endl;
s=1;
break;
}
temp = temp->next;
}
if(s==0) cout<< "Ïîèñê íå äàë ðåçóëüòàòîâ" <<endl;
getch();
}
int Less(int p, int q){
if(strcmp(((spis*)p)->group,((spis*)q)->group)<0)return 1;
else if(strcmp(((spis*)p)->group,((spis*)q)->group)>0) return 0;
else if(strcmp(((spis*)p)->fam,((spis*)q)->fam)>0) return 0;
else if(strcmp(((spis*)p)->fam,((spis*)q)->fam)<0) return 1;
else if(strcmp(((spis*)p)->name,((spis*)q)->name)>0) return 0;
else if(strcmp(((spis*)p)->name,((spis*)q)->name)<0) return 1;
return 0;
}
void QuickSort(int L, int R){
int x = index[L];
int i = L;
int j = R;
while(i <= j){
while(Less(index[i],x)) i++;
while(Less(x,index[j])) j--;
if(i<= j){ int t = index[i];
index[i] = index[j];
index[j] = t;
i++;j--;
}
}
if(L < j) QuickSort(L,j);
if(i< R) QuickSort(i,R);
}
int main(){
setlocale(LC_ALL, "Russian");
N = 0;
spis *head = new spis;
head->head = NULL;
while(1){
system("CLS");
cout<<endl<<endl<<endl;
puts("1. Äîáàâèòü");
puts("2. Óäàëèòü");
puts("3. Ðåäàêòèðîâàòü ");
puts("4. Ñîõðàíèòü â ôàéë");
puts("5. Çàãðóçèòü èç ôàéëà");
puts("6. Óïîðÿäî÷èòü è âûâåñòè");
puts("7. Íàéòè ");
puts("8. Âûéòè");
char m = getch();
switch(m){
case '1': Add(&head,1); break;
case '2': Del(&head,1); break;
case '3': Del(&head,2); Add(&head,2); break;
case '4': OutFile(&head); break;
case '5': InFile(&head); break;
case '6': QuickSort(0,N-1); list(head); system("PAUSE"); break;
case '7': Search(&head); break;
case 'q': case 'é': list(head); system("PAUSE"); break;
case '8': exit(0); break;
default: exit(0); break;
}
}
Clear(head);
return 0;
}
0
4295 / 1417 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
21.04.2015, 11:28 5
Что за тип данных "spis"?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2015, 11:28

База данных в С++.
Дело такое: пишется проект, который будет регулярно читать и записывать информацию с файлов. Самое...

база данных
скиньте кто то пример базы данных на си!!!!а то яч не знаю с чего начать и как ее...

База данных
задание: Написать программу для работы с базой данных &quot;Почта&quot; • номер пересылки • адрес...

База данных
Здравствуйте,помогите написать: Биржа труда. База безработных: анкетные данные, профессия,...

База данных
Всем Привет! Есть txt Файл в нем вписана база данных. Как вытянуть из текстового файла базу в том...

База данных с++
Ребят ищу уже долгое время в чём проблема так и не могу понять. Если что стоит visual studio 2019....


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

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

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