БИБЛИОГРАФИЧЕСКИЙ СПИСОК. 1. Лафоре Р. Объектно-ориентированное программирование в С++ / Р




 

1. Лафоре Р. Объектно-ориентированное программирование в С++ / Р. Лафоре – 4-е изд. – Питер.: 2004. – 654 с.

2. Давыдов В.Г. Технологии программирования. С++ / В. Г. Давыдов – Санкт-Петербург: БХВ-Петербург, 2005. – 432 с.

3. Касюк С.Т. Конспект лекций по дисциплине «Информатика» / С. Т. Касюк – Челябинск: ЮУрГУ, 2005. – 212 с.

ПРИЛОЖЕНИЕ

Листинг программы на С++

#ifndef Class_File

#define Class_File

class TPersona

{

public:

static int kolp;

int sta;

int tip;

char name [20];// Имя персоны

char fam[20]; // Фамилия персоны

int voz; // Возраст персоны

float rost; // Рост персоны

void PrintPer();

 

TPersona(int j);

~TPersona();

};

 

class TDriver: public TPersona

{

public:

int stage; //Стаж работы в годах

char nac[20]; // Национальность водителя

static int kolt;

void PrintPer();

TDriver(int j);

~TDriver();

 

};

 

class TPas:public TPersona

{

public:

static int kolf;

char prof[20]; // специальность\профессия

char sempol[20]; // cемейное положение

void PrintPer();

TPas(int j);

~TPas();

 

};

 

class TCar

{

public:

int kolch;

TPersona *chel[5];

static int kolm;

int tip;

char marka [20]; // Марка транспортного средства

char chvet[20]; // Цвет транспорнтного средства

float coast; // Цена транспортного средства

int god;// Возраст транспортного средства

void PrintPas();

virtual void PrintDCar()=0;

TCar(int c);

~TCar();

};

class TTrain: public TCar

{

public:

static int kols;

char datae[20]; // Дата введения в эксплуатацию

char strana[20]; // Страна производитель

void PrintDCar();

TTrain(int c);

~TTrain();

};

class TAuto: public TCar

{

public:

static int kolo;

int probeg; // Пробег автомобиля

char strana1[20]; // Страна производитель

void PrintDCar();

TAuto(int c);

~TAuto();

};

#endif

 

#include "stdafx.h"

#include "Osnova.h"

#include "stdio.h"

#include "string"

#include "conio.h"

 

 

TPersona::TPersona(int j)

