- •Языки программирования
- •Санкт-Петербург
- •1. Общие положения по организации
- •2. Блок лабораторных работ №1 по теме «Представление управляющих структур программирования
- •2.1. TPlab1_1 «Структура ветвления с двойным
- •2.2. TPlab1_2 «Структура ветвления с множественным
- •2.3. TPlab1_3 «Структура повторения с
- •Int kol, //счетчик введенных оценок
- •2.4. TPlab1_4 «Структура повторения с предусловием
- •Int kol, //счетчик введенных оценок
- •2.5. TPlab1_5 «Структура повторения for»
- •Int god; //число лет
- •2.6. TPlab1_6 «Структура повторения с постусловием
- •Int kol, f, ocenka;
- •2.7. TPlab1_7 «Вложенные управляющие структуры»
- •3. Блок лабораторных работ №2 по темам
- •3.1. TPlab2_1 «Функции, определяемые программистом»
- •3.2. TPlab2_2 «Рекурсивные алгоритмы»
- •Int fact(int);
- •Int fact(int n)
- •3.3. TPlab2_3 «Массивы и функции»
- •Void vvod1(int n, char m1[][20]);
- •Void vvod2(int n, float m2[]);
- •Void vyvod(int n, char m1[][20], float m2[]);
- •3.4. TPlab2_4 «Типовые операции над массивами»
- •Void vvod();
- •Void vyvod();
- •4.2. TPlab3_2 «Создание файла прямого доступа»
- •Int nomer;
- •If(!outf)
- •4.3. TPlab3_3 «Запись в файл прямого доступа»
- •Int nomer;
- •If(!outf)
- •4.4. TPlab3_4 «Чтение из файла прямого доступа»
- •5. Индивидуальное задание по теме «Технология процедурного программирования»
- •Vyvod(outprintf, client);
- •Vyvod(cout, client);
- •Void dobzap(fstream &dobf)
- •Дополнительная литература:
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)
{