Проектування індивідуальної бази даних заданої предметної області
Поняття об’єктно-орієнтованого програмування у середовищі MS Visual Studio. Вимоги і рекомендації з написання коду. Стилі використання регістрів. Ознайомлення з антишаблонами в розробці програмних систем. Робота з типами даних у мові С+; бітові операції.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | украинский |
Дата добавления | 25.05.2021 |
Размер файла | 244,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.Ru/
Размещено на http://www.Allbest.Ru/
Міністерство освіти і науки України
Національний університет біоресурсів і природокористування України
ВСП «Рівненський фаховий коледж НУБіП України»
Спеціальність «Інженерія програмного забезпечення»
ЗВІТ-ЩОДЕННИК
проходження навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема:
Проектування індивідуальної бази даних заданої предметної області
Виконав: Рубель А.
студент 3 курсу, 33 групи
Викладач Бабич С.В.
2021
Зміст
1. Основні поняття ООП. Налаштування MS Visual Studio.
2. Вимоги і рекомендації з написання коду
3. Стилі використання регістрів
4. Анти-шаблони: «інверсія абстракції, «божественний об'єкт», «магічна кнопка», «магічні числа»
5. Принципи проектування «S.O.L.I.D.»
6. Базові типи даних. Функції вводу-виводу
7. Арифметичні операції й математичні функції в межах ООП
8. Бітові операції
9. Умовний оператор
10. Оператори циклу
Висновок
Список рекомендованої літератури
Інструкційна картка
До лабораторного заняття №1 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Основні поняття ООП. Налаштування MS Visual Studio
Мета: огляд основних понять ООП, навчитись користуватись середовищем MS Visual Studio.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio, інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт.
Інструкційна картка
До лабораторного заняття №2 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Вимоги і рекомендації з написання коду
Мета: формування стилю програмування у студента.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio, інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №3 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Стилі використання регістрів
Мета: знайомство із способами написання ідентифікаторів та рекомендаціями з їх застосування.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 3.1
Лістинг коду по завданню №3.1
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
Рис 3.1 Скріншот до Завдання 3.1.1
Рис 3.2 Скріншот до Завдання 3.1.2
Лістинг коду по завданню №3.1.2
<Window x : Class = "OOP_3_1_3.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns : x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns : d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns : mc = "http://schemas.openxmlformats.org/markup-
compatibility/2006"
xmlns : local = "clr-namespace:OOP_3_1_3"
mc : Ignorable = "d"
Title = "MainWindow" Height = "450" Width = "800">
<Grid>
<Label Content = "Hello, world!" HorizontalAlignment = "Left"
VerticalAlignment = "Top" Height = "149" Width = "695" FontSize = "90"
Margin = "58,119,0,0" / >
< / Grid>
< / Window>
Рис. 3.3 Скріншот до Завдання 3.1.3
Завдання 3.2
Лістинг коду по завданню №3.2
#include <iostream>
#include <string>
class student {
private:
std::string m_ArrayStudent[3];
double m_ArrayRead[3];
double m_ArrayWrite[3];
std::string m_ArrayRelax[3];
public:
std::string arrayStudent[3];
double arrayRead[3];
double arrayWrite[3];
std::string arrayRelax[3];
void study() {
std::cout << '\n';
for (int i = 0; i <= 2; i++) {
std::cout << "Vedite name Student " << i + 1 << " = ";
std::cin >> m_ArrayStudent[i];
arrayStudent[i] = m_ArrayStudent[i];
}
}
void read()
{
std::cout << '\n';
for (int i = 0; i <= 2; i++) {
std::cout << "Speed reads s/m student " << i + 1 << " = ";
std::cin >> m_ArrayRead[i];
arrayRead[i] = m_ArrayRead[i];
}
}void write() {
std::cout << '\n';
for (int i = 0; i <= 2; i++) {
std::cout << "Vedite write s/m student " << i + 1 << " = ";
std::cin >> m_ArrayWrite[i];
arrayWrite[i] = m_ArrayWrite[i];
}
}
void relax() {
std::cout << '\n';
for (int i = 0; i <= 2; i++) {
std::cout << "Relax student " << i + 1 << " = ";
std::cin >> m_ArrayRelax[i];
arrayRelax[i] = m_ArrayRelax[i];
}
}
void print() {
for (int i = 0; i <= 2; i++) {
std::cout << "\nStudent[" << i + 1 << "]:";
std::cout << "\nName = " << m_ArrayStudent[i]
<< "\nSpeed Read = " << m_ArrayRead[i]
<< "\nSpeed Write = " << m_ArrayWrite[i]
<< "\nRelax = " << m_ArrayRelax[i] << '\n';
}
}
};
class goodS {
public:
void print(student& student) {
for (int i = 0; i <= 2; i++) {
int c;
c = (student.arrayWrite[i] + student.arrayRead[i]) / 2;
if (c >= 50) {
std::cout << '\n' << i + 1 << " Student " << student.arrayStudent[i] << " -
Good Student ";
}
}
}
};
class badS {
public:
void print(student& student) {
for (int i = 0; i <= 2; i++) {
int c;
c = (student.arrayWrite[i] + student.arrayRead[i]) / 2;
if (c <= 50) {
std::cout << '\n' << i + 1 << " Student " << student.arrayStudent[i] << " - Bad Student ";
}
}
}
};
int main()
{
student da;
goodS a;
badS b;
da.study();
da.read();
da.write();
da.relax();
da.print();
a.print(da);
b.print(da);
};
Рис. 3.4 Скріншот до Завдання 3.2
Завдання 3.3
Лістинг коду по завданню №3.3
#include <iostream>
class Converter {
private:
double kusd{ 28.03 };
double keur{ 33.50 };
double hrn{ 0 };
double usd{ 0 };
double eur{ 0 };
int a{ 0 };
double sum{ 0 };
public:
int b;
Converter(int i) { b = i; };
void pri() {
if (b = 1)
{
std::cout << "Constr. Sntrong!" << std::endl;
}
}
void vvod()
{
std::cout << "vvedit 1 if you want convert hryvna in dollar \n" <<
"vvedit 2 if you want convert hryvna in euro \n" <<
"vvedit 3 if you want convert dollar in hryvna \n" <<
"vvedit 4 if you want convert euro in hryvna \n" <<
"vvedit 5 if you want finish work program\n" << '\n';
std::cin >> a;
}
int perevod()
{
if (a == 1) {
std::cout << "Vvedit sumu hrn \n";
std::cin >> hrn;
sum = hrn / kusd;
std::cout << "Suma dollars= " << sum << '\n' << '\n';
this->vvod();
}
if (a == 2) {
std::cout << "Vvedit sumu hrn \n";
std::cin >> hrn;
sum = hrn / keur;
std::cout << "Suma euro= " << sum << '\n' << '\n';
this->vvod();
}
if (a == 3) {
std::cout << "Vvedit sumu dollars \n";
std::cin >> usd;
sum = usd * kusd;
std::cout << "Suma hrn= " << sum << '\n' << '\n';
this->vvod();
}
if (a == 4) {
std::cout << "Vvedit sumu euro \n";
std::cin >> eur;
sum = eur * keur;
std::cout << "Suma hrn= " << sum << '\n' << '\n';
this->vvod();
}
if (a == 5) {
std::cout << "\nExit...";
return 0;
}
if (a > 5) {
std::cout << "Povtorite popytky \n" << '\n';
this->vvod();
}
}
};
int main()
{
Converter a(1);
a.pri();
a.vvod();
a.perevod();
};
Рис. 3.5 Скріншот до Завдання 3.3
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт.
Інструкційна картка
До лабораторного заняття №4 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Антишаблони: «інверсія абстракції, «божественний об'єкт», «магічна кнопка», «магічні числа»
Мета: ознайомлення з антишаблонами в розробці програмних систем, типові антишаблони, типові випадки некоректних підходів до розробки.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 1-2. Типові антишаблони і не надійні підходи до розробки ПЗ
Програмування методом копіювання-вставлення (Copy and paste programming): Копіювання (і зміна) наявного коду, замість того, щоб створювати нове рішення.
Золотий молоток (Golden hammer): Припущення, що улюблене рішення є універсальним.
Коефіцієнт неймовірності (Improbability factor): Припущення, що ймовірність виникнення помилки є достатньо низькою.
Це придумав не я (Not Invented Here (NIH) syndrome): Обвинувачення колишніх співробітників організації в написанні непрацюючого коду.
Це придумав я (Invented Here): Тенденція до несприйняття нових чи менш тривіальних рішень всередині організації, найчастіше через недовіру до персоналу.
Передчасна оптимізація (Premature optimization): Завчасне програмування для підвищення ефективності, жертвуючи хорошим дизайном, гнучкістю, а інколи навіть реальною ефективністю.
Програмування перестановкою (або «випадкове програмування»), або «програмування за збігом обставин») (Programming by permutation (or «programming by accident», or «programming by coincidence»)): Спроба знайти рішення шляхом послідовної зміни коду і перевіряючи «чи воно працює».
Винаходження велосипеда (Reinventing the square Wheel): При не змозі використати наявне рішення, намагаєшся оптимізувати своє, яке працює набагато гірше.
Срібна куля (Silver bullet): Припущення, що улюбленим технічним рішенням можна вирішити більшу проблему.
Tester Driven Development: програмні проєкти, в яких нові вимоги зазначені в повідомленнях про помилки.
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт.
Інструкційна картка
До лабораторного заняття №5 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Принципи проектування «S.O.L.I.D.»
Мета: ознайомлення з принципом єдиності відповідальності (The Single Responsibility Principle), принципом відкритосі/закритості (The Open Closed Principle), принципом заміщення Лісков (The Liskov Substitution Principle), принципом розділення інтерфейсу (The Interface Segregation Principle), принципом інверсії залежності (The Dependency Inversion Principle).
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 5.1
В наданому прикладі було порушений принцип єдиної відповідальності. Клас “Order” містив занадто набагато методів. Рішення - розбиття класу “Order” на менші класи.
Лістинг коду по завданню №5.1
#include <iostream>
#include <vector>
using namespace std;
class Item {
};
class order {
private:
vector<Item> itemList;
public:
vector<Item> GetItemList()
{
return itemList;
}
void SetItemList(vector<Item> value)
{
itemList = value;
}
};
class orderCalculate {
public:
void CalculateTotalSum() {/*...*/ }
};
class orderGet {
public:
void GetItems() {/*...*/ }
void GetItemCount() {/*...*/ }
};
class orderAdd_Delete {
public:
void AddItem(Item item) {/*...*/ }
void DeleteItem(Item item) {/*...*/ }
};
class orderPrint_Show {
public:
void PrintOrder() {/*...*/ }
void ShowOrder() {/*...*/ }
};
class orderLoad_save {
public:
void Load() {/*...*/ }
void Save() {/*...*/ }
};
class orderUp_de {
public:
void Update() {/*...*/ }
void Delete() {/*...*/ }
};
Завдання 5.2
В наданому прикладі було порушений принцип єдиної відповідальності. Метод “send” і виводив значення й вирішував як буде вестися лог. Рішенням - створення інтерфейсу якій буде вирішувати як буде вестися лог, а метод за те якій саме виводиться об'єкт.
Лістинг коду по завданню №5.2
#include <iostream>
#include <string>
using namespace std;
_interface print { public: void vvod(string valueFrom, string valueTo); };
class vivid : public print {
public:
void vvod(string valueFrom, string valueTo) {
cout << " Email from " << valueFrom << " to " << valueTo << " was send "
<< endl;
}
};
class Email
{
private:
string theme;
string from;
string to;
public:
string GetTheme()
{
return theme;
}
string GetFrom()
{
return from;
}
string GetTo()
{
return to; 35;
}
void SetTheme(string value)
{
theme = value;
}
void SetFrom(string value)
{
from = value;
}
void SetTo(string value)
{
to = value;
}
};
class printClass
{
public:
void vvod(Email& email, vivid& vivid, string valueFrom, string valueTo)
{
vivid.vvod(email.GetFrom(), email.GetTo());
}
};
об'єктний орієнтований код стиль антишаблон бітовий
Завдання 5.3
В наданому прикладі було порушений принцип єдиної відповідальності. Метод “send” і виводив значення й вирішував як буде вестися лог. Рішенням є розділення 2 метода.
Лістинг коду по завданню №5.3
#include <iostream>
#include <string>
_interface nameInt {
void setName(std::string book);
void setPrice(double price);
};
_interface sizeInt {
void setColor(std::string color);
void setSize(std::string size);
};
_interface promocodeInt {
void applyDiscount(std::string discount);
void applyPromocode(std::string promocode);
};
class name : public nameInt {
public:
void setName(std::string name) override { std::cout << name << '\t'; }
void setPrice(double price) override { std::cout << price << " grn " << '\n'; }
};
class printName {
public:
void print(nameInt& nameInt, std::string name, double price) {
std::cout << "Name = ";
nameInt.setName(name);
std::cout << "Price = ";
nameInt.setPrice(price);
};
};
class properties : public sizeInt {
public:
void setColor(std::string color) override { std::cout << color << "\t"; }
void setSize(std::string size) override { std::cout << size << '\n'; }
};
class printSize {
public:
void print(sizeInt& sizeInt, std::string color, std::string size) {
std::cout << "Color: ";
sizeInt.setColor(color);
std::cout << "Size: ";
sizeInt.setSize(size);
}
};
class promo : public promocodeInt {
public:
void applyDiscount(std::string discount) override { std::cout << discount <<
'\n'; }
void applyPromocode(std::string promocode) override { std::cin >>
promocode; std::cout << "Promo activate" << std::endl; }
};
class printPromo {
public:
void print(promocodeInt& promocodeInt, std::string discount, std::string
promocode) {
std::cout << "\nDiscount: ";
promocodeInt.applyDiscount(discount);
std::cout << "\nPromocode: ";
promocodeInt.applyPromocode(promocode);
}
};
class mainClass {
private:
int m_a;
public:
name m1;
properties m2;
promo m3;
printName a;
printSize b;
printPromo c;
void vvod() {
int a;
std::cout << "Book or clothes?" << '\n' << "Book - 1" << '\n' << "clothes - 2"
<< '\n';
std::cin >> a;
m_a = a;
}
void print() {
if (m_a <= 1) {
a.print(m1, "1904", 153);
c.print(m3, "20%", "");
}
else {
a.print(m1, "kepka", 456);
b.print(m2, "Red", "Textile");
c.print(m3, "25%", "");
}
}
};
int main()
{
mainClass a;
a.vvod();
a.print();
};
Рис. 5.1 Скріншот до Завдання 5.3
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №6 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Базові типи даних. Функції вводу-виводу
Мета: одержання практичних навичок у роботі з типами даних у мові С+; використання функцій стандартного вводу-виводу.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 6.1
Лістинг коду по завданню №6.1
#include <iostream>
#include <iomanip>
_interface prin { void setInt(std::string m1, std::string m2, std::string m3,
std::string m4); };
class setPrint : public prin {
public:
void setInt(std::string m1, std::string m2, std::string m3, std::string m4)
{
std::cout << "|" << std::setw(10) << m1 << std::setw(10) << m2 <<
std::setw(20) << m3 << std::setw(20) << m4 << "|" << std::endl;
}
};
class pri {
public:
void print(setPrint& setPrint, std::string m1, std::string m2, std::string m3,
std::string m4) { setPrint.setInt(m1, m2, m3, m4); }
};
class tabl
{
private:
public:
void print1(std::string m1) {
std::cout << "[" << m1 << "]" << '\n';
std::cout << "---------" <<
std::endl;
}
void print2(std::string m1) {
std::cout << "---------";
std::cout << '\n' << "[" << m1 << "]" << std::endl;
}
};
int main()
{
setlocale(LC_ALL, "Rus");
setPrint a1;
pri a2;
tabl a3;
a3.print1("Коефiцiєнти теплопровiдностi матерiалiв");
a2.print(a1, "Речовина", "Тип", "Вологiсть (%)", "Коефiцiєнт");
a2.print(a1, "Алюмiнiй", "M", "0-100", "209,3");
a2.print(a1, "Стiкловата", "T", "0-100", "0,035");
a2.print(a1, "Глина", "I", "15-20", "0,73");
a3.print2("Примiтка: М - метал; Т - термоiзоляцiйний матерiал; i - iншi матерiали.");
}
Рис. 6.1 Скріншот до Завдання 6.1
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №7 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Арифметичні операції й математичні функції в межах ООП.
Мета: здобуття практичних навичок у програмуванні алгебраїчних виразів і використанні функцій математичних бібліотек.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 7.1
Лістинг коду по завданню №7.1
#include <iostream>
#include <math.h>
class t {
private:
double x;
double y;
double a{ 12.5 };
double b{ 6.2 };
double t1;
double t2;
double ax;
public:
void vvod()
{
std::cout << "\nВведiть x = ";
std::cin >> x;
std::cout << "\nВведiть y = ";
std::cin >> y;
}
void obrah()
{
t1 = (1/(6*pow(a,3)))*log((a+x)/(a-x))+(1/(2+pow(a,3)));
ax = a * x;
t2 = (1 / (a*b)) *log(tan(ax+b)/tan(ax-b));
}
void vivod() {
std::cout << "\nt1 = " << t1 << '\n';
std::cout << "\nt2 = " << t2 << '\n';
}
};
int main()
{
setlocale(LC_ALL, "rus");
t a1;
a1.vvod();
a1.obrah();
a1.vivod();
}
Рис. 7.1 Скріншот до Завдання 7.1
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №8 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Бітові операції
Мета: одержання практичних навичок у роботі з побітовими логічними операціями й операціями зсуву
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 8.1
Лістинг коду по завданню №8.1
#include <iostream>
#include <iostream>
#include<iomanip>
using namespace std;
class Coder {
private:
char array1[16] = { 'D','D','D','D','D','D','D','D','D','D','D','D','F','F','C','C' };
int c;
int f;
int d;
char axx[2];
public:
void print() {
cout << "--------------------------" << endl;
for (int i = 16; i; i--) {
std::cout << "|" << setw(5) << i - 1;
}
cout << "|" << endl << "-----------------" << endl;
for (int i = 16; i; i--) {
std::cout << "|" << setw(5) << array1[i - 1];
}
cout << "|" << endl << "------------------" << endl;
}
void vvod() {
cout << "\nВведiть номер каналу таймера >";
cin >> c;
cout << "\nВведiть форму сигналу >";
cin >> f;
cout << "\nВведiть коефiцiєнт дiлення опорної частоти >";
cin >> d;
}
void vivod()
{
axx[0] = array1[c];
axx[1] = array1[f];
axx[2] = array1[d];
cout << "Ответ - ";
for (int i = 0; i <= 2; i++) {
cout << axx[i];
}
}
};
int main()
{
setlocale(LC_ALL, "Russian");
Coder m1;
m1.print();
m1.vvod();
m1.vivod();
}
Рис. 8.1 Скріншот до Завдання 8.1
Завдання 8.2
Лістинг коду по завданню №8.2
#include <iostream>
#include<iomanip>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
class Decoder {
private:
char array1[16] = { 'D','D','D','D','D','D','D','D','D','D','D','D','F','F','C','C' };
char axx[2];
int k;
int st[3];
public:
void print() {
cout << "----------------------------" << endl;
for (int i = 16; i; i--) {
std::cout << "|" << setw(5) << i - 1;
}
cout << "|" << endl << "------------" << endl;
for (int i = 16; i; i--) {
std::cout << "|" << setw(5) << array1[i - 1];
}
cout << "|" << endl << "-------------" << endl;
}
void vvod()
{
cout << "\nВведiть кодоване слово >";
for (int i = 0; i <= 2; i++) {
cin >> axx[i];
}
}
void decoder()
{
for (int i = 0; i <= 2; i++)
{
switch (toupper(axx[i]))
{
case 'A': k = 10; break;
case 'B': k = 11; break;
case 'C': k = 12; break;
case 'D': k = 13; break;
case 'E': k = 14; break;
case 'F': k = 15; break;
case '1': k = 1; break;
case '2': k = 2; break;
case '3': k = 3; break;
case '4': k = 4; break;
case '5': k = 5; break;
case '6': k = 6; break;
case '7': k = 7; break;
case '8': k = 8; break;
case '9': k = 9; break;
case '0': k = 0; break;
}
st[i] = k;
}
}
void vivod()
{
cout << "\nНомер каналу таймера >" << array1[st[0]];
cout << "\nФорма сигналу >" << array1[st[1]];
cout << "\nКоефiцiєнт дiлення опорної частоти >" << array1[st[2]];
}
};
int main()
{
setlocale(LC_ALL, "Russian");
Decoder m1;
m1.print();
m1.vvod();
m1.decoder();
m1.vivod();
}
Рис. 8.2 Скріншот до Завдання 8.2
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №9 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Умовний оператор
Мета: одержання практичних навичок у роботі з умовним оператором і розгалуженими алгоритмами.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio., інструкційна картка.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 9.1
Лістинг коду по завданню №9.1
#include <iostream>
using namespace std;
class tochka
{
private:
double x{ 0 };
double y{ 0 };
int r{ 1 };
double t{ 0 };
public:
void vved()
{
cout << "vvedit x = ";
cin >> x;
cout << "\nvvedit y = ";
cin >> y;
}
void obrah()
{
t = sqrt((x * x) + (y * y));
if ((y > -1 && x < 1 && y < 0 && x > 0)|| (y < 1 && x > -1 && y > 0 && x
< 0))
{
cout << "ne vhodit";
}
else if ((t <= r)|| (y <= 1 && x <= 1 && y >= 0 && x >= 0))
{
cout << "vhodit";
}
else {
cout << "ne vhodit";
}
}
};
int main(void)
{
tochka a;
a.vved();
a.obrah();
}
Рис. 9.1 Скріншот до Завдання 9.1 Рис. 9. 2 Скріншот до Завдання 9.1
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Інструкційна картка
До лабораторного заняття №10 навчальної практики з дисципліни «Об'єктно-орієнтоване програмування»
Тема: Оператори циклу
Мета: одержання практичних навичок у роботі з операторами циклу.
Матеріально-технічне оснащення робочого місця: комп'ютер з встановленою Visual Studio.
Ознайомився з теоретичною частиною лабораторної роботи.
Завдання 10.1
Лістинг коду по завданню №10.1
#include <iostream>
using namespace std;
class setWhile
{
private:
long double a{ 0 };
double n{ 1 };
int i{ 0 };
long double b{ 0 };
public:
void vvod()
{
cout << "vvedit k-st iteracii n = ";
cin >> i;
}
void wxile()
{
while (i >= n) {
a = pow(-1, n) * (1/(2*(n+1)));
n++;
b = b + a;
}
}
void vivod()
{
cout << "\nSuma = " << b;
}
};
int main()
{
setWhile a;
a.vvod();
a.wxile();
a.vivod();
}
Рис. 10.1 Скріншот до Завдання 10.1
Взяв на замітку подану інформацію для використання в наступних практичних.
Оформив звіт
Висновок
Під час розробки програм мною були засвоєні функції мови C++, набуття практичних навичок розробки програм. Під час створення програм я:
Ознайомився з основними компонентами інтегрованого середовища програмування; навчився створювати, налагоджувати і виконувати проекти програм;
Навчився будувати класи та використовувати їх при створенні програм;
Вивчив стилі використання регістрів;
Ознайомився з анти-шаблонами програмування;
Вивчив принципи проектування «S.O.L.I.D.»;
Вивчив базові типи даних. Функції вводу-виводу;
Навчився використовувати арифметичні операції й математичні функції в межах ООП;
Засвоїв бітові операції;
Засвоїв умовні оператори;
Засвоїв оператори циклу.
Список рекомендованої літератури
1. Айвор Хортон Visual C++ 2010: полный курс. М.: Изд-во: Диалектика- Вильямс, 2011. - 1216с.
2. Айра Пол Объектно-ориентированное программирование на С++. М.: СПб.: “Издательство БИНОМ”-“Невский Диалект”, 1999. 462 с.
3. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. М.: СПб.: “Издательство БИНОМ”-“Невский Диалект”, 2001. 560 с.
4. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс. Харьков: Фолио; М.: ООО «Издательство АСТ», 2001. 500 с.
5. Грицюк Ю.І., Рак Т.Є. Об'єктно-орієнтоване програмування мовою С++: навчальний посібник. Львів: Вид-во Львівського ДУ, 2011. 404 с.
Размещено на allbest.ru
Подобные документы
Розробка бази даних для меблевої фірми. Обстеження і аналіз предметної області та побудова концептуальної, логічної та фізичної моделі цієї бази даних. Використання мови програмування Visual Basic при написанні програмного коду, що обслуговує базу даних.
курсовая работа [1,4 M], добавлен 24.10.2010Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".
курсовая работа [4,0 M], добавлен 02.12.2014Опис предметної області. Визначення проблеми та постановка задачі. Проектування бази даних. Концептуальна модель. Логічна модель. Фізична модель. Розробка програмних модулів.
курсовая работа [136,3 K], добавлен 14.07.2007Основні відомості про реляційні бази даних, система управління ними. Основні директиви для роботи в середовищі MySQ. Визначення та опис предметної області. Створення таблиць та запитів бази даних автоматизованої бази даних реєстратури в поліклініці.
курсовая работа [2,9 M], добавлен 06.11.2011Редагування за допомогою текстового редактора NotePad вхідного файлу даних. Програмна реалізація основного алгоритму з використанням засобів об'єктно-орієнтованого програмування. Об’ява та опис класів і об'єктів. Розробка допоміжних програмних засобів.
курсовая работа [69,4 K], добавлен 14.03.2013Методи використання предикатів Cut, Fail. Організація циклу (repeat), складання програми. Алгоритм роботи зі списками та рядками. Елементарні операції і базові функції мови програмування Лісп. Робота зі складними типами даних на прикладі бази даних АТС.
контрольная работа [219,3 K], добавлен 17.06.2011Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.
курсовая работа [861,7 K], добавлен 21.02.2010Розробка таблиці для збереження даних у текстовому файлі про фільми в середовищі програмування Visual Studio C++ та їх сортування за країною виробництва. Реалізація таблиці за допомогою компонента dataGridView. Опис і контрольний приклад роботи програми.
курсовая работа [1,4 M], добавлен 02.11.2016Проектування бази даних відділу кадрів, її внутрішня структура, зміст таблиць та запитів. Особливості практичного використання бази даних відділу кадрів підприємства, що вивчається. Вимоги до робочого місця при роботі за комп’ютером, рекомендації.
отчет по практике [748,5 K], добавлен 26.03.2015Аналіз предметної галузі, постановка задачі, проектування бази даних. UML-моделювання, побудова ER-діаграми, схеми реляційної бази даних у третій нормальній формі. Призначення і логічна структура. Опис фізичної моделі бази даних, програмної реалізації.
курсовая работа [3,5 M], добавлен 28.11.2011