Logo Studenta

programacion c ejercicios resueltos-58

¡Estudia con miles de materiales!

Vista previa del material en texto

144 | Capítulo 4: Entrada de datos al programa y el proceso de diseño de software
¿Hay algún problema al leer el segundo nombre si hay en su lugar una inicial en vez del segundo nombre? En 
realidad no. Sólo se supone que se introduce el segundo nombre y se extrae la inicial de éste cuando la necesita 
para los formatos tercero y cuarto. Si se introdujo la inicial para el segundo nombre, entonces las formas de salida 
tercera y cuarta serán las mismas. ¿Qué hay acerca de la puntuación en la salida? Si el apellido viene primero, debe 
ir seguido de una coma, y la inicial del segundo nombre debe ir seguida de un punto. Así, si se introduce la inicial 
en vez del segundo nombre, debe ir seguida de un punto. Esto se debe agregar a las suposiciones.
SUPOSICIÓN El orden del nombre es: nombre, segundo nombre y apellido, y si se introduce la inicial del se-
gundo nombre en lugar del segundo nombre, debe ir seguida de un punto.
Escribir los datos en formatos apropiados
Escribir el nombre, espacio en blanco, segundo nombre, espacio en blanco, apellido, espa-
cio en blanco, número de seguro social
Escribir el apellido, coma, espacio en blanco, nombre, espacio en blanco, apellido, espacio 
en blanco, número de seguro social
Escribir el apellido, coma, espacio en blanco, nombre, espacio en blanco, inicial del segun-
do nombre, punto, espacio en blanco, número de seguro social
Escribir el nombre, espacio en blanco, inicial del segundo nombre, punto, espacio en blan-
co, apellido
Lo único que falta defi nir es la inicial del segundo nombre. Se puede usar el método substr para tener 
acceso al primer carácter en el segundo nombre.
Inicial del segundo nombre Nivel 2
Fijar la inicial en middleName.substr(0, 1) + punto
Cerrar archivos
inData.close()
outData.close()
Gráfi ca de estructura de módulo
Principal
Abrir archivos Obtenerel nombre
Inicial del
segundo nombre
Cerrar archivosEscribir datosen formatos
apropiados
 www.FreeLibros.me
Caso práctico de resolución de problemas | 145
Variables
Nombre Tipo de datos Descripción
inData ifstream Archivo de entrada
outData ofstream Archivo de salida
socialNum string Número de seguro social
fi rstName string Nombre
lastName string Apellido
middleName string Segundo nombre
initial string Inicial del segundo nombre
 //******************************************************************
// Programa Formato de nombres
// Este programa lee un número de seguro social, un nombre, un
// segundo nombre o inicial y el apellido del archivo inData.
// El nombre se escribe en el archivo outData en tres formatos:
// 1. Nombre, segundo nombre, apellido y número de seguro 
// social.
// 2. Apellido, nombre, segundo nombre y número de seguro
// social
// 3. Apellido, nombre, segundo nombre y número de seguro 
// social
// 4. Apellido, nombre, inicial del segundo nombre y número de 
// seguro social
//******************************************************************
 #include <fstream> // Access ofstream
#include <string> // Access string
using namespace std;
int main()
{
 // Declarar y abrir archivos
 ifstream inData;
 ofstream outData;
 inData.open("name.dat");
 outData.open("name.out");
 // Declarar variables
 string socialNum; // Número de seguro social
 string fi rstName; // Nombre
 string lastName; // Apellido
 string middleName; // Segundo nombre
 string initial; // Inicial del segundo nombre
 // Leer los datos del archivo inData
 inData >> socialNum >> fi rstName >> middleName >> lastName;
 // Tener acceso a la inicial del segundo nombre y anexar un punto
 initial = middleName.substr(0, 1) + '.';
 www.FreeLibros.me
146 | Capítulo 4: Entrada de datos al programa y el proceso de diseño de software
 
 // Producir información en los formatos requeridos
 outData << fi rstName << ' ' << middleName << ' ' << lastName
 << ' ' << socialNum << endl;
 outData << lastName << ", " << fi rstName << ' ' << middleName
 << ' ' << socialNum << endl;
 outData << lastName << ", " << fi rstName << ' ' << initial
 << ' ' << socialNum << endl;
 outData << fi rstName << ' ' << initial << ' ' << lastName;
 // Cerrar archivos
 inData.close();
 outData.close();
 return 0;
} 
A continuación se muestran ejemplos de archivos de entrada y salida
Las imágenes mostradas corresponden a la salida producida por el programa original, escrito en idioma inglés.
▼(continúa)
Información básica
Programación a muchas escalas
Para ayudar a poner en contexto los temas de este libro, se describe en términos amplios la manera en que 
se hace la programación en sus muchas formas en "el mundo real". Obviamente no es posible cubrir cada 
posibilidad, pero se intentará dar una idea de lo último a este respecto.
La programación de proyectos varía en tamaño desde la escala pequeña, en la cual un estudiante o 
afi cionado a la computación escribe un programa corto para probar algo nuevo, hasta los proyectos de pro-
gramación multicompañías a gran escala donde participan cientos de personas. Entre estos dos extremos 
están los esfuerzos de muchos otros tamaños. Hay personas que usan la programación en sus profesiones, 
aun cuando no es su empleo principal. Por ejemplo, un científi co podría escribir un programa con un objeti-
vo particular a fi n de analizar datos de un determinado experimento.
 www.FreeLibros.me

Continuar navegando