如何为Tier

时间:2017-03-12 19:51:15

标签: c#

The error part of the code The application i got to make and to run it by tier using if statements

家庭作业给予分层棒球运动员的薪水。创建一个程序,根据以下业务规则计算玩家将获得的工资。请务必参考上面列出的一般编程指南。为您的项目命名:TieredPlayerSalaryViaIF - 您的姓名

第1级:在一个赛季的1到49次点击中,玩家每次击中每次击中获得17,500美元。 第2层:对于50到99次点击,玩家每次击中每次击中获得20,000美元。 第3层:对于100到149次点击,玩家每次点击获得22,500美元。 第4层:对于150次或更多次点击,玩家每次点击都会获得25,000美元的点击量。 然后考虑All Star和MVP(最有价值球员)奖项:

  • 如果玩家既不是全明星也不是MVP名称,那么将0%加到您上面计算的分层薪水上
  • 如果玩家既是全明星和又是MVP,那么将上面计算的分层薪水加25%
  • 如果玩家只是全明星或MVP中的一个,那么将20%加到您上面计算的分层薪水上 请注意,这是一个“简单”计算 - 一旦玩家达到每次击中下一个$等级的阈值,玩家就会获得他们拥有的所有命中率。例如,如果Player1在一个赛季中有149次点击,他将获得149 * 22,500 = $ 3,352,500。但是,如果那个Player1会产生更多的命中(150),他将获得150 * 25,000 = $ 3,750,000。然后,考虑全明星和MVP属性对上述薪资计算的影响。

输入:让用户输入玩家的名字,命中数,一个复选框以指示他们是否是全明星,以及第二个复选框以指示他们是否是MVP。然后使用“计算”​​按钮处理数据。仅当用户输入玩家姓名(输入的任何非空格字符构成输入名称)时才处理数据。仅在用户输入有效命中数时才处理数据。有效命中计数是一个大于零的整数,但小于或等于300.以编程方式验证命中计数 - 不要使用屏蔽文本框。使用我们覆盖的验证方法而不是try..catch来执行验证。添加“清除”按钮以清除数据输入字段,复选框和计算。

处理/输出:根据玩家获得的等级计算玩家的收入,并显示计算的工资和等级数。使用if()...决策结构来确定Tier数和每个命中数$(不要使用开关(..case ...)决策结构)。根据All Star / MVP复选框设置确定任何额外工资金额。 除了允许输入当前玩家名称,点击详细信息并根据上述计算当前玩家的工资之外,还在窗口上显示单独的摘要信息集,显示领先玩家的姓名,命中数,工资和等级数对于到目前为止已经处理过所有玩家最多点击次数的玩家,因为Window已打开或者上次单击Clear按钮。你只需要跟踪一个领先的玩家,而不是所有进入的玩家。如果有一个或多个关系,那么输入命中率最高的第一个玩家将成为领导者。

this is the code i have but the if statements give errors

应该是根据点击次数和玩家名称成为领导者的分层棒球运动员薪水并显示球员薪水

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TieredPlayerSalaryViaIF___Ionut_Cozma
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string Playername;
        int Hits = 0;

        Boolean MVP = false;
        Boolean AllStart = false;

        int Tier = 0;
        int HitSalarymulti = 0;


        double bonuspercentage = 1;
        double ActualSalary = 0;

        string LeaderName;
        int LeaderHits = 0;
        double LeaderSalary;
        int LeaderTier;
        private void Calcbtn_Click(object sender, EventArgs e)
        {
            Playername = nameTextbox.Text;

            Hits = int.Parse(HitsTextbox.Text);


            if (Mvpcheckbox.Checked)
            {
                MVP = true;

            }


            if (AllStartcheckbox.Checked)
            {
                AllStart = true;

            }
// this part wont run even tough i think i put the hits and the greater than and less then in the right context ??

            and the if statement if its in the right context

                        if (Hits <= 49 + Hits  => 1)
                        {

                               Tier = 1;
                         Salarymulti = 17,500;
                        }

                        else if (Hits >= 50 + Hits <= 99)
                        {
                            Tier = 2;
                            Salarymulti = 20,000;
                        }

                        else if (Hits <= 100 + Hits => 149 )
                        {
                            Tier = 3;
                            Salarymulti = 22,500;
                        }

                        else if (Hits <= 150 Hits )
                        {
                           Tier = 4;
                            Salarymulti = 25,000
                        }

                       else  (Hits <= 150 + Hits => )

                        else MessageBox.Show("insert hits entry");

                           return;


                        if (MVP || AllStart)
                        bonuspercentage = 1.2;
                        {
                            bonuspercentage = 1.25;
                        }


                        ActualSalary = Hits * Salarymulti;
                        bonuspercentage


                            Salarylbl.Text = ActualSalary.Tostring("C");
                              Tierlbl.Text = Tier.ToString("C");

                        if (Hits >LeaderHits)
                        {
                            Leadernamelbl.Text = Playername;
                            Leaderhitslbl.Text = Hits.ToString();
                            leadersalarylbl.Text = ActualSalary.ToString();
                                 LeaderTier.Text = Tier.ToString();

                        }

                        Playername = PlayerNameUsvText.Text;

                        if (PlayerName is null 0 Whitesapce)

                         {
                MessageBox.Show(" Error message improper name");
                            return;
                        }
// need help with this part if i wrote it right 
                        switch (Tier)
                        { 

                        case 1:
                            Salarymulti = 17,500;
                        case 2:
                            Salarymulti = 20,000;
                        case: 3
                            Salarymulti = 22,500;
                        default 4:
                            Salarymulti = 25,000;

                        }


// the code wont run right because the case and the if statements dont seem to be made correct i tried research online but i cant really find close code to mine 





            }
        private void clrbtn_Click(object sender, EventArgs e)
        {

        }
    }
}
[the error part of the code ][2]

The code that has errros;

1 个答案:

答案 0 :(得分:2)

虽然我不确定你在学习中的位置。这是您理解面向对象编程的价值的好时机。您的表单无论外观多么好,都与您正在使用的对象或一个属性应如何与另一个属性交互的逻辑无关。在这种情况下,一个BaseBall播放器。您可以自己创建一个类似于以下内容的对象:

public class BallPlayer
{
    public string Name { get; set; }

    public int NumberOfHits { get; set; }

    public bool IsMvp { get; set; }

    public bool IsAllStar { get; set; }

    public double SalaryPerHit
    {
        get
        {
            var salary = 10.0;
            if( NumberOfHits < 150 )
                salary = 15;
            else if( NumberOfHits < 200 )
                salary = 20;
            else if( NumberofHits < 250 )
                salary = 25;

            return salary;
        }
    }

    public double BonusMultiplier
    {
        get
        {
            var multiplier = 1.0;

            if( IsMvp ) multiplier = 1.1;
            else if( IsAllStar ) multiplier = 1.2;

            return multiplier;
        }
    }

    public double CalculateSalary() =>
        SalaryPerHit * BonusMultiplier * NumberOfHits;
}

在表单中,您将创建BallPlayer的实例,更改后的控件将更新BallPlayer的关联属性。请注意,有些值已被故意更改,因为这有助于您更好地了解如何改进代码。