Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Гуревича по с++, первый сем / Лекции ОАиП Гуревич (I сем.) №8.doc
Скачиваний:
70
Добавлен:
15.06.2014
Размер:
200.19 Кб
Скачать

16.9. Простейший пример создания собственной базы данных

Бинарные файлы могут использоваться для организации баз данных, состоящих, как правило, из объектов структурного типа.

Пример программы работы с файлом структур:

Программа обеспечивает ввод, дополнение, сохранение и просмотр информации о студентах. Для каждого студента указывается его фамилия и средний балл.

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

struct Sved {

char Fam[30];

float S_Bal;

} zap,zapt;

char Spis[]="Sp.dat";

FILE *F_zap;

FILE* Open_file(char *, char *);

void main (void) {

int i, j, kodR, nom, size = sizeof(Sved);

while(1) {

puts("Sozdanie - 1\nProsmotr - 2\nDobavlenie - 3\nVyhod - 0");

switch(kodR = getch())

{

case '1': case '3':

if(kodR==1) F_zap = Open_file (Spis,"w+");

else F_zap = Open_file (Spis,"a+");

while(2) {

cout << "\n Fam "; cin >> zap.Fam;

if((zap.Fam[0])=='0') break;

cout << "\n Srednij ball: ";

cin >> zap.S_Bal;

fwrite(&zap,size,1,F_zap);

}

fclose(F_zap);

break;

case '2': F_zap = Open_file (Spis,"r+");

nom=1;

while(2) {

if(!fread(&zap,size, 1, F_zap)) break;

printf(" %2d: %20s %5.2f\n", nom++, zap.Fam, zap.S_Bal);

}

fclose(F_zap);

break;

case '0': return; // exit(0);

} // Конец switch

} // Конец While(1)

} // Конец программы

// Нижеприведенная функция служит для того же, что и fopen(), но при

// неудаче выдает на экран ошибку

FILE* Open_file(char *file, char *kod)

{

FILE *f;

if(!(f = fopen(file, kod)))

{

puts("File isn\'t created!");

getch();

exit(1);

}

else return f;

}