- •Оглавление
- •Введение
- •Общие положения
- •Структура рабочего стола среды программирования
- •Главное окно
- •Некоторые замечания
- •О рабочем столе
- •О справочной системе Help
- •Структура программ в VC++
- •Переход к созданию консольного приложения
- •Программа с оператором while
- •Имена и типы переменных
- •Оператор while
- •Оператор for
- •Символические константы
- •Глава 2. Программы для работы с символьными данными
- •Программа копирования символьного файла. Вариант 1
- •Программа копирования символьного файла. Вариант 2
- •Подсчет символов в файле. Вариант 1
- •Подсчет символов в файле. Вариант 2
- •Подсчет количества строк в файле
- •Подсчет количества слов в файле
- •Глава 3. Работа с массивами данных
- •Одномерные массивы
- •Многомерные массивы
- •Глава 4. Создание и использование функций
- •Создание некоторых функций
- •Ввод строки с клавиатуры
- •Функция выделения подстроки из строки
- •Функция копирования строки в строку
- •Внешние и внутренние переменные
- •Область действия переменных
- •Как создать свой внешний файл
- •Атрибут static
- •Рекурсивные функции
- •Некоторые итоговые данные по изучению функций
- •Перегрузка функций
- •Использование шаблонов функций
- •Создание простого шаблона функции
- •Шаблоны, которые используют несколько типов
- •Глава 5. Функции для работы с символьными строками
- •Основные стандартные строковые функции
- •Функция sprintf()
- •Функция strcpy()
- •Функция strcmp()
- •Функция strcmpi()
- •Функция strcat()
- •Функция strlen()
- •Пример программы проверки функций
- •Новые типы переменных
- •Константы
- •Новые операции
- •Преобразование типов данных
- •Побитовые логические операции
- •Операции и выражения присваивания
- •Условное выражение
- •Операторы и блоки
- •Конструкция if-else
- •Конструкция else-if
- •Переключатель switch
- •Уточнение по работе оператора for
- •Оператор continue
- •Оператор goto и метки
- •Глава 7. Работа с указателями и структурами данных
- •Указатель
- •Указатели и массивы
- •Операции над указателями
- •Указатели и аргументы функций
- •Указатели символов и функций
- •Передача в качестве аргумента функции массивов размерности больше единицы
- •Массивы указателей
- •Указатели на функции
- •Структуры. Объявление структур
- •Обращение к элементам структур
- •Структуры и функции
- •Программы со структурами
- •Функция возвращает структуру
- •Функция возвращает указатель на структуру
- •Программа упрощенного расчета заработной платы одному работнику
- •Рекурсия в структурах
- •Битовые поля в структурах
- •Категории памяти
- •Глава 8. Классы в С++. Объектно-ориентированное программирование
- •Классы
- •Принципы построения классов
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Примеры создания классов
- •Пример 1
- •Пример 2
- •Пример 3
- •Конструктор класса
- •Деструктор класса
- •Классы и структуры в среде CLR
- •Классы и структуры
- •Абстрактные классы
- •Статические функции и элементы данных
- •Частные и общие данные. Интерфейсные функции
- •Использование оператора глобального разрешения для элементов класса
- •Глава 9. Ввод и вывод в языках С и С++
- •Ввод и вывод в С
- •Ввод/вывод файлов
- •Основные функции для работы с файлами
- •Стандартный ввод/вывод
- •Функции стандартного ввода/вывода
- •Ввод/вывод в С++
- •Общие положения
- •Ввод/вывод с использованием разных классов
- •Пространства имен
- •Работа с классом fstream
- •Работа с классом ofstream
- •Работа с классом ifstream
- •Работа с бинарным файлом
- •Стандартный ввод/вывод в С++
- •Общие положения
- •Стандартный вывод cout
- •Стандартный ввод cin
- •Глава 10. Продолжение изучения среды Visual C++
- •Создание проекта
- •Некоторые файлы проекта
- •Окно сведений об объекте
- •Вкладка Events
- •Вкладка Property Pages
- •Работа с окном сведений об объекте
- •Контекстное меню редактора кода
- •Суфлер кода (подсказчик)
- •Настройка редактора кода
- •Управление окнами редактора
- •Изменение шрифта и цвета
- •Начало редактирования кода программного модуля
- •Компоненты среды программирования VC++
- •Класс Form
- •Дизайнер форм
- •Помещение компонента в форму
- •Другие действия с дизайнером форм
- •Контекстное меню формы
- •Добавление новых форм к проекту
- •Организация работы с множеством форм
- •Вызов формы на выполнение
- •Cвойства формы
- •События формы
- •Некоторые методы формы
- •Рисование графиков в форме
- •Глава 11. Компоненты, создающие интерфейс между пользователем и приложением
- •Пространство имен System
- •Работа с переменными некоторых типов
- •Компонент Button
- •Свойства Button
- •События Button
- •Методы Button
- •Компонент Panel
- •Некоторые свойства Panel
- •Некоторые события Panel
- •Компонент Label
- •Некоторые свойства Label
- •События Label
- •Компонент TextBox
- •Некоторые свойства TextBox
- •События TextBox
- •Некоторые методы TextBox
- •Компонент MenuStrip
- •Некоторые свойства MenuStrip
- •События MenuStrip
- •Компонент ContextMenuStrip
- •Компонент ListView
- •Некоторые свойства ListView
- •События ListView
- •Компонент WebBrowser
- •Компонент ListBox
- •Как работать с ListBox
- •Свойства ListBox
- •Как использовать ListBox
- •Как формировать список строк
- •Компонент СomboBox
- •Свойства ComboBox
- •События ComboBox
- •Некоторые методы ComboBox
- •Примеры использования ComboBox
- •Пример 1
- •Пример 2
- •Пример 3
- •Компонент MaskedTextBox
- •Свойства MaskedTextBox
- •Компонент СheckedListBox
- •Пример: домашний телефонный справочник
- •Компоненты CheckBox и RadioButton
- •Компонент GroupBox
- •Компонент LinkLabel
- •Компонент PictureBox
- •Некоторые свойства компонента PictureBox
- •Компонент DateTimePicker
- •Форматные строки даты и времени
- •Стандартное и пользовательское форматирование
- •Некоторые сведения о работе с датами
- •Компонент TabControl
- •Как задавать страницы
- •Некоторые методы TabControl
- •Некоторые свойства страницы TabPage
- •Как защитить страницу от неавторизованного доступа
- •Задача регистрации пользователя в приложении
- •Компонент Timer
- •Компонент ProgressBar
- •Компонент OpenFileDialog
- •Компонент SaveFileDialog
- •Компонент ColorDialog
- •Компонент FontDialog
- •Компонент PrintDialog
- •Компонент ToolStrip
- •Некоторые свойства ToolStrip
- •Использование ToolStrip
- •Глава 12. Работа с наборами данных. Общие сведения о базах данных
- •Проектирование баз данных
- •Модель базы данных
- •Структура проектирования базы данных
- •Идентификация сущностей и атрибутов
- •Проектирование таблиц
- •Определение неповторяющихся атрибутов
- •Набор правил при разработке таблицы
- •Определение ограничений на целостность данных
- •Принудительное обеспечение целостности данных
- •Выбор индексов
- •Язык SQL
- •Примеры оператора SELECT
- •Наборы данных (компонент DataSet)
- •Общая технология организации работы с базой данных в приложении
- •Пример работы с базой данных
- •Глава 13. Управление исключительными ситуациями
- •Операторы try, catch и throw
- •Пример 1
- •Пример 2
- •Классы типов исключений
- •Пример 3
- •Функции, выдающие исключения
- •Пример 1. Перевод строки String ^ в ASCII-строку
- •Пример 2. Перевод ASCII-строки в строку String ^
- •Пример 3. Преобразование строки String ^ в строку wchar_t
- •Пример 4. Преобразование строки wchar_t в строку String ^
- •Пример 5. Маршалинг native-структуры
- •Пример 6. Работа с массивом элементов native-структуры в managed-функции
- •Пример 7. Доступ к символам в классе System::String
- •Пример 10. Преобразование String в string
- •Пример 11. Преобразование string-строки в String-строку
- •Пример 12. Объявление дескрипторов в native-типах
- •Пример 13. Работа с дескриптором в native-функции
- •Предметный указатель
Глава 8. Классы в С++. Объектно-ориентированное программирование |
151 |
//обработка класса в головной программе int main()
{
produce izd; //определение объекта из класса (экземпляр класса) izd.setpart(100, 200, 250.5); //вызов метода класса izd.show(); //вывод данных
_getch();
}
Рис. 8.3. Результат работы программы листинга 8.3
Этот небольшой созданный нами класс позволяет выводить на экран характеристики изделия, описанного в нем.
Пример 3
Используем класс, созданный в примере 2, для создания нового класса — наследника класса из примера 2. Новый класс должен будет задавать дополнительную характеристику изделия — его форму. Пример программы приведен в листинге 8.4, результат работы программы — на рис. 8.4.
Листинг 8.4
// 8.3_2011.cpp
#include "stdafx.h"
#include <stdio.h> //для printf() #include <conio.h> //для _getch() using namespace System;
//детали изделия в качестве объектов (экземпляров класса)
class produce //начало определения класса
{
private:
int modelnumber; //номер изделия int partnumber; //номер детали float cost; //стоимость детали public:
//установка данных //функция-член класса
//присваивает данным класса значения своих параметров
152 |
Часть I. Изучение языка С/С++ |
|
|
void setpart(int mn, int pn, float c) |
|
{ |
|
modelnumber = mn; |
|
partnumber = pn; |
|
cost = c; |
|
} |
|
void show() //вывод данных |
|
{ |
|
printf("The Number of the Model is |
%d\n",modelnumber); |
printf("The Number of the Part is |
%d\n",partnumber); |
printf("The Cost of the Part is |
%.2f\n",cost); |
} |
|
}; |
|
//объявление класса-наследника с новыми членами: class MoreProduce : public produce
{
public:
char *ProduceForm; //описание формы изделия void FormDecl(char *s)
{
ProduceForm=s;
}
void show1()
{
printf("The ProduceForm is %s\n",ProduceForm);
}
};
//обработка класса в головной программе int main()
{
MoreProduce newizd;
newizd.setpart(100,200,250.5);
newizd.FormDecl("Square");
newizd.show();
newizd.show1(); _getch();
}
Рис. 8.4. Результат работы программы листинга 8.4