当用户写入-1时,程序会跳过用户输入结果的打印

时间:2014-06-05 19:11:16

标签: c# console

您好我正在为学校作业编写一个程序,用于将输入信息存储在数组中。当用户写入-1时,程序应转到打印部分并打印出输入结果。它是一个基本的,输入销售ID nr,输入产品nr并输入销售产品的数量。

我的问题是,当程序获得-1命令时,它只是发送并跳过整个打印部分,我是一个非常新的编程,所以这很可能是一个简单的修复。

这是代码 它是用c#

编写的microsoft visual中的控制台应用程序

在这里输入代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _8._20TotalSales2
{
    class Sales
    {
        static void Main(string[] args)
        {

            decimal[,] sales = new decimal[5, 3];


            Console.WriteLine(" Enter sales staff saleID (1-3) : ");
            Console.WriteLine(" Enter -1 to finish");
            int staff = Convert.ToInt32(Console.ReadLine());


            while (staff != -1)
            {
                Console.WriteLine("Enter product number (1-5) : ");
                int productID = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Enter sales amount of product:");
                decimal amount = Convert.ToDecimal(Console.ReadLine());


                if (staff >= 1 && staff < 4 && productID >= 1 && productID < 6 && amount >= 0)
                    sales[productID - 1, staff - 1] += amount;
                else
                    Console.WriteLine("Invalid input!");

                Console.WriteLine(" Enter sales staff ID (1-3) : ");
                staff = Convert.ToInt32(Console.ReadLine());


            }
            decimal[] salesStaffTotal = new decimal[ 4 ];

            Console.WriteLine("\n {0,10}{1,16}{2,16}{3,16}{4,12}",
                "Product sales", "Sales staff 1", "Sales staff 2", "Sales staff 3", "Total Sales");

            for (int row = 0; row < 5; row++)
            {

                decimal productTotal = 0M;
                Console.WriteLine("{0,10}", (row + 1));

                for (int column = 0; column < 3; column++)
                {
                    Console.WriteLine("{0,16:C}", sales[row, column]);
                    productTotal += sales[row, column];
                }
                Console.WriteLine("{0,12:C}", "Total Product Sales");
            }
            Console.WriteLine("{0,10}", "Total");

            for (int column = 0; column < 3; column++)
                Console.WriteLine("{0,16:C}", salesStaffTotal[column]);

            Console.WriteLine();

        }
    }
}

1 个答案:

答案 0 :(得分:0)

它正在按预期执行,但控制台窗口正在关闭,然后才能看到它。

有两种方法可以解决这个问题。

首先,打开控制台窗口并从命令行运行程序。

其次,如果您希望能够在不打开控制台窗口的情况下运行它,请将Console.ReadLine();放在最后Console.WriteLine()之后,以便程序在终止和关闭之前等待返回键按下窗口。