Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Создание консольного приложения в среде MS Visual Studio 201x



Лабораторная работа № 0

 

Создание консольного приложения в среде MS Visual Studio 201x

 

Цель работы: практическое знакомство с методикой создания и отладки консольных приложений средствами языка С++ в среде MS Visual Studio 201x

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

 

1.1. Средства создания консольного приложения в среде MS VS 2010 на языке C++

Консольные приложения – это программы, компилируемые в.exe–файл, который можно запускать на выполнение из командной строки как автономное приложение. Эти приложения работают только в текстовом режиме.

Для создания консольного приложения в среде программирования Microsoft Visual Studio 201x можно использовать мастер приложений и шаблон консольного приложения.

Мастер приложений вызывается с помощью меню Файл, в котором выбирается пункт Создать, а затем пункт Проект...

 

 

 

 

Рис. 1. Стартовая страница запуска мастера приложений

 

Мастер приложений предложит выбрать шаблон приложения в диалоговом окне Создать проект – см. рис. 2.

 

Рис. 2. Окно выбора типа шаблона

 

Рассмотрим окно выбора типа шаблона. Помимо шаблона Консольное приложение Win32, мастер предлагает большой список других шаблонов. В этом окне также имеются поля для ввода имени проекта и указания папки, в которой будут записываться файлы проекта. С помощью кнопки Обзор… можно вызвать диалог выбора папки. Переключатель Создать каталог для решения (он размещен под кнопкой Обзор… ) дает возможность создать папку для файлов проекта. Если этот переключатель помечен, будет создана папка с именем проекта. В Visual Studio можно также создавать решения (Solution), содержащие несколько проектов.

После нажатия на OK мастер приложений предложит подтвердить установленные параметры – нажатием на кнопку Готово – или продолжить настройку параметров (кнопка Далее> )

 

Рис. 3. Окно параметров приложения

 

Нажатие на кнопку Готово (рис. 3)завершает работу мастера приложений и открывает окно с кодом

 

 

Рис. 4. Окно кода

 

(в примере папка имеет имя MyFirstProject). Кроме того, в папке проекта будут созданы файлы проекта – назначение этих файлов описано в файле ReadMe.txt (MyFirstProject\ MyFirstProject\ReadMe.txt).

В большинстве консольных приложений потребуется ввод данных с клавиатуры и вывод на экран. Добавление строк

#include < iostream>

using namespace std;

позволит использовать в программе объекты cin для ввода данных и cout – для вывода информации на экран.

// MyFirstProject.cpp: определяет точку входа для консольного приложения.

//

#include " stdafx.h"

#include < iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

cout< < " \n MyFirstProject \n"; // вывод строки символов на экран

return 0;

}

Компиляция и запуск программы выполняется с помощью меню Отладка Запуск без отладки или командой Ctrl+F5.

Наиболее оптимальным способом русификации приложений является установка кодовой страницы с помощью функции setlocale(), объявленной в файле locale.h.

 

#include " stdafx.h"

#include < iostream>

#include < clocale>

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_CTYPE, " rus" );

cout< < " \n MyFirst Проект \n";

return 0;

}

Элементы программирования консольных приложений

Тип int (Integer)

int value; // 4 байта

int i, j;

Данное объявление определяет, что переменные value, i и j имеют тип данных int. Это значит, что эти переменные всегда будут содержать целые значения, т.е. целые числа, такие как 3, 5, -77, 0, 24567.

 

Типы float, double

 

Типы данных float и double предназначены для хранения чисел с плавающей запятой (с дробной частью).

float average; // 4 байта

double angle; // 8 байтов

 

1.2.1.3. Тип char и массивы символов

Данные символьного типа (1 байт).

char symbol; // 1 байт

 

Массивы символов

char text[ 20 ]; // массив из 20 символов

char str[] = “Text string”;

wchar_t *wS = new wchar_t[30]; // массив символов Unicode

 

// инициализация

symbol = 56;

symbol= 'a';

wS=L”Пример инициализации строки в Unicode”; // инициализация //строки Unicode значением константы – строки Unicode

strcpy ( text, " New text" ); // инициализация массива путем копирования

strcpy ( text, str );

 

Указатели

 

Указатель – это переменная, содержащая адрес другой переменной. Применяя операцию * (операция разыменования ), получаем значение, записанное по данному адресу. С помощью операции &, примененной к переменной, можно узнать адрес, по которому эта переменная хранится в памяти.

При объявлении указателя также используется *, кроме того, указывается тип данных, на которые ссылается указатель.

Тип_данных *имя_указателя;

Пример. Объявление указателей и обращение к памяти. Значение переменной px – адрес памяти, а *px – данные, записанные по адресу px.

int x=100; // переменная

cout< < " \n x=" < < x;

int* px; // указатель на int

px = & x; // указателю присвоен адрес переменной x

*px =200; /* Изменения значения, записанного по адресу px */

При создании указателя память выделяется только для хранения адреса. Для выделения памяти под данные используется оператор new. Выделение памяти оператором new:

указатель = new Тип

Оператор new выделяет память в количестве, необходимом для хранения данных указанного типа. Указатель в левой части оператора присваивания должен быть указателем на тот же тип данных.

Для динамически размещаемого одномерного массива используется следующая форма оператора new:

p=new type [size]

Для удаления динамически размещаемого одномерного массива исполь-зуется оператор

delete [ ] p;

Пример

int *p;

int i;

p = new int [5]; // выделение памяти для 5 целых

Указатели и массивы

Имя массива является указателем и содержит адрес первого элемента массива. Если, например, w имя массива, то *w – значение первого элемента массива, а обращение w[i] к i-му элементу массива есть сокращенная форма операции с указателями *(w+i).

Пример.

const int N=10;

int w[N]= {0, 10, 20, 30, 40, 50, 60, 70, 80, 90}; // массив из 10 элементов

int *v; // указатель

v=w+5;

cout< < *v; // будет выведено значение 50

 

1. 2.1.7 Использование объектов класса string (строк)

Для того чтобы использовать объекты класса string, необходимо включить соответствующий заголовочный файл:

#include < string>

Пример строки, представленной объектом типа string и инициализированной строкой символов:

#include < string>

string st( " Строка-объект\n" );

Длину строки возвращает функция-член size() (длина не включает завершающий нулевой символ).

cout < < st.size() < < " символов\n";

 

Вторая форма определения строки задает пустую строку:

string st2; // пустая строка

Третья форма конструктора инициализирует объект типа string другим объектом того же типа - строка st3 инициализируется строкой st:

string st3( st );

Копирование строк выполняется с помощью обычной операции присваивания: st2 = st3; // копируем st3 в st2

Для конкатенации строк используется операция сложения (+) или операция сложения с присваиванием (+=). Пусть даны две строки:

string s1( " hello, " );

string s2( " world\n" );

Можно получить третью строку, состоящую из конкатенации первых двух, таким образом:

string s3 = s1 + s2;

Чтобы добавить s2 в конец s1, следует написать:

s1 += s2;

Операция сложения может конкатенировать объекты класса string не только между собой, но и со строками встроенного типа. Можно переписать пример, приведенный выше, так, чтобы специальные символы и знаки препинания представлялись встроенным типом, а значимые слова – объектами класса string:

const char *pc = ", ";

string s1( " hello" );

string s2( " world" );

string s3 = s1 + pc + s2 + " \n";

Подобные выражения работают потому, что компилятор знает, как автоматически преобразовывать объекты встроенного типа в объекты класса string. Возможно и простое присваивание встроенной строки объекту string:

string s1;

const char *pc = " a character array";

s1 = pc; // правильно

Обратное преобразование, однако, не работает. Попытка выполнить следующую инициализацию строки встроенного типа вызовет ошибку компиляции:

char *str = s1; // ошибка компиляции

Чтобы осуществить такое преобразование, необходимо явно вызвать функцию-член с названием c_str():

char *str = s1.c_str(); // почти правильно

Функция c_str() возвращает указатель на символьный массив, содержащий строку объекта string в том виде, в каком она находилась бы во встроенном строковом типе. Приведенный выше пример инициализации указателя char *str все еще не совсем корректен. c_str() возвращает указатель на константный массив, чтобы предотвратить возможность непосредственной модификации содержимого объекта через этот указатель, имеющий тип

const char *

Правильный вариант инициализации массива символов:

const char *str = s1.c_str(); // правильно

Определение структур

 

