Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
16.02.2016
Размер:
4.72 Mб
Скачать

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) Для создания меню можно использовать условный оператор ifelse,который был рассмотрен в первой лабораторной работе или оператор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

Соседние файлы в папке МетодУказЛабРабот