gotoxy(col,14);
cout<<zap.oklad;
return;
}
void sozd_kart()
{
fstream f;
int ch;
int nomer;
f.open(imf_k,ios::in|ios::out|ios::nocreate|ios::binary);
if (!f)
{
gotoxy(2,23);
clreol();
cerr<<"Ошибка открытия файла "<<imf_k
<<" на добавление,нажмите <Enter>\n";
getch();
return;
}
do
{
gotoxy(2,23);
clreol();
form_kart("Создание/добавление");
vvod_kart();
nomer=dob_ind(zap.tabn,kol_k,index_k);
f.seekp((long)(nomer*sizeof(zap)),ios::beg);
f.write((char *)&zap,sizeof(zap));
form_kart("");
do
{
gotoxy(2,23);
clreol();
cout<<"Продолжить добавление?: <Enter> Да, <Esc> Нет";
ch=getch();
}
while (ch!=13 && ch!=27);
}
while (ch==13);
sort(kol_k,index_k);
f.close();
return;
}
void prosm_kart()
{
int ch,pr;
ifstream f(imf_k,ios::in|ios::nocreate|ios::binary);
if (!f)
{
gotoxy(2,23);
clreol();
cerr<<"Ошибка открытия файла "<<imf_k
<<" на чтение,нажмите <Enter>\n";
getch();
return;
}
for (int i=0;i<kol_k;i++)
if (index_k[i].kluch[0]!='\0')
{
pr=i;
break;
}
if (i==kol_k)
{
gotoxy(2,23);
clreol();
cout<<"Файл "<<imf_k
<<" пустой,нажмите <Enter> и <Создание>\n";
return;
}
f.seekg((long)(index_k[i].nomer*sizeof(zap)),ios::beg);
f.read((char *)&zap,sizeof(zap));
form_kart("Просмотр");
vyvod_kart();
do
{
gotoxy(2,23);
clreol();
cout<<"<- Предыдущая, -> Следующая,<Esc> Выход";
ch=getch();
if (ch==0 && kbhit()) ch=getch();
if (ch==27) break;
switch (ch)
{
case 77:i++;
if (i<kol_k)
{
f.seekg((long)(index_k[i].nomer*sizeof(zap)),ios::beg);
f.read((char *)&zap,sizeof(zap));
form_kart("Просмотр");
vyvod_kart();
} else
{
cout<<'\a';
gotoxy(45,23);
cout<<"Конец файла";
delay(1000);
i--;
}
break;
case 75:i--;
if (i>=pr)
{
f.seekg((long)(index_k[i].nomer*sizeof(zap)),ios::beg);
f.read((char *)&zap,sizeof(zap));
form_kart("Просмотр");
vyvod_kart();
} else
{
cout<<'\a';
gotoxy(45,23);
cout<<"Начало файла";
delay(1000);
i++;
}
break;
}
}
while (ch!=27);
f.close();
return;
}
void poisk_kart()
{
char tab[10];
int ch;
const int col=25;
fstream f(imf_k,ios::in|ios::binary);
if (!f)
{
gotoxy(2,23);
clreol();
cerr<<"Ошибка открытия файла "<<imf_k
<<" на чтение,нажмите <Enter>\n";
getch();
return;
}
do
{
gotoxy(2,23);
clreol();
cout<<"Введите таб.номер искомой записи:";
cin>>tab;
for (int ind=0;
(ind=poisk_ind(tab,ind,kol_k,index_k))!=-1;
ind++)
{
f.seekg((long)(index_k[ind].nomer*sizeof(zap)),ios::beg);
f.read((char *)&zap,sizeof(zap));
form_kart("Поиск");
vyvod_kart();
do
{
gotoxy(2,23);
clreol();
cout<<"Запись найдена?:<Enter> Да,<Esc> Нет и "
<<"поиск еще записи с таб.номером "<<tab<<'\n';
ch=getch();
}
while (ch!=13 && ch!=27);
if (ch==13) break;
}
form_kart("");
if (ind==-1)
{
gotoxy(2,23);
clreol();
cout<<"Запись не найдена,нажмите <Enter>\n";
getch();
return;
}
do
{
gotoxy(2,23);
clreol();
cout<<"Продолжить поиск?:<Enter> Да,<Esc> Нет\n";
ch=getch();
}
while (ch!=13 && ch!=27);
}
while (ch==13);
f.close();
return;
}
void ud_kart()
{ zaglushka("Вызвана функция ud_kart, нажмите <Enter>"); }
void zam_kart()
{ zaglushka("Вызвана функция zam_kart, нажмите <Enter>"); }
//файл кодов mainkart без изменений
Лабораторная работа №4
Отладить и выполнить вторую версию программы, используя пункты лабораторной работы №1.
2.3. Программирование корректировки базы данных
Пример практического занятия №6 (продолжение)
//конечная версия программы
//файл заголовков ind.hpp без изменений
//файл кодов ind.cpp, добавлены функции ud_ind и zam_ind
//функции dob_ind,sort,poisk_ind без изменений
void ud_ind(int ind,tip_index index[])
{
index[ind].kluch[0]='\0';
return;
}
void zam_ind(int ind,char kl[max_pole],tip_index index[])
{
strcpy(index[ind].kluch,kl);
return;
}
//файл заголовков fkart.hpp без изменений
//файл кодов fkart.cpp с новыми функциями ud _kart,zam_kart
#include "fkart.hpp"
static struct t_k zap;
static struct t_k zap_null={"","","",0};
tip_index index_k[100];
int kol_k;
//функции init_kart,form_kart,vvod_kart,vyvod_kart,
//sozd_kart,prosm_kart,poisk_kart без изменений
void ud_kart()
{
char tab[10];
int ch;
const int col=25;
fstream f(imf_k,ios::in|ios::out|ios::binary);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.