Sie sind auf Seite 1von 17

Kaths airport

Aluna: Maria Katharine Ferreira do Amaral Matrcula: 1210756 Disciplina: Tpicos de Linguagem Professor: Herleson Pontes

1) Na geometria, uma das figuras mais conhecidas o retngulo: figura com quatro lados onde suas arestas geram um ngulo de 90 entre elas.

Um retngulo ABCD possui as propriedades base e altura. A rea de um retngulo obtida atravs do produto entre sua base e a altura. J o clculo do permetro consiste em somar duas vezes o valor da base com duas vezes o valor da altura. Outro clculo possvel em um retngulo o clculo da diagonal AC, que consiste no clculo da hipotenusa do tringulo retngulo gerado. A frmula, baseada no teorema de Pitgoras, segue a seguinte relao: c = a + b, onde c a hipotenusa do tringulo, e a e b so os catetos (lados) desse tringulo. Existe um caso especial de retngulo, conhecido como quadrado. Um quadrado possui como propriedade a de que sua base e altura serem iguais. Baseado nessas informaes, crie um programa orientado a objetos com as classes retngulo e quadrado com todas as suas propriedades (atributos) e clculos (mtodos). Todas as classes devem estar encapsuladas, possuir construtores, modificadores e assessores, alm de utilizar os fundamentos da orientao a objetos quando necessrio. (2,0 Pontos) #include <cstdlib> #include <iostream> #include <stdio.h> #include <math.h>

using namespace std;

class Retangulo { public: double altura,base; Retangulo(double a, double b){ altura = a; base = b; }

double calcularArea(){ float area; area = base*altura; return area; } double calcularPerimetro(){ float perimetro; perimetro = (2*base)+(2*altura); return perimetro; }

double calcularDiagonal(){ float diagonal; diagonal = pow(base,2); diagonal = diagonal + pow(altura,2); diagonal = sqrt(diagonal); return diagonal; } }; class Quadrado { public: double lado; Quadrado(double a){ lado = a; } double calcularArea(){ return pow(lado,2); } double calcularPerimetro(){ float perimetro; perimetro = 4*lado;

return perimetro; } double calcularDiagonal(){ float diagonal; diagonal = lado*(sqrt(2)); return diagonal; } };

int main(int argc, char *argv[]) { Retangulo a (5,8); Quadrado b (4); printf("Retangulo\n"); printf("Area = %d Perimetro = %d Diagonal = %d\n\n",a.calcularArea(),a.calcularPerimetro(),a.calcularDiagonal()); printf("\n\nQuadrado\n"); printf("Area = %d Perimetro = %d Diagonal = %d\n\n",b.calcularArea(),b.calcularPerimetro(),b.calcularDiagonal()); system("PAUSE"); return EXIT_SUCCESS; }

2) Um tipo de sistema que se tornou padro nos aeroportos o de controle de Check-in de passageiros. Este sistema permite aos passageiros comprar passagens, consultar o histrico de voos realizados e realizar o check-in. Cada voo possui a cidade de destino, a data do voo, o horrio de sada, o horrio de chegada, o tempo de voo e os passageiros, com seus respectivos status de check-in (reservado, realizado, cancelado), que esto nesse voo. Cada passageiro possui seu CPF, nome e telefone. Alm disso, o sistema armazena uma lista de voos, onde so guardados os voos reservados, os voos j realizados e os voos cancelados. O processo de comprar uma passagem inicia-se com a consulta aos vos disponveis. Para esta consulta, o passageiro informa a cidade de origem, a cidade de destino e a data desejada. Essa consulta ento retorna a lista de voos disponveis que atende aos critrios da consulta. O passageiro ento inicia o processo de reserva, adicionando o passageiro ao voo e exibindo uma mensagem de confirmao da reserva ao usurio. J o processo de check-in comea com a entrada do CPF do passageiro. O sistema ento verifica nos voos do dia o passageiro informado. Uma vez encontrado, o passageiro ento confirma o seu check-in,

