C# 我的“为什么?”;计算;不管用吗?

C# 我的“为什么?”;计算;不管用吗?,c#,C#,我需要创建一个简单的c#应用程序来添加一些季度数据。我使用数组“存储”数据,然后将其放在文本框中 无论如何,我的计算部分有一些问题。我已经在它周围贴上了评论标签,所以你们可以很容易地找到它。该区域可以工作,但需要单击两次,然后将其添加到上面的行中。我已经看了大约一个小时的同几行了,但似乎无法理解这一行。有什么想法吗 //Global int lastIndexUsed = -1; int[,] quarters = new int[10, 5]; string[]

我需要创建一个简单的c#应用程序来添加一些季度数据。我使用数组“存储”数据,然后将其放在文本框中

无论如何,我的计算部分有一些问题。我已经在它周围贴上了评论标签,所以你们可以很容易地找到它。该区域可以工作,但需要单击两次,然后将其添加到上面的行中。我已经看了大约一个小时的同几行了,但似乎无法理解这一行。有什么想法吗

    //Global
    int lastIndexUsed = -1;
    int[,] quarters = new int[10, 5];
    string[] Branch = new string[10];

    public FrmSales()
    {
        InitializeComponent();
    }

    private void txtBranch_TextChanged(object sender, EventArgs e)
    {

    }

    private void btnCalc_Click(object sender, EventArgs e)
    {
        int Q1;
        int Q2;
        int Q3;
        int Q4;


        Q1 = int.Parse(txtQ1.Text);
        Q2 = int.Parse(txtQ2.Text);
        Q3 = int.Parse(txtQ3.Text);
        Q4 = int.Parse(txtQ4.Text);

        lastIndexUsed = lastIndexUsed + 1;
        quarters[lastIndexUsed, 0] = Q1;
        quarters[lastIndexUsed, 1] = Q2;
        quarters[lastIndexUsed, 2] = Q3;
        quarters[lastIndexUsed, 3] = Q4;
        Branch[lastIndexUsed] = txtBranch.Text;








        //Display Results

        int ctr;
        int ctr2;
        string outLine;
        string tempName;

        int row;
        int col;
        int accum;


        txtInfo.Text = "";

        outLine =           "  Branch       Q1         Q2         Q3         Q4       Total   " + "\r\n";
        outLine = outLine + "========== ========== ========== ========== ========== ==========" + "\r\n";

        txtInfo.Text = outLine;


        for (ctr = 0; ctr <= lastIndexUsed; ctr++)
        {

            outLine = "";

            tempName = Branch[ctr].PadLeft(10);
            outLine = outLine + tempName + " ";

            for (ctr2 = 0; ctr2 <= 4; ctr2 = ctr2 + 1)

            {


                outLine = outLine + quarters[ctr, ctr2].ToString().PadLeft(10) + " ";

            }

            txtInfo.Text = txtInfo.Text + outLine + "\r\n";


        }

        //Calculate ###########################################################

        for (row = 0; row <= lastIndexUsed; row++)
        {

            accum = 0;


            for (col = 0; col <= 3; col++ )
            {

                accum = accum + quarters[row, col];

            }
            quarters[row, 4] = accum;
        }




        //End Calculate #########################################################

    }

    private void btnClear_Click(object sender, EventArgs e)
    {
        txtBranch.Text = "";
        txtQ1.Text = "";
        txtQ2.Text = "";
        txtQ3.Text = "";
        txtQ4.Text = "";
        txtInfo.Text = "";

    }

    private void btnExit_Click(object sender, EventArgs e)
    {
        Close();
    }
//全局
int lastinexused=-1;
整数[,]季度=新整数[10,5];
字符串[]分支=新字符串[10];
公共财务报表()
{
初始化组件();
}
私有void txtBranch_TextChanged(对象发送方,事件参数e)
{
}
私有无效btnCalc_单击(对象发送方,事件参数e)
{
int Q1;
int Q2;
int Q3;
int Q4;
Q1=int.Parse(txtQ1.Text);
Q2=int.Parse(txtQ2.Text);
Q3=int.Parse(txtQ3.Text);
Q4=int.Parse(txtQ4.Text);
lastIndexUsed=lastIndexUsed+1;
季度[LastIndexued,0]=Q1;
季度[LastIndexued,1]=Q2;
季度[LastIndexued,2]=Q3;
季度[上次指数化,3]=第四季度;
Branch[lastIndexUsed]=txtBranch.Text;
//显示结果
国际中心;
int ctr2;
弦轮廓;
字符串tempName;
int行;
int col;
累积积分;
txtInfo.Text=“”;
outLine=“分行第一季度第二季度第三季度第四季度总计”+“\r\n”;
大纲=大纲+“===================================================================================================================“+”\r\n”;
Text=大纲;

对于(ctr=0;ctr而言,问题很简单:在实际计算其值之前使用
Quarter
数组。将“calculate”循环移动到第一个循环的上方

此外(除其他事项外):

  • 太多的空行和空白;使其难以阅读
  • 不要试图使用文本生成格式化报告;只需使用DataGridView或类似工具即可
  • 如果单击该按钮的次数足够多,将出现数组索引越界异常,因为
    lastinexused
    将超过10

问题很简单:在实际计算数组的值之前,先使用
quarters
数组。将“calculate”循环移动到第一个循环的上方

此外(除其他事项外):

  • 太多的空行和空白;使其难以阅读
  • 不要试图使用文本生成格式化报告;只需使用DataGridView或类似工具即可
  • 如果单击该按钮的次数足够多,将出现数组索引越界异常,因为
    lastinexused
    将超过10

为了演示问题,需要多少代码?我只是想要完整的代码,以便对其进行分析,让人们能够完全理解。(可能是在不同的位置出错了?)我会很轻松地使用空白。如果你做了缩小问题范围的工作,然后发布缩小的代码呢?你会得到更多更好的答案,而不是让像我这样的人忽略你的问题。有多少代码是证明问题所必需的?我只是想要完整的代码,以便对其进行分析和验证可以完全理解。(可能是在其他位置出错?)我会很容易地使用空白。如果你做的工作是缩小你的问题范围,然后发布缩小的代码呢?你会得到更多更好的答案,而不是让像我这样的人忽略你的问题。我同意,一些细节有点粗略,但我是按照要求做的。最后我必须添加验证,这样就不会出错输入10以上时出错。使用文本框制作格式化报告的想法很奇怪,也很难让人接受。谢谢你的帮助,解决了这个问题!我同意,一些细节有点粗略,但我是按照要求来做的。最后,我必须添加验证,以便在输入10以上时不会出错。这个想法使用文本框制作格式化报告的方法很奇怪,而且对眼睛来说很难。谢谢你的帮助,解决了这个问题!