已回答 单选按钮和带有数学复选框

jag250

活跃成员
已加入
2020年9月16日
留言内容
28
编程经验
1-3
http://miscapstone.uncw.edu/316f20matthewsk/MIS316/MP1Bmatthewsk.aspx
这是我必须建立的项目
我已经创建了该页面的在线内容,并且3/4面板正在运行,并且我的文本框很好用。
我需要帮助来完成数学部分以及单选和复选框按钮的帮助。如果您查看示例站点,则可以看到我缺少的部分。我将继续尽我所能,但是对于我所缺少的帮助或概述,将不胜感激。
截图2020-09-16 14.01.55.png

C#:
protected void Button1_Click(object sender, EventArgs e)
{
    //输入变量
    字符串名称="";
    int numbagels = 0;

    //variables to labels
    名称= txtName.Text;
    numbagels = Convert.ToInt32(txtNumofBagels.Text);

    lblOrderFor.Text = name;
    lblNumberofBagels.Text = numbagels.ToString();

    如果(rbCarryOut.Checked == true)
    {
        lblOrderType.Text = "Carry Out";
        lblChargeTax.Text = "No";
    }
    其他
    {
        lblOrderType.Text = "Dine In";
        lblChargeTax.Text = "Yes";
    }
    pnlCustomer.Visible = false;
    pnlDineorCarry.Visible = true;
}


