C#预算计算器问题与起始资金

时间:2015-03-05 14:38:52

标签: c#

所以这是我的预算计算器。 它计算我可以用存款赚取多少(每年%),我可以增加金钱(收入)并可以减少金钱(减少)。

在我的代码中,您必须手动指出起始金额的大小。 我需要的是例如在开始时我告诉我的程序,启动资金是500欧元。当我使用存款时,它变成例如570,50。当我使用收益时,我需要它从570,50开始,但在我的计划中它总是会再次询问,你的起始资本是多少。我需要以某种方式自动完成。对不起,我的英文不好,这是完整的代码:)

class Program
{
    static void Main(string[] args)
    {
        int menu;
        do
        {
            Console.WriteLine("1 - '%'");
            Console.WriteLine("2 - '+'");
            Console.WriteLine("3 - '-'");
            Console.WriteLine("0 - iziet");

            Console.Write("Menu: ");
            menu = Convert.ToInt32(Console.ReadLine());
            if (menu > 0 && menu < 4)
            {
                switch (menu)
                {
                    case 1:
                        {
                            Console.Write("Noguldamā naudas summu: ");
                            int a = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Procentu likme (0 - 100): ");
                            int b = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Laiks (gadi): ");
                            int c = Convert.ToInt32(Console.ReadLine());
                            double d = Procenti(a, b, c);
                            Console.WriteLine("\nNaudas summa pēc {0} gadiem būs {1}\n", c, d);
                        }
                        break;
                    case 2:
                        {
                            Console.Write("Sakuma nauda: ");
                            int a = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Cik nopelnijat: ");
                            int b = Convert.ToInt32(Console.ReadLine());
                            double d = Pluss(a, b);
                            Console.WriteLine("Tagadejais budzhets ir: {0} euro", d);
                        }
                        break;
                    case 3:
                        {
                            Console.Write("Sakuma nauda: ");
                            double a = Convert.ToDouble(Console.ReadLine());
                            Console.Write("Cik izterejat: ");
                            double b = Convert.ToDouble(Console.ReadLine());

                            double d = Minuss(a, b);
                            Console.WriteLine("Tagadejais budzhets ir: {0} euro", d);
                        }
                        break;
                }
            }
            else
            {
                Console.WriteLine();
                Console.WriteLine("Ludzu ievadiet ciparus 0,1,2,3 - parejie cipari ir arpus robezham!");
                Console.WriteLine();
            }
        } while (menu != 0);
    }




    //FUNKCIJASSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    static double Procenti(double a, double b, int c)
    {
        for (int i = 0; i < c; i++)
        {
            a = (a * (b / 100) + a);
        }
        return a;
    }
    static double Pluss(double a, double b)
    {
        return a + b;
    }
    static double Minuss(double a, double b)
    {

        return a - b;
    }
}

2 个答案:

答案 0 :(得分:0)

您需要将值存储在变量中。 在开始交易之前,您要求用户输入值:

int menu;
float stored_money;
Console.Write("Enter the Initial Value: ");
stored_money = Convert.ToInt32(Console.ReadLine());
do
{

并在函数中使用此变量

static double Pluss(double b)
{
    stored_money = stored_money + b;
    return stored_money;
}
static double Minuss(double b)
{
    stored_money = stored_money - b;
    return stored_money;
}

答案 1 :(得分:0)

好吧,基本上你看起来需要在代码中的某处保存余额,因为现在你在每个菜单点从控制台输入它。

类似的东西(注意我省略了大部分代码):

int menu;
decimal amount;

do
{
   .... //your code
    case 1:
    {
        Console.Write("Noguldamā naudas summu: ");
        amount = Convert.ToDecimal(Console.ReadLine());
       .... //your code
        decimal d = Procenti(a, b, c);
        amount += d;
    }
   case 2:
   {      
       Console.Write("Cik nopelnijat: ");
       decimal b = Convert.ToInt32(Console.ReadLine());
       amount = Pluss(amount, b);
       Console.WriteLine("Tagadejais budzhets ir: {0} euro", amount);
   }
    .... //your code
} while (menu != 0);

以后在所有情况下都不应输入金额,而是使用该保存的值并根据菜单点任务进行修改。

或许你甚至应该引入新的菜单点来设置初始量而不要在第1点输入(如果点1可以被多次调用) - 这取决于你的计算器逻辑,这取决于你。

注意 - 最好使用decimal而不是intdouble进行财务计算,因为它旨在存储完全可能的精确度。