Разработка программы работы с классом, конструктором и деструктором класса на языке Visual С ++ 6.0

Библиотека как набор взаимосвязанных классов C++ используемые в приложениях. Структура каркаса приложений на базе библиотеки MFC, позволяющей программировать максимально близко к Windows API. Средство для ускорения написания кода MFC Application Wizard.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.04.2013
Размер файла 18,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

по дисциплине "Программирование"

на тему" Разработка программы работы с классом, конструктором и деструктором класса на языке Visual С ++ 6.0"

Николаев 2011

Содержание

1. Краткая характеристика VC++ с использованием MFC

2. Потоковые классы

3. Постановка задачи

4. Код программы с комментариями

Используемая литература

1. Краткая характеристика VC++ с использованием MFC

Одна из причин популярности языка C++ заключается в том, что его можно "расширять" библиотеками классов. Часть таких библиотек поставляется с компиляторами C++, часть продается независимыми фирмами, а какие-то библиотеки создаются программистами, так сказать, для внутреннего потребления. Библиотека классов - это набор взаимосвязанных классов C++, которые можно использовать в приложении. Математическая библиотека классов может выполнять наиболее распространенные математические операции, а библиотека коммуникационных классов - поддерживать обмен данными по последовательному каналу. Язык C++ сегодня является стандартом для разработки серьезных приложений и пользуется мощной поддержкой самых разных компаний.

Чтобы создавать максимально производительные приложения, нужно программировать максимально близко к Windows API. C++ и MFC предоставляют такую возможность, избавляя от написания методов WndProc вручную. "Каркасные" приложения имеют стандартную структуру. Приступая к крупному проекту, нужно выработать структуру кода. Но эта структура у каждого программиста своя, и новому участнику команды трудно приспособиться к ней. Каркас приложений на базе MFC предлагает свою общую структуру, отработанную на многих проектах и опробованную в разных программных средах. Каркас приложений - это надмножество библиотеки классов. Обычная библиотека представляет собой изолированный набор классов, предназначенных для использования в любой программе, а каркас приложений определяет структуру самой программы.

Достоинства "каркасных" приложений - компактность и высокая скорость работы, мы имеем дело с машинным кодом, который сгенерирован оптимизирующим компилятором.

Редакторы ресурсов - MFC Application Wizard и мастера средства -Class View значительно ускоряют написание кода, характерного для конкретного приложения. Например, редактор ресурсов создает заголовочный файл с уже определенными значениями для "define-констант. MFC Application Wizard генерирует "скелет* всего приложения, после чего в окне свойств можно добавлять обработчики сообщений и сопоставлять им сообщения. приложение программирование mfc windows

MFC Application Wizard - генератор кода, создающий рабочую заготовку Windows-приложения с теми компонентами, именами классов и исходными файлами, которые мы задали в его диалоговых окнах. MFC Application Wizard создает минимум - главная функциональность сосредоточена в базовых классах каркаса приложений. Классы библиотеки MFC дают возможность упростить написание программ и предоставляют для этого множество компонентов высокого уровня. Более того, мастера расширяемы, т. е. можно создавать собственные генераторы кода. А если одна команда занята разработкой множества проектов, то можно построить свой мастер для автоматизации работы.

У библиотеки MFC огромное количество разнообразных возможностей. Классы библиотеки MFC версии 6.0 представлены в версии Visual C++ 6.0, поддерживали следующие возможности:

· усовершенствованная поддержка справочной системы на основе HTML в MFC-приложениях;

· поддержка безоконных элементов управления;

· диалоговое окно печати в Windows 2000;

· более жесткий контроль типов в сообщениях;

· поддержка Dynamic HTML, позволяющая MFC-программисту разрабатывать приложения, способные динамически изменять и создавать HTML-страницы;

· технология Active Document Containment, позволяющая приложениям, основанным на MFC, включать активные документы (Active Documents);

· поддержка шаблонов поставщиков и потребителей OLE DB и привязки данных ADO, что очень удобно для разработчика программ доступа к БД, использующего MFC или ATL.

Широкий спектр возможностей MFC вместе с мощью каркаса приложений служит гарантией сохранения высокого спроса на программистов, умеющих работать с MFC.Ведь "стоимость" Windows-программистов на рынке труда выше, чем других, и вряд ли эта ситуация изменится в ближайшее время.

2. Потоковые классы

Программа на C++ представляет ввод и вывод как поток байтов. При вводе она читает байты из потока ввода, при выводе вставляет байты в поток вывода. Понятие потока позволяет абстрагироваться от того, с каким устройством ввода/вывода идет работа. Например, байты потока ввода могут поступать либо с клавиатуры, либо из файла на диске, либо из другой программы. Аналогично, байты потока вывода могут выводиться на экран, в файл на диске, на вход другой программы.