protected void btnFinishOrder_Click(object sender, EventArgs e)
{
    pnlDineorCarry.Visible = false;
    pnlFinishOrder.Visible = true;

    //输入变量
    字符串名称="";
    int numbagels = 0;

    名称= txtName.Text;
    numbagels = Convert.ToInt32(txtNumofBagels.Text);
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
我需要创建一个C#公式,该公式将增加$ 2.00的基本费用以及任何附加项(在下面列出)。一种含税7%(进餐),另一种不含税(执行)
慢一点。如何使用笔和纸创建此公式?您还记得您的高中代数(或X代及以后的小学代数)吗?您将如何编写该问题的代数方程式?代数方程式通常很容易转换为C#赋值语句。

Here's a simple example: Newton's second law is F = ma. In words, it's force is equal to mass times acceleration. So the C# code for that equation is:
C#:
force = mass * acceleration;
 

jag250

活跃成员
已加入
2020年9月16日
留言内容
28
编程经验
1-3
如果(rbPlain.Checked == rbDineIn.Checked)
{
十进制Plain = Convert.ToDecimal(rbPlain.Checked);
平原= 2.00m;
十进制decTax = 0.07m;


小计= Bagel类型


lblSubTotal =(rbPlain * lblNumberof);

lblTax =(lblSubTotal * 0.07m);
总计= decTax + lblSubtotal.text;



}
否则(rbWheat.Checked == rbDineIn.Checked)
{


十进制Wheat = Convert.ToDecimal(rbPlain.Checked);
小麦= 1.00m;
十进制decTax = 0.07m;
lblSubTotal =(rbWheat * lblNumberof);

lblTax =(lblSubTotal * 0.07m);
总计= decTax +小计;

lblSubtotal.Text = decSubtotal.ToString("c")
lblTax.Text = decTax.ToString("c")
lblTotal.Text = decTotal.ToString("c"
}

其他
{
十进制的一切= Convert.ToDecimal(rbPlain.Checked);
一切= 1.00m;
十进制decTax = 0.07m;
lblSubTotal =(rbEverything * lblNumberof);

lblTax =(lblSubTotal * 0.07m);
总计= decTax +小计;

lblSubtotal.Text = decSubtotal.ToString("c")
lblTax.Text = decTax.ToString("c")
lblTotal.Text = decTotal.ToString("c"

}



如果(rbCarryOut.Checked == true)
{
lbldineorcarry.Text ="Carry Out";
//lblTax.Text = lblSubTotal.Text * Tax;
//lblTotal.Text = lblSubTotal.Text + lblTax.Text;
//lblSubTotal.Text = "$" + SubTotal.ToString;
}

其他
{
lbldineorcarry.Text ="Dine In";
// lblTax.Text
// lblTotal.Text = lblSubTotal.Text + lblTax.Text;
}

//输入变量
字符串名称="";
int numbagels = 0;

名称= txtName.Text;
numbagels = Convert.ToInt32(txtNumofBagels.Text);

//设置标签
lblname.Text ="order for " + name;
lblNumberof.Text = numbagels.ToString();



rbWheat.Text ="$1.00";
rbEverything.Text ="$1.50";

cbToasted.Text ="$0.50";
cbCreamCheese.Text ="$1.00";





如果(rbPlain.Checked == true)
{
lblTypeof.Text ="Plain Bagels";
}
否则(rbWheat.Checked == true)
{
lblTypeof.Text ="Wheat Bagels";
}
否则,如果(rbEverything.Checked == true)
{
lblTypeof.Text ="Everything Bagel";

}

这就是我想出的。但是,很多都是红色的。我可以使用一些帮助来使它变得更好。
谢谢
 
Last edited:

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,901
位置
英国
编程经验
10+
您可以编辑该帖子,并在代码标签中添加格式化的代码。谢谢!
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
我三周前才开始学习C#

根据另一位教授MIS 316的教师的说法:
先决条件:MIS 216或CSC 112或CSC 131或部门主席批准的另一种编程语言课程。

在我看来,这意味着您不应该为如何汇总用于计算总数的公式而苦苦挣扎。您很有可能会遇到一些问题,无法理解WebForms页面生命周期的工作原理(即使是经验丰富的开发人员也必须时不时地查看图表),但是基于上面的代码,您似乎确实在挣扎。论坛。如果您不介意我问,您上一门编程语言课程是什么?
 

jag250

活跃成员
已加入
2020年9月16日
留言内容
28
编程经验
1-3
根据另一位教授MIS 316的教师的说法:


在我看来,这意味着您不应该为如何汇总用于计算总数的公式而苦苦挣扎。您很有可能会遇到一些问题,无法理解WebForms页面生命周期的工作原理(即使是经验丰富的开发人员也必须时不时地查看图表),但是基于上面的代码,您似乎确实在挣扎。论坛。如果您不介意我问,您上一门编程语言课程是什么?
我只服用过python,一年多以前
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
引用鲍勃·卡特的话:"您缺乏计划并不构成我的紧急情况。"

无论如何,这是一个免费赠品伪代码:
C#:
totalCost = (  bagelBaseCost
             + (isWheatUpgrade ? wheatUpgradeCost : 0.0m)
             + (isEverythingUpgrade ? everythingUpgradeCost : 0.0m)
             + (isToastedOption ? toastCost : 0.0m)
             + (isCreamCheeseOption ? creamCheeseCost : 0.0m)
            )
            * numberOfBagels
            * (1.0m + (isDineIn ? dineInTaxRate : 0.0m))

公式如此复杂的原因是,您希望所有内容都像数学家或Excel骑师一样成为一个公式。

如果您像普通程序员那样做,那么使用此伪代码看起来会简单得多:
C#:
bagelCost = baseCost;
if (isWheatUpgrade)
    bagelCost += wheatUpgradeCost
else if (isEverythingUpgrade)
    bagelCost += everythingUpgradeCost

if (isToastedOption)
    bagelCost += toastedCost

if (isCreamCheeseOption)
    bagelCost += creamCheeseCost

taxRate = 1.0m
if (isDineIn)
    taxRate += dineInTaxRate

totalCost = numberOfBagels * bagelCost * taxRate

其余的代码祝您好运。时钟在滴答滴答...
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
我知道OP最初的问题是关于WebForms的,但是我认为这是向Blazor进行测试的绝佳机会:


C#:
@page "/"

<h1>Bagel Store</h1>
<div>
    <label for="txtBagelCount">Number of Bagels: </label>
    <input id="txtBagelCount" @bind="BagelCount" @bind:event="oninput" />
</div>
<div id="divBagelKind">
    <label for="divBagelKind">Kind of Bagel: </label>
    <input type="radio" name="rbgBagelKind" value="Plain" id="rdbPlain" @onchange="OnChangeKind" checked />
    <label for="rdbPlain">Plain</label>
    <input type="radio" name="rbgBagelKind" value="Wheat" id="rdbWheat" @onchange="OnChangeKind" />
    <label for="rdbWheat">Wheat</label>
    <input type="radio" name="rbgBagelKind" value="Everything" id="rdbEverything" @onchange="OnChangeKind" />
    <label for="rdbEverything">Everything</label>
</div>
<div id="divOptions">
    <label for="divOptions">Options: </label>
    <input type="checkbox" id="chkToasted" @bind="IsToasted" />
    <label for="chkToasted">Toasted</label>
    <input type="checkbox" id="chkCreamCheese" @bind="IsCreamCheese" />
    <label for="chkCreamCheese">Cream Cheese</label>
</div>
<div id="divDineIn">
    <input type="checkbox" id="chkDineIn" @bind="IsDineIn" />
    <label for="chkDineIn">Dine In</label>
</div>
<div>
    <label>Tax: @subTotal.ToString("C")</label>
</div>
<div>
    <label>Tax: @tax.ToString("C")</label>
</div>
<div>
    <label>Total Cost: @totalCost.ToString("C")</label>
</div>

@code
{
    int _bagelCount = 0;
    int BagelCount { get => _bagelCount; set { _bagelCount = value; Recompute(); } }
    string _bagelKind;
    string BagelKind { get => _bagelKind; set { _bagelKind = value; Recompute(); } }
    bool _isToasted;
    bool IsToasted { get => _isToasted; set { _isToasted = value; Recompute(); } }
    bool _isCreamCheese;
    bool IsCreamCheese { get => _isCreamCheese; set { _isCreamCheese = value; Recompute(); } }
    bool _isDineIn;
    bool IsDineIn { get => _isDineIn; set { _isDineIn = value; Recompute(); } }

    decimal subTotal;
    decimal tax;
    decimal totalCost;

    void OnChangeKind(ChangeEventArgs e)
        => BagelKind = e.Value.ToString();

    void Recompute()
    {
        subTotal = 2.0m;
        switch (BagelKind)
        {
        case "Wheat":
            subTotal += 0.50m;
            break;
        case "Everything":
            subTotal += 1.50m;
            break;
        }

        if (IsToasted)
            subTotal += 0.50m;

        if (IsCreamCheese)
            subTotal += 1.0m;

        subTotal *= BagelCount;

        tax = 0;
        if (IsDineIn)
            tax = subTotal * 0.07m;

        totalCost = subTotal + tax;
    }
}

请原谅缺少百吉饼数量的输入验证-它会接受负数。大约2小时前,我才刚刚开始接触Blazor。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,901
位置
英国
编程经验
10+

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
是的,我怪我双胞胎。 :凉:

Edit-Debug周期仍然太慢,需要更多的调试工具,但是我愿意忍受它,因为我不必编写任何JavaScript。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,901
位置
英国
编程经验
10+
而且,如果您确实编写了任何敏感数据(例如js),就可以在检查器中查看这些数据,如果使用wasm则可以全部下载。谨慎使用引导程序,因为它们需要解决。

服务器端有些不同,但是有不同的限制。毫无疑问,您正在玩​​它。 😆
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,463
位置
弗吉尼亚州切萨皮克
编程经验
10+
只是要放入工具箱中的另一个工具。在Web开发进一步成熟之前,可能不会成为我开发Web的主要手段。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,901
位置
英国
编程经验
10+
是的,肯定在这里。

但是,与Blazor合作非常有趣。我只是不想在个人生产站点上使用它。
 
最佳 底部