Данные различных типов можно объединить под одним именем с помощью структур. Структуры – это составные типы данных, построенные с использованием других типов. Рассмотрим следующее определение структуры:

 

struct Person

{

char name[ 20 ];

char surname[ 20 ];

int age;

};

 

Ключевое слово struct начинает определение структуры. Идентификатор Person – это тег (имя) структуры. Тег структуры используется при объявлении переменных в качестве наименования типа. Имена, объявленные в фигурных скобках, – это элементы (или члены) структуры. Элементы одной и той же структуры должны иметь уникальные имена, но две разные структуры могут содержать элементы с одинаковыми именами. Элементы структуры могут быть любого типа. Каждое определение структуры должно заканчиваться точкой с запятой.

Переменные структуры объявляются так же, как и переменные других типов.

Person newPerson, personArray[ 10 ], *personPtr;

Для доступа к элементам структуры (или класса) используются операции доступа к элементам – операция точка (.) и операция стрелка (-> ). Операция точка обращается к элементу структуры (или класса) по имени переменной объекта. Например, чтобы напечатать значение элемента age структуры newPerson, используется оператор:

cout < < newPerson.age < < endl;

Для доступа к элементам структуры с помощью указателя используется операция стрелка. Присвоение указателю personPtr на структуру Person значения

personPtr = new Person[50];

Присваивание элементу структуры age значения 18 personPtr -> age=18;

 

Функции

Для более эффективного управления кодом используется разделение программы на отдельные логические модули – функции. Модульное программирование предполагает:

– объявление функции (создание прототипа), включающее имя функции, тип возвращаемого ею значения и типы формальных параметров функции;

– определение функции, включающее заголовок функции и последовательность операторов, реализующих функцию;

– вызов функции путем указания ее имени и замены формальных параметров значениями (фактическими параметрами).

Пример использования функции.

#include < iostream>

using namespace std;

int sum(int, int); /* Объявление функции sum - прототип */

int main()

{ int a, b, c;

cin > > a > > b;

c=sum(a, b); // Вызов функции

cout < < " \n sum = " < < c;

return 0;

}

int sum(int a, int b)

{ // Определение функции

return a+b;

}

Объявление функции

 

До обработки вызова функции компилятору должно быть известно её имя и типы параметров. Прототип функции является оператором и должен заканчиваться точкой с запятой. В прототипе функции можно не приводить имена параметров, – достаточно указать список типов параметров.

Возвращаемый_тип Имя_функции(список типов_параметров);

 

Можно обойтись и без прототипа функции – если блок определения функции поместить до блока, в котором производится вызов функции.

 

Пример. Блок определения функции предшествует её вызову, поэтому в программе нет объявления функции (прототипа).

 

#include < iostream> using namespace std;

int sum(int a, int b)

{ // Определение функции

return a+b;

}

int main()

{ int a, b, c;

cin > > a > > b;

c=sum(a, b); // Вызов функции

cout < < " \n c = " < < c;

return 0;

}

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

Часто прототипы функций помещают в отдельные файлы– заголовочные файлы (эти файлы имеют расширение.h).

 

Определение функции

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

Функция должна содержать хотя бы один оператор return – исключением являются функции, у которых тип возвращаемых значений void. Выполнение оператора return завершает работу функции и возвращает управление в вызывающую программу. Синтаксис оператора

return выражение;

Для функции с типом возвращения void оператор return необязателен, но его можно использовать завершения работы функции и возврата в вызывающую программу. В этом случае оператор не содержит возвращаемого значения: return;

Ссылочные переменные

В языке C++ введён новый составной тип данных – ссылочная пере-менная. Ссылка представляет собой имя, которое является псевдонимом для ранее объявленной переменной. Для объявления ссылочной переменной используется символ &.

Пример.

#include < iostream>

using namespace std;

int main()

{

int x;

int & r = x; // создание независимой ссылки

x = 10; // эти две инструкции

r = 10; // идентичны

return 0;

}

Основное назначение ссылок – использование в качестве формальных параметров функций. Используя ссылку в качестве аргумента, функция работает с исходными данными, а не с их копиями.

Пример передачи аргументов по ссылке - функция, меняющая значения аргументов

#include < iostream>

using namespace std;

void swapargs (int & x, int & y);

int main()

