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

5. Индивидуальное задание по теме «Технология процедурного программирования»

TPlab4_1 «Операции с базой данных»

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

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

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

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

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

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

{return 0;}.

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

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

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

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

#ifndef TPlab4_1_h

#define TPlab4_1_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::ostream;

using std::fstream;

using std::istream;

#include <iomanip>

using std::setiosflags;

using std::resetiosflags;

using std::setw;

using std::setprecision;

#include <cstdlib>

struct tip_client

{

int nomer;

char fam[15];

char im[10];

float balance;

};

int menu();

void textfile(fstream &);

void dobzap(fstream &);

void zamzap(fstream &);

void udzap(fstream &);

void vyvod(ostream &, const tip_client &);

int vvod_nomer(const char * const);

enum option{TEXTFILE=1, DOBAVLENIE, ZAMENA,

UDALENIE, END};

#endif

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

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

#include "stdafx.h"

#include "TPlab4_1.h"

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

{

fstream inoutf("client.dat", ios::in|ios::out);

if(!inoutf)

{

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

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

tip_client client0={0, "", "", 0.0};

for(int i=0; i<100; i++)

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

outf.close();

}

int vybor;

while((vybor=menu())!=END)

{

switch(vybor)

{

case TEXTFILE:

textfile(inoutf);

break;

case DOBAVLENIE:

dobzap(inoutf);

break;

case ZAMENA:

zamzap(inoutf);

break;

case UDALENIE:

udzap(inoutf);

break;

case END: break;

default:

cerr<<"Neprav. vybor\n";

break;

}

inoutf.clear();

}

return 0;

}

int menu()

{

cout<<"\nMENU\n"

<<"1-Sozdanie textfile-vyvod\n"

<<"2-Dobavlenie zap\n"

<<"3-Zamena zap\n"

<<"4-Udalenie zap\n"

<<"5-Konec\n\n"

<<"\nVash vybor: ";

int menuvybor;

cin>>menuvybor;

return menuvybor;

}

void textfile(fstream &readf)

{

ofstream outprintf("print.txt", ios::out);

if(!outprintf)

{

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

exit(1);

}

outprintf<<setiosflags(ios::left)<<setw(10)

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

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

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

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

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

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

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

readf.seekg(0, ios::beg);

tip_client client;

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

while(!readf.eof())

{

if(client.nomer !=0)

{