PDA

Ver la Versión Completa : Mejorar código.


REHome
07-08-2007, 21:37:55
Este código funciona.

Sólo hace que te averigue la letra del DNI de ESPAÑA.

¿Alguien cree que se puede mejorar el código más pequeño?

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

namespace DNI
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, char> Letras = new Dictionary<int, char>();

Letras.Add(0, 'T'); Letras.Add(12, 'N');

Letras.Add(1, 'R'); Letras.Add(13, 'J');

Letras.Add(2, 'W'); Letras.Add(14, 'Z');

Letras.Add(3, 'A'); Letras.Add(15, 'S');

Letras.Add(4, 'G'); Letras.Add(16, 'Q');

Letras.Add(5, 'M'); Letras.Add(17, 'V');

Letras.Add(6, 'Y'); Letras.Add(18, 'H');

Letras.Add(7, 'F'); Letras.Add(19, 'L');

Letras.Add(8, 'P'); Letras.Add(20, 'C');

Letras.Add(9, 'D'); Letras.Add(21, 'K');

Letras.Add(10, 'X'); Letras.Add(22, 'E');

Letras.Add(11, 'B');



Console.Write("Introduce nº DNI: ");

string snumber = Console.ReadLine();

int inumber = -1;
try
{
if ((snumber.Length != 8) || (!Int32.TryParse(snumber, out inumber)))
{

throw new ArgumentException("No válido.");

}

else
{

inumber = inumber % 23;

Console.WriteLine("Letra: {0}", Letras[inumber]);

}
}
catch (ArgumentException) // Argumento no válido, no poner letras.
{
Console.WriteLine("\n");
Console.WriteLine("¡Error! - Sólo debes introducir números de 8 dígitos.");
}

Console.ReadKey();
}
}
}