Red de conocimiento informático - Material del sitio web - Programación Yiyiyuan

Programación Yiyiyuan

Utilice el sistema;

Utilice el sistema. recolectar. Genérico;

Uso del sistema. Linq

Usa el sistema. Texto;

Usa el sistema. hilo. Tarea;

Aplicación de consola de espacio de nombres1

{

Imprimir categoría

{

Constante int ZS = 0; /p>

const int XS = 1;

Public static void Main(string[] args)

{?

Imprimir Imprimir = nuevo Imprimir ();

String strWord

while(true)

{

string strNum = consola. ReadLine();

strWord = imprimir. imprimir palabra(strNum);

Consola. WriteLine(strWord);

}

}

///& lt;Resumen>

///Imprimir

///& lt;/summary & gt;

///& lt;nombre del parámetro = " num " & gt& lt/param & gt;

// /& lt; devuelve & gt& lt/returns & gt;

Cadena privada PrintWord (número de cadena)

{

Xian Zhengshu

Cadena de cadena Xiao Shu;

Carácter de cadena;

Cadena de palabra pequeña;

Cambiar (número dividido ('. ').longitud)

{

Caso 0:

Devuelve "Error desconocido";

Caso 1:

Tío Zheng = num. Split('.')[0];

Xiao Shu = " ";

Break;

Caso 2:

Tío Zheng = núm. Split('.')[0];

Xiao Shu = número. Split('.')[1];

Break;

Valor predeterminado:

Devuelve "El formato del número ingresado es incorrecto";

}

Palabra Zheng = PrintZS(Zheng Shu);

xiaoWord = PrintXS(Xiao Shu);

return (zhengWord== " " ? "Cero": caracteres normales) + "redondo" + caracteres pequeños + "completo"

}

///<Resumen>

/ // Imprimir la parte entera

///& lt;/summary & gt;

///& lt; param name = " zs " & gt& lt/param & gt; /p>

///& lt; devuelve & gt& lt/returns & gt;

Cadena privada PrintZS (Cadena ZS)

{

//El máximo es cientos de miles de millones.

if (zs.length>12)

devuelve "parte entera demasiado larga";

list<string>str=new list<chars String>();

StringBuilder strbZS = new StringBuilder();

if (zs. length>= 4)

{

Hacer

{

Estrecho. complemento(zs. substring(zs. longitud - 4, 4));

zs = zs. subcadena(0,zs.

longitud-4);

}mientras (zs.length>4);

}

if (zs.length!=0)

{

Estrecho. add(zs);

}

int contar todos = 0;

for(int i= str. count-1; i>=0; i- )

{

int print count = 0

for(int j = 0; j & ltstr[i]. length; j++)

{ ?

if(str[i][j]!='0')

{

strbZS. append(print num(str[I][j]);

strbZS.Append(PrintChildUnit(str[i]).Length-j,ZS));

imprimir recuento++ ;

}

Otro

{

if (i== recuento de cadenas - 1)

{

if (j! = 0)

{

int recuento = 0;

for(int k = 0; k & ltj;k++)

{

if (str[i][k] == '0 ')

{

count++;

}

}

if (count!= j & amp& ampj!= str[i]. Longitud-1 &&str[ i] [j + 1]! = '0')

{

strbZS. append(imprimir número(cadena[I][j]);

imprimir recuento++;

}

}

}else

{

if (countAll!= 0 & amp& ampj!= str[i]. Longitud-1 & amp;& ampstr[i][j + 1]!= '0 ')

{

strbZS. append(print num(str[I][j]);

imprimir recuento++;

}

} ?

}

}

if (printCount!= 0)

{

strbZS.append(unidad de impresión(I+1));

contar todo++;

}

}

Return strbZS.ToString();

}

///<Summary>

///Imprimir la parte decimal

///</summary>

///<param name = "xs"></param>

/// & lt;returns & gt& lt/returns & gt;

Cadena privada PrintXS (String XS)

{

//La representación mínima es mili

If (xs.length>4 )

Devuelve "Parte fraccionaria demasiado larga";

StringBuilder str bxs = new StringBuilder();

for(int I = 0; i & ltxs. longitud; i++)

{

strbXS.

append(imprimir num(xs[I]);

strbXS.append(imprimir unidad secundaria(I+1,XS));

}

Regresar strbXS.

ToString();

}

///& lt;Resumen>

///Imprimir números

/// < /summary >

///<param name = " charNum " ></param>

///<returns & gt& lt/returns & gt;

Cadena privada PrintNum(char charNum)

{

Cambiar (char)

{

Caso "0": devolver "cero";?

Caso '1': devuelve "uno";

Caso '2': devuelve "er"

Caso "3": devuelve "tres"; ;

Caso "4": devuelve "si";

Ejemplo 5: devuelve "Wu"

Caso '6': devuelve "tierra";

Caso '7': devuelve "qi";

Caso '8': devuelve "ocho"

Caso '9': devuelve "nueve"; ;

Valor predeterminado: devolver "";

}

}

///<Resumen>

///Imprimir subunidad

///& lt;/summary & gt;

///& lt; nombre del parámetro = " recuento " & gt& lt /param>

///<param name = "categoría"></param>

///<returns & gt</ returns & gt;

Cadena privada unidad principal(int count, int categoría)

{

//Parte entera

If (Categoría == ZS)

{

Cambiar(cuenta)

{

Caso 1: Devuelve "";

Caso 2: Devuelve "Diez"

Caso 3: Devuelve "Cien";

Caso 4: Devuelve "Mil"

Valor predeterminado: Devuelve ""; /p>

}

//Parte decimal

Otros

{

Cambiar (recuento)

{

Caso 4: Devuelve "milli";

Caso 3: Devuelve "Li";

Caso 2: Devuelve "minuto"

Caso 1: Devuelve "ángulo";

Valor predeterminado: devuelve "";

}

}

}

///<Resumen>

///Unidades de impresión

///</summary>

// /<param name = "count"></param>

///< ;returns & gt& lt/returns & gt;

Unidad de impresión de cadenas privadas (entero)

{

Cambiar (recuento)

{

Caso 1: devolver ""

Caso 2: devolver "diez mil";

Caso 3: devuelve "mil millones";

p>

Caso 4: Devuelve "billones";

Valor predeterminado: Devuelve "";

}

}

}

}