{

int i, j;

i = 10;

j = 19;

cout < < " i: " < < i < < ", "; cout < < " j: " < < j < < " \n"; swapargs(i, j);

cout < < " После перестановки: ";

cout < < " i: " < < i < < ", "; cout < < " j: " < < j < < " \n"; return 0;

}

void swapargs (int & x, int & y)

{ int t;

t = x; x = y; y = t;

}

Массивы как параметры

При передаче массива в качестве параметра нужно:

– в заголовке функции после имени массива указать пустые квадратные скобки, например,

int sum_arr( int arr[], int size_arr)

– а в вызове функции указать имя массива уже без квадратных скобок:

sum= sum_arr(mass, N);

 

Потоковый ввод/вывод

 

В языке С++ производится ввод-вывод потоков байтов. Поток – это просто последовательность байтов. В операциях ввода байты пересылаются от устройства (например, от клавиатуры, дисковода) в оперативную память. При выводе байты пересылаются из оперативной памяти на устройства (например, на экран дисплея ).

Заголовочный файл iostream.h объявляет объекты cin, cout, которые соответствуют стандартным потокам ввода и вывода.

< < – операция – поместить в поток;

> > – операция – взять из потока;

\n – переход на новую строку (так же можно применять манипулятор потока endl, в отличие от ‘\n’ этот манипулятор не только переводит строку, но и выгружает в поток содержимое буфера вывода);

Примеры

cout < < “Test” < < endl;

cout < < “Test \n ”;

 

 

1.5. Консольный ввод-вывод средствами языка С, включенными в библиотеку С++

 

Процесс реализованного в функциях из С-библиотеки форматирования существенно проще, чем форматирование методами ввода и вывода языка С++.

Две функции printf() и scanf() и выполняют соответственно консольный вывод и ввод. Этим функциям передается переменное число аргументов, но первым аргументом всегда является текстовая строка, называемой строкой формата. Она задает способ преобразования данных. Эти функции объявлены в файле stdio.h.

Функция printf() выдаст на экран всю форматную строку, в которой знак %ххх заменяется символами выводимой информации. Символы после % до первого разделителя рассматриваются как спецификация преобразования значения выводимой переменной. Имя переменной - это второй, третий и т.д. аргументы списка аргументов.

Функция scanf() принимает с консоли все символы до нажатия клавиши ENTER и помещает их в буфер. Затем по форматной строке определяется способ преобразования введенных символов в соответствии с заданными спецификация ми. Полученное в результате преобразования число помещается по адресу переменной, который является вторым, третьим и т.д. аргументом в списке аргументов функции. Спецификация преобразования задается в виде последовательности

% [флаги] [ширина ] [.точность ] < тип>

В таблице перечисляются некоторые из флагов, задающих спецификацию преобразования.

 

Флаги Действие
-   + Пробел Производится выравнивание влево выводимого значения а пределах выделенного поля. Правая сторона выделенного поля дополняется пробелами. По умолчанию устанавливается выравнивание вправо. Выводится знак числа символом '-' или '+' Выводится пробел перед числом, если оно положительно. Для отрицательных чисел знак '-' выводится всегда  
  # Выводится идентификатор системы счисления для целых: - 0 перед числом, выводимым в восьмеричной с/с; - 0х или 0Х для чисел, выводимых в шестнадцатиричной с/с; - ничего для чисел, выводимых в десятичной с/с Выводится десятичная точка для чисел типа float

 

Поле ширина воздействует только на вывод и определяет минимальную ширину поля в n символов. Если после преобразования ширины недостаточно, выводится столько символов, сколько есть. Незаполненные позиции дополняются пробелами.


Поле тип преобразования принимает значения с, d, i, o, x, s

Тип преобра-зования Тип перемен-ной   Действие
  c char При вводе - из файла читается и передается переменной один байт. При выводе - переменная преобразуется к типу char. В файл передается один байт
d int Десятичное int со знаком
i int Десятичное int со знаком
o int Восьмеричное int unsigned
x int Шестнадцатеричное int unsigned; при выводе для числа используются символы 0 - F
s char При вводе принимает символы без преобразования до тех пор, пока не встретится '\n' или пока не достигнута специфицированная точность. В программу передаются символы до '\n' или пробела. При выводе выдает в поток все символы до тех пор, пока не встретится '\0' или пока не достигнута специфицированная точность