Обычно ввод/вывод осуществляется через буфер - область оперативной памяти, накапливающую какое-то количество байтов, прежде чем они пересылаются по назначению. При обмене, например, с диском это значительно повышает скорость передачи информации. При вводе с клавиатуры буферизация обеспечивает другое удобство для пользователя - возможность исправления ошибок набора символов, пока они не отправлены из буфера в программу.

Программа на C++ обычно очищает буфер ввода при нажатии клавиши Enter. При выводе на экран очистка буфера вывода происходит либо при появлении в выходном потоке символа новой строки '\п', либо при выполнении программой очередной операции ввода с клавиатуры.

Язык C++ предоставляет возможности ввода/вывода как на низком уровне (неформатировагтый ввод/вывод), так и на высоком уровне (форматированный ввод/вывод). В первом случае передача информации осуществляется блоками байтов данных без какого-либо их преобразования. Во втором - байты группируются для представления таких элементов данных, как целые числа, числа с плавающей запятой, строки символов и т. д.

Для поддержки потоков библиотека C++ содержит иерархию классов, построенную на основе двух базовых классов - ios и streambuf. Класс ios содержит базовые средства управления потоками, являясь родительским для других классов ввода/вывода. Класс streambuf обеспечивает общие средства управления буферами потоков и их взаимодействие с физическими устройствами, являясь родительским для других буферных классов. Связь между этими двумя классами следующая: в классе ios есть поле bp, являющееся указателем на streambuf.

3. Постановка задачи

1. Определить класс с именем TRAIN, содержащий следующие поля:

· название пункта назначения;

· номер поезда;

· время отправления.

2. Написать программу, выполняющую следующие действия:

· ввод с клавиатуры данных в массив, состоящий из восьми объектов типа TRAIN; записи должны быть упорядочены по номерам поездов;

· вывод на экран информации о поезде, номер которого введен с клавиатуры;

· если таких поездов нет, выдать на дисплей соответствующее сообщение.

4. Код программы с комментариями

План создания программы:

1. Создаем консольное приложение.

Win32 Console Application ->Finish.

2. Открываем папку Source Files->добавляем файл lab.cpp в котором набираем код программы.

3. Создаем файл train.h в папке Header Files, в котором обьявляем метод класса TRAIN.

/**************************************train.h*******************************/

#ifndef TRAIN_H

#define TRAIN_H

class TRAIN // создание класса TRAIN

{// обьявление данных класса

int TrainDataCount;

int poezdNums[7]; // обьявление переменной - номер поезда

char Citis[7][30]; // обьявление переменной - города прибытия

char VremyaOtpravleniya[7][30]; // обьявление переменной - время отправления

public:

// обьявление методов класса

TRAIN(int Count); // обьявление конструктора

~TRAIN(void); // обьявление диструктора

void Addpoezd(int iNum, char iCity[30],

char iTime[30]);

int Getpoezd(int Index);

void GetCity(int Index);

void GetTime(int Index);

void Sort(int CountP);

};

#endif

/************************************ lab.cpp************************************/

#include <iostream.h>

#include <windows.h>

#include <string.h>

#include <time.h>

#include "train.h"

template <class Stype> void quick(Stype*item,int count,char Citi[7][30],char Time[7][30]);

template <class Stype> void qS(Stype*item,char Citi[7][30],char Time[7][30],int left,int right);

// функцыи для сортировки класса

char result[30];

char iciti[30]; // обьявление переменных строкового типа

TRAIN::TRAIN(int Count)

{

TrainDataCount = 0; // описание конструктора

}

TRAIN::~TRAIN(void) // описание диструктора

{

}

// описание метода добавления поездов

void TRAIN::Addpoezd(int iNum, char iCity[30], char iTime[30])

{

poezdNums[TrainDataCount] = iNum;

strcpy(Citis[TrainDataCount], iCity);

strcpy(VremyaOtpravleniya[TrainDataCount], iTime);

TrainDataCount++;

}

int TRAIN::Getpoezd(int Index)

{

if(Index <= TrainDataCount)

{

return poezdNums[Index];

}

else

{

return -1;

}

}

// описание метода сортировки поездов

void TRAIN::Sort(int CountP)

{

quick(poezdNums, CountP, Citis, VremyaOtpravleniya);

}

void TRAIN::GetCity(int Index)

{

if(Index <= TrainDataCount)

{

strcpy(iciti, Citis[Index]);

}

}

// описание метода время прибытия поездов

void TRAIN::GetTime(int Index)

{

if(Index <= TrainDataCount)

{

strcpy(result, VremyaOtpravleniya[Index]);

}

}

void main() // создаем обьекты для массива

