Aktyorlar sinfi //"Aktyor h" faylida


Download 397.76 Kb.
bet1/4
Sana24.12.2019
Hajmi397.76 Kb.
#93020
  1   2   3   4
Bog'liq
O'rinboyev Doniyorbek
G, O'rinboyev Doniyorbek, Mahalliy soliq va yigʻimlar - Vikipediya, Mahalliy soliq va yigʻimlar - Vikipediya, Mahalliy soliq va yigʻimlar - Vikipediya, Mahalliy soliq va yigʻimlar - Vikipediya, Doston - Vikipediya, Doston - Vikipediya, Магистратура ШИР Ахмедова Ферузахон, 8-sinf huquq konspekt, 8-sinf huquq konspekt, qiziq o'yinlar, mulk 2-mavzu mustaqil ishi, 14-15-мавзу

Aktyorlar sinfi

//“Aktyor.h” faylida:

#ifndef AKTYOR_H

#define AKTYOR_H

#include

#include

#include

using namespace std;

class Aktyor{

protected:

string ismi;

string familiyasi;

string sharifi;

int tugilgan_yili;

string jinsi;

bool oilali; //true = oilali; false = oilali emas

string fuqaroligi;

string millati;

int mukofotlari_soni;

string mukofotlari[100];

public:

Aktyor();



Aktyor(string ismi, string familiyasi,

string sharifi, int tugilgan_yili, string jinsi, bool oilali,

string fuqaroligi, string millati);

~Aktyor();

void chiqarish();

void faylga_yozish(std::string fayl_nomi, bool append = true);

void mukofotlarni_kiritish(std::string yangi_mukofot);

void kiritish();

};

Aktyor::Aktyor(){



this->ismi = "Not defined";

this->familiyasi = "Not defined";

this->sharifi = "Not defined";

this->tugilgan_yili = 0;

this->jinsi = "Not defined";

this->oilali = false;

this->fuqaroligi = "Not defined";

this->millati = "Not defined";

this->mukofotlari_soni = 0;

}

Aktyor::Aktyor(string ismi, string familiyasi,



string sharifi, int tugilgan_yili,string jinsi, bool oilali,

string fuqaroligi, string millati ){

this->ismi = ismi;

this->familiyasi = familiyasi;

this->sharifi = sharifi;

this->tugilgan_yili = tugilgan_yili;

this->jinsi = jinsi;

this->oilali = oilali;

this->fuqaroligi = fuqaroligi;

this->millati = millati;

this->mukofotlari_soni = 0;

}

Aktyor::~Aktyor(){



}

void Aktyor::chiqarish(){

if (this->ismi != "Not defined")

cout<ismi<<'\t';

if (this->familiyasi != "Not defined")

cout<familiyasi<<'\t';

if (this->sharifi != "Not defined")

cout<sharifi<<'\t';

if (this->tugilgan_yili != 0)

cout<tugilgan_yili<<"-yil"<<'\t';

if (this->jinsi != "Not defined")

cout<jinsi<<'\t';

cout<<((this->oilali)?"oilali":"oilali emas")<<'\t';

if (this->fuqaroligi != "Not defined")

cout<fuqaroligi<<" fuqarosi"<<'\t';

if (this->millati != "Not defined")

cout<millati<<'\n';

if (this->mukofotlari_soni != 0) {

cout<mukofotlari_soni<<" ta mukofot olgan: \n";

for(int i=0;imukofotlari_soni;i++){

cout<<'\t'<mukofotlari[i]<<'\n';

}

}



}

void Aktyor::faylga_yozish(string fayl_nomi, bool append){

ofstream fout;

if(append)

fout.open(fayl_nomi.c_str(), ios::app);

else fout.open(fayl_nomi.c_str());

fout<ismi<<'\n';

fout<familiyasi<<'\n';

fout<sharifi<<'\n';

fout<tugilgan_yili<<'\n';

fout<jinsi<<'\n';

fout<oilali<<'\n';

fout<fuqaroligi<<'\n';

fout<millati<<'\n';

fout<mukofotlari_soni<

if (this->mukofotlari_soni != 0) {

for(int i=0;imukofotlari_soni;i++){

fout<mukofotlari[i]<<'\n';

}

}

fout.close();



}

