Skip to content

Instantly share code, notes, and snippets.

@pizenblues
Created October 27, 2014 22:50
Show Gist options
  • Save pizenblues/c52964e606c5457b304a to your computer and use it in GitHub Desktop.
Save pizenblues/c52964e606c5457b304a to your computer and use it in GitHub Desktop.
//valentina azocar ci 24753255
#include<iostream.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
template <class T>
void read_input(T &var){
while(! (cin>>var) ){
printf(" \t \t ingrese un numero por favor! ");
cin.clear();
cin.ignore(256, '\n');
};
}
int main(){
char opc;
int tamano, multiple;
int fila = 1, columna = 1;
int menu;
int contador = 0;
printf("\n \t cantidad de ciudades en las que AEROLINEAS AMISTOSAS tiene sucursal: ");
read_input(tamano);
int matriz[tamano][tamano];
for(int i =0; i<tamano; i++)
for(int j = i; j<tamano; j++){
fila = fila + i;
columna = columna + j;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf("\n entre la ciudad %i y la ciudad %i hay un vuelo ? (s/n): ", fila, columna);
read_input(opc);
if(opc=='s'){
cout<<" sale mas de un vuelo entre esas ciudad? (s/n): ";
read_input(opc);
if(opc=='s'){
printf("cuantos vuelos llegan a %i?: ", fila);
read_input(multiple);
matriz[i][j]=multiple;
printf("cuantos vuelos salen de %i?: ", fila);
read_input(multiple);
matriz[j][i]=multiple;
}else if (opc == 'n'){
printf("llega un vuelo a la ciudad %i desde %i (s/n): ", fila, columna);
read_input(opc);
if(opc=='s'){
matriz[i][j]=0;
matriz[j][i]=1;
}else if(opc=='n'){
matriz[i][j]=1;
matriz[j][i]=0;
}else{
printf(" \t \t por favor responda con 's' o 'n'\n");
system("cls");
j--;
}
}else{
printf(" \t \t por favor responda con 's' o 'n'\n");
system("cls");
j--;
}
}else if(opc == 'n'){
matriz[i][j] = 0;
matriz[j][i] = 0;
}else{
printf(" \t \t por favor responda con 's' o 'n'\n");
system("cls");
j--;
}
fila = 1;
columna = 1;
}
system("cls");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
do{
int sumac = 0;
printf("\n \t \t Menu \n \n 1-.buscar un vuelo \n 2-.modificar un vuelo \n 3-. vuelos totales");
printf("\n 4-.vuelos salientes desde una ciudad (grado externo de un vertice) \n 5-.vuelos entrantes a una ciudad (grado interno de un vertice)");
printf("\n 6-. chequear si una ciudad tiene un vuelo hacia si misma (diagonal principal) \n 7-.simetria \n 8-.comparar vuelos salientes entre ciudades \n 9-.comparar vuelos entrantes entre ciudades \n 10-.salir \n \n ");
read_input(menu);
system("cls");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
switch(menu){
case 1:{
int google = 0, f = 0, c = 0;
printf(" se mostrara un mensaje si hay coincidencia \n");
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf("\t ingrese el numero del vuelo a buscar: ");
read_input(google);
for(int i=0; i< tamano; i++){
for(int j=0; j< tamano; j++){
f = i + 1;
c = j + 1;
if(google == matriz[i][j]) {
printf("\n Encontrado: fila %i columna %i ",f,c);
}
}
}
break;
}
case 2: {
int f, c, nuevo;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf("de donde sale el vuelo ? (usar numero): ");
read_input(f);
printf("ciudad destino? (usar numero de la ciudad): ");
read_input(c);
if(f > tamano || c > tamano || c <= 0){
printf("alguno de los datos es incorrecto \n");
break;
}else{
f--;
c--;
printf("nuevo valor: ");
read_input(nuevo);
matriz[f][c] = nuevo;
printf("modificacion exitosa \n");
}
printf("\n");
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<" "<<matriz[i][j];
}
printf("\n");
}
}
break;
case 3:{
int filaS =0, sumaf = 0, sumaC = 0, sumaT = 0, columnasS = 0;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf("\t numero de la ciudad? - ");
read_input(filaS);
if(filaS > tamano || filaS <= 0 ){
printf("\t \t ciudad no encontrado \n");
}else{
filaS -= 1;
columnasS = filaS;
for (int i = 0; i < tamano; i++)
sumaf += matriz[filaS][i];
for (int k = 0; k < tamano; k++)
sumaC += matriz[k][columnasS];
sumaT = sumaC + sumaf;
printf(" salientes: %i \n", sumaf);
printf(" entrantes: %i \n", sumaC);
cout<< "\t la cantidad de vuelos totales es: "<<sumaT<<" \n "<<endl;
}
sumaf = 0;
filaS = 0;
sumaC = 0;
columnasS =0;
}
break;
case 4:{
int filaS =0, sumaf = 0;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf("\t numero de la ciudad? - ");
read_input(filaS);
if(filaS <= tamano){
filaS -= 1;
for (int i = 0; i < tamano; i++)
sumaf += matriz[filaS][i];
cout<< "\t la cantidad de vuelos salientes es: "<<sumaf<<" \n "<<endl;
}else{
printf("\t \t ciudad no encontrado \n");
}
sumaf = 0;
filaS = 0;
break;
}
case 5: {
int columnasS = 0, sumac = 0;
printf("\t numero de la ciudad? - ");
read_input(columnasS);
if(columnasS > tamano || columnasS <= 0){
printf("\t \t ciudad no encontrado \n");
}else{
columnasS -=1;
for (int j = 0; j < tamano; j++)
sumac += matriz[j][columnasS];
cout<< "\t la cantidad de vuelos entrantes es: "<<sumac<<" \n "<<endl;
}
sumac = 0;
columnasS = 0;
break;
}
case 6:{
int check = 0;
printf("\t La Diagonal Principal es: \n");
for(int i = 0; i < tamano; i++){
cout<< " " <<matriz[i][i];
check = check + matriz[i][i];
}
printf(" \n ");
if(check != 0){
printf("hay bucles ( el avion vuela desde su ciudad y regresa a ella en ese mismo vuelo! )");
}else{
printf("no hay bucles (todo en orden!) ");
}
printf(" \n ");
break;
}
case 7:
for (int i = 0; i < tamano; i++) {
for (int j = 0; j < tamano; j++) {
if (matriz[i][j] != matriz[j][i]) {
break;
}else{
contador = contador + 1;
}
}
}
if(contador == tamano * tamano){
printf(" \t son simetricas \n");
}else{
printf(" \t no son simetricas \n");
}
break;
case 8:{
int primeraF, segundaF;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf(" \t nuemro de la primera ciudad a comprar: ");
read_input(primeraF);
printf(" \t segunda ciuad: ");
read_input(segundaF);
if( primeraF <= tamano && segundaF <= tamano){
primeraF -=1;
segundaF -=1;
for( int i = 0; i< tamano; i++){
if( matriz[primeraF][i] == matriz[segundaF][i] ){
printf("\t iguales \n");
}else{
printf("\t no iguales \n");
break;
}
}
}else{
printf(" \t no encontrado \n");
}
primeraF = 0;
segundaF = 0;
break;
}
case 9:{
int primeraC, segundaC;
cout<<endl;
printf(" \n 1 - florida \n 2 - miami \n 3 - boston \n 4 - atlanta \n 5 - reno \n 6 - houston \n 7 - chicago \n");
cout<<endl;
printf(" \t primera ciudad \n");
read_input(primeraC);
printf(" \t segunda ciudad \n");
read_input(segundaC);
if( primeraC <= tamano && segundaC <= tamano){
primeraC -=1;
segundaC -=1;
for( int j = 0; j< tamano; j++){
if( matriz[j][primeraC] == matriz[j][segundaC] ){
printf("\t iguales \n");
}else{
printf("\t no iguales \n");
break;
}
}
}else{
printf(" \t ciudad no encontrad \n");
}
primeraC = 0;
segundaC = 0;
break;
}
case 10:
return 0;
break;
default:
printf("\t escoja una opcion valida \n");
}
}while(true);
//getch();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment