Programación del control de impresión
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;} p>
}//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} p>
}
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!