[ Foro de C# ]

Programar sin base de datos

08-Oct-2015 19:16
Invitado (Luis Carmona)
1 Respuestas

Buenas tardes quisiera que me ayudaran con un programita, estoy aprendiendo pero me dejaron algo muy avanzado, he hecho lo basico les dejo el codigo en la parte de abajo, si me pueden ayudar lo agradeceria

Se requiere un programa que gestione los proveedores de un almacén. Los datos requeridos así como sus restricciones son los siguientes:
Dato
Restricciones
Nombre del proveedor.
? No más de 100 caracteres. (2.5 pts.)
? El nombre no puede estar vacío. (2.5 pts.)
? El nombre no se puede repetir con el de otro proveedor. (2.5 pts.)
RFC
? No más de 25 caracteres. (2.5 pts.)
? El RFC no puede estar vacío. (2.5 pts.)
? El RFC no se puede repetir con el de otro proveedor. (2.5 pts.)
Dirección física
? No más de 100 caracteres. (2.5 pts.)
? La dirección no puede estar vacía. (2.5 pts.)
Teléfono
? No más de 20 caracteres. (2.5 pts.)
? El teléfono no puede estar vacío. (2.5 pts.)
? El teléfono no se puede repetir con el de otro proveedor. (2.5 pts.)
? Solo se aceptan números. (2.5 pts.)
Correo electrónico
? No más de 30 caracteres. (2.5 pts.)
? El correo electrónico no puede estar vacío. (2.5 pts.)
? El correo electrónico no se puede repetir con el de otro proveedor. (2.5 pts.)
? Si tiene un @ el correo es válido, de lo contrario no se aceptará. (2.5 pts.)
Las operaciones a realizar, son los siguientes:
Registrar proveedor (10 pts.)
Recibe los datos de un proveedor y lo almacena en el programa.
Buscar proveedor (10 pts.)
Recibe todo o parte del nombre de un proveedor y devuelve todas las coincidencias de ese nombre en forma de lista (ID + Nombre).
Consultar proveedor (10 pts.)
Recibe el ID de un proveedor y devuelve todos los datos del proveedor.
Actualizar proveedor (10 pts.)
Recibe el ID de un proveedor y actualiza todos o algunos de los datos del proveedor.
Eliminar proveedor (10 pts.)
Recibe el ID de un proveedor y lo elimina del programa.
Ver todos los proveedores (10 pts.)
Se listan todos los nombres de los proveedores en forma de lista (ID + Nombre).
Requerimientos
? Todos los datos son guardados en memoria.
? Se deberá modelar una clase Proveedor con sus atributos y métodos correspondientes.
? Las operaciones se listarán en un menú con una opción de salir, mientras no se escoja esta opción, el
programa no terminará.
? El programa debe empezar con tres proveedores almacenados previamente.
? Cada vez que se ingresa un dato del proveedor se deberán aplicar todas las validaciones
correspondientes, si el dato no las cumple, se mostrará el mensaje pertinente, de lo contrario el
programa continuará pidiendo información hasta que terminé.
? Los atributos de la clase deberán estar encapsulados para que puedan ser validados.
? Cada proveedor tiene un ID único.



CODIGO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           List<Proveedor> ListaProveedores = new List<Proveedor>();
           Proveedor P = new Proveedor();

           int Option = 0;

           do
           {
               Console.Clear();

               Console.WriteLine("1) Registrar Proovedor");
               Console.WriteLine("2) Buscar Proveedor");
               Console.WriteLine("3) Consultar Proveedor");
               Console.WriteLine("4) Actualizar Proveedor");
               Console.WriteLine("5) Eliminar Proveedor");
               Console.WriteLine("6) Salir");
               Option = int.Parse(Console.ReadLine());

               switch (Option)
               {
                   case 1:

                       Console.WriteLine("Ingresa nombre: ");
                       P.Nombre = Console.ReadLine();

                       Console.WriteLine("Ingresa RFC: ");
                       P.RFC = Console.ReadLine();

                       Console.WriteLine("Ingresa Direccion: ");
                       P.Direccion = Console.ReadLine();

                       Console.WriteLine("Ingresa Telefono: ");
                       P.Telefono = Console.ReadLine();

                       Console.WriteLine("Ingresa Correo Electronico: ");
                       P.Correo = Console.ReadLine();

                       P.RegistrarProveedor(P, ListaProveedores);
                       Console.ReadLine();

                       break;

                   case 2:

                       P.ListarProveedores(ListaProveedores);
                       Console.ReadLine();

                       break;

                   case 3:

                       break;

                   case 4:

                       break;

                   case 5:

                       break;

                   case 6:

                       break;
               }

           } while (Option != 6);
       }
   }

   public class Proveedor
   {
       public string Nombre { get; set; }
       public string RFC { get; set; }
       public string Direccion { get; set; }
       public string Telefono { get; set; }
       public string Correo { get; set; }

       public void RegistrarProveedor(Proveedor P, List<Proveedor> ListaProveedores)
       {
           ListaProveedores.Add(P);
       }

       public void ListarProveedores(List<Proveedor> ListaProveedores)
       {
           foreach (Proveedor P in ListaProveedores)
           {
               Console.WriteLine("Nombre: {0}", P.Nombre);
               Console.WriteLine("RFC: {0}", P.RFC);
               Console.WriteLine("Direccion: {0}", P.Direccion);
               Console.WriteLine("Telefono: {0}", P.Telefono);
               Console.WriteLine("Correo Electronico: {0}", P.Correo);
           }
       }
   }
}


09-Oct-2015 12:24
Nacho Cabanes (+31)

Será más fácil ayudarte si formulas preguntas concretas, en vez de esperar que alguien haga todo el trabajo por ti. Por ejemplo, una pregunta razonable sería "¿cómo consigo que el ID del proveedor sea único?" y así te podremos ir guiando hacia la solución.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)