Books:Qt-C++: различия между версиями
мНет описания правки |
|||
(не показаны 22 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
{{Паспорт книги | {{Паспорт книги | ||
|author = <!-- Автор(ы) -->Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало | |author = <!-- Автор(ы) --> Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало | ||
|title = <!-- Название книги -->Программирование на языке С++ в среде Qt Creator | |title = <!-- Название книги --> Программирование на языке С++ в среде Qt Creator | ||
|cover = <!-- Обложка --> | |cover = <!-- Обложка --> Qt_Creator-cover1.png | ||
|abstract = <!-- Краткая аннотация -->Книга является учебником по алгоритмизации и программированию на С++ и пособием по разработке визуальных приложений в среде Qt | |abstract = <!-- Краткая аннотация --> Книга является учебником по алгоритмизации и программированию на С++ и пособием по разработке визуальных приложений в среде Qt Creator. Также в книге описаны среда программирования Qt Creator, редактор Geany, кроссплатформенная библиотека построения графиков MathGL. При чтении книги не требуется предварительного знакомства с программированием. | ||
Creator. Также в книге описаны среда программирования Qt Creator, | |||
редактор Geany, кроссплатформенная | ''Издание предназначено для студентов, аспирантов и преподавателей вузов, а также для всех, кто изучает программирование на С++ | ||
MathGL. При чтении книги не требуется предварительного знакомства с | и осваивает кроссплатформенный инструментарий Qt для разработки.'' | ||
программированием. | |pages = <!-- Количество страниц --> 448 стр, илл. | ||
Издание предназначено для студентов, аспирантов и преподавателей вузов, а также для всех, кто изучает программирование на С++ | |format = <!-- Формат книги --> 70x100/16 | ||
и осваивает кроссплатформенный инструментарий Qt для разработки. | |date = <!-- Дата выхода --> Январь 2015 | ||
|pages = <!-- Количество страниц --> | |||
|format = <!-- Формат книги -->70x100/16 | |||
|date = <!-- Дата выхода --> | |||
|disk = <!-- Прилагаемый диск --> | |disk = <!-- Прилагаемый диск --> | ||
|series = <!-- Серия -->[[Books:Altlibrary|Библиотека ALT | |series = <!-- Серия --> [[Books:Altlibrary | Библиотека ALT]] | ||
|publisher = <!-- Издатель -->ALT Linux | |publisher = <!-- Издатель --> ALT Linux | ||
|isbn = <!-- ISBN -->978-5-905167-16-4 | |isbn = <!-- ISBN --> 978-5-905167-16-4 | ||
|run = <!-- Тираж --> | |run = <!-- Тираж --> On demand | ||
|ebook = <!-- Электронная версия --> | |ebook = <!-- Электронная версия --> [http://www.altlinux.org/images/4/4b/Book-qtC%2B%2B.pdf Book-qtC++.pdf] | ||
|sales = <!-- Где купить --> | |sales = <!-- Где купить --> | ||
|status = <!-- Статус --> | |status = <!-- Статус --> Издано | ||
}} | }} | ||
== Содержание == | == Содержание == | ||
{| class="standard collapsible collapsed" | {| class="standard collapsible collapsed" | ||
!colspan=2| Оглавление | !colspan=2| Оглавление | ||
|-class="bright" | |||
|Предисловие || 7 | |||
|- | |- | ||
|-class="bright" | |||
|Глава 1. Знакомство с языком С++ || 8 | |||
|- | |- | ||
|1.1 Первая программа на C++ || 8 | |1.1 Первая программа на C++ || 8 | ||
|- | |- | ||
|1.2 Среда программирования Qt Creator || 11 | |1.2 Среда программирования Qt Creator || 11 | ||
|- | |-class="bright" | ||
|Глава 2. Общие сведения о языке С++ || 17 | |||
|- | |- | ||
|2.1 Алфавит языка || 17 | |2.1 Алфавит языка || 17 | ||
Строка 54: | Строка 54: | ||
|- | |- | ||
|2.10 Задачи для самостоятельного решения ||40 | |2.10 Задачи для самостоятельного решения ||40 | ||
|- | |-class="bright" | ||
|Глава 3. Операторы управления || 44 | |||
|- | |- | ||
|3.1 Основные конструкции алгоритма || 44 | |3.1 Основные конструкции алгоритма || 44 | ||
Строка 68: | Строка 68: | ||
|- | |- | ||
|3.6 Задачи для самостоятельного решения || 86 | |3.6 Задачи для самостоятельного решения || 86 | ||
|- | |-class="bright" | ||
|Глава 4. Использование функций при программировании на C++ ||100 | |||
|- | |- | ||
|4.1 Общие сведения о функциях || 100 | |4.1 Общие сведения о функциях || 100 | ||
Строка 90: | Строка 90: | ||
|- | |- | ||
|4.10 Задачи для самостоятельного решения || 129 | |4.10 Задачи для самостоятельного решения || 129 | ||
|- | |-class="bright" | ||
|Глава 5. Массивы ||134 | |||
|- | |- | ||
|5.1 Статические массивы в С(С++) || 134 | |5.1 Статические массивы в С(С++) || 134 | ||
Строка 106: | Строка 106: | ||
|- | |- | ||
|5.7 Задачи для самостоятельного решения || 175 | |5.7 Задачи для самостоятельного решения || 175 | ||
|-class="bright" | |||
|Глава 6. Статические и динамические матрицы ||185 | |||
|- | |||
|6.1 Статические матрицы С(С++)|| 185 | |||
|- | |||
|6.2 Динамические матрицы ||186 | |||
|- | |||
|6.3 Обработка матриц в С(С++) ||187 | |||
|- | |||
|6.4 Решение некоторых задач линейной алгебры ||197 | |||
|- | |||
|6.5 Задачи для самостоятельного решения ||215 | |||
|-class="bright" | |||
|Глава 7. Организация ввода-вывода в C++ ||226 | |||
|- | |||
|7.1 Форматированный ввод-вывод в C++ ||226 | |||
|- | |||
|7.2 Работа с текстовыми файлами в C++ ||230 | |||
|- | |||
|7.3 Обработка двоичных файлов ||236 | |||
|- | |||
|7.4 Функции fscanf() и fprintf() ||240 | |||
|-class="bright" | |||
|Глава 8. Строки в языке C++ ||242 | |||
|- | |||
|8.1 Общие сведения о строках в C++ ||242 | |||
|- | |||
|8.2 Операции над строками ||243 | |||
|- | |||
|8.3 Тип данных string ||245 | |||
|- | |||
|8.4 Задачи для самостоятельного решения ||247 | |||
|-class="bright" | |||
|Глава 9. Структуры в языке C++ ||249 | |||
|- | |||
|9.1 Общие сведения о структурах ||249 | |||
|- | |||
|9.2 Библиотеки для работы с комплексными числами ||256 | |||
|- | |||
|9.3 Задачи для самостоятельного решения ||264 | |||
|-class="bright" | |||
|Глава 10. Объектно-ориентированное программирование ||267 | |||
|- | |||
|10.1 Возникновение объектного подхода в программировании ||267 | |||
|- | |||
|10.2 Классы и объекты в C++ ||271 | |||
|- | |||
|10.3 Создание и удаление объектов ||285 | |||
|- | |||
|10.4 Наследование ||293 | |||
|- | |||
|10.5 Обработка исключений ||305 | |||
|- | |||
|10.6 Шаблоны классов ||316 | |||
|- | |||
|10.7 Элементы стандартной библиотеки C++ ||321 | |||
|- | |||
|10.8 Задачи для самостоятельного решения ||326 | |||
|-class="bright" | |||
|Глава 11. Знакомство с Qt. Подготовка к работе ||329 | |||
|- | |||
|11.1 Знакомство с Qt. Обзор истории ||329 | |||
|- | |||
|11.2 Лицензирование Qt ||332 | |||
|- | |||
|11.3 Справка и ресурсы ||333 | |||
|- | |||
|11.4 Обзор настроек среды Qt Creator ||334 | |||
|- | |||
|11.5 Задачи для самостоятельного решения ||339 | |||
|-class="bright" | |||
|Глава 12. Структура проекта. Основные типы ||340 | |||
|- | |||
|12.1 Файлы проекта ||340 | |||
|- | |||
|12.2 Компиляция проекта ||342 | |||
|- | |||
|12.3 Консольный проект Qt. Вывод сообщений ||345 | |||
|- | |||
|12.4 Работа с текстовыми строками в Qt ||347 | |||
|- | |||
|12.5 Контейнерные классы в Qt ||348 | |||
|- | |||
|12.6 Работа с файлами ||351 | |||
|- | |||
|12.7 Задачи для самостоятельного решения ||354 | |||
|-class="bright" | |||
|Глава 13. Создание графического интерфейса средствами Qt ||355 | |||
|- | |||
|13.1 Виджеты (Widgets) ||355 | |||
|- | |||
|13.2 Компоновка (Layouts) ||359 | |||
|- | |||
|13.3 Политики размера (Size Policies) ||363 | |||
|- | |||
|13.4 Сигнально-слотовые соединения ||365 | |||
|- | |||
|13.5 Создание сигналов (signals) и слотов (slots) ||367 | |||
|- | |||
|13.6 Элементы графического интерфейса ||371 | |||
|- | |||
|13.7 Задачи для самостоятельного решения ||373 | |||
|-class="bright" | |||
|Глава 14. Создание элементов графического интерфейса ||374 | |||
|- | |||
|14.1 Класс QObject ||374 | |||
|- | |||
|14.2 Управление памятью. Иерархии объектов ||379 | |||
|- | |||
|14.3 События (Events). Обработка событий (Event handling) ||382 | |||
|- | |||
|14.4 Фильтры событий (Event filters) ||384 | |||
|- | |||
|14.5 Создание собственного элемента интерфейса ||388 | |||
|- | |||
|14.6 Рисование элементов. Класс QPainter || 391 | |||
|- | |||
|14.7 Задачи для самостоятельного решения || 394 | |||
|-class="bright" | |||
|Глава 15. Разработка приложений с графическим интерфейсом ||395 | |||
|- | |||
|15.1 Окна. Класс QMainWindow ||395 | |||
|- | |||
|15.2 Быстрая разработка с помощью Qt Designer ||396 | |||
|- | |||
|15.3 Программирование формы созданной в Qt Designer ||401 | |||
|- | |||
|15.4 Стандартные диалоги ||404 | |||
|- | |||
|15.5 Ресурсы программы ||408 | |||
|- | |||
|15.6 Создание собственных диалогов ||410 | |||
|- | |||
|15.7 Сохранение настроек ||415 | |||
|- | |||
|15.8 Использование сторонних разработок в собственном проекте ||415 | |||
|- | |||
|15.9 Задачи для самостоятельного решения ||417 | |||
|-class="bright" | |||
|Приложение A. Использование компилятора командной строки и текстового редактора Geany ||419 | |||
|-class="bright" | |||
|Приложение B. Общие сведения о библиотеке MathGL ||428 | |||
|- | |||
|B.1 Установка MathGL в Linux ||428 | |||
|- | |||
|B.2 Использование MathGL при построении двух-, трёхмерных графиков ||429 | |||
|-class="bright" | |||
|Список литературы ||443 | |||
|-class="bright" | |||
|Предметный указатель ||444 | |||
|} | |} | ||
Строка 113: | Строка 263: | ||
программирования Qt Creator и редактор Geany. При чтении книги не требуется | программирования Qt Creator и редактор Geany. При чтении книги не требуется | ||
предварительного знакомства с программированием. | предварительного знакомства с программированием. | ||
В первой части книги (главы 1–9) на большом количестве примеров представлены методы построения программ на языке C++, особое внимание уделено | В первой части книги (главы 1–9) на большом количестве примеров представлены методы построения программ на языке C++, особое внимание уделено | ||
построению циклических программ, программированию с использованием функций, массивов, матриц и указателей. | построению циклических программ, программированию с использованием функций, массивов, матриц и указателей. | ||
Строка 118: | Строка 269: | ||
В третьей части книги (главы 11–15) читатель научится создавать кроссплатформенные визуальные приложения с помощью Qt Creator и познакомится с | В третьей части книги (главы 11–15) читатель научится создавать кроссплатформенные визуальные приложения с помощью Qt Creator и познакомится с | ||
библиотекой классов Qt. | библиотекой классов Qt. | ||
В книге присутствуют задания для самостоятельного решения. | В книге присутствуют задания для самостоятельного решения. | ||
В приложениях описан текстовый редактор Geany, а также кроссплатформенная библиотека MathGL предназначенная для построения различных двух- и трёхмерных графиков. | В приложениях описан текстовый редактор Geany, а также кроссплатформенная библиотека MathGL предназначенная для построения различных двух- и трёхмерных графиков. | ||
Главы 1–9 написаны Е. Р. Алексеевым и О. В. Чесноковой. Автором раздела по | Главы 1–9 написаны Е. Р. Алексеевым и О. В. Чесноковой. Автором раздела по | ||
объектно-ориентированному программированию является Д. А. Костюк. Главы | объектно-ориентированному программированию является Д. А. Костюк. Главы | ||
Строка 127: | Строка 281: | ||
[[Категория:Библиотека ALT Linux]] | [[Категория:Библиотека ALT Linux]] | ||
[[Категория: | [[Категория:Актуальные]] |
Текущая версия от 13:07, 25 апреля 2024
Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало
Программирование на языке С++ в среде Qt Creator
Ссылка | статус | |
---|---|---|
Электронная версия | Book-qtC++.pdf | Издано |
Печатная версия | ALT Linux, Январь 2015, ISBN 978-5-905167-16-4
Формат: 70x100/16. Тираж: On demand. 448 стр, илл. | |
Рекомендуемый дистрибутив |
Книга является учебником по алгоритмизации и программированию на С++ и пособием по разработке визуальных приложений в среде Qt Creator. Также в книге описаны среда программирования Qt Creator, редактор Geany, кроссплатформенная библиотека построения графиков MathGL. При чтении книги не требуется предварительного знакомства с программированием.
Издание предназначено для студентов, аспирантов и преподавателей вузов, а также для всех, кто изучает программирование на С++ и осваивает кроссплатформенный инструментарий Qt для разработки.
Содержание
Оглавление | |
---|---|
Предисловие | 7 |
Глава 1. Знакомство с языком С++ | 8 |
1.1 Первая программа на C++ | 8 |
1.2 Среда программирования Qt Creator | 11 |
Глава 2. Общие сведения о языке С++ | 17 |
2.1 Алфавит языка | 17 |
2.2 Данные | 18 |
2.3 Константы | 21 |
2.4 Структурированные типы данных | 21 |
2.5 Указатели | 22 |
2.6 Операции и выражения | 23 |
2.7 Стандартные функции | 31 |
2.8 Структура программы | 33 |
2.9 Ввод и вывод данных | 35 |
2.10 Задачи для самостоятельного решения | 40 |
Глава 3. Операторы управления | 44 |
3.1 Основные конструкции алгоритма | 44 |
3.2 Составной оператор | 46 |
3.3 Условные операторы | 46 |
3.4 Операторы цикла | 64 |
3.5 Решение задач с использованием циклов | 70 |
3.6 Задачи для самостоятельного решения | 86 |
Глава 4. Использование функций при программировании на C++ | 100 |
4.1 Общие сведения о функциях | 100 |
4.2 Передача параметров в функцию | 104 |
4.3 Возврат результата с помощью оператора return | 106 |
4.4 Решение задач с использованием функций | 106 |
4.5 Рекурсивные функции | 121 |
4.6 Перегрузка функций | 123 |
4.7 Шаблоны функций | 125 |
4.8 Область видимости переменных в функциях | 126 |
4.9 Функция main(). Параметры командной строки | 127 |
4.10 Задачи для самостоятельного решения | 129 |
Глава 5. Массивы | 134 |
5.1 Статические массивы в С(С++) | 134 |
5.2 Динамические массивы в С(С++) | 136 |
5.3 Отличие статического и динамического массива | 139 |
5.4 Основные алгоритмы обработки массивов | 139 |
5.5 Указатели на функции | 166 |
5.6 Совместное использование динамических массивов | 169 |
5.7 Задачи для самостоятельного решения | 175 |
Глава 6. Статические и динамические матрицы | 185 |
6.1 Статические матрицы С(С++) | 185 |
6.2 Динамические матрицы | 186 |
6.3 Обработка матриц в С(С++) | 187 |
6.4 Решение некоторых задач линейной алгебры | 197 |
6.5 Задачи для самостоятельного решения | 215 |
Глава 7. Организация ввода-вывода в C++ | 226 |
7.1 Форматированный ввод-вывод в C++ | 226 |
7.2 Работа с текстовыми файлами в C++ | 230 |
7.3 Обработка двоичных файлов | 236 |
7.4 Функции fscanf() и fprintf() | 240 |
Глава 8. Строки в языке C++ | 242 |
8.1 Общие сведения о строках в C++ | 242 |
8.2 Операции над строками | 243 |
8.3 Тип данных string | 245 |
8.4 Задачи для самостоятельного решения | 247 |
Глава 9. Структуры в языке C++ | 249 |
9.1 Общие сведения о структурах | 249 |
9.2 Библиотеки для работы с комплексными числами | 256 |
9.3 Задачи для самостоятельного решения | 264 |
Глава 10. Объектно-ориентированное программирование | 267 |
10.1 Возникновение объектного подхода в программировании | 267 |
10.2 Классы и объекты в C++ | 271 |
10.3 Создание и удаление объектов | 285 |
10.4 Наследование | 293 |
10.5 Обработка исключений | 305 |
10.6 Шаблоны классов | 316 |
10.7 Элементы стандартной библиотеки C++ | 321 |
10.8 Задачи для самостоятельного решения | 326 |
Глава 11. Знакомство с Qt. Подготовка к работе | 329 |
11.1 Знакомство с Qt. Обзор истории | 329 |
11.2 Лицензирование Qt | 332 |
11.3 Справка и ресурсы | 333 |
11.4 Обзор настроек среды Qt Creator | 334 |
11.5 Задачи для самостоятельного решения | 339 |
Глава 12. Структура проекта. Основные типы | 340 |
12.1 Файлы проекта | 340 |
12.2 Компиляция проекта | 342 |
12.3 Консольный проект Qt. Вывод сообщений | 345 |
12.4 Работа с текстовыми строками в Qt | 347 |
12.5 Контейнерные классы в Qt | 348 |
12.6 Работа с файлами | 351 |
12.7 Задачи для самостоятельного решения | 354 |
Глава 13. Создание графического интерфейса средствами Qt | 355 |
13.1 Виджеты (Widgets) | 355 |
13.2 Компоновка (Layouts) | 359 |
13.3 Политики размера (Size Policies) | 363 |
13.4 Сигнально-слотовые соединения | 365 |
13.5 Создание сигналов (signals) и слотов (slots) | 367 |
13.6 Элементы графического интерфейса | 371 |
13.7 Задачи для самостоятельного решения | 373 |
Глава 14. Создание элементов графического интерфейса | 374 |
14.1 Класс QObject | 374 |
14.2 Управление памятью. Иерархии объектов | 379 |
14.3 События (Events). Обработка событий (Event handling) | 382 |
14.4 Фильтры событий (Event filters) | 384 |
14.5 Создание собственного элемента интерфейса | 388 |
14.6 Рисование элементов. Класс QPainter | 391 |
14.7 Задачи для самостоятельного решения | 394 |
Глава 15. Разработка приложений с графическим интерфейсом | 395 |
15.1 Окна. Класс QMainWindow | 395 |
15.2 Быстрая разработка с помощью Qt Designer | 396 |
15.3 Программирование формы созданной в Qt Designer | 401 |
15.4 Стандартные диалоги | 404 |
15.5 Ресурсы программы | 408 |
15.6 Создание собственных диалогов | 410 |
15.7 Сохранение настроек | 415 |
15.8 Использование сторонних разработок в собственном проекте | 415 |
15.9 Задачи для самостоятельного решения | 417 |
Приложение A. Использование компилятора командной строки и текстового редактора Geany | 419 |
Приложение B. Общие сведения о библиотеке MathGL | 428 |
B.1 Установка MathGL в Linux | 428 |
B.2 Использование MathGL при построении двух-, трёхмерных графиков | 429 |
Список литературы | 443 |
Предметный указатель | 444 |
Предисловие
Книга, которую открыл читатель, является с одной стороны учебником по алгоритмизации и программированию на C++, а с другой — пособием по разработке визуальных приложений в среде Qt Creator. В книге описаны среда программирования Qt Creator и редактор Geany. При чтении книги не требуется предварительного знакомства с программированием.
В первой части книги (главы 1–9) на большом количестве примеров представлены методы построения программ на языке C++, особое внимание уделено построению циклических программ, программированию с использованием функций, массивов, матриц и указателей. Вторая часть книги (глава 10) посвящена объектно-ориентированному программированию на C++. В третьей части книги (главы 11–15) читатель научится создавать кроссплатформенные визуальные приложения с помощью Qt Creator и познакомится с библиотекой классов Qt.
В книге присутствуют задания для самостоятельного решения.
В приложениях описан текстовый редактор Geany, а также кроссплатформенная библиотека MathGL предназначенная для построения различных двух- и трёхмерных графиков.
Главы 1–9 написаны Е. Р. Алексеевым и О. В. Чесноковой. Автором раздела по объектно-ориентированному программированию является Д. А. Костюк. Главы 11–15, посвящённые программированию с использованием инструментария Qt, написаны Г. Г. Злобиным и А. C. Чмыхало.