- •Карагандинский государственный технический университет
- •Исходные данные
- •2. Порядок выполнения работы
- •3. Методические указания
- •3.1. Разработка проекта.
- •3.2. Создание заготовки для консольного приложения.
- •3.3. Кодирование проекта
- •5)Описание функций, созданных программистом
- •3.4. Отладка и доказательство правильности работы программы
- •3.5. Типичные ошибки программирования
- •3.6. Хороший стиль программирования
- •4.Содержание отчета по выполнению лабораторных работ
- •5. Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №2
- •1.Задание на выполнение лабораторной работы
- •2. Порядок выполнения работы
- •3 Методические указания
- •3.2. Создание заготовки для консольного приложения.
- •3.3. Кодирование проекта
- •6)Описание функций, созданных программистом
- •3.4. Отладка и доказательство правильности работы программы
- •3.5. Типичные ошибки программирования и хороший стиль программирования
- •4.Содержание отчета по выполнению лабораторных работ
- •5. Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №3 Разработка диалогового Windows-приложения для проектирования цилиндрических деталей типа стакана
- •1.Задание на выполнение лабораторной работы
- •2.Порядок выполнения работы
- •3.2. Создание шаблона проекта с помощью мастера AppWizard.
- •3.3. Визуальное проектирование диалоговой панели созданного проекта
- •3.4. Установка и настройка элементов управления
- •3.5. Установка статических текстов
- •3.6. Установка и настройка окон редактирования
- •3.7. Установка и настройка элемента управления Picture(рисунок)
- •3.8. Установка и настройка элементов управления Botton(кнопка)
- •3.9. Кодирование проекта
- •3.9.1.Доработка заголовочного файла CapStDlg.H
- •3.9.2. Доработка исходного файла CupStDlg.Cpp.
- •3.10. Выполнение проекта
- •4.Содержание отчета по выполнению лабораторной работы
- •5.Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №4 Разработка однооконного Windows-приложения для вывода графической информации.
- •1.Задание на выполнение лабораторной работы
- •2.Порядок выполнения работы
- •3. Методические указания
- •1.1 Объект cPen - карандаш
- •3. Пример простого графического вывода :
- •3.3 Выполнение проекта
- •4.Содержание отчета по выполнению лабораторной работы
- •5.Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
3.3. Кодирование проекта
Заголовочная часть программы должна состоять из:
директив для препроцессора, обеспечивающих включение в программу заголовочных файлов, содержащих объявления функций и переменных стандартных библиотек ввода-вывода;
математических функций;
функций для работы в текстовом режиме;
определений функций, разработанных для данного проекта;
описаний глобальных массивов и(или) переменных.
Тогда код заголовочной части для разрабатываемой программы будет иметь, например, следующий вид:
# include <iostream.h>// Библиотека ввода-вывода
# include <windows.h>// Главный заголовочный файл дляWindows-приложений
# include <conio.h>// Библиотека для работы с консолью в текстовом режиме
# include <stdlib.h>// Библиотека специальных функций
# include <time.h >// Библиотека для работы с временем и датами.
long int A[3][3]={{0,0,0},{0,0,0},{0,0,0}};//Глобальный исходный массив
long int B[3][3]={{0,0,0},{0,0,0},{0,0,0}};//Глобальный промежуточный массив
int menu();//функция, реализующая функциональное меню
int Zadacha1();//функция, реализующая задачу №1
………………….
int Zadacha7();//функция, реализующая задачу №7.
Как следует из приведенного текста заголовочной части имена всех заголовочных файлов заключены в угловые скобки(< >), что говорит о том, что препроцессор должен искать эти файлы в системном каталоге \INCLUDE\.
Описание или тело главной функцииintmain() представляет последовательность описаний, определений, операторов, заключенных в фигурные скобки { } и обеспечивающих решение всех поставленных в проекте задач. Любая программа на С++ должна включать только одну функцию с этим именем.
Для кодирования проекта могут быть полезными следующие рекомендации:
1) Так как исходный массив из случайных целочисленных элементов формируется в задаче 1 и используется во всех других задачах, то целесообразно ему придать статус глобального массива, и тогда он будет доступен на протяжении работы программы. Аналогичный статус должен получить и массив B[3][3], в котором будет сохранятся транспонированная матрица и она же будет использоваться в задаче 7.
2) При выводе на экран строковых данных на русском языке необходимо использовать специальную функцию AnsiToOem(x,y),обеспечивающую конвертирование строки из кодировкиANSI(Windows)в кодировкуOEM(MS-DOS),которая описана в первой лабораторной работе.
3) Для формирования разных значений псевдослучайных чисел в диапазоне 0..kи присваивания их элементам двумерного массива можно использовать следующий блок операторов:
A[0][0] = 2;
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
{
k=k+1;
srand(time(NULL));
A[i][j] = A[i][j]+rand() % k;
}
}
Случайное целое значение, генерируемое функцией rand() находится в диапазоне 0..32767. Однако, с помощью инициализации функцииrand() функциейsrand(time(NULL)) и масштабирования значения, генерируемогоrand(), с помощью выраженияA[i][j] =A[i][j]+rand() %kмы обеспечиваем заполнение массиваA[3][3] разными целочисленными значениями при каждом новом запуске этого блока операторов.
4) Для создания меню можно использовать условный оператор if … else,который был рассмотрен в первой лабораторной работе или операторswitch cбесконечным цикломfor (;;).В бесконечном цикле оператораswitch пользователь может выбрать какой–либо пункт, выполнить соответствующие действие, а затем вернуться к меню. Так продолжается до тех пор, пока пользователь не выберет пункт выхода. Чтобы выйти из цикла switch, необходим операторbreak.
5) Описание главной функции для настоящего проекта можно начинать, например, таким кодом:
int main()
{
int fl=0; //вспомогательные переменные
int fl1=0;//для управления порядком выполнения задач
M1: int L=menu(); //Запуск функции меню
if(L==1 && fl==0)
{Zadacha1(); //запуск функция, реализующей задачу 1
fl=1;
char tx2[] = " Для возврата в меню нажмите любую клавишу";
AnsiToOem(tx2,tx2);
cout <<tx2<<endl;
getch(); //функция задержки выполнения программы
system("cls"); //функция очистки экрана монитора
goto M1;//переход в функциональное меню
}
else if(L==2 && fl==1)
{
Zadacha2();//запуск функция, реализующей задачу 2
char tx2[] = " Для возврата в меню нажмите любую клавишу";
AnsiToOem(tx2,tx2);
cout <<tx2<<endl;
getch();
system("cls");
goto M1;
}
………………..
………………
…………………
else if(L==7 && fl==1 && fl1==1)
{
Zadacha7();//функция, реализующая задачу 7
char tx2[] = " Для возврата в меню нажмите любую клавишу";
AnsiToOem(tx2,tx2);
cout <<tx2<<endl;
getch();
system("cls");
goto M1;
}
return 0;
} //конецmain