C/C++ и MS Visual C++ 2012 для начинающих

Борис Пахомов

Обложка:


Предисловие ко 2-му изданию 1
Введение 3

Часть I. Изучение языка С/С++ 5
Глава 1. Общие сведения о среде Visual C++ 2011. Создание консольного приложения
7
Общие положения 7
Структура рабочего стола среды программирования 9
Главное окно 9
Некоторые замечания 11
О рабочем столе 11
О справочной системе Help 15
Структура программ в VC++ 17
Переход к созданию консольного приложения 19
Типы данных, простые переменные и основные операторы цикла. Создание простейшего консольного приложения 25
Программа с оператором while 31
Имена и типы переменных 32
Оператор while 34
Оператор for 36
Символические константы 37
Глава 2. Программы для работы с символьными данными
39
Программа копирования символьного файла. Вариант 1 41
Программа копирования символьного файла. Вариант 2 44
Подсчет символов в файле. Вариант 1 44
Подсчет символов в файле. Вариант 2 46
Подсчет количества строк в файле 49
Подсчет количества слов в файле 50
Глава 3. Работа с массивами данных
53
Одномерные массивы 53
Многомерные массивы 56
Глава 4. Создание и использование функций
59
Создание некоторых функций 61
Ввод строки с клавиатуры 61
Функция выделения подстроки из строки 64
Функция копирования строки в строку 65
Головная программа для проверки функций getline(), substr(), copy() 66
Внешние и внутренние переменные 68
Область действия переменных 71
Как создать свой внешний файл 71
Атрибут static 72
Рекурсивные функции 74
Некоторые итоговые данные по изучению функций 74
Перегрузка функций 77
Использование шаблонов функций 78
Создание простого шаблона функции 78
Шаблоны, которые используют несколько типов 79
Глава 5. Функции для работы с символьными строками
81
Основные стандартные строковые функции 81
Функция sprintf() 81
Функция strcpy() 81
Функция strcmp() 82
Функция strcmpi() 82
Функция strcat() 82
Функция strlen() 82
Пример программы проверки функций 83
Глава 6. Дополнительные сведения о типах данных, операциях, выражениях и элементах управления
87
Новые типы переменных 87
Константы 90
Новые операции 91
Преобразование типов данных 93
Побитовые логические операции 94
Операции и выражения присваивания 95
Условное выражение 97
Операторы и блоки 97
Конструкция if-else 97
Конструкция else-if 98
Переключатель switch 102
Уточнение по работе оператора for 105
Оператор continue 105
Оператор goto и метки 106
Глава 7. Работа с указателями и структурами данных
107
Указатель 107
Указатели и массивы 111
Операции над указателями 113
Указатели и аргументы функций 113
Указатели символов и функций 115
Передача в качестве аргумента функции массивов размерности больше единицы 119
Массивы указателей 119
Указатели на функции 120
Структуры. Объявление структур 122
Обращение к элементам структур 124
Структуры и функции 127
Программы со структурами 127
Функция возвращает структуру 127
Функция возвращает указатель на структуру 130
Программа упрощенного расчета заработной платы одному работнику 133
Рекурсия в структурах 135
Битовые поля в структурах 140
Категории памяти 141
Глава 8. Классы в С++. Объектно-ориентированное программирование
143
Принципы объектно-ориентированного программирования 151
Инкапсуляция 151
Инкапсуляция с использованием методов get и set 152
Инкапсуляция с использованием свойств 156
О доступности и статичности свойств 162
Наследование 162
Запрет на наследование 166
Добавление к классу запечатанного класса 167
Полиморфизм 169
Абстрактные классы 172
Абстрактные классы и интерфейсы 172
Структуры 174
Некоторый промежуточный итог 176
Статические функции и элементы данных 176
Использование элементов с атрибутами public static, если объекты не существуют 179
Частные и общие данные. Интерфейсные функции 181
Использование оператора глобального разрешения для элементов класса 181
Глава 9. Ввод и вывод в языках С и С++
183
Ввод и вывод в С 183
Ввод/вывод файлов 183
Основные функции для работы с файлами 184
Стандартный ввод/вывод 190
Функции стандартного ввода/вывода 190
Ввод/вывод в С++ 196
Общие положения 196
Ввод/вывод с использованием разных классов 197
Пространства имен 198
Работа с классом fstream 199
Работа с классом ofstream 202
Работа с классом ifstream 203
Работа с бинарным файлом 205
Стандартный ввод/вывод в С++ 207
Общие положения 207
Стандартный вывод cout 207
Стандартный ввод cin 211