{

char End;

do

{

char S[150];

TRAIN train(7);

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

{

int n;

char c[50];

char t[50];

// пользовательский ввод данных

CharToOem("Введите номер поезда для записи: ", S);

cout << S;

cin >> n;

CharToOem("Введите пункт назначения: ", S);

cout << S;

cin >> c;

CharToOem("Введите время отправления: ", S);

cout << S;

cin >> t;

train.Addpoezd(n, c, t);

cout << '\n';

}

// вывод обьектов не сортированного класса

CharToOem("Несортированный класс:", S);

cout << S << '\n';

for (i=0;i<3;i++)

{

CharToOem("Номер поезда: ", S);

cout << S;

cout << train.Getpoezd(i) << '\t' << " ";

CharToOem("Пункт назначения: ", S);

cout << S;

train.GetCity(i);

cout << iciti << '\t' << " ";

CharToOem("Время отправления: ", S);

cout << S;

train.GetTime(i);

cout << result;

cout << '\n';

}

cout << '\n';

train.Sort(3);

// вывод обьектов сортированного класса

CharToOem("Отсортированный класс (по номеру поезда):", S);

cout << S << '\n';

for (i=0;i<3;i++)

{

CharToOem("Номер поезда: ", S);

cout << S;

cout << train.Getpoezd(i) << '\t' << " ";

CharToOem("Пункт назначения: ", S);

cout << S;

train.GetCity(i);

cout << iciti << '\t' << " ";

CharToOem("Время отправления: ", S);

cout << S;

train.GetTime(i);

cout << result;

cout << '\n';

}

cout << '\n';

int Poezd;

CharToOem("Введите номер поезда для поиска: ", S);

cout << S;

cin >> Poezd;

int c=0;

// цыкл для поиска номера поизда

for (i=0;i<3;i++)

{

if (Poezd == train.Getpoezd(i))

{

c++;

CharToOem("Пункт назначения: ", S);

cout << S;

train.GetCity(i);

cout << iciti << '\n';

CharToOem("Время отправления: ", S);

cout << S;

train.GetTime(i);

cout << result << '\n';

}

}

if (c == 0)

{

CharToOem ("Таких поездов нет!",S);

cout << S << '\n';

}

cout << '\n';

// запрос на продолжение выполнения роботы

CharToOem ("Продолжить выполнение работы?",S);

cout << S;

cin >> End;

}

while (End == 'Y' || End == 'y');

}

template <class Stype> void quick(Stype*item,int count, char Citi[7][30], char Time[7][30])

{

qS(item, Citi, Time, 0, count-1);

}

// рекурсивные функцыи для сортировки массива

template <class Stype> void qS(Stype*item, char Citi[7][30], char Time[7][30], int left,int right)

{

int i,j;

Stype x,y;

i = left; j = right;

x = item[(left+right/2)];

do

{

while (item[i]<x && i<right) i++;

while (x<item[j] && j>left) j--;

if(i<=j)

{

y = item[i];

item[i] = item[j];

item[j] = y;

char t[30];

strcpy(t, Citi[i]);

strcpy(Citi[i], Citi[j]);

strcpy(Citi[j], t);

strcpy(t, Time[i]);

strcpy(Time[i], Time[j]);

strcpy(Time[j], t);

i++;

j--;

}

}

while (i<=j);

if(left<j) qS(item, Citi, Time,left,j);

if(i<right) qS(item, Citi, Time, i,right);

}

Используемая литература

1. Круглински Д., Уингоу С., Шеферд Дж. "Программирование на Microsoft Visual C++ 6.0" /Пер, с англ. - Питер; М.: Изд.-торг. дом "Русская Редакция", 2004. - 861 с.: ил.

2. Шеферд Джордж "Программирование на Microsoft Visual C++ .NET" /Пер. с англ, - М.: Издательско-торговый дом "Русская Редакция", 2003. - 928 стр.: ил.

3. Т.А. Павловская "С/С++. Программирование на языке высокого уровня". СПб.: Питер, 2007.

4. С.В. Глушаков, А.В. Коваль, С.В. Смирнов "Язык программирования С++" Изд-во Фолио, 2001.

Размещено на Allbest.ru

...

