Вы находитесь на странице: 1из 21

INGENIERÍA EN DESARROLLO DE SOFTWARE

CURSO:

PROGRAMACION NET I

UNIDAD 3. MÉTODOS

NOMBRE DE LA ACTIVIDAD:

ACTIVIDAD 4. PROGRAMA QUE UTILIZA MÉTODOS QUE DEVUELVEN RESULTADO

ASESOR ACADÉMICO: NANCY ROSALINA GUTIÉRREZ SOTO

DOCENTE EN LÍNEA: FABIAN GALVEZ GONZALEZ

ALUMNO (A):

CABRERA CONTRERAS MARIO GUADALUPE

ES162000868

05 DE SEPTIEMBRE DE 2018

1
ACTIVIDAD 4. PROGRAMA QUE UTILIZA MÉTODOS QUE DEVUELVEN RESULTADO

INSTRUCCIONES:
1. Planteamiento del problema:
Define un proyecto en C# de tipo Consola, con una clase llamada Persona la cual debe de
cumplir las siguientes condiciones:
• -Los atributos de esta clase son: RFC, Nombre, Edad, Sexo (H=hombre, M= mujer), Peso
y Altura.
• -Los métodos que debes implementar son:
A. validarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es
correcto, por default será H.
B. mayor_menorEdad(int edad): indica si es mayor de edad, devuelve booleano true si
es Mayor de Edad, de lo contrario devuelve false si es Menor de Edad.
C. calcularIMC(float peso, float): debe de calcular el peso ideal de la persona (investiga
la formula para calcular IMC), considera las siguientes condiciones con base al IMC
que resulte:
• Si el IMC es un valor menor que 18, el método devuelve el string “PESO BAJO”
• Si el IMC es un valor entre 18 y menor que 25, el método devuelve el string
“NORMAL”
• Si el IMC es un valor entre 25 y menor que 27, el método devuelve el string
“SOBREPESO”
• Si el IMC es un valor entre 27 y menor que 30, el método devuelve el string
“OBESIDAD GRADO I”
• Si el IMC es un valor entre 30 y menor que 40, el método devuelve el string
“OBESIDAD GRADO II”
• Si el IMC es un valor mayor o igual a 40, el método devuelve el string “OBESIDAD
GRADO III”
D. mostrarInformacion(): devuelve toda la información del objeto Persona.
E. Main(): desde el cual se de funcionalidad a la clase Persona
2. Integra en tu programa los métodos que devuelven, así como las variables, operaciones
estructuras de control e instrucciones adecuadas para que funcione correctamente.
3. Documenta el programa en base a comentarios, indicando brevemente el procedimiento que
se realiza en cada sección.
4. Incluye en un documento de texto por lo menos 3 ventanas de ejecución del programa con
diferentes valores asignados a las variables declaradas y sus resultados.
5. Guarda la actividad en un archivo comprimido que contenga tanto el proyecto en C# como el
documento de texto con las pantallas de ejecución, con el nombre DPRN1_U3_A4_XXYZ.

2
Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y
la Z por tu segundo apellido.
6. Consulta la escala de evaluación para conocer los parámetros de la actividad.
7. Envía el archivo comprimido para recibir retroalimentación mediante la herramienta
Tarea. Espera y atiende la retroalimentación correspondiente.

3
DIAGRAMA

De clase
Persona
+ string rfc
+ string nombre
+ int edad
+ float peso
+ float altura

- ValidarSexo()
- Mayor_menorEdad()
- Imc()
- MostrarInformacion()

4
De funcionamiento

5
CLASE PERSONA
• Atributos
o Cadena de texto rfc
o Cadena de texto nombre
o Entero edad
o Carácter sexo
o Punto flotante peso
o Punto flotante altura

• Constructor publico Persona(parámetros)


o Parámetros
▪ Cadena de texto rfc
▪ Cadena de texto nombre
▪ Entero edad
▪ Carácter sexo
▪ Punto flotante peso
▪ Punto flotante altura
o Rfc de clase = rfc de constructor
o Nombre de clase = nombre de constructor
o Edad de clase = edad de constructor
o Sexo de clase = sexo de constructor
o Peso de clase = peso de constructor
o Altura de clase = altura de constructor

• Getter y Setter publicos


o Getter y setter para Rfc
o Getter y setter para nombre
o Getter y setter para edad
o Getter y setter para sexo
o Getter y setter para peso
o Getter y setter para altura

• Método público con retorno entero Mayor_menorEdad(int edad)


o Parámetros
▪ Entero edad
o Si edad >= 18
▪ Regresa verdadero
o Sino
▪ Regresa falso

6
• Método público con retorno char ValidarSexo(char sexo)
o Parametros
▪ Carácter sexo
o Variables locales
▪ Cadena de texto resp
o Mensaje por consola
▪ El sexo, sexo(parámetro) es correcto?
▪ Ingrese S para Si, e ingrese N para No
o resp lee el carácter ingresado por consola
o si resp equivale a ‘s’ o ‘S’
▪ Mensaje por consola
• sexo correcto sexo(parámetro)
▪ Regresa sexo(parámetro)
o Si no si resp equivale a ‘n’ o ‘N’
▪ Si sexo(parámetro) equivale a ‘h’ o ‘H’
• Mensaje por consola
o sexo cambiado a M
• sexo de clase vale ‘M’
• regresa ‘M’
▪ Si no
• Mensaje por consola
o sexo cambiado a H
• sexo de clase vale ‘H’
• regresa ‘H’
o regresa ‘H’

• Método público con retorno string MostrarInformacion()


o Regresa la siguiente cadena:
▪ Datos de la persona
▪ Rfc = rfc de clase
▪ Nombre = nombre de clase
▪ Edad = edad de clase
▪ Sexo = sexo de clase
▪ Peso = peso de clase
▪ Altura = atura de clase

7
• Método público con retorno string MostrarInformacion(float peso, float altura)
o Parametros
▪ Punto flotante peso
▪ Punto flotante altura
o Variables locales
▪ Punto flotante imc
o imc = peso / (altura/100)*(altura/100)
o si imc < 18
▪ regresa “peso bajo “ + imc
o si no si imc >= 18 y imc < 25
▪ regresa “Normal” + imc
o si no si imc >= 25 y imc < 27
▪ regresa “Sobrepeso” + imc
o si no si imc >= 27 y imc < 30
▪ regresa “Obesidad grado 1” + imc
o si no si imc >= 30 y imc < 40
▪ regresa “Obesidad grado 2” + imc
o si no si imc >= 40
▪ regresa “Obesidad grado 3” + imc
o si no
▪ Regresa “n/a”

8
CLASE PROGRAM

Main
• Variables
o Entero
▪ Menu = 0
▪ Menu1 = 0
▪ numPer = 0
▪ edad
o cadena de texto
▪ rfc
▪ nombre
o carácter
▪ sexo = ‘h’
o Punto flotante
▪ Peso
▪ Altura
• Objetos
o personas [ ] Personas = new personas[100 ]
Arreglo de objetos de nombre personas de tamaño 100,
• hacer
o prueba
▪ mensaje por consola
• Control de personas
• Menú:
o 1. Ingresar # de persona
o 2. Salir
▪ Menu toma el valor ingresado por consola convertido a entero
▪ Aplicar menu en un switch case
• Caso 1
o Limpiar consola
o Mensaje por consola
▪ Ingrese Numero de persona
o numPer toma el valor ingresado por consola convertido a entero
o hacer
▪ prueba
• mensaje por consola
o Persona numero:
o Menu
▪ 1. Alta de datos
▪ 2.Verificar sexo

9
▪ 3. Verificar mayoría de edad
▪ 4. Calcular IMC
▪ 5. Datos de persona
▪ 6. Regresar
• Menu1 toma el valor ingresado por consola
convertido a entero
• Aplicar menu1 en un switch case
o Caso 1
▪ Prueba
▪ Mensaje por consola
RFC
▪ rfc toma el valor ingresado por
consola
▪ Mensaje por consola
NOMBRE
▪ nombre toma el valor ingresado por
consola
▪ Mensaje por consola
EDAD
▪ edad toma el valor ingresado por
consola
▪ Mensaje por consola
SEXO
▪ sexo toma el valor ingresado por
consola
▪ Mensaje por consola
PESO
▪ peso toma el valor ingresado por
consola
▪ Mensaje por consola
ALTURA
▪ altura toma el valor ingresado por
consola
▪ personas[numPer] = nueva persona
(rfc, nombre, edad, sexo, peso, altura)
▪ fallo
▪ Mensaje por consola
Error al ingresar datos
▪ Break
o Caso 2
▪ sexo toma el valor que devuelve el
llamar el método ValidarSexo(sexo)

10
del objeto personas[numPer]
pasándole el atributo sexo del objeto
▪ break
o caso 3
▪ booleano ok
▪ ok toma el valor que devuelve el
llamar el método ValidarSexo(edad)
del objeto personas[numPer]
pasándole el atributo edad del objeto
▪ si ok es verdadero
Mensaje por consola. Mayor de edad
▪ si no
Mensaje por consola. Menor de
edad
▪ Break
o Caso 4
▪ Cadena de texto imc
▪ imc toma el valor que devuelve el
llamar el método imc(peso, altura)
del objeto personas[numPer]
pasándole el atributo peso y altura
del objeto
▪ Mensaje por consola
Valor de imc
▪ Break
o Caso 5
▪ Mensaje por consola del valor
devuelto al llamar el método
MostrarInformacion() del objeto
personas[numPer]
▪ Break
o Caso 6
▪ Mensaje por consola
Regresando al menú anterior
▪ Break
o Default
▪ Mensaje por consola
Opción invalida!
▪ Break
▪ Fallo
• Mensaje por consola
o Opción invalida!
o Mensaje por consola

11
▪ Presione una tecla para continuar
o Consola espera una tecla cualquiera
o Limpiar consola
o Cuando menu1 sea menor que 6 y cuando menú1 sea mayor
que 6
o Break
• caso 2
o Mensaje por consola
▪ Ha seleccionado salir
▪ Presione una tecla para continuar
o Consola espera una tecla cualquiera
o Break
• Default
o Mensaje por consola
▪ Opción invalida!
▪ Presione una tecla para continuar
o Consola espera una tecla cualquiera
o Limpiar consola
o Break
o Fallo
▪ Mensaje por consola
• Opción invalida!
o Cuando menú sea menor que 2 y menú sea mayor que 2

12
CODIFICACION

Clase Program
using System;

namespace Actividad4U3
{
class Program
{
static void Main(string[] args)
{
int menu = 0, menu1 =0, numPer = 0, edad;
string rfc, nombre;
char sexo = 'H';
float peso, altura;

Persona[] personas = new Persona[10];


do
{
try
{
Console.WriteLine("CONTROL DE IMC EN PERSONAS");
Console.WriteLine("Ingrese una opcion: " +
"\n\t1. Ingresar # de persona" +
"\n\t2. Salir");
menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
Console.Clear();
Console.Write("Ingrese No de persona: ");
numPer = int.Parse(Console.ReadLine());
do
{
try
{
Console.WriteLine("PERSONA # " + numPer);
Console.WriteLine("INGRESE UNA OPCION: " +
"\n\t1.Alta de datos" +
"\n\t2.Verificar Sexo" +
"\n\t3.Verificar Mayoria de edad" +
"\n\t4.Calcular IMC" +
"\n\t5.Datos de persona" +
"\n\t6.Regresar");
menu1 = int.Parse(Console.ReadLine());
switch (menu1)
{
case 1:
try
{
Console.Write("PERSONA: " + numPer + "\n\tRFC: ");
rfc = Console.ReadLine();
Console.Write("\tNOMBRE: ");
nombre = Console.ReadLine();
Console.Write("\tEDAD: ");
edad = int.Parse(Console.ReadLine());
Console.Write("\tSEXO: ");
sexo = char.Parse(Console.ReadLine());
Console.Write("\tPESO kg: ");
peso = float.Parse(Console.ReadLine());
Console.Write("\tALTURA cm: ");
altura = float.Parse(Console.ReadLine());
personas[numPer] = new Persona(rfc, nombre, edad, sexo, peso, altura);
}
catch (Exception)
{
Console.WriteLine("Error al ingresar datos");
}
break;
case 2:
sexo = personas[numPer].ValidarSexo(personas[numPer].Sexo);
break;
case 3:

13
bool ok;
ok = personas[numPer].Mayor_menorEdad(personas[numPer].Edad);
if (ok)
Console.WriteLine("MAYOR DE EDAD");
else
Console.WriteLine("MENOR DE EDAD");
break;
case 4:
string imc = personas[numPer].Imc(personas[numPer].Peso, personas[numPer].Altura);
Console.WriteLine(imc);
break;
case 5:
Console.WriteLine("#" + numPer + personas[numPer].MostrarInformacion());
break;
case 6:
Console.WriteLine("\tRegresando al menu anterior");
break;
default:
Console.WriteLine("\tOpcion Invalida! ");
break;
}
}
catch (Exception)
{
Console.WriteLine("\tOpcion Invalida! ");
}
Console.WriteLine("\n\tPrecione una tecla para continuar ");
Console.ReadKey();
Console.Clear();
} while (menu1 < 6 || menu1 > 6);
break;
case 2:
Console.WriteLine("\tAh seleccionado salir ");
Console.WriteLine("\n\tPrecione una tecla para salir ");
Console.ReadKey();
break;
default:
Console.WriteLine("\tOpcion Invalida! ");
Console.WriteLine("\n\tPrecione una tecla para continuar ");
Console.ReadKey();
Console.Clear();
break;
}
}
catch (Exception)
{
Console.WriteLine("\tOpcion Invalida! ");
}
} while (menu < 2 || menu > 2);
}
}
}

