Файл: Отчет по лабораторной работе 1 по дисциплине Объектноориентированное программирование.pdf

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 9

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования «Тульский государственный университет»
Институт прикладной математики и компьютерных наук
Кафедра вычислительной техники
Отчет по лабораторной работе № 1 по дисциплине
«Объектно-ориентированное программирование»
Тема «Создание консольных приложений на языках С, С++ и С# в интегрированной среде Microsoft Visual Studio»
Выполнил студент группы 220692
Стрельников Евгений Олегович
Проверил ассистент
Мишин Антон Андреевич
Тула 2021

Цель работы:
Ознакомление с технологией создания и отладки простейших процедурных и объектно-ориентированных приложений на языках С, С++ и
С# в интегрированной среде разработки приложений (integrated development environment, IDE) Microsoft Visual Studio.
Задания на работу:
1.Ознакомиться c программами add1.c, hello.cpp, add2.cpp, add3.cpp, sqrt.cpp, add4.cs.
2. Ознакомиться с технологией создания и использования решений и проектов в среде MS Visual Studio.
3. Выполнить создание и отладку консольных приложений на языках C,
C++ и C# в среде MS Visual Studio. Программы add1.c, hello.cpp, add2.cpp, add3.cpp, sqrt.cpp, add4.cs разместить в двух решениях - решение Lab1_1 для проектов на C/C++ и решение Lab1_2 для проекта на языке C#.
Ход работы:
В этой программе мы складываем 2 числа. Она на с. Пробуем отладить программу add1.c (Приложение 1 и Приложение 2). cin и cout это стандартные потоки ввода вывода, которые используются при написании программ на С++ для ввода вывода информации printf и scanf это функции, которые служат для ввода/вывода на консоль в программах на языке С. Так как С++ поддерживает
С (в большинстве случаев) , то и поддерживает эти функции, но лучше в программах на С++ их не использовать. К тому же printf и scanf работают намного быстрее, чем cin и cout. На высоком уровне оба они являются обертками над системным вызовом read(), просто синтаксическим сахаром. Единственное видимое различие заключается в том, что scanf() должен явно объявить входной тип, в то время как cin имеет перегруженную операцию перенаправления с использованием шаблонов. Это не кажется достаточно веской причиной для повышения производительности в 5 раз. Оказывается, iostream использует буферную
систему stdio. Таким образом, cinтратит время на синхронизацию себя с базовым буфером stdio C-библиотеки, так что вызовы как scanf (), так и cin могут чередоваться.
Получаем результат отладки (Рисунок 1):
Рисунок 1 – отладка программы add1.c
В этой программе мы получаем вывод строки «hello world». Она на с++.
Пробуем отладить программу hello.cpp (Приложение 3). Получаем результат отладки (Рисунок 2):
Рисунок 2– отладка программы hello.cpp
В этой программе мы складываем 2 числа. Она на с++. Пробуем отладить программу add2.cpp (Приложение 4). Получаем результат отладки
(Рисунок 3):
Рисунок 3 – отладка программы add2.cpp
В этой программе мы складываем 2 числа. Она на с++. В этом коде есть класс calc, в котором имеется публичный метод plus, с помощью которого мы складываем числа. Пробуем отладить программу add3.cpp (Приложение 5).
Получаем результат отладки (Рисунок 4):


Рисунок 4 – отладка программы add3.cpp
В этой программе мы извлекаем квадратный корень. Она на с++.
Пробуем отладить программу sqrt.cpp (Приложение 6). Получаем результат отладки (Рисунок 5):
Рисунок 5 – отладка программы sqrt.cpp
В этой программе мы складываем 2 числа. Она на c#. Пробуем отладить программу add4.cs (Приложение 7). Получаем результат отладки (Рисунок 6):
Рисунок 6 – отладка программы add4.cpp
Вывод: с технологией создания и отладки простейших процедурных и объектно-ориентированных приложений на языках С, С++ и С# в интегрированной среде разработки приложений (integrated development environment, IDE) Microsoft Visual Studio ознакомлен и применил её при отладке программ add1.c, hello.cpp, add2.cpp, add3.cpp, sqrt.cpp, add4.cs.

Приложения
Приложение 1
Листинг программы (Вариант программы 1):
// add1.c
#define
_CRT_SECURE_NO_DEPRECATE
1
#include

#include

using namespace std; int main()
{ int x, y; cout
<<
"Input 2 numbers: "
; cin
>>
x
>>
y; int p = x + y; cout
<<
p;
}
Приложение 2
Листинг программы (Вариант программы 2):
#define
_CRT_SECURE_NO_DEPRECATE
1
#include

; int main()
{ int x, y; printf(
"Input 2 numbers: "
); scanf(
"%d%d"
, &x, &y); printf(
"Summa = %d\n"
, x + y);
}
Приложение 3
Листинг программы:
// hello.cpp
#include

using namespace std; int main()
{ cout
<<
"Hello World!"
<<
endl;
// cin.get();
return
0;
}

Приложение 4
Листинг программы:
// add2.cpp
#include

using namespace std; void main()
{ int x, y; cout
<<
"Input 2 numbers: "
; cin
>>
x
>>
y; cout
<<
"Summa = "
<<
x + y
<<
endl;
}
Приложение 5
Листинг программы:
// add3.cpp
#include

using namespace std; class calc
{ public
: int plus(
int a
, int b
)
{ return a
+ b
;
}
}; void main()
{ int x, y; calc obj; cout
<<
"Input 2 numbers: "
; cin
>>
x
>>
y; cout
<<
"Summa = "
<<
obj.plus(x, y)
<<
endl;
}
Приложение 6
Листинг программы:
// sgrt.cpp
#include

#include

using namespace std; int main()
{ float myFloat = 0.0f; cout
<<
"Enter a number. ENTER: "
; cin
>>
myFloat; cout
<<
"The square root of "
<<
myFloat
<<
" is "
<<
sqrt(myFloat)
<<
endl; cin.clear(); cin.sync(); cin.get(); return
0; }

Приложение 7
Листинг программы:
// add4.cs using
System; using
System.Collections.Generic; using
System.Text; namespace
Add4
{ class
InputOutput
{ static void
Main(
string
[] args)
{
Console.WriteLine(
"Please enter 2 numbers: "
);
Console.Write(
"x = "
); string str = Console.ReadLine(); int x = Int32.Parse(str);
Console.Write(
"y = "
); str = Console.ReadLine(); int y = Int32.Parse(str); x = x + y;
Console.WriteLine(
"Сумма равна "
+ x.ToString());
}}}