1.5.1. Примеры ввода-вывода информации с помощью функций printf() и scanf()

 

Пример 1. Вывод значений двух переменных целого типа col, nm и одной строковой переменной name

 

int col=234;

int nm=77;

char name[10] = " namestr\n";

 

#include < stdio.h>

 

{

printf( " %4d %4d %25s", col, nm, name);

}

Пример 2. Вывод значений двух переменных целого типа col, nm в 16-ричной сс и одной строковой переменной name, значения переменных

 

printf( " %4x %4x %25s", col, nm, name);

 

Пример 3. Ввод значений символьной переменной и переменной целого типа

int PID;

char op;

printf( " Введите вид операции и PID процесса: " );

scanf( " %1c %4d", & op, & PID );

 

Операторы проверки условия

Инструкция if

Инструкция if обеспечивает выполнение или пропуск инструкции в зависимости от условия

Пример.

/* сравнение символов */

char ch='\n';

if (ch=='\n') cout < < " \n ch= \\n";

// сравнение целых

int n=5;

if (n==5) cout< < " \n n = 5";

/* определение диапазона: */

int t=25;

if ((t> 10) & & (t< 30)) cout< < " \n 10 < " < < t < < " < 30";

// арифметическое выражение как условие

int x;

cin> > x;

if (x*x) cout< < " \n true ";

else cout< < " \n false ";

if (x)

{ // составная инструкция

x--;

cout< < " \n x= " < < x;

}

Инструкция if-else содержит уже два оператора, один из которых выполняется.

Инструкция if-else

Операторы цикла

1.7.1.Инструкция цикла for

Общая форма оператора цикла for

for (инициализация; условие продолжения;

Цикл с постусловием

 

Цикл с постусловием реализует вариант цикла, в котором сначала выполняется тело цикла и только затем вычисляется условие продолжения цикла. Если значение условия равно нулю (что соответствует false), цикл завершается, если же значение условия отлично от нуля, то снова выполняется тело цикла с последующей проверкой условия. В любом случае, тело цикла выполнится хотя бы один раз. В C/C++ оператор цикла с постусловием имеет вид

do

Оператор

while ( условие продолжения );

Условие продолжение и оператор подчинены тем же правилам, что и аналогичные блоки уже рассмотренных операторов цикла.

Работа с файлами

Ввод и вывод в файлы

Файл представляет собой поток байтов. Каждый файл заканчивается маркером конца файла. Когда файл открывается, ему ставится в соответствие поток. Потоки обеспечивают каналы передачи данных между файлами и программами. В начале выполнения программы автоматически открываются три файла и связанные с ними потоки – это стандартный ввод, стандартный вывод и стандартная ошибка.

Открытый файл возвращает указатель на структуру FILE, определенную в stdio.h и содержащую информацию о файле.

Пример. Запись в файл.

#include < stdio.h>

FILE *f;

void main()

{

int i, x; f=fopen(" c: \\result.txt", " w" );

for (i=0; i< 100; i++)

{

x=i*2;

fprintf(f, " %d ", x);

}

fclose(f);

}

Оператор FILE *f;

Объявляет, что переменная f является указателем на структуру FILE. С каждым файлом необходимо связать отдельную структуру FILE.

Открытие файла производится оператором f=fopen(" c: \\result.txt", " w" );

Функция fopen() возвращает указатель на структуру FILE открываемого файла, если же файл невозможно открыть, функция возвращает NULL. В первом параметре функции указывается имя файла (обращаем внимание на двойные слеши в полном имени файла), а второй параметр указывает режим открытия файла (в данном случае, выбран режим w – файл для записи).

Оператор fprintf ( f, " %d ", x);

записывает данные в файл, на который указывает первый параметр этой функции – переменная f, в остальном функция полностью аналогична функции printf().

После выполнения операций с передачей данных в файл или из файла, необходимо выполнить закрытие файла с помощью оператора

fclose(f);

в качества аргумента этой функции используется указатель файла.

 

Режимы открытия файлов

r – режим чтения данных из файла;

w – режим записи в файл;

a – добавление в конец файла (или создание, если файл не обнаружен);

r+ – открытие файла для обновления (чтение и запись)

 

Пример записи в текстовый файл.Замечание. Каталог c: \aa должен существовать.

 

char *fname=" c: \\aa\\result.txt";

f=fopen(fname, " w" );

if(f == 0)

{

printf(" не могу открыть файл '%s'", fname);

return 0;

}

for (i=0; i< 10; i++)

{

x=i*2;

fprintf(f, " %10d ", x);

}

fclose(f);

 

return 0;

}

 