Подобные документы

  • Разработка Windows-приложений с использованием библиотеки MFC. Базовый набор классов, написанных на языке С++ и предназначенных для упрощения процесса программирования под Windows. Фундаментальные идеи объектно-ориентированного программирования.

    курсовая работа [348,1 K], добавлен 02.07.2011

  • Теоретические основы написания Windows-приложений с использованием библиотеки MFC. Основы программирования под Windows. Проектирование приложений в среде Microsoft Visual C++. Описание логической структуры приложения, его функциональное назначение.

    курсовая работа [1,3 M], добавлен 12.12.2011

  • Теоретические основы разработки Windows-приложений с использованием библиотеки MFC. Создание приложения с помощью Visual C++. Описание логической структуры приложения. Установка и запуск программы. Входные и выходные данные. Преимущество MFC библиотек.

    курсовая работа [563,2 K], добавлен 21.06.2011

  • Определение программного модуля. Принципы использования dll-библиотеки. Преимущества и недостатки использования dll-библиотек. Описание коэффициентов моделей. Разработка структуры классов. Реализация библиотеки классов в среде разработки MS Visual Studio.

    дипломная работа [676,6 K], добавлен 16.06.2015

  • Порядок составления программы, тестирующей знания пользователя по разделу физики "Электрическое поле", написанной на языке Visual C++ с использование библиотеки MFC. Листинг программы и ее практическое значение, принципы работы, структура и элементы.

    курсовая работа [172,5 K], добавлен 22.06.2011

  • Разработка программы, проверяющей уровень знаний по разделу стереометрии и позволяющей выбор один из нескольких вариантов и ввод ответа. Характеристика библиотеки MFC, тела, классов и файлов приложения, цикла сообщений и текстовых запусков программы.

    курсовая работа [1,5 M], добавлен 28.06.2011

  • Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.

    курсовая работа [60,4 K], добавлен 07.03.2013

  • Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.

    лабораторная работа [3,7 M], добавлен 22.03.2012

  • Методика и основные этапы разработки web-библиотеки, требования к ней, содержание, структура и элементы. Идейное описание системы, направления ее проектирования. Порядок написания кода и тестирование систем, ее важнейшие функции и сферы использования.

    курсовая работа [1,2 M], добавлен 08.02.2013

  • Использование в программах, написанных на языке C, Windows application programming interfaces. Роль центрального процессора. Архитектура Фон Неймана. Оперативная память. Графическая плата. Создание интерфейса программы. Разработка машинного кода.

    реферат [101,5 K], добавлен 15.05.2014

  • Иерархия основных классов MFC (базовой библиотеки классов). Структура простой MFC программы. Работа с текстом в MFC. Функции вывода текста, установки цветов, режимов отображения, получение метрик. Применение контекста устройства, обработка сообщений.

    контрольная работа [27,8 K], добавлен 11.08.2010

  • Принципы написания консольных приложений на языке Java в среде Eclipse. Составление программы завтрака на основе списка продуктов, передаваемых в качестве параметров в командной строке. Создание пакета для классов, интерфейса, базового класса иерархии.

    лабораторная работа [1,2 M], добавлен 01.05.2014

  • Сведения об окружности, ее радиус и площадь. Разработка программы для вычисления площади круга и длины окружности по заданному радиусу с использованием Windows.Forms-приложений. Пошаговая инструкция; описание главного окна, код, примеры работы программы.

    курсовая работа [818,6 K], добавлен 14.09.2014

  • Особенности разработки и представления проекта программы, представляющей собой аналоговые часы с циферблатом, часовой, минутной и секундной стрелкой. Применение MS Visual Studio 2010, языка С++ для ее написания и компилирования. Специфика библиотеки MFC.

    курсовая работа [440,2 K], добавлен 17.03.2014

  • Техника создания графики при помощи API функций, экспортируемых библиотекой GDI32.DLL. Разработка на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде.

    курсовая работа [2,8 M], добавлен 27.01.2010

  • Создание программы на языке Visual C++ с использованием библиотеки MFC для тестирования знаний пользователя в области геометрии. Генерирование тестовых заданий, введение ответа, оценка результата; логическая структура приложения; техническое обеспечение.

    курсовая работа [2,1 M], добавлен 26.06.2011

  • Разработка приложения Windows "Учет заказов и продаж". Структура базы данных, информационное и программное обеспечение. Описание программы на языке Visual C+ с использованием технологии Microsoft.net, элементы управления и руководство пользователя.

    курсовая работа [4,8 M], добавлен 25.06.2011

  • Создание класса wind, характеризующего ветровой режим, и программы, демонстрирующей применение разработанного класса. Программный модуль на языке программирования C++ в среде программирования C++Builder6/0, демонстрирующая работу с классом wind.

    курсовая работа [123,5 K], добавлен 24.06.2010

  • Разработка программы, моделирующей работу библиотеки. Функция поиска по базе книг и граждан, записанных в библиотеку. Поиск книги. Добавление или удаление абонента. Текст программы на С#. Просмотр списка должников. Запись книги на абонента в программе.

    курсовая работа [426,9 K], добавлен 20.02.2014

  • Обзор технологии OpenStack, область ее применения. Реализация библиотеки классов. Реализация базовых классов и интерфейсов архитектуры. Создание виртуального сервера. Интеграция разработанной библиотеки классов и архитектура проектного решения.

    дипломная работа [1,0 M], добавлен 09.08.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.