Портал образовательно-информационных услуг «Студенческая консультация»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Звіт з навчальної практики "Об’єктно-орієнтоване програмування, програмне забезпечення"

Тип работы: 
Звіт з практики
К-во страниц: 
46
Язык: 
Українська
Оценка: 

isempty();

int pop();
void push(int);
void delall();
void pushvect(int*,int);
};
 
#include <iostream>
#include "classheader.h"
Stack::Stack()
{
item=new list;
item=NULL;
std::cout<<"стек створено\n";
}
bool Stack::isempty()
{
bool p;
if (item==NULL) {p=true;std::cout<<"стек пустий\n";} else p=false;
return p;
 
}
void Stack::push(int a)
{
 
struct list* p = new list;    
p->val = a;
    if (isempty()) p->next = NULL;
else p->next = item; 
item=p; 
std::cout<<"елемент "<<a<<" додано у стек\n";
}
int Stack::pop()
{
int a;
if (isempty()) {a=0;}
if(!isempty())
{
a = item->val;
struct list* p =item;     
item = item->next;      
delete p;              
std::cout<<"елемент "<<a<<" забрано зі стеку\n";
};
return a;
}
void Stack::delall()
{
std::cout<<"видалено усі елементи зі стеку, ";
struct list*p;
while(!isempty())
{
p=item;
item=item->next;
delete p;
}
}
void Stack::pushvect(int* a, int n)
{
for(int i=0;i<n;i++)
push(a[i]);
std::cout<<"вектор з "<<n<<" елементів відправлено у стек\n"; 
}
Stack::~Stack()
{
std::cout<<"пам'ять звільнено, ";
delall();
delete item;
}
 
#include <iostream>
#include "classheader.h"
#include "windows.h"
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int* b=new int [10];
Stack a;
for(int i=0;i<10;i++)
b[i]=i;
a.pushvect(b,10);
int c;
for(int i=0;i<10;i++)
c=a.pop();
a.push(10);
a.~Stack();
std::cin.get();
return 0;
}
 
8. Програма, у якій зчитуємо дані про n двигунів(назву, потужність, кількість), записуємо ці дані у бінарний файл, зчитуємо їх з нього та виводимо сумарну потужність ( потужність*кількість) на екран.
 
#include <iostream>
#include <fstream>
#include <string>
#include "windows.h"
class Engine
{
public:
std::string name;
int count, power;
Engine()
{
power=0;
count=0;
name="";
}
int GetSumPower() {return power*count;}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Engine *A=new Engine[4];
Engine *B=new Engine[4];
std::ofstream fout("data.txt");
for(int i=0;i<4;i++)
{
do
{
std::cout<<"Введіть назву "<<i+1<<" двигуна : ";
std::cin>>A[i].name;
}while(A[i].name=="");
do
{
std::cout<<"Введіть потужність "<<i+1<<" двигуна : ";
std::cin>>A[i].power;
}while(A[i].power<=0);
do
{
std::cout<<"Введіть кількість кінських сил "<<i+1<<" двигуна : ";
std::cin>>A[i].count;
}while(A[i].count<=0);
fout.write((char*)&(A[i]),sizeof(A[i]));
std::cout<<std::endl;
}
fout.close();
std::ifstream fin("data.txt");
for (int i=0;i<4;i++)
{
fin.read((char*)&(B[i]),sizeof(B[i]));
std::cout<<B[i].name<<" кількість*потужність: "<<B[i].GetSumPower()<<std::endl;
}
fin.close();
std::cin.get();
std::cin.get();
return 0;
}
 
9. Програма,  в який є базовий абстрактний клас фігура  та два похідні класи: трикутник та чотирикутник. Зчитуємо з клавіатури n фігур(прямокутників, трикутників) та рахуємо їхню площу.
 
#include <iostream>
#include <string>
#include "windows.h"
 
class Figure
{
public:
std::string name;
public:
virtual float Square() =0;
virtual void Show() =0;
};
 
class Triangle: public Figure
{
private:
int a,b,c;
public:
 
Triangle(int a1=1, int b1=1, int c1=1)
{
name="Трикутник";
(a1<=0)? a=1 : a=a1;
(b1<=0)? b=1 : b=b1;
(c1<=0)? c=1 : c=c1;
}
~Triangle()
{
std::cout<<name<<" "<<a<<" "<<b<<" "<<c<<"  said bye\n";
}
 
float Square()
{
float p=(a+b+c)/2;
return std::sqrt(p*(p-a)*(p-b)*(p-c));
}
void Show()
{
std::cout<<name<<" "<<a<<" "<<b<<" "<<c;
}
};
 
class Rect: public Figure
{
private:
int a,b;
public:
 
Rect(int a1=1, int b1=1)
{
name="Прямокутник";
(a1<=0)? a=1 : a=a1;
(b1<=0)? b=1 : b=b1;
}
~Rect()
{
std::cout<<name<<" "<<a<<" "<<b<<"  said bye\n";
}
 
float Square()
{
return a*b;
}
void Show()
{
std::cout<<name<<" "<<a<<" "<<b;;
}
 
};
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n;
do
{
std::cout<<"Введіть кількість фігур n=";
std::cin>>n;
}
while(n<=0);
Figure** B= new Figure* [n];
for (int i=0;i<n;i++)
{
int p;
std::cout<<i+1<<": Введіть 0, щоб створити трикутник, або інше ціле число, щоб створити прямокутник ";
std::cin>>p;
if (p) 
{
int a,b;
std::cout<<"Введіть сторону прямокутника a : ";
std::cin>>a;
std::cout<<"Введіть сторону прямокутника b : ";
std::cin>>b;
B[i]=new Rect(a,b);
}
else 
{
int a,b,c;
CAPTCHA на основе изображений