alterando o status da sua reserva de reservado para realizado, e informa ao usurio que o check-in foi realizado com sucesso. Para garantir a fidelizao dos seus clientes, o sistema possui um grupo de passageiros Especiais, os quais acumulam 1000 pontos a cada check-in realizado. O passageiro pode consultar o total de milhas acumuladas a qualquer momento. Outro processo existente neste sistema a consulta de histrico de voo do passageiro, onde o sistema trs os dados do passageiro e o seu histrico de voos. Baseado no cenrio descrito acima realize as atividades a seguir: a) Desenvolva o Diagrama de Classes da soluo apresentada, com todos os atributos, mtodos e relacionamentos. (3,0 pontos)

b) Implemente o cdigo do sistema proposto acima, utilizando todos os conceitos e boas prticas da Orientao a Objetos.(5,0 Pontos) #include <cstdlib> #include <iostream> #include <string.h>

using namespace std;

class Passageiro {

private: char nome[40]; int telefone; int CPF; int milhas;

public: Passageiro(){} Passageiro (char* a, int b, int c,int d){ strcpy(nome, a); telefone = b; CPF = c; milhas = d; }

void setNome (char* a){ strcpy(nome, a); }

void setTelefone (int b){

telefone = b; }

void setCPF (int c){ CPF = c; }

void setMilhas (int d){ milhas = d; }

char* getNome (){ return nome; }

int getTelefone (){ return telefone; }

int getCPF (){ return CPF; }

int getMilhas (){ return milhas; }

int consultarMilhas (){ return milhas; }

void imprimirDados (){ printf("Nome %s\n",nome); printf("Telefone %d\n",telefone); printf("CPF %d\n",CPF); printf("Milhas %d\n",milhas); }

}; // fim classe passageiro

class Voo {

private: char origem[20]; char destino[20]; int horaSaida; int minutosSaida; int horaChegada; int minutoChegada; int horasVoo; int minutosVoo; int diaVoo; int mesVoo; int anoVoo; char status[10]; //1 = realizado 2 = reservado 3 = cancelado

public: Voo(){} Voo (char* a, char* b, int c,int d, int e,int f, int g, int h, int i){ //construtor de Voo strcpy(origem, a); strcpy(destino, b); horaSaida = c;

minutosSaida = d; horaChegada = e; minutoChegada = f; horasVoo = e-c; minutosVoo = f-d; diaVoo = g; mesVoo = h; anoVoo = i; strcpy(status, "CANCELADO"); }

void setOrigem(char* a){ strcpy(origem, a); }

void setDestino(char* b){ strcpy(destino, b); }

void setHoraSaida(int a){ horaSaida = a; }

void setMinutoSaida(int a){ minutosSaida = a; }

void setHoraChegada(int a){ horaChegada = a; }

void setMinutoChegada(int a){ minutoChegada = a; }

void setHorasVoo(int a){ horasVoo = a; }

void setMinutosVoo(int a){ minutosVoo = a; }

void setDiaVoo(int a){ diaVoo = a; }

void setMesVoo(int a){ mesVoo = a; }

void setAnoVoo(int a){ anoVoo = a; }

void setStatus(int a){ //1 = realizado 2 = reservado 3 = cancelado if(a == 1){ strcpy(status,"REALIZADO"); }else{ if (a==2){ strcpy(status,"RESERVADO"); }else{

strcpy(status,"CANCELADO"); } }

char* getOrigem (){ return origem; }

char* getDestino (){ return destino; }

int getHoraSaida (){ return horaSaida; }

int getMinutosSaida (){ return minutosSaida; }

int getHoraChegada (){ return horaChegada; }

int getMinutoChegada (){ return minutoChegada; }

int getHorasVoo (){

return horasVoo; }

int getMinutosVoo (){ return minutosVoo; }

int getDiaVoo (){ return diaVoo; }

int getMesVoo (){ return mesVoo; }

int getAnoVoo (){ return anoVoo; }

char* getStatus (){ return status; }

