Practica 15
1.-Una pequeña aerolinea acaba de comprar una computadora para su nuevo sistema automatico de reservaciones.A usted se le ha pedido que programe el nuevo sistema.Usted debe escribir un programa que asigne los asientos,en cada vuelo.Suponga tres tipos de vuelos con una capacidad de 10 asientos.Su programa debe desplegar el siguiente menú de alternativas:1)Vuelo 2)Vuelo 2 3)vuelo 3
Para ccada vuelo digita 1 para primera clase debe asignar un asiento en la sección de primera clase (asientos 1 a 5).Si la persona digita 2, su programa debe asignar un asiento en la sección
económica(asientos 6 a 10).Su programa debe imprimir un pase de abordar que indique el numero de asiento de la persona si esta en la sección de primera clase o en la sección económica del avión.
Utilice un arreglo bidimensional para representar la tabla de asientos del avión.Inicialice en 0 todos los elementos arreglo para indicar que todos los asientos están vacios.Mientras se asigna cada asiento, el valor de los elementos correspondientes del arreglo se establece en 1, para indicar que el asiento ya no esta disponible.Por supuesto, Su programa nunca debe asignar un asiento que ya esta asignado.
Cuando la sección de primera clase esta llena,Su programa debe preguntar a la persona si acepta que se le coloque en la sección económica y viceversa. Si acepta, entonces haga la asignación apropiada del asiento. Si no acepta, entonces despliegue el siguiente mensaje
"El siguiente vuelo parte en tres horas"
Pseudocodigo
void sa(entero vuelo[3][10],entero clase,entero dest);
void sv(entero & clase,entero & dest);
void desplegar(entero vuelo[3][10])
void main()
{
entero vuelo[3][10]={0,0,0,0,0,0,0,0,0,0}
entero clase=0,ds=0,clientenew=0
do
{
sv(clase,ds);
sa(vuelo,clase,ds);
print "\n Elejir un nuevo viaje? Si)1 No)0: "
read clientenew;
}
while(clientenew==1)
desplegar(vuelo)
getch()
}
void sv(entero & clase,entero & ds)
{
print "Aerolinea The BEST \n";
print "1) Japon \n"
print "2) Madrid \n"
print "3) Francia \n"
print "Favor de elegir un destino: "
print ds;
print "1) Primera clase.\n"
print "2) Clase economica.\n"
print "Clase: "
read clase
}
void sa(entero vuelo[3][10],entero clase,entero ds)
{
entero i,b
switch(ds)
{
case 1:
switch(clase)
{
case 1:
i=0
b=0
while(i<=4 && b==0)
{
if(vuelo[0][i]!=1)
{
vuelo[0][i]=1
b=1
print "\nPase de abordar\n"
"Vuelo 1\tPrimera clase\tAsiento: ",(i+1)
}
Else
{
i++
if(i==4)
{print "\nPrimera clase: Todas las vacantes ocupadas\n"
"El vuelo parte en 3 horas\n\n";}
}}
break;
case 2:
i=5
b=0
while(i<=9 && b==0){
if(vuelo[0][i]!=1)
{
vuelo[0][i]=1;
b=1
cout<<"\nSu pase de viaje es \n"
"Vuelo 1\tSegunda clase\tAsiento: ",(i+1)
}
Else
{
i++;
if(i==9)
{print "\nSegunda clase: Todas las vacantes ocupadas\n"
"El vuelo parte en 3 horas\n\n"}
}}
break
default:print "Solicitud no encontrada n";
}
break
case 2:
switch(clase)
{
case 1:
i=0
b=0
while(i<=4 && b==0)
{
if(vuelo[1][i]!=1)
{
vuelo[1][i]=1
b=1
print "\nSu pase de viaje es\n"
"Vuelo 2\tPrimera clase\tAsiento: ",(i+1)
}
Else
{
i++
if(i==4)
{print "\nPrimera clase : Todas las vacantes ocupadas\n"
"El vuelo parte en 3 horas\n\n";}
}}
break;
case 2
i=5
b=0
while(i<=9 && b==0)
{
if(vuelo[1][i]!=1)
{
vuelo[1][i]=1
b=1
print "\nSu pase de viaje es\n"
"Vuelo 2\tSegunda clase\tAsiento: ",(i+1)
}
Else
{
i++
if(i==9)
{print "\nSegunda clase: Todas las vacantes ocupadas\n"
"El vuelo parte en 3 horas\n\n"}
}}
break
default:print "Solicitud no encontrada\n"
}
break
case 3:
switch(clase)
{
case 1:
i=0
b=0
while(i<=4 && b==0)
{
if(vuelo[2][i]!=1)
{
vuelo[2][i]=1
b=1
cout<<"\nSu pase de viaje es\n"
"Vuelo 3\tPrimera clase\tAsiento: ",(i+1)
}
Else
{
i++
if(i==4)
{print "\nPrimera clase: Todas las vacantes ocupadas\n"
"El vuelo parte en tres horas\n\n";}
}}
break
case 2:
i=5
b=0
while(i<=9 && b==0)
{
if(vuelo[2][i]!=1)
{
vuelo[2][i]=1
b=1
print "\nSu pase de viaje es\n"
"Vuelo 3\tSegunda clase\tAsiento: ",(i+1)
}
Else
{
i++
if(i==9)
{print "\nSegunda clase no hay vacantes\n"
"El vuelo parte en 3 horas\n"}
}}
break
default:print "Clase no existente\n"
}
break
break
default:print "Destino no existente\n"}}
void desplegar(entero vuelo[3][10])
{
entero r,c
print "1=Ocupados 0=Vacios\n";
print "Ascientos 1 2 3 4 5 6 7 8 9 10\n"
for(r=0 to 3 step r++)
{
print "Vuelo ",(r+1),": "
for(c=0 to 10 step c++)
{
print vuelo[r][c]," "
}}}
2.-Haga un programa que almacene 10 nombres de alumnos en un arreglo de caracteres [10][25] y los ordene alfabeticamente ascendentemente.El usuario debe introducir la cantidad de alumnos a insertar.
Pseudocodigo
entero in(char nombres[10][25]);
void reordenar(char nombres[10][25],entero n)
void dn(char nombres[10][25],entero n)
void main()
{
char nombres [10][25]
entero n
n=in(nombres)
reordenar(nombres,n)
dn(nombres,n)
getch()
}
entero in(char nombres[10][25])
{
entero i
i=0;
char nom[30]
do
{print "Nombre Alumno ",(i+1),": "
gets(nom)
if(strcmp(nom,"listo")!=0)
{strcpy(nombres[i],nom)
i++
}}
while(strcmp(nom,"listo" ) && (i<20))
return i}
void reordenar(char nombres[10][25],entero n)
{entero i,j
char temp[30]
for(i=0 to (n-1) step i++)
{for(j=(i+1)to step j++)
if(strcmp(nombres[i],nombres[j])>0)
{strcpy(temp,nombres[i])
strcpy(nombres[i],nombres[j])
strcpy(nombres[j],temp)
}}}
void dn(char nombres[10][25],entero n)
{entero i=0
print "Lista en orden.\n"
for (i=0 to n step i++)
{
print (i+1),".- ",nombres[i]
}}
3.-considere la siguiente lista de paises y sus capitales:
Canada-Ottawa,inglaterra-Londres-francia-Paris-India-Nueva delhi,israel_jerusalen,Italia-
Roma,Japon-Tokio,Mexico_CD.DE MExico,Republica popular de china-Beijin,Estados unidos-Wachington,D.C,Rusia-Moscu
Escribir un programa interactivo que acepte el nombre de un pais como entrada y escriba su correspondiente capital, y viceversa.Diseñar el programa de modo
que se ejecute repetidamente, hasta que se introdusca la palabra FIN.
Pseudocodigo
void ip(char paises[11][30],char capitales[11][30])
void main()
{
char paises[11][30]={"Canada","Inglaterra","Francia","India","Isrrael","Italia","Japon","Mexico","China","Estados Unidos","Rusia"}
char capitales[11][30]={"Ottawa","Londres","Paris","Nueva delhi","Jerusalen","Roma","Tokio","Cd.De Mexico","Beijin","Washington","Moscu"}
ip(paises,capitales);
print "Programa terminado\n"
getch()
}
void ip(char paises[11][30],char capitales[11][30])
{
entero i=0
char cd[30]
do
{
print "Escriba Pais o Capital (con mayuscula al principio):"
gets(cd);
if(strcmp(cd,"FIN")!=0)
{
for(i=0 to 12 step i++)
{
if(strcmp(cd,paises[i])==0)
{
print "\tPais\t\tCapital\n"
print "\t"<<paises[i]<<"\t\t"<<capitales[i]
}
if(strcmp(cd,capitales[i])==0)
{
print "\tCapital\t\tPais\n"
print "\t"<<capitales[i]<<"\t\t",paises[i]
}
}
}
}
while(strcmp(cd,"FIN"))
}
4.-Haga un programa que escriba en un archivo llamado nombres.txt que genere un archivo texto para almacenar los nombres de n alumnos y un archivo de
calificaciones.txt para almacenar 6 calificaciones de cada estudiante.Debe calcular el promedio de cada estudiante.
Pseudocodigo
void sd(entero n)
{
ofstream salida
salida.open("C://Dt1//nombres.txt")
entero i
char name[30]
for(i=1 to n step i++)
{
print "Nombre ",(i),": "
gets(name)
salida,name
}
salida.close();
}
void es()
{
ifstream entrada;
entrada.open("C://Dt1//nombres.txt")
char name[30];
print "\nLos estudiantes ingresados son\n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print name
}
entrada.close()
}
void ac(entero n)
{
ofstream salida
salida.open("C://Dt1//calificaciones.txt")
int r,c,calf
for(r=0 to n step r++)
{
print "Favor de introducir calificaciones del estudiante ",(r+1)
for(c=0 to 6 step c++)
{
print "Calificacion ",(c+1),": "
read calf;
salida,calf," ";
}
salida;
}
salida.close()}
5a.-Introducir en un archivo una lista de nombres y obtener un reporte del contenido del archivo, el usuario debe introducir la palabra fin, para detener el proceso de almacenamiento
de nombres.
Pseudocodigo
void sf()
{
ofstream salida
salida.open("C://Dt1//nombres.txt")
entero i=0
char name[30]
do
{
print "Nombre ",(i+1),": "
gets(name)
if(strcmp(name,"FIN")!=0)
{
salida,name
i++
}}
while(strcmp(name,"FIN" ))
salida.close()
}
void ef()
{
ifstream entrada
entrada.open("C://Dt1//nombres.txt")
char name[30
print "\nListado de Estudiantes\n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print name
}
entrada.close()
}
void main()
{
entero n
entero c[20][6]
sf()
ef()
getch()
}
6a-Escriba un programa que acepte n lineas de texto desde el teclado y almacenar cada linea a un archivo llamado texto.dat
hasta que el usuario introdusca la palabra fin.Leer y mostrar los datos guardados en el archivo texto.dat
Pseudocodigo
void sf()
{
ofstream salida
salida.open("C://Datos3//texto.dat")
char texto[80]
print "introdusca el texto que desee, para finalizar introdusca la leyenda FIN"
do
{
gets(texto)
if(strcmp(texto,"FIN")!=0)
{
salida,texto
}}
while(strcmp(texto,"FIN" ))
salida.close()
}
void en()
{
ifstream entrada
entrada.open("C://Datos3//texto.dat")
char texto[80]
print "Texto guardado\n"
entrada.getline(texto,80)
print texto
while(!entrada.eof())
{
entrada.getline(texto,80)
print texto
}
entrada.close()
}
void main()
{
sf()
en()
getch()
}
6b.-Escriba un programa en c++ que acepte lineas de texto desde teclado y escriba cada linea a un archivo llamado texto.dat hasta que introdusca una linea
vacia.Una linea en blanco es una linea vacia,Una linea en blanco es una linea sin texto, eso solo una linea nueva ocasionada al oprimir la tecla enter.Leer y mostrar los datos almacenados en el archivo.dat.
Pseudocodigo
void sf()
{
ofstream salida
salida.open("C://Datos3//texto.dat")
entero n=0
char texto[80]
print "introdusca el texto que desee"
do
{
gets(texto)
if(strcmp(texto,"\n")>=0)
{
salida,texto
}}
while(strcmp(texto,"\n" )>=0)
salida.close()
}
void en()
{
ifstream entrada
entrada.open("C://Datos3//texto.dat")
char texto[80]
print "introdusca el texto que desee"
entrada.getline(texto,80)
print texto
while(!entrada.eof())
{
entrada.getline(texto,80)
print texto
}
entrada.close()
}
void main()
{
sf()
en()
getch()
}
7.-Escriba un programa que pueda crear un archivo texto llamado voltios y escriba en el los siguientes registros:
120.3 122.7 90.3 99.8
95.3 120.5 127.3 120.8
123.2 118.4 123.8 115.6
122.4 95.6 112.3 120.99
123.5 130.2 123.98 124.2
Pseudocodigo
void dp(flotante promedio[5])
void id()
void cp(flotante valores[5][4],flotante promedio[5])
void main()
{
float valores[5][4]
float promedio[5]
id()
cp(valores,promedio)
dp(promedio)
getch()
}
void id()
{
ofstream salida
salida.open("C://Datos//voltios.txt")
salida,120.3," ",122.7," ",90.3," ",99.8
salida,95.5," ",120.5," ",127.3," ",120.8
salida,123.2," ",118.4," ",123.8," ",115.6
salida,122.4," ",95.6," ",118.2," ",120.99
salida,123.5," ",130.2," ",123.98," ",124.4
salida.close()
}
void cp(flotante valores[5][4],flotante promedio[5])
{
ifstream entrada
entrada.open("C://Datos//voltios.txt")
entero r=0,c=0
flotante suma=0
for(r=0 to 5 step r++)
{
suma=0;
for(c=0 to 4 step c++)
{
entrada>>(valores[r][c])
suma=suma+valores[r][c]
}
promedio[r]=suma/4
}entrada.close()
}void dp(flotante promedio[5])
{
int r=0;
for(r=0 to 5 step r++)
{print "Promedio ",(r+1),": ",promedio[r]
}}
7b.Agregar los siguientes tres registros al archivo voltios:
122.11 128.5 99.2 89.70
125.12 101.33 89.75 129.90
95.33 124.50 133.23 95.34
leer cada registro y calcular el promedio de cada registro y el promedio general de los voltajes.
Pseudocodigo
void id()
void cp(flotante valores[5][4],flotante promedio[5])
void dp(flotante promedio[5])
void main()
{
flotante valores[5][4]
flotante promedio[5]
id()
cp(valores,promedio)
dp(promedio)
getch()
}
void id()
{
ofstream salida
salida.open("C://Datos//voltios.txt")
salida<<120.3" "<<122.7" "90.3" "99.8
salida<<95.5" "<<120.5" "127.3" "120.8
salida<<123.2" "<<118.4" "123.8" "115.6
salida<<122.4" "<<95.6" "118.2" "120.99
salida<<123.5" "<<130.2" "123.98" "124.4
salida<<122.11" "<<128.5" "99.2" "89.70
salida<<125.12" "<<101.33" "89.75" "129.90
salida<<95.33" "<<124.50" "133.23" "95.34
salida.close();
}
void cp(flotante valores[8][4],flotante promedio[8])
{
ifstream entrada
entrada.open("C://Datos//voltios.txt")
entero r=0,c=0
flotante suma=0
for(r=0 to 8 step r++)
{
suma=0
for(c=0 to 4 step c++)
{
entrada,(valores[r][c])
suma=suma+valores[r][c]
}
promedio[r]=suma/4
}
entrada.close()
}
void dp(flotante promedio[8])
{
entero r=0
flotante suma=0
flotante promediog=0
for(r=0 to 8 step r++)
{
print "Promedio ",(r+1)," : ",promedio[r]
}
for(r=0 to 8 step r++)
{
suma=suma+promedio[r]
}
promediog=suma/8
print "Promedio general: "promedio
}