Чтение из файла

Для чтения из файла используется функция fscanf(). Эта функция является аналогом функции scanf(), но с дополнительным параметром – указателем на файл, из которого будет производиться чтение данных.

FILE *fp;

int n; float x;

fscanf(fp, " %d ", & n); fscanf(fp, " %f ", & x);

 

МЕТОДИКА ВЫПОЛНЕНИЯ

 

2.1. Базовые задания для всех бригад.

1. Создать консольное приложение.

2. В функции main() созданного приложения объявить переменную типа int и инициализировать ее значением, равным номеру бригады.

Объявить массивы символов и инициализировать их фамилиями студентов бригады.

3. Воспользовавшись объектом потокового вывода cout, вывести на экран значения указанной переменной типа int и фамилии студентов.

Перейти на новую строку.

4. Повторить вывод, воспользовавшись функцией printf().

5. В эту же функцию main() вставить строки:

int mas[ 3 ] = { 1, 2, 3 };

int mmm[ 3 ] = { 4, 5, 6 };

6. С помощью функции printf() вывести значения элементов этих массивов на экран.

2.2. Реализовать инициализацию и вывод данных структуры на экран и в текстовый файл - индивидуальное задание для бригад - Таблица 1. Количество элементов структуры равно 5.

 

Варианты индивидуального задания

Таблица 1 Структуры данных и условия отбора записей

 

№№ бри-гад   Структура   Поля   Условие отбора
Дом Площадь, кол-во этажей, год постройки Кол-во этажей свыше
Человек Имя, фамилия, год рождения Год рождения свыше
Точка x, y, цвет х более
Школьник Фамилия, имя, возраст Возраст менее
Студент Фамилия, имя, курс Курс более
Автомобиль Марка, мощность, год выпуска Мощность свыше
Отрезок X1, y1, x2, y3 x1 более
Круиз Страна, продолжитель-ность, стоимость Стоимость менее
Работник Имя, фамилия, зарплата Зарплата более
Работник Имя, фамилия, № отдела № отдела более

 

2.3.Написать программу, которая выводит на экран и в файл записи созданной структуры данных, удовлетворяющие заданному с клавиатуры значению условия. Имя файла вводить с клавиатуры. Условия отбора приведены в таблице 1.

2.4. Подготовить отчет о работе в соответствии с п.3.

2.5. Распечатать отчет на принтере любого типа

2.6. Готовый отчет представить преподавателю для отметки о выполнении работы

Работа считается выполненной, если выполнены все перечисленные выше пункты.

 

ОТЧЕТ О РАБОТЕ

Готовится в письменном виде с помощью доступного текстового процессора. Содержание отчета:

1. Титульный лист с названием работы, ее номером, номером группы, бригады, фамилиями студентов и преподавателей. См. след. страницу.

2. Листинги разработанных приложений командной строки.

3. Результаты, полученные при выполнении индивидуального задания.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Порядок создания консольного приложения на языке С++.

2. Пример консольного приложения для вывода на экран строки символов.

3. Русификация приложений.

4. Типы переменных.

5. Объявление и инициализация массивов.

6. Указатели и массивы.

7. Использование объектов класса string

8. Определение структур.

9. Ссылочные переменные

10. Потоковый ввод/вывод

11. Консольный ввод-вывод средствами языка С

12. Вывод строк Unicode

13. Операторы проверки условия

14. Операторы цикла

15. Ввод-вывод в файл

 

Литература

1. Липачев Е.К. Технология программирования. Базовые конструкции С/C++. Казанский университет. 2012.-142 с.

Лабораторная работа № 0

 

Создание консольного приложения в среде MS Visual Studio 201x

 

Цель работы: практическое знакомство с методикой создания и отладки консольных приложений средствами языка С++ в среде MS Visual Studio 201x

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 2648; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.206 с.)
Главная | Случайная страница | Обратная связь