{

tip=j;

printf(" Vvod dannih po persone \n");

printf("1-Vvedite imya personi \n");

scanf ("%s",&name);

printf("2-Vvedite familiu personi \n");

scanf("%s",fam);

printf("3-Vvedite vozrast personi \n");

scanf ("%d",&voz);

printf("4-Vvedite rost personi \n");

scanf("%f",&rost);

printf("5-Vvedite stag raboti \n

");

scanf("%d",&sta);

kolp=kolp+1;

getchar();

}

 

TPersona::~TPersona()

{

printf("Dannie udaleni");

getchar();

kolp=kolp-1;

}

 

TDriver::TDriver(int j):TPersona(j)

{

system("cls");

printf(" Vvod dannih po voditelu \n");

printf("1-Vvedite stage raboti \n");

scanf("%d",&stage);

printf("2-Vvedite nacional'nost \n");

scanf("%s",nac);

kolt=kolt+1;

getchar();

}

 

TDriver::~TDriver()

{

printf("Dannie udaleni \n");

kolt=kolt-1;

getchar();

}

 

TPas::TPas(int j):TPersona(j)

{

printf("Vvedite professiu \n");

scanf("%s",prof);

printf("Vvedite semeinoe polozhenie \n ");

scanf("%s",sempol);

kolf=kolf+1;

getchar();

}

TPas::~TPas()

{

printf("Dannie udaleni \n");

kolf=kolf-1;

getchar();

}

 

TCar::TCar(int c)

{

kolch=0;

tip=c;

printf("1-Vvedite marku avto \n");

scanf("%s",marka);

printf("2-Vvedite chvet avto \n");

scanf("%s",chvet);

printf("3-Vvedite god expluatacii \n");

scanf("%d",&god);

printf("4-Vvedite chenu na avto \n");

scanf("%f",&coast);

kolm=kolm+1;

getchar();

}

TCar::~TCar()

{

printf("\n Dannie po dannomu avto udaleni \n");

kolm=kolm-1;

getchar();

}

 

TTrain::TTrain(int c):TCar(c)

{

printf("1-Vvedite datu vvedenia v expluatachiu v vide DD.MM.GG \n");

scanf("%s",datae);

printf("2-Vvedite stranu proizvoditel' \n");

scanf("%s",strana);

kols=kols+1;

getchar();

}

TTrain::~TTrain()

{

printf("\n Dannie udaleni \n");

kols=kols-1;

getchar();

}

TAuto::TAuto(int c):TCar(c)

{

printf("1-Vvedite stranu proizvoditelya \n");

scanf("%s",strana1);

printf("2-Vvedite probeg avto \n");

scanf("%d",&probeg);

kolo=kolo+1;

getchar();

}

TAuto::~TAuto()

{

printf("Dannie udaleni \n");

kolo=kolo-1;

getchar();

}

 

void TPersona::PrintPer()

{

printf("\n Imya personi: %s ",name);

printf("\n Familii personi: %s ",fam);

printf("\n Vozrast personi: %d ",voz);

printf("\n Rost personi: %f ",rost);

getchar();

}

 

 

void TCar::PrintPas()

{

int i;

if (kolch==0)

{

printf("\n Net person \n");

return;

}

for(i=0;i<kolch;i++)

chel[i]->PrintPer();

 

}

void TCar::PrintDCar()

{

printf("\n Dannie po transportu \n");

printf("\n Marka: %s \n",marka);

printf("\n Chvet transporta: %s\n",chvet);

printf("\n Chena transporta: %f\n",coast);

printf("\n God vipuska: %d\n",god);

getchar();

}

 

void TTrain::PrintDCar()

{

printf(" GOD \n",god);

printf(" Tip-Poezd \n");

printf(" Marka transporta %s \n",marka);

printf(" Data vvedeniya v expluataciu %s \n",datae);

printf(" Strana proizvoditel' %s \n",strana);

getchar();

}

void TAuto::PrintDCar()

{

printf(" GOD \n",god);

printf(" Tip-Avtomobi \n");

printf(" Marka transporta %s \n",marka);

printf(" Probeg avto %d \n",probeg);

printf(" Strana proizvoditel' %s \n",strana1);

getchar();

}

 

// Kursac.cpp: Defines the entry point for the console application.

//

 

#include "stdafx.h"

#include "Osnova.h"

#include "stdio.h"

#include "string"

#include "conio.h"

 

int TPersona::kolp=0;

int TDriver::kolt=0;

int TPas::kolf=0;

int TCar::kolm=0;

int TTrain::kols=0;

int TAuto::kolo=0;

 

TCar *a[5]={0};

 

// Добавление записей по людишкам

void DobPer()

{

system("cls");

int i,j;

if(TCar::kolm==0)

{

printf("\n Dannie ne vvedeni =(");

getchar();

return;

}

printf(" Vvedite nomer avto \n");

scanf("%d",&i);

getchar();

if ((i>TCar::kolm)||(i<0))

{

printf("\n Dannie vvedeni neverno");

return;

}

do

{

system("cls");

printf(" Viberete, kogo vi dobavite \n");

printf(" 1-Voditel' \n");

printf(" 2-Passagir \n");

printf(" 0-Vihod\n");

scanf("%d",&j);

getchar();

switch(j)

{

case 1:

{

a[i-1]->chel[a[i-1]->kolch]=new TDriver(j);

a[i-1]->kolch++;

break;

}

case 2:

{

a[i-1]->chel[a[i-1]->kolch]=new TPas(j);

a[i-1]->kolch++;

break;

}

case 0: return;

default: break;

}

}

while (j!=0);

}

 

// Добавление транспорта

void DobTra()

{

system("cls");

int c;

printf("\n Viberete, kakoi transport budet dobavlen");

printf("\n 1-Poezd");

printf("\n 2-Automobille");

scanf("%d",&c);

getchar();

switch(c)

{

case 1:

{

a[TCar::kolm-1] = new TTrain(c);

break;

}

case 2:

{

a[TCar::kolm-1] = new TAuto(c);

break;

}

default:

{

printf("\n Dannie vvedeni neverno \n");

getchar();

break;

}

}

}

 

// Удаление транспорта

void DelTra()

{

system("cls");

int i,j;

if (TCar::kolm==0)

{

printf("\n Net avtomobilei ");

return;

}

printf(" Vvedite nomer avto \n");

scanf("%d",&i);

getchar();

if ((i>TCar::kolm)||(i<0))

{

printf("\n Dannie vvedeni neverno");

return;

}

if(a[i-1]->kolch!=0)

{

for(j=0;j<a[i-1]->kolch+1;j++)

{

delete a[i-1]->chel[j];

a[i-1]->kolch--;

}

}

delete a[i-1];

a[i-1]=0;

for(j=i-1;j<TCar::kolm;j++)

{

a[j]=a[j+1];

a[j+1]=0;

}

printf("\n Dannie po zadannomu nomeru udaleni");

getchar();

}

// Вывод списка пассажиров в указанном транспорте

int SpisPas()

{

int j,i;

if (TCar::kolm==0)

{

printf("\n Net transporta, sostavit' spisok nelza\n");

return 0;

}

if (TPersona::kolp==0)

{

printf("\n Net Person, sostavit' spisok nelza \n");

return 0;

}

printf("\n Viberete nomer transortnogo sredsrva \n");

scanf("%d",&i);

getchar();

printf("\n Marka transportnogo sredstva: %s",a[i-1]->marka);

a[i-1]->PrintPas();

getchar();

return i;

}

 

void DelPer()

{

system("cls");

int i,j,c;

char famud[20];

i=SpisPas();

if (i!=0)

{

printf("\n Vvedite familiu udalaemoi personi \n");

scanf("%s",famud);

for(j=0; j<a[i-1]->kolch; j++)

{

if (strcmp(a[i-1]->chel[j]->fam,famud)==0)

{

delete a[i-1]->chel[j];

a[i-1]->kolch--;

for(c=j;c<a[i-1]->kolch;c++)

{

a[i-1]->chel[j]=a[i-1]->chel[j+1];

a[i-1]->chel[j+1]=0;

}

 

}

else

{

printf("\n Takaia persona otsutstvuet ");

getchar();

}

}

}

else

{

printf("\n Dannih net ");

getchar();

}

printf("\n Dannie udaleni ");

getchar();

}

 

void Inform()

{

system("cls");

char famil[20];

int j,k;

if (TCar::kolm==0)

{

printf("\n Net transporta, sostavit' spisok nelza\n");

getchar();

return;

}

if (TPersona::kolp==0)

{

printf("\n Net Person, sostavit' spisok nelza \n");

getchar();

return;

}

if (TDriver::kolt==0)

{

printf("\n Net voditelei v spiske person \n");

getchar();

return;

}

printf("\n Vvedite imya voditelya, po kotorim vivodyatsa dannie ");

scanf("%s",famil);

k=TPersona::kolp;

for(j=0;j<k; j++)

if (strcmp(a[j]->chel[j]->fam,famil)==0)

a[j]->PrintDCar();

else

{

printf("\n Takogo voditelya net ");

getchar();

}

getchar();

}

 

 

void SpisGod()

{

system("cls");

int i,j,s,c;

if (TCar::kolm==0)

{

printf("\n Net transporta, sostavit' spisok nelza\n");

getchar();

return;

}

if (TPersona::kolp==0)

{

printf("\n Net Person, sostavit' spisok nelza \n");

getchar();

return;

}

printf("\n Vvedite god,po kotoromu budem vivodit spisok ");

scanf("%d",&i);

getchar();

printf("\n Viberete, kakoi transport ");

printf("\n 1-Poezd");

printf("\n 2-Automobille");

scanf("%d",&c);

getchar();

for (j=0; j<TCar::kolm-1; j++)

if ((a[j]->god>i)&&(a[j]->tip==c))

a[j]->PrintDCar();

getchar();

 

}

void SpisStag()

{

int i,j,s,c;

system("cls");

if (TCar::kolm==0)

{

printf("\n Net transporta, sostavit' spisok nelza\n");

getchar();

return;

}

if (TPersona::kolp==0)

{

printf("\n Net Person, sostavit' spisok nelza \n");

getchar();

return;

}

printf("\n Vvedite stage,po kotoromu budem vivodit spisok ");

scanf("%d",&i);

getchar();

getchar();

for (j=0; j<TCar::kolm-1; j++)

if ((a[j]->chel[j]->sta>i)&&(a[j]->tip==c)&&(a[j]->chel[j]->tip==1))

a[j]->PrintDCar();

getchar();

 

}

 

int PrintMenu()

{

int i;

do

{

system("cls");

printf(" Menu \n");

printf("\n 1)-Dobavlenie person \n");

printf("\n 2)-Dobavlenie transporta \n");

printf("\n 3)-Udalenie person \n ");

printf("\n 4)-Udalenie transporta \n ");

printf("\n 5)-Vivod perechnya passagirov v ukazanom transporte \n ");

printf("\n 6)-Vivesti informaciu ob avto po familii voditelya \n");

printf("\n 7)-Vivod perechna transportnih sredstv, kotorimi upravlaut voditeli \n so stagem raboti bolee ukazannogo \n");

printf("\n 8)-Vivod perechna transportnih sredstv, ukazannogo vida proizvedenih\n posle ukazannogo goda \n");

printf("\n 0)-Vihod \n");

scanf("%d",&i);

getchar();

switch(i)

{

case 1:{DobPer();break;}

case 2:{DobTra();break;}

case 3:{DelPer();break;}

case 4:{DelTra();break;}

case 5:{SpisPas();break;}

case 6:{Inform();break;}

case 7:{SpisStag();break;}

case 8:{SpisGod();break;}

case 0:{break;}

default:

{

printf("Neverno vveden punkt menu ");

getchar();

break;

}

}

}

while (i!=0);

return(i);

}

 

 

int _tmain(int argc, _TCHAR* argv[])

{

system("cls");

PrintMenu();

return 0;

}

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: