Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +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
Мова: 
Українська
Оцінка: 

style="text-align: justify;">std::cout<<"Введіть сторону трикутника a : ";

std::cin>>a;
std::cout<<"Введіть сторону трикутника b : ";
std::cin>>b;
std::cout<<"Введіть сторону трикутника c : ";
std::cin>>c;
B[i]=new Triangle(a,b,c);
}
}
for (int i=0;i<n;i++)
{
std::cout<<i+1<<" "; B[i]->Show(); std::cout<<" площа : "<<B[i]->Square()<<"см кв.\n"; 
}
 
std::cin.get();
std::cin.get();
return 0;
}
 
10. Програма, яка демонструє реалізацію множинного наслідування, є два батьківських класи (чоловік, жінка) та похідний від них (дитина), створюємо екземпляр похідного класу.
 
#include <iostream>
#include <ostream>
#include <string>
#include "windows.h"
class Man
{
public:
int tall, age;
std::string name;
Man(int t=170,int a=18,std::string n="Tasik")
{
(t<10) ? tall=170 : tall=t;
(a<0) ? age=18 : age=a;
(n=="") ? name="Tasik" : name=n; 
}
virtual void Show()
{
std::cout<<name<<" "<<age<<" "<<age<<'\n';
}
};
class Woman
{
public:
int width, size;
std::string name;
 
Woman(int w=90,int s=40,std::string n="Babinka")
{
(w<10) ? width=90 : width=w;
(s<0) ? s=40 : size=s;
(n=="") ? name="Babinka" : name=n; 
}
virtual void Show()
{
std::cout<<name<<" "<<width<<" "<<size<<'\n';
}
};
class Child : public Man, public Woman
{
private:
public: 
void Show()
{
std::cout<<Man::name<<" "<<Man::age<<" "<<Man::tall<<" "<<Woman::size<<" "<<Woman::width<<'\n';
}
Child(int t=170,int a=18,std::string n="Tasik",int w=90,int s=40):Man(t,a,n),Woman(w,s,n){}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int tall,age,size,width;
std::string name;
do
{
std::cout<<"Введіть ім'я дитини =";
std::cin>>name;
}while(name=="" || name==" ");
do
{
std::cout<<"Введіть вік дитини =";
std::cin>>age;
}while(age<=0);
do
{
std::cout<<"Введіть висоту дитини =";
std::cin>>tall;
}while(tall<=0);
do
{
std::cout<<"Введіть розмір стопи дитини =";
std::cin>>size;
}while(size<=0);
do
{
std::cout<<"Введіть ширину дитини =";
std::cin>>width;
}while(width<=0);
Child a(tall,age,name,width,size);
std::cout<<std::endl;
a.Show();
std::cin.get();
std::cin.get();
return 0;
}
 
11. Програма яка зчитує дані з файлу, та створює  прогресії та виводить їх суму. 
 
#include <iostream>
#include <fstream>
#include "windows.h"
class base
{
protected:
double q,a0;
public:
virtual double sumup(int)=0;
base(double a01=1, double  q1=0.5)
{
(a01==0)? a0=1 :a0=a01;
(q1==0 || q1==1)? q=0.5 :q=q1;
}
~base()
{
 
};
virtual void show(std::ostream& os)
{
os<<a0<<" "<<q;
}
virtual void fromfile(std::ifstream& os)
{
double a01,q1;
os>>a01;
os>>q1;
(a01==0)? a0=1 :a0=a01;
(q1==0 || q1==1)? q=0.5 :q=q1;
}
friend std::ostream& operator<<(std::ostream& os, base& a)
{
a.show(os);
return os;
}
friend std::ifstream& operator>>(std::ifstream& os, base& a)
{
a.fromfile(os);
return os;
}
};
 
class progression:public base
{
public: 
progression(double a01=1, double  q1=0.5):base(a01,q1)
{
};
virtual double sumup(int n)
{
if (n<0) n=1;
return (a0-a0*pow(q,n)*q)/(1-q);
}
double getN(int n)
{
return pow(q,n)*a0;
}
~progression(){};
void show(std::ostream& os)
{
os<<"геометрична прогресія ";
base::show(os);
}
void fromfile(std::ifstream& os)
{
base::fromfile(os);
}
friend std::ostream& operator<<(std::ostream& os, progression& a)
{
a.show(os);
return os;
}
friend std::ifstream& operator>>(std::ifstream& os, progression& a)
{
a.fromfile(os);
return os;
}
};
class infinity_progression:public base
{
private:
public: 
infinity_progression(double a01=1,double  q1=0.5):base(a01,q1)
{
 
}
double sumup(int n=0)
{
return a0/(1-q);
}
void show(std::ostream& os)
{
os<<"нескінченна геометрична прогресія ";
base::show(os);
 
}
void fromfile(std::ifstream& os)
{
base::fromfile(os);
}
friend std::ostream& operator<<(std::ostream& os, infinity_progression& a)
{
a.show(os);
return os;
}
friend std::ifstream& operator>>(std::ifstream& os, infinity_progression& a)
{
a.fromfile(os);
return os;
}
~infinity_progression(){}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
infinity_progression a;
progression b;
std::ifstream fin("input.txt");
int n,k=0;
do
{
std::cout<<"Введіть n для сум скінченних геометричних прогресій n=";
std::cin>>n;
}
while(n<=0);
while(!fin.eof())
{
fin>>a;
k++;
}
fin.clear();
fin.seekg(0);
base **mas=new base* [k];
for (int i=0;i<k;i++)
{
if (i % 2==0) 
{fin>>a ;mas[i]=&a;} 
else
{fin>>b; mas[i]=&b;} 
std::cout<<*mas[i]<<" "<<mas[i]->sumup(n)<<"\n";
}
std::cin.get();
std::cin.get();
return 0;
}
 
12. Програма, яка демонструє переваження операторів для класу дробів.
 
#include
Фото Капча