Clase Persona
using System;

namespace Actividad4U3
{
class Persona
{
string rfc;
string nombre;
int edad;
char sexo;
float peso;
float altura;

public string Rfc { get => rfc; set => rfc = value; }
public string Nombre { get => nombre; set => nombre = value; }

14
public int Edad { get => edad; set => edad = value; }
public char Sexo { get => sexo; set => sexo = value; }
public float Peso { get => peso; set => peso = value; }
public float Altura { get => altura; set => altura = value; }

public Persona(string rfc, string nombre, int edad, char sexo, float peso, float altura)
{
this.rfc = rfc;
this.nombre = nombre;
this.edad = edad;
this.sexo = sexo;
this.peso = peso;
this.altura = altura;
}

public char ValidarSexo(char sexo)


{
string resp;
Console.WriteLine("Sexo = " + sexo + " Es correcto?");
Console.Write("\n\tS = Si \n\tN = No\n");
resp = Console.ReadLine();
if(resp.Equals("S") || resp.Equals("s"))
{
Console.WriteLine("Sexo correcto " + sexo);
return sexo;
}
else if(resp.Equals("N") || resp.Equals("n"))
{
if (sexo.Equals('H') || sexo.Equals('h'))
{
Console.WriteLine("Sexo cambiado a M");
this.sexo = 'M';
return 'M';
}

else
{
Console.WriteLine("Sexo cambiado a H");
this.sexo = 'H';
return 'H';
}

}
return 'H';
}

public bool Mayor_menorEdad(int edad)


{
if (edad >= 18)
return true;
else
return false;
}

public string Imc(float peso, float altura)


{
float imc = peso / ((altura/100) * (altura/100));
if (imc < 18)

15
return "PESO BAJO. IMC " + imc;
else if (imc >= 18 && imc < 25)
return "NORMAL. IMC " + imc;
else if (imc >= 25 && imc < 27)
return "SOBREPESO. IMC " + imc;
else if (imc >= 27 && imc < 30)
return "OBESIDAD GRADO 1. IMC " + imc;
else if (imc >= 30 && imc < 40)
return "OBESIDAD GRADO 2. IMC " + imc;
else if (imc >= 40)
return "OBESIDAD GRADO 3. IMC " + imc;
else
return "n/a";
}

public string MostrarInformacion() {


return "Datos de la persona: " +
"\n\tRFC: " + rfc +
"\n\tNombre: " + nombre +
"\n\tEdad: " + edad +
"\n\tSexo: " + sexo +
"\n\tPeso: " + peso +
"\n\tAltura: " + altura;
}
}
}

16
EJECUCION DEL PROGRAMA

1. Menú principal

2. Ingresar No de persona en la lista de personas a registrar, se usará el numero 3 como


ejemplo

3. Submenú Persona

17
4. 1. Alta de datos. Se darán los siguientes datos de alta
PERSONA # 3
RFC CACM910512AA4
Nombre Mario Cabrera
Sexo H
Edad 27
Peso 102
Altura 185

5. 2. Verificar sexo, como se observa se ingresó mal el sexo, hay que verificar y corregir
mediante el menú 2
Sexo H

18
6. 3. Verificar si es o no mayor de edad, al tener 27 de años si es mayor de edad
Edad 27

7. 4. Calcular IMC, el imc debe ser 29.80 con los datos proporcionados
Peso 102
Altura 185

19
8. 5. Datos de la persona

9. 6. Regresar

10. Salir

20
FUENTES DE INFORMACION

UnADM. (2016). Unidad 3 Métodos. Programación Net 1. Universidad abierta y a


distancia de México. Fecha de consulta: 05 de septiembre de 2018. Disponible en:
BlackBoard Unadm.

21