Шаг 1. Создание заготовки приложения.



Запустите на выполнение ИС, с помощью команды FileèNewèProject вызовите мастера ИС, выберите шаблон Win32 Console Application, в свойствах проекта выберите, для простоты, поддержку  MFC. В этом сценарии я присвоил проекту очень оригинальное имя Lab2. При создании проекта не устанавливайте (или снимите, если он установлен по умолчанию), переключатель Create directory for solutions.

Совет. В условиях работы в сети рекомендую выбрать локальный диск компьютера, а не сетевой, для ускорения работы, отсутствия проблем согласования времени локального компьютера и сетевого, уменьшения вероятности потери проекта из-за возможных сбоев сети. На локальном компьютере рекомендую выбирать каталог, имя которого и путь к нему не содержат символов кириллицы, например, C:\Temp. Самое плохое место для работы над проектом – флешка. Сохраняйте проект на флешке только тогда, когда вы закончили работу с ним, например, в конце лабораторной работы.

 

С самого начала работы добавьте в проект заголовочный файл (.h) и файл реализации (.cpp), в которые вы будете помещать свои собственные описания и функции. Проще всего это сделать путем добавления в проект нового класса (ProjectèAdd Class). В сгенерированных файлах просто удалите заготовку класса, конструктор и деструктор, оставив директивы препроцессора. Эти файлы должны приобрести такой простой вид:

// Файл Lib.h

#pragma once

// Файл Lib.cpp

#include "StdAfx.h"

#include "Lib.h"

 

Добавляйте свои описания в конец этих файлов, например:

// Файл Lib.h

#pragma once

const int Count=100;

int Max(int a, int b);

// Файл Lib.cpp

#include "StdAfx.h"

#include "Lib.h"

Int Max(int a, int b)

{return a>b?a:b;}

 

В завершение подключите свой заголовочный файл Lib.h к файлу, в котором находится главная функция _tmain, например:

// Lab2.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "Lab2.h"

#include "Lib.h"

#include <ConIO.h>// не забудьте подключить для функции _getch()

 

Как и в предыдущей л.р., замените функцию _tmain на

void main()

{

setlocale(LC_ALL,"rus");

  cout<<Max(10,Count)<<endl;

 _getch();

}

 

Теперь вытрите пот со лба, запустите программу на выполнение, убедитесь в появлении числа 100 экране. Если у вас свой новый ноутбук, а на экране число 100 не появилось, подарите свой ноут кафедре, там его утилизируют, а себе купите другой – исправный.

Шаг 2. Главное – Функции!

Главная цель этой работы – структурировать программу путем размашистого применения процедурного подхода. Все свои функции вы должны разместить в файлах Lib.h и Lib.cpp, а в главной функции должны быть размещены только их вызовы. Эти файлы должны быть разработаны таким образом, чтобы обеспечить возможность простого применения описанных в ней функций и типов в других приложениях путем включения в них этих файлов.

В качестве примера приведу примеры реализации функции ввода (фактического) числа элементов массива:

void GetNum(int &N)

{

cout<<"Введи фактическое число элементов массива>";

cin>>N;

}

Int GetNum()

{

int N;

cout<<"Введи фактическое число элементов массива>";

cin>>N;

return N;

}

int GetNum(char * Prompt)

{

int N;

cout<<Prompt;

cin>>N;

return N;

}

 

Выполните анализ качества программного кода, предназначенного для ввода целого числа. Ясное дело, что ни одна из приведенных функций не является идеальной. Недостатки реализации:

ü нет проверки вводимого числа на предмет его вхождения в требуемый диапазон и повторения запроса на ввод в случае ввода некорректного значения;

ü нет проверки корректности соблюдения формата ввода. Например, не контролируется ввод недопустимых символов. Проверьте, что будет, если вместо числа ввести букву(ы). Для этой цели лучше всего было бы использовать механизм обработки ИС (мы этого еще не изучали!);

ü две первые реализации функции «заточены» только на запрос ввода числа элементов массива и их нельзя использовать для запроса, например, числа ног или зубов;

ü ни одна из функций не предлагает некоторого «значения по умолчанию», благодаря чему пользователь мог бы просто нажать Enter вместо ввода очевидного значения.

 

Следующая функция генерирует целое псевдослучайное число из заданного диапазона:


Дата добавления: 2018-02-18; просмотров: 310; ЗАКАЗАТЬ РАБОТУ