Red de conocimiento informático - Aprendizaje de código fuente - Programación del control de impresión

Programación del control de impresión

Primero, resuma los productos. Cada producto tiene su tasa impositiva, precio unitario y nombre de producto:

Ventas de clase abstracta pública

{

Nombre de cadena abstracta pública; //Definido como nombre abstracto

Cadena abstracta pública Nombre de unidad//Definir cuantificador

Bool virtual público IsJK //¿Se importa?

{

get { return false}

}

private int _ Count//definido como un número privado

public int Count

{

get { return _ Count}

set{_Count = Math. Max(1, value);}//Los valores menores a 1 se consideran 1.

}//Atributos de datos del producto

Doble privado _ Momey

Doble moneda pública

{

obtener { return _ Money}

set { if(value <=0) throw newException ("El precio unitario ingresado es incorrecto");

_Money = value;}

}//Ingrese el precio unitario del libro.

//Mostrar información del mensaje

Indicación de cadena pública()

{

Devuelve esto. Count.ToString()+esto. ¿Es JK? " Import ":"+this.UnitName+this.name+":";

}

Doble base impositiva virtual protegida

{

obtener {retorno 0.1;}

}

Doble impuesto privado a la exportación de Beijing

{

obtener {retorno 0.05}

}

GetTotalTax doble público

{

Devolución (This. Impuesto básico + This. IsJK? This. Jingkou: 0) * _Money ;

}

}Luego la herencia de bienes:

Libros de clases públicas: ventas

{

Sello público reescribir nombre de cadena

{

Obtener {return "book";}

}//Implementar nombre del producto

Sello público reescribir la cadena UnitName

{

get { return "Ben";}

}//Implementar el cuantificador

//Anulación pública bool IsJK

//{

//get { return true;}

//}

////Si el el producto se importa; de lo contrario, no es necesario volver a escribir

Impuesto básico doble alternativo protegido

{

obtener {retorno

. >}

//Si el tipo de impuesto actual está exento o la tasa impositiva es diferente, puede definirlo aquí

Public Book()

This. count = 1; //El número predeterminado es 1

}

}

//Otros Abreviatura del producto:

//Lo siguiente se puede llamar directamente en la consola

Static trunk()

{

Sales b = new book. );

//b . Count = 1; Si necesita cambiar el recuento, ingrese

Console. p>

b. Dinero = Conversión. ToDouble(Console.ReadLine());

//Asigna el valor leído al producto como precio unitario. torre.

Write("Precio total: {0}, Impuesto sobre las ventas: {1}", b.count * b.money, b.gettotaltax()*b.count);

Console. read();

}Esto es para ingresar un solo producto y luego la llamada es exitosa;

Si varios productos pueden usar la estructura de pedido, si no desea usar el pedido, entonces la siguiente llamada también es factible:

static trunk()

{

List<Sales>Sales=new List<Sales>();//Es equivalente a Un pedido es un lote de mercancías.

Ventas a = nuevo libro();

//a . Puedes ingresar la cantidad.

Consola. Escribir (a. Aviso);

a. Dinero = Conversión. ToDouble(Console.ReadLine());

Ventas. Add(a);

Ventas b = new disk(); // Según la definición del libro, define el producto del disco.

//b . Conteo = 1;

Consola. Escribir(b.prompt);

b.money=conversión. ToDouble(Console.ReadLine());

Ventas. Add(b);

//Omitir todos los productos agregados anteriormente.

Doble total, TotalTax

foreach(artículo de venta en ventas)

{

Total += artículo. Cuente * elementos. dinero;

TotalTax += proyecto. GetTotalTax();

Consol. WriteLine("{ 0 } { 1 }", artículo. propina, artículo. recuento * artículo. dinero

}

Consola. WriteLine("Precio total del producto: {0}, impuesto sobre las ventas: {1} ", total, impuesto total);

Consola. read();

}¡Esto coincide completamente con tu entrada!