Часть II. Приложения Windows Form 213
Глава 10. Продолжение изучения среды Visual C++
215
Создание проекта 215
Некоторые файлы проекта 220
Окно сведений об объекте 222
Вкладка Events 223
Вкладка Property Pages 225
Работа с окном сведений об объекте 225
Редактор кода, h-модуль и режим дизайна (проектирования). Указатель this 226
Контекстное меню редактора кода 228
Суфлер кода (подсказчик) 230
Настройка редактора кода 230
Управление окнами редактора 230
Настройка опций редактора через команду Tools главного меню 231
Изменение шрифта и цвета 233
Начало редактирования кода программного модуля 233
Компоненты среды программирования VC++ 234
Класс Form 234
Дизайнер форм 234
Помещение компонента в форму 236
Другие действия с дизайнером форм 236
Контекстное меню формы 237
Добавление новых форм к проекту 238
Организация работы с множеством форм 239
Вызов формы на выполнение 239
Cвойства формы 239
События формы 252
Некоторые методы формы 253
Рисование графиков в форме 255
Глава 11. Компоненты, создающие интерфейс между пользователем и приложением
263
Пространство имен System 264
Работа с переменными некоторых типов 265
Компонент Button 268
Свойства Button 268
События Button 272
Методы Button 273
Компонент Panel 273
Некоторые свойства Panel 274
Некоторые события Panel 274
Компонент Label 276
Некоторые свойства Label 276
События Label 277
Компонент TextBox 277
Некоторые свойства TextBox 278
События TextBox 281
Некоторые методы TextBox 283
Компонент MenuStrip 284
Некоторые свойства MenuStrip 290
События MenuStrip 291
Компонент ContextMenuStrip 291
Компонент ListView 292
Некоторые свойства ListView 296
События ListView 298
Компонент WebBrowser 300
Компонент ListBox 306
Как работать с ListBox 306
Свойства ListBox 307
Как использовать ListBox 310
Как формировать список строк 310
Компонент СomboBox 316
Свойства ComboBox 317
События ComboBox 319
Некоторые методы ComboBox 319
Примеры использования ComboBox 321
Пример 1 321
Пример 2 326
Пример 3 330
Компонент MaskedTextBox 335
Свойства MaskedTextBox 337
Компонент СheckedListBox 339
Пример: домашний телефонный справочник 342
Компоненты CheckBox и RadioButton 356
Компонент GroupBox 360
Компонент LinkLabel 361
Компонент PictureBox 372
Некоторые свойства компонента PictureBox 372
Компонент DateTimePicker 375
Форматные строки даты и времени 377
Стандартное и пользовательское форматирование 378
Некоторые сведения о работе с датами 383
Компонент TabControl 391
Как задавать страницы 392
Некоторые методы TabControl 394
Некоторые свойства страницы TabPage 395
Как защитить страницу от неавторизованного доступа 396
Задача регистрации пользователя в приложении 398
Компонент Timer 408
Компонент ProgressBar 412
Компонент OpenFileDialog 413
Компонент SaveFileDialog 419
Компонент ColorDialog 425
Компонент FontDialog 425
Компонент PrintDialog 426
Компонент ToolStrip 427
Некоторые свойства ToolStrip 428
Использование ToolStrip 429
Глава 12. Работа с наборами данных. Общие сведения о базах данных
431
Проектирование баз данных 432
Модель базы данных 433
Структура проектирования базы данных 433
Идентификация сущностей и атрибутов 434
Проектирование таблиц 435
Определение неповторяющихся атрибутов 436
Набор правил при разработке таблицы 437
Определение ограничений на целостность данных 437
Принудительное обеспечение целостности данных 438
Выбор индексов 438
Язык SQL 438
Примеры оператора SELECT 440
Наборы данных (компонент DataSet) 441
Общая технология организации работы с базой данных в приложении 442
Пример работы с базой данных 443
Глава 13. Управление исключительными ситуациями
477
Операторы try, catch и throw 477
Пример 1 479
Пример 2 480
Классы типов исключений 482
Пример 3 484
Функции, выдающие исключения 486
Глава 14. Преобразование между нерегулируемыми и регулируемыми (режим CLR) указателями
489
Пример 1. Перевод строки String ^ в ASCII-строку 490
Пример 2. Перевод ASCII-строки в строку String ^ 492
Пример 3. Преобразование строки String ^ в строку wchar_t 493
Пример 4. Преобразование строки wchar_t в строку String ^ 495
Пример 5. Маршалинг native-структуры 496
Пример 6. Работа с массивом элементов native-структуры в managed-функции 498
Пример 7. Доступ к символам в классе System::String 500
Пример 8. Преобразование char * в массив System::Byte 501
Пример 9. Преобразование System::String в wchar_t * или char * 502
Пример 10. Преобразование String в string 503
Пример 11. Преобразование string-строки в String-строку 507
Пример 12. Объявление дескрипторов в native-типах 508
Пример 13. Работа с дескриптором в native-функции 509

Предметный указатель 511