Лабораторная работа №2 по VISUALC++ 2005
« Добавление классов, функций - членов и элементов данных класса в консольное приложение Win 32 »
1 Задание
Создать проект консольного приложения Win 32.
В него добавить класс «Букет» с элементами данных: название, количество цветков в букете, стоимость одного цветка, стоимость букета.
Предусмотреть функции-члены: для ввода значений элементов-данных с клавиатуры, для расчёта стоимости букета и для вывода значений всех элементов-данных на экран.
В главной функции описать объект класса и реализовать вызов всех членов-функций.
2 Общие указания
Рассмотрим конкретный пример.
Пусть создано консольное приложение Win32 с именем lab2a (см. лабор.работу №1). Ставится задача добавить
в него класс man с элементами данных:
char*name; //имя
int days; //количество отработанных дней
float rascenka; //сколько гривен за день
float zarplata;
Предусмотреть функции – члены (методы);
void getinfo(); // Ввод элементов данных
void calculation(); //Расчёт зарплаты
void putinfo(char*); // Вывод на экран всех элементов данных
В главной функции описать объект класса man и реализовать вызов методов класса.
Необходимо выполнить ряд действий.
1) Выбрать вкладку Solution Explorer.
2) Навести курсор на имя решения lab2a и выделить его.
3) Нажать правую кнопку мыши. В открывшемся меню выбрать Add Class.
4) В появившимся окне Add Class – Lab2a выбрать категорию C++.
Шаблон(templates) автоматически установится на C++ Class.
5) Нажать кнопку Add.
Появится окно Generic C++ Class Wizard – lab2a.
В окне Class name ввести имя man. Одновременно получат такое же имя .hfile и .cppfile. в окне Base Class(базовый класс) ничего не указыватm, так как класс man не является производным.
В окне Access (доступ) оставить public.
Нажать Finish.
7) Убеждаемся, что в файле man.h появилось описание класса man. Для этого выбрать вкладку Solution... щёлкнуть на знак « +» напротив изображения папки Header Files. Раскроется содержимое этой папки. Щёлкнуть дважды на файле man.h.
В окне редактора появится текст
#pragma once
class man
{
public:
man(void);
public:
~man(void);
};
8) Щёлкнуть дважды на файле man.cpp.
В нём текст:
#include “stdAfx.h”
#include “man.h”
man::man(void) //Пустой конструктор
{
}
man::~man(void) //Пустой деструктор
{
}
9) В класс man добавим элементы данных. Это можно было бы сделать самостоятельно. Однако лучше использовать меню.
Для этого:
· Выделить вкладку Class View.
· Щёлкнуть на «+» напротив lab2a. Откроется содержимое.
· Щёлкнуть на значке «+»напротив Classes. Раскроется список имеющихся классов. В этом списке один только класс man.
· Выделить класс man и нажать правую кнопку мыши. В раскрывшемся меню выбрать Add Variable. Появится окно Add Member Variable Wizard-lab2a.
· В окне Access выбрать доступ private.
· В окне variable type ввести char*.
· Имя name ввести в окне variable name.
· Нажать Finish.
Подобным образом ввести и остальные элементы данных.
10) В классе man добавить функции – члены (методы). Для этого по-прежнему выделить класс man и правой кнопкой мыши вызвать контекстное меню.
Выбрать Add Function.
Появится окно Add Member Function Wizard – lab2a.
Заполнить окна: Return type (тип возвращаемого результата), Function name, Parameter type (тип параметра), Parameter name. Если функция без параметров, в окне Parameter type вводить void. При этом окно Parameter name остается пустым. Если же у функции есть один и более параметров, то вводится тип первого параметра, его имя и нажимается Add. После этого вводится тип и имя второго параметра и снова нажимается Add. В окне Access устанавливается метка доступа. По умолчанию это public.
Нажать Finish.
Так, например, для void putinfo(char*imja) в окно Parameter type вводим char*, а в Parameter name – imja.
Нажимаем Add, а затем Finish.
11) Переходим на вкладку Solution и раскрываем файл man.h.
Если он есть в списке вверху окна редактирования, то следует просто щёлкнуть на нём.
Убеждаемся, что в файле man.h имеются заголовки членов-функций и элементы данных класса man вместе с метками доступа.
12) Раскрываем файл man.cpp. Обнаруживаем, что все элементы данных в конструкторе инициализированы нулями:
man::man(void):name(NULL), days(0), rascenka(0), zarplata(0)
{
}
13)Теперь необходимо самостоятельно определить содержимое членов-функций класса man, заполняя их в файле man.cpp.
При необходимости можно описывать и использовать в них локальные переменные. Заполняем член-функцию getinfo().
void man::getinfo()
{
name=new char[12];
cout<<”Enter name”<<endl;
cin>>name;
cout<<”Enter days”<<endl;
cin>>days;
count<<”Enter rascenka”<<endl;
cin>>rascenka;
}
Далее заполняем остальные методы.
void man::calculation()
{
zarplata=days*rascenka;
}
void man::putinfo(char*imja)
{
cout<<”For object”<<imja<<” name=”
<<name<<” days=”<<days<<” rascenka=”
<<rascenca<<” zarplata=”<<zarplata<<endl;
}
Для того, чтобы работали cin и cout, следует в файл man.cpp добавить
#include<iostream>
using namespase std; //Описание пространства имён.
14) Теперь необходимо заполнить главную функцию _tmain().
Для этого на вкладке Solution выбрать файл lab2a.cpp и дважды щёлкнуть на нём.
Добавить в него
#include “man.h”
Иначе появится ошибка: «man undeclared identifier» (man – необъявленный идентификатор).
В главной функции определим объект slesar, который будет работать с функциями-членами.
{
man slesar;
slesar.getinfo();
slesar.calculation();
slesar.putinfo(“slesar”);
}
15) Строим и запускаем программу.
Напомним, что это можно сделать, нажав Ctrl+F5 или с помощью меню Build → Build Solution и затем (если нет ошибок) Debug → Start Without Debugging.
3 Контрольные вопросы
1. Как создать проект консольного приложения Win 32?
2. Как добавить в проект класс?
3. Как ввести в класс элементы данных?
4. Как ввести в класс члены-функции?
5. Какое расширение у файла, в котором описаны класс, элементы данных и члены-функции и как его раскрыть?
6. Какое расширение у файла, в котором определены члены-функции класса и как его раскрыть?
7. В каком файле находится главная функция и как его раскрыть? Зачем в этом файле директива #include “*.h”?
Список литературы
1 Айвор Хортон VISUAL C++ 2005 Базовый курс, «Диалектика», Москва*Санкт-Петербург*Киев , 2007г.
2 Сергеев А.П., Терен А.Н. Программирование в VISUAL C++ 2005 «Диалектика», Москва*Санкт-Петербург*Киев , 2006г.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.