void consultarVoo (){ printf("\nOrigem %s\n",origem,destino); printf("Destino %s\n",destino); printf("Saida %d %d\n",horaSaida,minutosSaida); printf("Chegada %d %d\n",horaChegada,minutoChegada); printf("Tempo de Voo %dh e %dmin\n",horasVoo,minutosVoo); printf("Data %d/%d/%d \n",diaVoo,mesVoo,anoVoo); printf("Status = %s\n\n\n\n",status);

bool comprarPassagem(Passageiro cliente){ consultarVoo(); int com; printf("\nDeseja comprar?\n"); printf("SIM = 1 scanf("%d",&com); if(com==1){ strcpy(status, "RESERVADO"); return true; }else{ strcpy(status, "CANCELADO"); return false; } } }; //fim classe Voo ! NAO = 0\n");

class CheckIn { public: Voo vooo; Passageiro passag;

CheckIn(Voo voo,Passageiro passageiro){ vooo = voo; passag = passageiro; }

bool fazerCheckin(int cpf){ //1 = realizado 2 = reservado 3 = cancelado int check; char aux[10];

printf("Deseja fazer Check-in ?\n"); printf("1 - SIM 0 - NAO\n");

scanf("%d",&check);

if(check==0){ printf("\nNao foi feito o Check-in no Voo!\n\n\n\n"); printf("Deseja cancelar a reserva \n"); printf("1 - SIM int aux; scanf("%d",&aux); if(aux==1){ vooo.setStatus(3); } if(aux==2){ vooo.setStatus(2); } return false; 2 - NAO\n");

}else{ printf("\nCheck-in realizado com sucesso !!\n\n\n\n"); vooo.setStatus(1); return true; } }

}; // fim classe Check-in !!

int main(int argc, char *argv[]) {

int opcao=0; int cpf;

printf("BEM VINDO !!\n\n"); printf("Kath's airport \n"); Passageiro a("Katharine",32764224,123,0); Voo v ("Fortaleza","Rio de Janeiro",19,0,21,0,8,12,2012); CheckIn check (v,a);

while(opcao!=7){ printf("MENU\n\n"); printf("Consultar voos : 1\n"); printf("Comprar passagem: 2\n"); printf("Fazer Check-in: 3\n"); printf("Consultar historico de voos: 4\n"); printf("Consultar milhas: 5\n"); printf("Verificar dados passageiro: 6\n"); printf("SAIR: 7\n"); scanf("%d",&opcao);

switch(opcao){ case 1: //consultar voos v.consultarVoo(); break;

case 2: //comprar passagem v.comprarPassagem(a); break;

case 3:{ //Check-in

printf("Informe seu CPF\n"); scanf("%d",cpf); if(check.fazerCheckin(cpf)){ //s + 1000 se passageiro especial int mil; mil = a.getMilhas(); mil = mil + 1000; a.setMilhas(mil); } break; }

case 4: //consultar historico voos printf("\nOrigem %s\nDestino: %s\n",v.getOrigem(),v.getDestino()); printf("Saida %d %d\n",v.getHoraSaida(),v.getMinutosSaida()); printf("Chegada %d %d\n",v.getHoraChegada(),v.getMinutoChegada()); printf("Tempo de Voo %dh e %d min\n",v.getHorasVoo(),v.getMinutosVoo()); printf("Data %d/%d/%d\n",v.getDiaVoo(),v.getMesVoo(),v.getAnoVoo()); printf("Status %s\n\n\n\n",v.getStatus()); break;

case 5: //consultar milhas printf("Voce possui %d\n\n\n\n",a.consultarMilhas()); break;

case 6: //verificar dados passageiro a.imprimirDados(); break;

case 7: //SAIR printf("\nAte a proxima !!\n\n"); printf("Kath's aiport \n");

printf("\"Levando voce onde a felicidade estiver! \"\n\n\n\n\n\n\n"); break;

default: printf("Opcao invalida !!\n\n\n\n\n"); break;

} } system("PAUSE"); return EXIT_SUCCESS; }

Das könnte Ihnen auch gefallen