Дана цена товара в долларах с НДС; посчитать эту цену в рублях без НДС - C#
Формулировка задачи:
Добра вам, уважаемые господа-программисты и не только! Пытаюсь решить задачку на денежные единицы, и тут я поняла, что мне не быть финансистом.. И никак не могу решить её, помогите пожалуйста
Максимум, это мои мысли насчёт решения задачки..
Лучше всего было бы, если реализовать класс (а не использовать стандартный для работы с денежными единицами)
Пыталась сделать так:
объявила два поля (один для рублей или долларов, второй для копеек или центов)
но методы работают с одним числом, представляющая всю денежную сумму в копейках или центах.
Вроде бы понимаю решение, но реализовать не могу..
вот так я вижу алгоритм решения задачи
вот сам текст задачи
естественно выписывать клиенту счет-фактуру не надо, достаточно вывести полученные значения, например в консоль
заранее спасибки, очень надеюсь на вашу помощь
//это начальные установки Заказ заказ = новый Заказ(); заказ->цена_товара_с_НДС = курс (руб, коп, валюта = рубль) заказ->количество_товара = курс(руб, коп, валюта = рубль) заказ->курс_доллара = курс(руб, коп, валюта = рубль) заказ->НДС = НДС(стоимость Товара) //результат заказ->цена_товара_без_НДС(валюта = рубль); заказ->сумма_НДС(валюта = рубль); заказ->сумма_заказа_с_НДС(валюта = рубль);
Клиент заказал товар. Из заказа известно:
• цена товара в долларах (прайс) с НДС*;
• количество товара;
• текущий курс доллара;
• НДС;
Необходимо выписать клиенту счет-фактуру, для этого необходимо посчитать:
• цену товара в рублях без НДС;
• сумму НДС;
• сумму заказа в рублях с НДС.
* НДС – налог на добавленную стоимость = 18% от цены товара без НДС.
** Все вычисления с точностью до копеек
Решение задачи: «Дана цена товара в долларах с НДС; посчитать эту цену в рублях без НДС»
textual
Листинг программы
using System;
namespace Factura
{
internal class Product
{
public float PriceDollar { get; set; }
public int CountGoods { get; set; }
public float DollarRate { get; set; }
public float NDS { get; set; }
public float CountNDS()
{
return ((GetPriceInRub()*NDS)/100);
}
public float PriceWithOutNDS()
{
return (GetPriceInRub() - CountNDS());
}
public float GetPriceInRub()
{
return PriceDollar*DollarRate;
}
public float NDSWithValueAdded()
{
return ((PriceWithOutNDS()*18)/100);
}
}
class Program
{
static void Main()
{
try
{
Product product=new Product();
Console.Write("Введите цену в долларах с НДС:");
String priceString = Console.ReadLine();
if (priceString != null) product.PriceDollar=float.Parse(priceString);
Console.Write("Введите количества товара:");
String countString = Console.ReadLine();
if (countString != null) product.CountGoods = Int32.Parse(countString);
Console.Write("Введите текущий курс доллара:");
String rateString = Console.ReadLine();
if (rateString != null) product.DollarRate = float.Parse(rateString);
Console.Write("Введите НДС:");
String ndsString = Console.ReadLine();
if (ndsString != null) product.NDS = float.Parse(ndsString);
if (product.PriceDollar > 100) throw new Exception();
Console.WriteLine("\r\nСчет фактура:");
Console.WriteLine("Цена на товар без НДС -\t\t\t\t{0} р.", product.PriceWithOutNDS());
Console.WriteLine("Сумма НДС -\t\t\t\t\t{0} р.", product.CountNDS());
Console.WriteLine("Сумма заказа в рублях с НДС -\t\t\t{0} р.", product.GetPriceInRub());
Console.WriteLine("Налог на добавленную стоимость -\t\t{0} р.", product.NDSWithValueAdded());
}
catch (Exception)
{
Console.Clear();
Console.WriteLine("Ошибка!");
}
Console.WriteLine("Для выхода из программы нажмите Enter.");
Console.ReadLine();
}
}
}