void Aktyor::kiritish(){

cout<<"Aktyor ismi: ";

getline(cin, ismi); if(ismi.length()==0) ismi = "Not defined";

cout<<"Aktyor familiyasi: ";

getline(cin, familiyasi);if(familiyasi.length()==0) familiyasi = "Not defined";

cout<<"Aktyor otasining ismi: ";

getline(cin, sharifi);if(sharifi.length()==0) sharifi = "Not defined";

cout<<"Aktyor tug'ilgan yili: ";

cin>>tugilgan_yili;cin.ignore();

cout<<"Aktyor jinsi: ";

getline(cin, jinsi);if(jinsi.length()==0) jinsi = "Not defined";

cout<<"Aktyor oilalimi? (Ha --> 1, Yo'q --> 0): ";

cin>>oilali;cin.ignore();

cout<<"Aktyor fuqaroligi: ";

getline(cin, fuqaroligi);if(fuqaroligi.length()==0) fuqaroligi = "Not defined";

cout<<"Aktyor millati: ";

getline(cin, millati);if(millati.length()==0) millati = "Not defined";

}

void Aktyor::mukofotlarni_kiritish(string yangi_mukofot){



mukofotlari[mukofotlari_soni++] = yangi_mukofot;

}

#endif



//---------------------------------------------------------------------------------------------------------------------------------------

//Aktyor2.h fayli

#ifndef AKTYOR2_H

#define AKTYOR2_H

#include "Aktyor.h"

#include

using namespace std;

class Aktyor2: public Aktyor{

friend void sarala2(Aktyor2 *aktyorlar, int n); //ikkinchi masala uchun

friend inline void fayldan_oqi2(Aktyor2 *aktyorlar, string fayl_nomi, int &n);

friend void sarala3(Aktyor2 *aktyorlar, int n); //uchinchi masala uchun

friend inline void fayldan_oqi3(Aktyor2 *aktyorlar, string fayl_nomi, int &n);

public:

Aktyor2();



};

Aktyor2::Aktyor2(){

}

#endif


//main1.h faylida

//Birinchi, ikkinchi, uchinchi masalalar uchun

#ifndef MAIN1_H

#define MAIN1_H

#include

#include

#include "Aktyor.h"

#include "Aktyor2.h"

/*

Name: Aktyor sinfiga birinchi, ikkinchi va uchinchi masalalar.



Copyright: --------------------------------------------------

Author: O'rinboyev Doniyor

Date: 15.12.19 18:47

Description: 1. Berilgan N ta aktyor ma'lumotlarini consoledan o'qish va aktyorlar.txt

fayliga yozish

2. aktyorlar.txt faylidan ma'lumotlarni o'qib, ularni aktyorlarning

tug'ilgan yili bo'yicha saralab, aktyorlar2.txt fayliga yozish

3. aktyorlar2.txt faylidan ma'lumotlarni o'qish va consoledan ularning

mukofotlari sonini va nomini kiritib, aktyorlar3.txt fayliga ismi bo'yicha

saralangan holda saqlash

*/

