Está en la página 1de 10

Ingeniería en Desarrollo de Software

Programación .NET II
6to Semestre
Alumno: Daniel Pineda de la Riva
Matricula: es162006588
Unidad 1
Evidencia de Aprendizaje
Desarrollo de objetos en .NET
Caso para la Evidencia

El gobierno del estado le solicita que elabore un sistema para el registro vehicular
que permita asignar los valores siguientes:

1. Tipo de servicio

2. Placas

3. Fecha expediente

4. Nombre del propietario.

Así también debe permitir regresar los datos de un vehículo en específico mediante
uno o varios parámetros.

Propósito: Desarrollar un programa en CSharp con base al caso presentado donde


se apliquen los conceptos encapsulación, sobrecarga de métodos, construcción y
destrucción.

Sigue estos pasos:

1. Analiza el problema e identifica, objetivo del programa, clases, objetos y elabora


la instanciación.

2. Identifica y enlista los parámetros que acepta.

3. Identifica los atributos y comportamientos de acuerdo con el objetivo del


programa realizando la abstracción del objeto.

4. Identifica y explica los elementos de encapsulación que integrarás en tu


programa mencionando cuáles objetivos de encapsulación cubre:

a. Combinación de datos y métodos en una entidad única

b. Controlar el acceso a los datos y métodos: Público accesible, privado accesible.

5. Identifica y explica los elementos de construcción que integrarás en tu programa


mencionando los objetivos de construcción que cubre.

6. Identifica y explica los elementos de destrucción que integrarás en tu programa


mencionando los objetivos de destrucción que cubre.

7. Identifica y explica los elementos de sobrecarga que integrarás en tu programa


mencionando los objetivos de sobrecarga que cubre.

8. Elabora el proyecto de tu programa en .NET para resolver el problema. Al


realizarlo, guarda las capturas de pantalla de cada uno de los pasos para que
muestres la funcionalidad y la adecuada ejecución del programa y relaciona los
conceptos analizados en la unidad.

9. Al concluir, realiza un empacado de tu proyecto. Recuerda que cuando se


desarrolla un programa en Visual Studio se genera todo un directorio con diferentes
subdirectorios que guardan toda la estructura de un proyecto, para el caso de la
plataforma .NET se conocen con el nombre genérico de Solución.

Codigo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ConsoleApplication6
{
//encapsulamiento
public class vehicular
{
//constructor
struct automovil
{
public string tiposervicio;
public string placas;
public string fecha;
public string nombre;

static int capacidad = 1000;


static automovil[] gente = new automovil[capacidad];
static int cantidad = 0;
static bool terminado = false;
static string nombreFichero = "agenda.dat";

public static void MostrarMenu()


{
Console.WriteLine("Registro Vehicular");
Console.WriteLine();
Console.WriteLine("1- Añadir una nuevo auto");
Console.WriteLine("2- Buscar una persona");
Console.WriteLine("0- Salir");
}

public static string LeerOpcion()


{
Console.Write("Escoja una opción: ");
string opcion = Console.ReadLine();
Console.WriteLine();
return opcion;
}
//sobrecarga
public static void NuevoDato()
{
if (cantidad < capacidad - 1)
{
Console.WriteLine("Introduciendo automovil {0}",
cantidad + 1);

Console.Write("Introduzca el tipo de servicio: ");


gente[cantidad].tiposervicio = Console.ReadLine();

Console.Write("Introduzca placas: ");


gente[cantidad].placas = Console.ReadLine();

Console.Write("Introduzca fecha: ");


gente[cantidad].fecha = Console.ReadLine();

Console.Write("Introduzca enombre: ");


gente[cantidad].nombre = Console.ReadLine();

cantidad++;
Console.WriteLine();
GuardarEnFichero();
}
else
Console.WriteLine("Base de datos llena");
}

public static void BuscarDatos()


{
Console.Write("¿Qué texto busca? ");
string buscar = Console.ReadLine();

bool encontrado = false;


for (int i = 0; i < cantidad; i++)
if (buscar.ToUpper() == gente[i].nombre.ToUpper())
{
encontrado = true;
Console.WriteLine(
"{0}: Nombre: {1}, Tipo de servicio: {2}, placas: {3}, fecha: {4}",
i + 1, gente[i].nombre, gente[i].tiposervicio, gente[i].placas,
gente[i].fecha);
}

if (!encontrado)
{
Console.WriteLine("No se ha encontrado.");
Console.WriteLine();
}
Console.WriteLine();
}

public static void LeerDeFichero()


{
if (File.Exists(nombreFichero))
{
Console.WriteLine("Abriendo fichero...");
StreamReader fichero = File.OpenText(nombreFichero);
string linea1, linea2, linea3, linea4;
do
{
linea1 = fichero.ReadLine();
if (linea1 == null) // Fichero vacío o fin de fichero
break;
linea2 = fichero.ReadLine();
linea3 = fichero.ReadLine();
linea4 = fichero.ReadLine();
if (cantidad < capacidad - 1)
{
gente[cantidad].tiposervicio = linea1;
gente[cantidad].placas = linea2;
gente[cantidad].fecha = linea3;
gente[cantidad].nombre = linea4;

cantidad++;
}
}
while ((linea1 != null) && (linea2 != null) && (linea3 != null)
&& (linea4 != null));
fichero.Close();
}
}

public static void GuardarEnFichero()


{
StreamWriter fichero = File.CreateText(nombreFichero);
for (int i = 0; i < cantidad; i++)
{
fichero.WriteLine(gente[i].tiposervicio);
fichero.WriteLine(gente[i].placas);
fichero.WriteLine(gente[i].fecha);
fichero.WriteLine(gente[i].nombre);
}
fichero.Close();
}

static void Main(string[] args)


{

LeerDeFichero();
do
{
MostrarMenu();
switch (LeerOpcion())
{
case "1": NuevoDato(); break;
case "2": BuscarDatos(); break;
case "0": // Salir de la aplicación
Console.WriteLine();
Console.WriteLine("Saliendo...");
Console.WriteLine();
terminado = true;
break;
default:
Console.WriteLine();
Console.WriteLine("Opción incorrecta!");
Console.WriteLine();
break;
}
} while (!terminado);

}
}
}
PUBLIC y PRIVATE forman parte de un conjunto de modificadores de visibilidad, los
cuales se pueden aplicar a variables y métodos de una clase.
Cuando una variable ó método va precedido de PUBLIC se puede llamar desde fuera de
la clase a la que pertenece. Cuando es PRIVATE la variable ó método solo se puede
llamar desde dentro de la clase, es decir, se puede usar en cualquier lugar dentro de la
definición de la clase, pero no se puede llamar externamente.
Un objeto encapsula información y las variables sólo se deben cambiar a través de un
método propio del objeto.
Los constructores son métodos de clase que se ejecutan cuando se crea un objeto de un
tipo determinado, en CSharp tienen el mismo nombre que la clase y, normalmente,
inicializan los miembros de datos del nuevo objeto (MSDN, 2013 i).
Retomando el ejemplo del inicio de la unidad, si se tiene una clase llamada Libro su
constructor será un método también llamado Libro.
Un constructor que no toma ningún parámetro se denomina constructor predeterminado y
si no se escribe uno, el compilador define uno con esas características (sin ningún
parámetro).
Cuando se utiliza la instrucción new se está invocando al constructor de la clase.
Los destructores se utilizan para destruir instancias de clases. Como dice el libro de
Microsoft, C# Language Specification (2010): “es posible comparar un destructor como lo
opuesto a un constructor” (p. 484). Un destructor en programación orientada a objetos es
una función miembro especial que es invocada automáticamente cuando el objeto se deja
de referenciar (termina de ejecutarse).
Según MSDN (2013 g), la sobrecarga consiste en crear más de un método en una clase
con el mismo nombre y distintos tipos de argumentos. Esto es muy práctico, pues no
tienes que renombrar cada función según el tipo de valor que acepta.
Como puede observarse en el programa principal Main, el uso de los constructores y
métodos sobrecargados puede ser de manera libre de acuerdo a ciertas necesidades. El
compilador C# .NET sabrá cuál utilizar de acuerdo al tipo de parámetros (para fines
prácticos de esta asignatura, compilador de C Sharp, C#, Visual CSharp, C# .NET o
CSharp .NET son sinónimos).

REFERENCIAS
Ceballos, Fco. Javier. (2008). Microsoft C# - Curso De Programación. España: Editorial
Alfaomega, Ra-MA.

Harvey M. Deitel, Paul J. Deitel. (2007). Cómo programar en CSharp. 2da. Edición
España: Editorial Pearson.

Scott J. Dorman. (2012). C# 5.0 y Visual C#. 1era. edición. España: Editorial Anaya
Multimedia.

También podría gustarte