Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабор., 1 семестр, гр. ПО, 2010.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.66 Mб
Скачать

Добавление к проекту существующего файла с исходным текстом

  1. Создайте новый проект с именем MyFirstSumma. Для этого в меню File выполните команду New, затем команду Project.., а далее повторите пункты 3,4 этой лабораторной работы.

  2. Если настройки таковы, что у вас на рабочем столе Microsoft Visual Studio.Net не появилось окно Solution Explorer MyFirstSumma, то выберите в меню View пункт Solution Explorer и раскройте его. Окно появится.

  3. Щелкните правой кнопкой мыши по папке Source Files и в появившемся контекстном меню выберите команду Add, затем команду Add Existing Item. В результате будет отображено окно Add Existing Item- MyFirstSumma. В указанной преподавателем папке найдите имя файла FirstSumma.cpp (этот уже существующий файл хотим добавить во вновь созданный проект) и нажмите кнопку Open. После этого в списке файлов папки Source Files окна Solution Explorer MyFirst Summa появится обозначение нового файла MyFirsSumma t.cpp и откроется окно редактора с этим же именем MyFirst Summa.cpp.

Запустите этот проект, выполнив команду Start.

Закончите работу, закрыв главное окно Microsoft Visual Studio.Net.

Приложение 1

Имена можно придумывать разные, достаточно следовать правилам языка. Но в профессиональном программировании всегда существуют некоторые соглашения об именах, которые позволяют делать коды более осмысленными.

При назначении имен для объектов необходимо исходить из того, что имя должно быть таким, чтобы при его чтении было ясно, как данный элемент будет использоваться. Например, имя NameStudent, summa, MyType.

Старые программные языки высокого уровня никогда не имели сложной файловой структуры сегодняшних приложений С/C++. Они не различали регистр, так что имена вроде mytype, MYTYPE и MyType рассматривались как одно и тоже имя. Для С/C++ это разные имена. Разумное использование символов ВЕРХНЕГО и нижнего регистров делает профессиональный код более читабельным. Для объявлений в исходных файлах ( .c/ .cpp) используют СмеШанНый регистр. Отсюда делаем вывод, что имя MyType предпочтительнее, чем имена mytype и MYTYPE.

Введенное венгром Чарльзом Симонии из Microsoft соглашение об именах, которое называется «венгерская нотация», позволяет программисту по имени объекта узнать его тип. Это достигается присоединением к имени мнемонического префикса, кодирующего тип.

Так как типичное приложение Windows использует десятки типов данных, констант (определяемых ключевым словом const), символических констант (определяемых директивой препроцессора #define), структур, классов, сообщений и прочего, то

такое «встроенное» объявление типа облегчает расшифровку кода, поскольку отпадает необходимость по его тексту вспоминать или отыскивать определение каждого объекта.

Соглашения Microsoft об именах, специфических для Windows, показаны в таблице.

Префикс

Тип

Описание

Пример имени

g_

-

префикс глобального объекта

g_gravConst

c

const

Именованная константа произвольного типа

cfltPi

ch

char

8 битный символ

chGrade

ch

TCHAR

16-битный символ, если определен _UNICODE

chName

b

BOOL

булевое значение

bEnabled

n, i

int

целое (размер зависит от системы)

nLength, iLength

n

UINT

беззнаковое целое

nHight

w

unsigned int

16-битовое беззнаковое целое

wMaska

w

WORD

16-битовое беззнаковое целое

wPos

l

LONG

32-битное целое со знаком

lOffset

l

long

32-битное целое со знаком

lLenght

dw

DWORD

32-битное целое без знака

dwRange

flt

float

32-битное действительное

fltValue

dbl

double

64-битное действительное

dblValue

p

*

указатель

pDoc

lp

FAR*

дальний указатель

lpDoc

sz

string

строка

szNameStudent

psz

char*

указатель на символьную строку

lpszName

lpsz

LPSTR

32-битный указатель на символьную строку

lpszName

lpsz

LPSTR

32-битный указатель на символьную строку

lpszName

pv

void*

pvMember

h

handle

дескриптор объекта Windows

hWnd

lpfn

callback

Дальний указатель

на CALLBACK-функцию

lpfnProc

Посмотрите на такой фрагмент текста:

Value1 = 1;

Value2 = 2;

Result = Value1 / Value2 ;

// результат получает почему-то значение 0, вместо ожидаемого значения 0.5

В этом фрагменте ничего неизвестно о типах объектов и нет возможности определить потенциальное наличие логической ошибки.

А теперь рассмотрим тот же фрагмент, написанный в стиле венгерской нотации:

nValue1 = 1;

nValue2 = 2;

fltResult = nValue1 / nValue2 ;

// результат получает почему-то значение 0, вместо ожидаемого значения 0.5

Здесь добавлены в имена мнемонические префиксы. Это позволяет программисту, читающему этот текст, даже не ища инструкции определения объектов, предположить потенциальную ошибку усечения результата. В С++ оператор деления / при делении целого на целое дает целый результат, то есть 0.

Читая венгерскую нотацию, профессиональные программисты автоматически отбрасывают префикс, как в flt..Result, и видят только основную часть имени – Result.

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