- •Кафедра вычислительных систем и программирования высокоуровневые методы информатики и программирования
- •Санкт-Петербург
- •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. Содержание
Int tabn;
float objem;
//инициализация списком //инициализация телом
akt(int x, float y): tabn(x), objem(y) //akt(int x,float y)
{} //tabn=x objem=y //{tabn=x; objem=y;}
};
Добавить в файл кодов lab1.cpp текст функции main():
//файл кодов lab1.cpp
#include “stdafx.h”
#include “lab1.h”
int _tmain(int args, _TCHAR* argv[])
{
akt obj1(1,100000);//x=1 y=100000
cout<<obj1.tabn<<” “<<obj1.objem<<’\n’;
return 0;
}
Компиляция, запуск и тестирование приложения
Выбрать команду Build->Build lab1. Выполняется компиляция и компоновка программы. При наличии ошибок выполнить редактирование файлов и снова запустить на компиляцию.
Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы. На экране выводятся результаты программы. Строка Press Any Key to Continue позволяет увидеть результаты программы.
Закрытие, открытие, просмотр проекта
Visual Studio размещает файлы проекта lab1_1.h и lab1_1.cpp в папке проекта lab1_1, а объектные файлы - в подкаталоге Debug папки проекта lab1_1.
Для закрытия проекта надо выполнить команду File ->Close Solution. Появляется окно Start Page.
Для повторного открытия проекта выполнить этапы:
- Выбрать команду File->Open Solution. Появится око Open Solution со списком проектов (папок). Выбрать папку необходимого проекта lab1 и открыть её, нажав Open (или дважды щёлкнуть на папке). В окне Open Solution появляется содержимое выбранной папки.
- Выбрать exe-файл и открыть его. Открывается проект lab1.
Для просмотра проекта используется вкладки окна Solution Explorer: вкладка Class View – для просмотра классов; вкладка Solution Explorer – для просмотра файлов проекта; вкладка Resource View – для просмотра ресурсов.
lab2 «Перегрузка операций внешней функцией
Цель работы- переопределение действий операций применительно к объектам конкретного класса с помощью внешней функции-операции, дружественной данному классу.
Условие задачи: перегрузить операцию (+) для сложения комплексных чисел внешней функцией-операцией operator.
Создание проекта консольного приложения
Выполнить этапы согласно п. 2.1 и ввести имя проекта lab2.
Создается исходный файл lab2.cpp, который будет содержать всего одну пустую функцию main():
int _tmain(int args, _TCHAR* argv[])
{return 0;}.
Создание и добавление исходных файлов в проект
Проект должен содержать файл заголовков lab2.h и файл кодов lab2.cpp.
Создать файл lab1.h, ввести текст файла и сохранить его:
//функция-операция + , как внешняя функция
//файл заголовков lab2.h
#include <iostream>
using std::cout;
class complex
{
public:
float d, m;
complex() {d=m=0;}
complex(float x, float y) {d=x; m=y;}
friend complex operator +(complex& x1,complex& x2);
};
Добавить в файл кодов lab2.cpp текст функции-операции
operator + и функции main():
//файл кодов lab2.cpp
#include “stdafx.h”
#include "lab2.h"
complex operator +(complex& x1,complex& x2)
{
complex y;
y.d=x1.d+x2.d;
y.m=x1.m+x2.m;
return(y);
}
int _tmain(int args, _TCHAR* argv[])
{
complex obj1(0,1),obj2(1,0),obj3;
obj3=obj1+obj2;//интерпрет.,как obj3=operator+(obj1,obj2);
cout<<obj1.d<<"+i*"<<obj1.m<<'\n'; //результат: 0+i*1
cout<<obj2.d<<"+i*"<<obj2.m<<'\n'; //результат: 1+i*0
cout<<obj3.d<<"+i*"<<obj3.m<<'\n'; //результат: 1+i*1
return 0;
}
Компиляция, запуск и тестирование приложения
Выбрать команду Build->Build lab2. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы.
lab3 «Перегрузка операций функцией класса
Цель работы- переопределение действий операций применительно к объектам конкретного класса с помощью функции-операции данного класса.
Условие задачи: перегрузить операцию (+) для сложения комплексных чисел функцией-операцией operator класса.
Создание проекта консольного приложения
Выполнить этапы согласно п. 2.1 и ввести имя проекта lab3.
Создается исходный файл lab3.cpp, который будет содержать одну пустую функцию main():
int _tmain(int args, _TCHAR* argv[])
{return 0;}.
Создание и добавление исходных файлов в проект
Проект должен содержать файл заголовков lab3.h и файл кодов lab3.cpp.
Создать файл lab3.h, ввести текст файла и сохранить его.
//функция-операция +, как элемент класса
//файл заголовков lab3.h, заменим прототип друж. функ.
#include <iostream>
using std::cout;
class complex
{
public:
float d, m;
complex() {d=m=0;}
complex(float x, float y) {d=x; m=y;}
complex operator +(complex& x);
};
Добавить в файл кодов lab3.cpp текст функции-операции
operator + данного класса и функции main():
//файл кодов lab3.cpp
#include "stdafx.h"
#include "lab3.h"
complex complex::operator +(complex& x)
{
complex y;
y.d=d+x.d;
y.m=m+x.m;
return(y);
}
int _tmain(int args, _TCHAR* argv[])
{
complex obj1(0,1),obj2(1,0),obj3;
obj3=obj1+obj2;//интерпрет.,как obj3=obj1.operator+(obj2);
cout<<obj1.d<<"+i*"<<obj1.m<<'\n'; //результат: 0+i*1
cout<<obj2.d<<"+i*"<<obj2.m<<'\n'; //результат: 1+i*0
cout<<obj3.d<<"+i*"<<obj3.m<<'\n'; //результат: 1+i*1
return 0;
}
Компиляция, запуск и тестирование приложения
Выбрать команду Build->Build lab1. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы.
lab4 «Перегрузка операций объектов класса
Цель работы- переопределение действий операций ввода-вывода применительно к объектам конкретного класса.
Условие задачи: перегрузить операции извлечения (>>) и вставки (<<) для ввода-вывода объектов класса и операцию отрицания (!) - для проверки наличия данных в объекте класса.
Создание проекта консольного приложения
Выполнить этапы согласно п. 2.1 и ввести имя проекта lab4.
Создается исходный файл lab4.cpp, который будет содержать одну пустую функцию main():
int _tmain(int args, _TCHAR* argv[])
{return 0;}.
Создание и добавление исходных файлов в проект
Проект должен содержать файл заголовков lab4.h и файл кодов lab4.cpp.
Создать файл lab4.h, ввести текст файла и сохранить его.
//перегрузка операций (>>), (<<), (!)
//файл заголовков lab4.h
#include <iostream>
using std::cin;
using std::cout;
using std::istream;
using std::ostream;
class akt
{
public:
char tabn[10];
float objem;
akt()
{
tabn[0]=’\0’;
}