Una pequena 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 menu de alternativas: 1) Vuelo 1 2)Vuelo 2 3) Vuelo 3
Para cada vuelo digita 1 para primera clase debe asignar un asiento en la seccion de primera clase (asientos 1 a 5). Si la persona digita 2, su programa debe asignar un asiento en la seccion economica (asientos 6 a 10). Su programa debe imprimir un pase de abordar que indique el numero de asiento de la persona y sie esta en la seccion de primera clase o en la seccion economica del avion.
Utilice un arreglo bidimensional para representar la tabla de asientos del avion. Inicialice en 0 todos los elementos del arreglo para indicar que todos los asientos estan 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 seccion de primera clase esta llena, su programa nunca debe asignar un asiento que ya esta asignado. Cuando la seccion de primera clase esta llena, su programa debe preguntar a la persona si acepta que se le coloque en la seccion economica y viceversa. Si acepta, entonces haga la asignacion apropiada del asiento. Si no acepta, entonces despliegue el mensaje "El siguiente vuelvo parte en tres horas".
Pseudocodigo
Inicio Programa
Int main()
{
vuelo[3][10] int
clase,viaje,continua int
Print Viajes Electronicos\n"
do
{
Print 1) Holanda
Print 2) Roma
Print 3) Alemania
Print Seleccionar viaje: " read viaje
Print \nTipo de viaje\n1) Primera clase\n2) Clase economica\n"
Print Seleccionar clase:" read clase
Fin programa
Inicio funciones
Asientos(vuelo,clase,viaje) Print "\nDesea continuar comprando 1)si 2)no: " read continua
}while(continua==1)
}
Fin funcion
void Asientos(Int vuelo[3][10],Int clase,Int viaje)
i,b int
switch(clase)
{
case 1:
i=0 b=0
while(i<=4 && b==0)
{
if(vuelo[viaje-1][i]!=1)
{
vuelo[viaje-1][i]=1
b=1
Print \nPase de abordar
Print viaje " , (viaje) , " en Primera clase
}
else
{
i++
if(i==4)
{
Print \nLa primera clase esta llena
Print El siguiente vuelo parte en 3 horas }
}}
break
case 2:
i=5
b=0
while(i<=9 && b==0)
{
if(vuelo[viaje-1][i]!=1)
{
vuelo[viaje-1][i]=1
b=1
Print \nPase de abordar
Print viaje " , (viaje) , " en Clase economica
}
else
{
i++
if(i==9)
{Print \nLa clase economica esta llena
Print El siguiente vuelo parte en 3 horas }
}}
break
default:print “Error en clase\n"
}}
Fin funcion
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
Inicio Funciones
int insertardatoslista(char
nombres[20][30])
{i int
i=0
do
{
print "Nombre del Alumno: "
read(nombres[i])
i=i+1
}
while(strcmp(nombres[i-1],"fin")!=0&&i<20)
return i
}
Fin funcion
int reordenar (char nombres[20][30],int n)
{
i,j int
temp[30] char
for(i=0 i<(n-1) i++){
for(j=i+1 j<(n-1) j++)
{
if(strcmp(nombres[i],nombres[j])>0)
{
strcpy(temp,nombres[i])
strcpy(nombres[i],nombres[j])
strcpy(nombres[j],temp)
}}}}
Fin funcion
{
i int
for(i=0 i<(n-1) i++)
{
print nombres[i],
}
}
Fin function
Inicio programa
int main(){
n int
nombres[20][30] char
n=insertardatoslista(nombres)
reordenar(nombres,n)
desplegardatos (nombres, n)
}
Fin programa
Practica 15 Problema 3
Escribir un programa interactivo que acepte el nombre de un pais como entrada y escriba su correspondiente capital, y viceversa. Disenar el programa de modo que se ejecute repetidamente, hasta que se introduzca la palabra Fin.
Pseudocodigo
Inicio Programa
int main(){
x int
selecion[20],continuar[5] char
paises[11][20]={"canada","inglaterra","francia","india","isrrael","italia","japon","mexico","china","usa","rusia"} char
capitales[11][20]={"ottawa","londres","paris","nueva delhi","jerusalen","roma","tokio","cd. mexico","beijing","washington","moscu"} char
do
{
print ,"\n1)Pais a capital\n2)Capital a pais\nSeleccionar: " read x
switch(x)
{
case 1:
print ,"\nIntroducir el nombre del pais: " read selecion
PaisCapital(paises,selecion)
print ,"La capital es: ",capitales[PaisCapital(paises,selecion)]
print ,"\n Desea continuar 'si' o 'fin': " read continuar
break
case 2:
print ,"\nIntroducir el nombre de la capital: " read selecion
CapitalPais(capitales,selecion)
print ,"El pais es: ",paises[CapitalPais(capitales,selecion)]
print ,"\n Desea continuar 'si' o 'fin': " read continuar
break
}
}while(strcmp(continuar,"fin")!=0)
}
Fin programa
Inicio funciones
int PaisCapital(char p[11][20],char selec[20])
{
i,regresa,w int
for(i=0 i<11 i++)
{
w=strcmp(p[i],selec)
if(w==0)
{regresa=i }
}
return regresa
}
Fin funcion
{
i,regresa,w int
for(i=0 i<11 i++)
{
w= strcmp(c[i],selec)
if(w==0)
{regresa=i }
}
return regresa
}
Fin funcion
Practica 15 Problema 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
Inicio archivos
void salida_datos_file(int n)
{
ofstream salida
salida.open("C://Datos//nombres.txt")
i int
name[30] char
for(i=1 i<=n i++)
{
print "Nombre " ,i ,"=? "
read (name)
salida ,name ,endl
}
salida.close()
}
Fin archivo
void entrada_datos_file()
{
ifstream entrada
entrada.open("C://Datos//nombres.txt")
name[30] char
print "\nListado de nombres\n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print name ,endl
}
entrada.close()
}
Fin archivo
ofstream salida
salida.open("C://Datos//calificaciones.txt")
r,c,calf int
for(r=0 r<n r++)
{
print "Introduce calificaciones del estudiante " ,(r+1)
for(c=0 c<6 c++)
{
print "calificacion " , (c+1) ,"= ?"
read calf
salida ,calf ," "
}
salida
}
}
Fin archivo
void leer_archivo_calif(int a[20][6], int promedio[20],int n)
{ ifstream entrada
entrada.open("C://Datos//calificaciones.txt")
r,c,suma int
for(r=0 r<n r++)
{
suma=0
for(c=0 c<6 c++)
{
entrada>>a[r][c]
print a[r][c] ,"\t"
suma=suma + a[r][c]
}
promedio[r]=suma/6
print promedio[r]
}
}
Inicio programa
int main()
{
n int
c[20][6],p[20] int
print "No. de estudiantes = ? "
read n
salida_datos_file(n)
entrada_datos_file()
almacena_calif(n)
leer_archivo_calif(c, p, n)
}
Fin programa
Practica 15 Problema 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
Inicio Archivos
void salida_datos_file(int
n){
ofstream salida
salida.open("C://Datos//nombres.txt")
i=0 int
name[30] char
do
{
print ,"Nombre del Alumno: "
read (name)
salida ,name
}
while(strcmp(name,"fin")!=0)
salida.close()
}
Fin archivo
void entrada_datos_file()
{
ifstream entrada
entrada.open("C://Datos//nombres.txt")
name[30] char
print ,"\nListado de nombres\n"
entrada.getline(name,30)
print ,name
while(!entrada.eof())
{
entrada.getline(name,30)
print ,name
}
entrada.close()
}
Fin archivo
int main()
{
n int
c[20][6],p[20] int
salida_datos_file(n)
entrada_datos_file()
}
Fin programa
Practica 15 Problema 5b
Agregar datos al archivo de nombres e imprimir el contenido del archivo.
Pseudocodigo
Inicio Archivos
void salida_datos_file(int n)
{
ofstream salida
salida.open("C://Datos//nombres.txt"ios::app)
i=0 int
name[30] char
do
{
print ,"Nombre del Alumno: "
read (name)
salida ,name
}
while(strcmp(name,"fin")!=0)
salida.close()
}
Fin archivo
void entrada_datos_file()
{ifstream entrada
entrada.open("C://Datos//nombres.txt")
name[30] char
print ,"\nListado de nombres\n"
entrada.getline(name,30)
print ,name
while(!entrada.eof())
{
entrada.getline(name,30)
print ,name
}
entrada.close()
}
Fin archivo
Inicio Programa
int main()
{
n int
c[20][6],p[20] int
salida_datos_file(n)
entrada_datos_file()
}
Fin programa
Practica 15 Problema 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 introduzca fin. Leer y mostrar los datos guardados en el archivo texto.dat
Pseudocodigo
Inicio archivos
void salida_datos_file()
{ofstream salida
salida.open("C://Problema6a//texto.dat")
texto[90] char
print "\t\t\t\tEscribir mensaje\n\n"
do{read texto
if(strcmp(texto,"Fin")!=0)
{salida, texto, " " }}
while(strcmp(texto,"Fin")) print
salida.close() }
Fin archivo
void entrada_datos_file()
{ifstream entrada entrada.open("C://Problema6a//texto.dat")
texto[90] char
print "\t\t\t\tMensaje escrito\n\n"
entrada.getline(texto,90) print texto
while(!entrada.eof())
{entrada.getline(texto,90) print texto
}
entrada.close() }
Fin archivo
Inicio Programa
int main(){
salida_datos_file()
entrada_datos_file()
}
Fin programa
Practica 15 Problema 6b
Escriba un programa en C++ que acepte lineas de texto desde el teclado y escriba cada linea a un archivo de texto llamado texto.dat hasta que introduzca una linea vacia. Una linea en blanco es una linea vacia. Una linea en blanco es una linea sin texto, es solo una linea nueva ocasionada al oprimir la tecla Enter. Leer mostrar los datos almacenados en el archivo texto.dat.
Pseudocodigo
Inicio archivos
void salida_datos_file(){
ofstream salida
salida.open("C://Texto//texto.dat")
n=0 int
texto[80] char
print "\t\t\t\tEscribir mensaje\n\n"
do{read(texto)
if(strcmp(texto,"\n")>=0)
{salida,texto
}}
while(strcmp(texto,"\n" )>=0)
salida.close() }
Fin archivo
void entrada_datos_file()
{ifstream entrada entrada.open("C://Texto//texto.dat")
texto[80]c har
print "\t\t\t\tMensaje escrito\n\n"
entrada.getline(texto,80) print texto
while(!entrada.eof())
{entrada.getline(texto,80) print texto
}
entrada.close() }
Fin archivo
Inicio programa
int main(){salida_datos_file()
entrada_datos_file()
}
Fin programa
Practica 15 Problema 7a
Escriba un programa que pueda crear un achivo 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 118.2 120.99
123.5 130.2 123.98 124.4
Pseudocodigo
Inicio Programa
int main(){
valor[5][4] real
promedio[5] real
datos() cpromedio(valor,promedio) displayPromedio(promedio)
}
Fin programa
void datos()
{
ofstream salida
salida.open("C://Problema7//voltios.txt")
salida ,120.3 ," " ,122.7 ," " ,90.3 ," " ,99.8
salida ,95.3 ," " ,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() print "\n"
}
Fin archivo
void cpromedio(float valor[5][4], float promedio[5])
{
ifstream entrada
entrada.open("C://Problema7//voltios.txt")
R=0,C=0 int
suma=0 for(R=0 R<5 R++) real
{
suma=0 for(C=0 C<4 C++)
{
entrada>>valor[R][C]
suma=suma+valor[R][C]
}
promedio[R]=suma/4 }
entrada.close()
}
Fin archivo
{
R=0 for(R=0 R<5 R++)int
{
print "Promdio de renglon " ,(R+1) ,": " ,promedio[R] ,"\n"
}}
Fin archivo
Practica 15 Problema 7b
Con base en los dats del archivo voltios. Leer cada registro en el archivo y calclar el promedio para cada registro. Leer cada registro y calcular el promedio de cada registro y el promedio general de los voltajes.
Pseudocodigo
Inicio Programa
int main()
{
valores[5][4] real
promedio[5] real
insertar_lista_datos()
calcular_promedio(valores,promedio)
desplegar_promedio(promedio)
}
Fin programa
void insertar_lista_datos()
{
ofstream salida
salida.open("C://Problema7//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()
}
Fin archivo
void calcular_promedio(float valores[8][4],float promedio[8])
{
ifstream entrada
entrada.open("C://Problema7//voltios.txt")
r=0,c=0 int
suma=0 real
for(r=0 r<8 r++)
{
suma=0
for(c=0 c<4 c++)
{
entrada>>(valores[r][c])
suma=suma+valores[r][c]
}
promedio[r]=suma/4
}
entrada.close()
}
Fin archivo
Inicio funcion
void
desplegar_promedio(float promedio[8]){
r=0 int
suma=0 real
promediog=0 real
for(r=0 r<8 r++)
{
print "PROMEDIO ",(r+1)," : ",promedio[r]
}
for(r=0 r<8 r++)
{
suma=suma+promedio[r]
}
promediog=suma/8
print "PROMEDIO GRAL: ",promediog
}
Fin funcion
No hay comentarios:
Publicar un comentario