- •Кафедра вычислительных систем и программирования высокоуровневые методы информатики и программирования
- •Санкт-Петербург
- •1.Общие положения по организации
- •2. Программирование информационной мини-системы управления методом процедурно-ориентированного программирования (тема 2).
- •2.1. Постановка задачи и проектирование программы
- •2.2. Реализация программы
- •Vyvod(cout, client);
- •Vyvod(outprintf, client);
- •Void dobzap(fstream &dobf)
- •Int tabn;
- •Int operator!(); //элемент-функция класса
- •Int akt::operator!()
- •4. Блоки лабораторных работ по разделу «Объектно-
- •4.1. Блок по теме «Создание Windows-приложений»
- •4.2. Блоки по теме «Управление многооконными
- •4.2.1. Блок «Ввод/вывод информации»
- •Int k;//номер текущей вводимой строки
- •Invalidate();
- •If (!cursor)//если курсор еще не создан, надо создать.
- •Int X,y;//объявить переменные для хранения координат мыши
- •4.2.2. Меню, акселераторы, кнопки
- •Invalidate();
- •Invalidate(); }
- •4.2.3. Диалоговые окна
- •Invalidate();
- •4.2.4. Управление файловой обработкой
- •Invalidate(); //при вводе символа вид объявл. Не действительным
- •Void AddText(uint text) {data.AppendChar(text);} //доб. В конец стр.
- •Invalidate(); //при вводе символа вид объявл. Не действительным
- •Void Serialize(cArchive& archive);//прототип переопред. Функции
- •Void cData::Serialize(cArchive& archive)
- •If (archive.IsStoring())
- •Implement_serial(cData, cObject, 0)//класс,баз. Класс,номер
- •Invalidate();
- •Invalidate();
- •5.2. Блок по теме «Поддержка баз данных»
- •If (m_Add) //если true, то добавление записи
- •5.3. Блок по теме «Программирование для Internet»
- •If (!pIs) //2 проверка подключения компъютера к Internet
- •If (!pIs) //3 проверка подключения
- •If (!pFc) //5 проверка соединения с ftp-узлом
- •6. Рекомендуемая литература
- •7. Содержание
2.2. Реализация программы
Создание проекта консольного приложения
Выполнить этапы создания проекта и ввести имя проекта 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 подключение файла заголовков и тексты функций():
//файл кодов TPlab4_1.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);
}
cout<<setiosflags(ios::left)<<setw(10)
<<"Nomer"<<setw(16)<<"Familija"<<setw(11)
<<"Imja"<<resetiosflags(ios::left)
<<setw(10)<<"Balance"<<endl;
outprintf<<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)
{
Vyvod(cout, client);
Vyvod(outprintf, client);
}
readf.read((char *)&client, sizeof(tip_client));
}
}