Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабЯзыкиПрогрИб.doc
Скачиваний:
1
Добавлен:
12.11.2019
Размер:
320 Кб
Скачать

4.3. TPlab3_3 «Запись в файл прямого доступа»

Цель работы – изучение операции записи данных в файл прямого доступа.

Условие задачи: имеются сведения о счетах клиентов банка: номер счета, фамилия, имя, баланс; создать программу записи данных в файл прямого доступа.

Создание проекта консольного приложения

Выполнить этапы согласно п. 2.1 и ввести имя проекта TPlab3_3.

Создается исходный файл TPlab3_3.cpp, который будет содержать всего одну пустую функцию main():

int t_main(int args, _TCHAR* argv[])

{return 0;}.

Создание и добавление исходных файлов в проект

Проект должен содержать файл заголовков TPlab3_3.h и файл кодов TPlab3_3.cpp.

Создать файл TPlab3_3.h, ввести текст файла и сохранить его:

//файл заголовков TPlab3_3.h

#ifndef client_h

#define client_h

#include <iostream>

using std::cout;

using std::cin;

using std::cerr;

using std::endl;

using std::ios;

#include <fstream>

using std::ofstream;

using std::ifstream;

struct tip_client

{

Int nomer;

char fam[15];

char im[10];

float balance;

};

#endif

Добавить в файл кодов TPlab3_3.cpp подключение файла заголовков и текст функции main():

//файл кодов TPlab3_3.cpp

#include "stdafx.h"

#include "TPlab3_3.h"

int _tmain(int argc, _TCHAR* argv[])

{

ofstream outf("client.dat", ios::binary);

If(!outf)

{

cerr<<"File ne otkr."<<endl;

exit(1);

}

cout<<"Vvedite nomer scheta ot 1 do 10,”

<<”0-konec vvoda):\n: ";

tip_client client;

cin>>client.nomer;

while(client.nomer>0 && client.nomer<=10)

{

cout<<"Vvedite familiu, imya, balance\n: ";

cin>>client.fam>>client.im>>client.balance;

outf.seekp((client.nomer-1)*sizeof(tip_client));

outf.write((char *) &client, sizeof(tip_client));

cout<<"Vvedite nomer scheta ot 1 do 10,"

<<" 0-konec vvoda):\n: ";

cin>>client.nomer;

}

return 0;

}

Компиляция, запуск и тестирование приложения

Выбрать команду Build->Build TPlab3_3. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы.

4.4. TPlab3_4 «Чтение из файла прямого доступа»

Цель работы – изучение операций чтения данных из файла прямого доступа.

Условие задачи: имеются сведения о счетах клиентов банка: номер счета, фамилия, имя, баланс; создать программу чтения данных из файла прямого доступа и печати данных.

Создание проекта консольного приложения

Выполнить этапы согласно п. 2.1 и ввести имя проекта TPlab3_4.

Создается исходный файл TPlab3_4.cpp, который будет содержать всего одну пустую функцию main():

int _tmain(int args, _TCHAR* argv[])

{return 0;}.

Создание и добавление исходных файлов в проект

Проект должен содержать файл заголовков TPlab3_4.h и файл кодов TPlab3_4.cpp.

Создать файл TPlab3_4.h, ввести текст файла и сохранить его:

//файл заголовков TPlab3_4.h

#ifndef client_h

#define client_h

#include <iostream>

using std::cout;

using std::cin;

using std::cerr;

using std::endl;

using std::ios;

#include <fstream>

using std::ofstream;

using std::ifstream;

//dopolnitelno

#include <iomanip>

using std::setiosflags;

using std::setw;

using std::setprecision;

using std::resetiosflags;

struct tip_client

{

int nomer;

char fam[15];

char im[10];

float balance;

};

void vyvod_zap(tip_client &);

#endif

Добавить в файл кодов TPlab3_4.cpp подключение файла заголовков и текст функции main():

//файл кодов TPlab3_4.cpp

#include "stdafx.h"

#include "TPlab3_4.h"

int _tmain(int argc, _TCHAR* argv[])

{

ifstream inf("client.dat", ios::binary);

if(!inf)

{

cerr<<"File ne otkr. "<<endl;

exit(1);

}

cout<<setiosflags(ios::left)<<setw(10)<<"Schet"

<<setw(16)<<"Familija"<<setw(11)

<<"Imja"<<resetiosflags(ios::left)

<<setw(10)<<"Balance"<<endl;

tip_client client;

inf.read((char *) &client, sizeof(tip_client));

while(inf && !inf.eof())

{

if(client.nomer!=0)

vyvod_zap(client);

inf.read((char *) &client, sizeof(tip_client));

}

return 0;

}

void vyvod_zap(tip_client &c)

{

cout<<setiosflags(ios::left)<<setw(10)<<c.nomer

<<setw(16)<<c.fam<<setw(11)

<<c.im<<setw(10)<<setprecision(2)<<resetiosflags(ios::left)

<<setiosflags(ios::fixed|ios::showpoint)

<<c.balance<<endl;

}

Компиляция, запуск и тестирование приложения

Скопировать файл данных “client.dat” из папки TPlab3_3 (Пуск\Мои документы\Visual Studio 2005 \Projects \TPlab3_3 \TPlab3_3\client.dat ) в папку TPlab3_4\TPlab3_4.

Выбрать команду Build->Build TPlab3_4. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы.