-1

根据我们前辈的要求,我们被要求创建一个应用程序,用户可以在其中输入并获取他/她的储蓄信息的详细信息......

它工作得很好,除了当我按下 Enter 键时,我得到一个异常并且我的程序崩溃了。

请向我提供信息,以便在我的控制台应用程序中,即使我按 Enter 键,我也不会收到异常,而是返回程序。

非常感谢,非常感谢帮助。

这是我的程序。

using System;

using System.Collections.Generic;

using System.Text;



namespace bankprob {



    class sav_acc

    {

        public float amount;

        public sav_acc(float amount)
        {

            this.amount = amount;

        }

        public void getdeposit(float depos)
        {

            amount += depos;

        }

        public void display()
        {

            Console.WriteLine("Balance of Customer :{0} ", amount);

        }


        public void withdrawl(float amt)
        {

            amount =amount - amt;

        }

        public void minbal()
        {

            if (amount < 1000)
            {

                Console.WriteLine("You cannot withdraw beyond the minimum balance of rupees 1000. ");
                return;
            }

        }

    }

    class cur_acc 
    {

        public float amount = 0;

        public cur_acc( float amount)


        {

            this.amount = amount;

        }

        public void getdeposit(float depos)
        {

            amount += depos;

        }

        public void display()
        {

            Console.WriteLine("Balance of Customer : {0}", amount);

        }


        public void withdrawl(float amt)
        {

            amount = amount - amt;

        }

        public void minbal()
        {

            if (amount < 1000)
            {

                Console.WriteLine(" Your balance is less than 1000, and u cannot make any withdrawals");

            }

            else

                Console.WriteLine("Balance is greater than Rs 1000 no need to panality");

        }

    }

    class Program
    {

        public static void Main(string[] args)
        {
            Console.WriteLine("Welcome Mr.Sayeed");
            Console.WriteLine("Please select the type of account.\n1.Savings 2.Current 3.Exit");

            int ch; 
            ch = int.Parse(Console.ReadLine()); 
            switch (ch)
            {

                case 1:

                    Console.WriteLine("Enter Initail Amount : ");

                    float amt = int.Parse(Console.ReadLine());

                    sav_acc s = new sav_acc(amt);

                    Console.WriteLine("Enter deposit money : ");

                    float depos = float.Parse(Console.ReadLine());

                    s.getdeposit(depos);

                    s.display();

                    Console.WriteLine("Enter withdrawl Amount");

                    float wamt = float.Parse(Console.ReadLine());

                    s.withdrawl(wamt);

                    s.display();

                    s.minbal();

                    s.display();

                    break;

                case 2:

                    Console.WriteLine("Enter Initail Amount : ");

                    float am = int.Parse(Console.ReadLine());

                    cur_acc c = new cur_acc(am);

                    Console.WriteLine("Enter deposit money : ");

                    float depo = float.Parse(Console.ReadLine());

                    c.getdeposit(depo);

                    c.display();


                    Console.WriteLine("Enter withdrawl Amount");

                    float wam = float.Parse(Console.ReadLine());

                    c.withdrawl(wam);

                    c.display();

                    c.minbal();

                    c.display();

                    break;
                case 3:
                    Console.WriteLine("Thank you for Using this applicaton");
                    return;

                default:
                    Console.WriteLine("You have made a wrong choice, Thank you...");
                    return;

            }

        }

    }

}
4

1 回答 1

4

int.Parse(Console.ReadLine())要求您输入一个有效的整数。如果只按回车而不输入值,该方法将抛出异常。改为使用int.TryParse

int ch = 0; 
int.TryParse(Console.ReadLine(), ch); 
switch (ch) {
    ...
}
于 2012-04-14T11:44:45.313 回答