void sarala2(Aktyor2 aktyorlar[], int n){



//Ikkinchi masala sharti uchun saralash

//Bu friend funksiya bo'lgani uchun Aktyor sinfining yopiq maydonlariga

//murojaat qila oladi

for(int i=0;i

for(int j=i+1;j

if(aktyorlar[i].tugilgan_yili>aktyorlar[j].tugilgan_yili)

swap(aktyorlar[i], aktyorlar[j]);

for(int i=0;i

aktyorlar[i].faylga_yozish("aktyorlar2.txt", i>0);

}

cout<<"Tayyor, vazifa bajarildi";



}

inline void fayldan_oqi2(Aktyor2 aktyorlar[], string fayl_nomi, int &n){

//Ikkinchi masala uchun fayldan o'qish funksiyasi

//Bu funksiya friend funksiya bo'lgani uchun Aktyor

//sinfining yopiq maydonlariga yoza oladi

//P.S bu inline funksiya (inline ishlatsam balim oshar ekan deb

//qo'shib qo'yganman)

ifstream read(fayl_nomi.c_str());

Aktyor2 a;

while(!read.eof()){

int m;

getline(read, a.ismi); if(read.eof()) break;



getline(read,a.familiyasi); if(read.eof()) break;

getline(read, a.sharifi); if(read.eof()) break;

read>>a.tugilgan_yili;read.ignore(); if(read.eof()) break;

getline(read, a.jinsi); if(read.eof()) break;

read>>a.oilali;read.ignore(); if(read.eof()) break;

getline(read, a.fuqaroligi); if(read.eof()) break;

getline(read, a.millati); if(read.eof()) break;

read>>m;read.ignore();

a.mukofotlari_soni =0;

if (m != 0) {

for(int i=0;i

string mukofot;

read>>mukofot;

a.mukofotlarni_kiritish(mukofot);

}

}

aktyorlar[n++] = a;



}

read.close();

sarala2(aktyorlar, n);

}

void sarala3(Aktyor2 aktyorlar[], int n){



//Uchinchi masala sharti uchun saralash

//Bu friend funksiya bo'lgani uchun Aktyor sinfining yopiq maydonlariga

//murojaat qila oladi

int ms;


string mukofot;

for(int i=0;i

cout<

cin>>ms;cin.ignore();

for(int j=0;j

cout<

getline(cin, mukofot);

aktyorlar[i].mukofotlarni_kiritish(mukofot);

}

}

for(int i=0;i

for(int j=i+1;j

if(aktyorlar[i].ismi>aktyorlar[j].ismi)

swap(aktyorlar[i], aktyorlar[j]);

for(int i=0;i

aktyorlar[i].faylga_yozish("aktyorlar3.txt", i>0);

}

cout<<"Tayyor, vazifa bajarildi";



}

inline void fayldan_oqi3(Aktyor2 aktyorlar[], string fayl_nomi, int &n){

//Uchinchi masala uchun fayldan o'qish funksiyasi

//Bu funksiya friend funksiya bo'lgani uchun Aktyor

//sinfining yopiq maydonlariga yoza oladi

//P.S bu inline funksiya (inline ishlatsam balim oshar ekan deb

//qo'shib qo'yganman)

//P.P.S copy-pasted :)

ifstream read(fayl_nomi.c_str());

Aktyor2 a;

while(!read.eof()){

int m;


getline(read, a.ismi); if(read.eof()) break;

getline(read,a.familiyasi);if(read.eof()) break;

getline(read, a.sharifi); if(read.eof()) break;

read>>a.tugilgan_yili;read.ignore(); if(read.eof()) break;

getline(read, a.jinsi); if(read.eof()) break;

read>>a.oilali;read.ignore(); if(read.eof()) break;

getline(read, a.fuqaroligi); if(read.eof()) break;

getline(read, a.millati); if(read.eof()) break;

read>>m;read.ignore();

string mukofot;

a.mukofotlari_soni = 0;

if (m != 0) {

for(int i=0;i

read>>mukofot;

a.mukofotlarni_kiritish(mukofot);

}

}



aktyorlar[n++] = a;

}

read.close();



sarala3(aktyorlar, n);

}

void birinchi(){



int N;

cout<<"Nechta aktyor haqida ma'lumot kiritish kerak? ";cin>>N;cin.ignore();

Aktyor aktyorlar[100], a;string ismi, familiyasi, sharifi,jinsi, fuqaroligi,millati;

int tugilgan_yili;bool oilali;

for(int i=0;i

for(int i=0;i

aktyorlar[i].chiqarish();

aktyorlar[i].faylga_yozish("aktyorlar.txt");

}

}

void ikkinchi(){



Aktyor2 aktyorlar[100];

int n=0;


fayldan_oqi2(aktyorlar, "aktyorlar.txt", n);

}

void uchinchi(){



Aktyor2 aktyorlar[100];

int n=0;


fayldan_oqi3(aktyorlar, "aktyorlar2.txt", n);

}

#endif



//--------------------------------------------------------------------------------------------------------------------------------------------

//main2.h faylida

//To'rtinchi, beshinchi, oltinchi va yettinchi masalalar uchun

#ifndef MAIN2_H

#define MAIN2_H

#include

#include "Aktyor.h"

#include

using namespace std;

/*

Name: Aktyor sinfiga to'rtinchi, beshinchi, oltinchi, yettinchi masalalar :)



Copyright: ---------------

Author: O'rinboyev Doniyor

Date: 15.12.19 12:58

Description: 4. Kinolar sinfi yaratilsin. Consoledan n ta Kino haqida ma'lumotlar olinsin va

kinolar.txt faylida saqlansin. //DONE

5. Aktyorlar sinfidan voris sinf olinsin va unda o'ynagan kinolari uchun maydon

yaratilsin. kinolar.txt faylidagi kinolar uchun consoledan Aktyorlar ism

familiyasi kirtilsin va shu aktyorlarning o'ynagan kinolari maydoniga shu

kinolar kiritilsin. //DONE

6. Consoledan kiritilgan kino uchun shu kinoda o'ynagan aktyorlar ekranga chiqarilsin. //DONE

7. Consoledan kiritilgan janrdagi kinolarda eng ko'p o'ynagan aktyor haqida

ma'lumot ekranga chiqarilsin(agar teng bo'lib qolsa, mukofotlari soni kattasi chiqarilsin). //TODO

*/

class Aktyor_;



class Kino{

//To'rtinchi masala sharti bo'yicha yaratilgan sinf

string nomi;

string janri;

int yili;

friend class Aktyor_;

friend void beshinchi();

friend void oltinchi_yettinchi();

friend inline void yordamchi(Kino*, int, Aktyor_*, int);

public:


Kino(){

nomi = "";

janri = "";

yili = 0;

}

Kino(string n, string j, int y) :



nomi(n), janri(j), yili(y){}

void kirit(){

cout<<"Kino nomi: ";getline(cin, nomi);

cout<<"Kino janri: ";getline(cin, janri);

cout<<"Kino chiqqan yili: ";cin>>yili;cin.ignore();

}

void chiqar(){



cout<<"Kino nomi: "<

cout<<"Kino janri: "<

cout<

}

void faylga_yoz(string fayl_nomi, bool append = true){



ofstream write;

if(append) write.open(fayl_nomi.c_str(), ios::app);

else write.open(fayl_nomi.c_str());

write<

write<

write<

}

};

class Aktyor_: public Aktyor{



Kino kinolar[100];

int kinolar_soni=0;

friend void beshinchi();

friend void oltinchi_yettinchi();

friend inline void yordamchi(Kino*, int, Aktyor_*, int);

public:


Aktyor_(){}

Aktyor_(string ismi, string familiyasi,

string sharifi, int tugilgan_yili, string jinsi, bool oilali,

string fuqaroligi, string millati){

this->ismi = ismi;

this->familiyasi = familiyasi;

this->sharifi = sharifi;

this->tugilgan_yili = tugilgan_yili;

this->jinsi = jinsi;

this->oilali = oilali;

this->fuqaroligi = fuqaroligi;

this->millati = millati;

this->mukofotlari_soni = 0;

}

void faylga (string fayl, bool append = true){



ofstream write;

if(append) write.open(fayl.c_str(), ios::app);

else write.open(fayl.c_str());

write<ismi<<"\n"<familiyasi<

for(int i=0;i

write<

write<

write<

}

}

void kino_kirit(Kino k){



kinolar[kinolar_soni++] = k;

}

};



inline void yordamchi(Kino kinolar[], int n, Aktyor_ aktyorlar[], int m){

string ism, familiya;

int a;

for(int i=0;i

cout<

cin>>a; cin.ignore();

for(int j=0;j

cout<

getline(cin, ism);

cout<

getline(cin, familiya);

for(int k=0;k

if (ism==aktyorlar[k].ismi && familiya == aktyorlar[k].familiyasi)

aktyorlar[k].kino_kirit(kinolar[i]);

}

}

}



}

void tortinchi(){

int n;

cout<<"Nechta kino haqida ma'lumot kiritasiz? ";cin>>n;



cin.ignore();

Kino kinolar[100];

for(int i=0;i

kinolar[i].kirit();

kinolar[i].faylga_yoz("kinolar.txt", i>0); //i==0 bo’lganda bo’sh faylga yozadi

}

}



void beshinchi(){

Kino kinolar[100];

int n = 0;

ifstream read("kinolar.txt");

Kino a;

while(!read.eof()){



getline(read, a.nomi); if(read.eof()) break;

getline(read,a.janri); if(read.eof()) break;

read>>a.yili; read.ignore();

kinolar[n++] = a;

}

read.close();



Aktyor_ aktyorlar[100];

int n_=0;

read.open("aktyorlar3.txt");

Aktyor_ a_;

int m;

while(!read.eof()){



getline(read, a_.ismi); if(read.eof()) break;

getline(read,a_.familiyasi); if(read.eof()) break;

getline(read, a_.sharifi); if(read.eof()) break;

read>>a_.tugilgan_yili;read.ignore(); if(read.eof()) break;

getline(read, a_.jinsi); if(read.eof()) break;

read>>a_.oilali;read.ignore(); if(read.eof()) break;

getline(read, a_.fuqaroligi); if(read.eof()) break;

getline(read, a_.millati); if(read.eof()) break;

read>>m;read.ignore();

a_.mukofotlari_soni = 0;

if (m != 0) {

for(int i=0;i

string mukofot;

getline(read, mukofot);

a_.mukofotlarni_kiritish(mukofot);

}

}



aktyorlar[n_++] = a_;

}

read.close();



yordamchi(kinolar, n, aktyorlar,n_);

for(int i=0;i

aktyorlar[i].faylga("aktyorlar5.txt", i>0);

}

}



void oltinchi_yettinchi(){

Kino kinolar[100];

int n = 0;

ifstream read("kinolar.txt");

Kino a;

while(!read.eof()){



getline(read, a.nomi); if(read.eof()) break;

getline(read,a.janri); if(read.eof()) break;

read>>a.yili; read.ignore();

kinolar[n++] = a;

}

read.close();



Aktyor_ aktyorlar[100];

int n_=0;

read.open("aktyorlar3.txt");

Aktyor_ a_;

int m;

while(!read.eof()){



getline(read, a_.ismi); if(read.eof()) break;

getline(read,a_.familiyasi); if(read.eof()) break;

getline(read, a_.sharifi); if(read.eof()) break;

read>>a_.tugilgan_yili;read.ignore(); if(read.eof()) break;

getline(read, a_.jinsi); if(read.eof()) break;

read>>a_.oilali;read.ignore(); if(read.eof()) break;

getline(read, a_.fuqaroligi); if(read.eof()) break;

getline(read, a_.millati); if(read.eof()) break;

read>>m;read.ignore();

a_.mukofotlari_soni = 0;

if (m != 0) {

for(int i=0;i

string mukofot;

getline(read, mukofot);

a_.mukofotlarni_kiritish(mukofot);

}

}



aktyorlar[n_++] = a_;

}

read.close();



string ism, familiya;

read.open("aktyorlar5.txt");

Kino k;

Aktyor_ akt;



int i;

while(!read.eof()){

getline(read, ism); if(read.eof()) break;

getline(read, familiya);

for(i=0;i

if(aktyorlar[i].ismi==ism && aktyorlar[i].familiyasi==familiya){

akt = aktyorlar[i];

break;


}

read>>akt.kinolar_soni;read.ignore();

for(int j=0;j

getline(read, k.nomi);

getline(read, k.janri);

read>>k.yili; read.ignore();

aktyorlar[i].kino_kirit(k);

}

}



cout<<"Oltinchi masala\n\n\n\n";

cout<<"Kino nomini kiriting: ";

string nom;

getline(cin, nom);

cout<

for(int i=0;i

for(int j=0;j

if(nom == aktyorlar[i].kinolar[j].nomi)

aktyorlar[i].chiqarish();

}

}



cout<<"\n\n\n\nYettinchi masala\n\n\n\n";

cout<<"Janrni kiriting: ";

getline(cin, nom);

cout<

int max = 0, max_a;

for(int i=0;i

max_a = 0;

for(int j=0;j

if(nom == aktyorlar[i].kinolar[j].janri){

max_a++;


}

}

if(max_a > max){



max = max_a;

akt = aktyorlar[i];

}

else if (max_a == max && max != 0){



if(akt.mukofotlari_soni

akt = aktyorlar[i];

}

}

if (max==0){



cout<<"Bunday janrda o'ynagan aktyorlar topilmadi :(";

}

else{



cout<

}

}



#endif

//Natijalar:



1-masala natijasi



2-masala natijasi



Download 397.76 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2022
ma'muriyatiga murojaat qiling