当前位置: 首页 > 知识库问答 >
问题:

对象计算验证C#

曾景龙
2023-03-14
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 Assignment_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void OrderButton_Click(object sender, EventArgs e)
        {
            double withTax = 0;
            double tax = 0;
            double subTotal = 0;
            var pizzas = new Pizza[3];
            if(ValidateAndDeclareQuantities())
            {
                pizzas = Declare();
                subTotal = CalcSubTotal(pizzas);
                tax = CalcTax(pizzas);
                withTax = CalcWithTax(pizzas);
            }

        }
        bool ValidateAndDeclareQuantities()
        {
            var combolist = new List<ComboBox>();
            combolist.Add(comboBox1);
            combolist.Add(comboBox2);
        combolist.Add(comboBox3);
        var textboxlist = new List<TextBox>();
        textboxlist.Add(Quantity1);
        textboxlist.Add(Quantity2);
        textboxlist.Add(Quantity3);
        for (int i = 0; i < 3; i++)
        {
            if (combolist[i].Text == "Cheese" || combolist[i].Text ==     "Vegetable" || combolist[i].Text == "Meat")
            { }
            else combolist[i].Text = "Wrong input";
        }
        int[] Quantities = new int[3];
        for (int i = 0; i < 3; i++)
        {
            if (int.TryParse(textboxlist[i].Text, out     Quantities[i])&&textboxlist[i].Text!=null)
            { }
            else { textboxlist[i].Text = "Wrong input"; }
        }
        return true;
    }

    Pizza[] Declare()
    {
        var pizzas = new Pizza[3];
        string type;
        int price;
        type = comboBox1.Text;
        price = int.Parse(Quantity1.Text);
        Pizza pizza1 = new Pizza(type, price);
        pizzas[0] = pizza1;

        type = comboBox2.Text;
        price = int.Parse(Quantity2.Text);
        Pizza pizza2 = new Pizza(type, price);
        pizzas[1] = pizza2;

        type = comboBox3.Text;
        price = int.Parse(Quantity3.Text);
        Pizza pizza3 = new Pizza(type, price);
        pizzas[2] = pizza3;

        return pizzas;
    }

    double CalcSubTotal(Pizza[] pizzas)
    {
        double subTotal = 0;
        for (int i = 0; i < 3; i++)
        {
            subTotal += pizzas[i].Price;
        }
        return subTotal;
    }

    double CalcTax(Pizza[] pizzas)
    {
        double tax = 0;
        for (int i = 0; i < 3; i++)
        {
            tax += pizzas[i].Tax;
        }
        return tax;
    }

    double CalcWithTax(Pizza[] pizzas)
    {
        double withTax = 0;
        for (int i = 0; i < 3; i++)
        {
            withTax += pizzas[i].WithTax;
        }
        return withTax;
    }

    void WriteOut(double subTotal, double tax, double withTax)
    {
        lblSubTotal.Text = "" + subTotal;
        lblTax.Text = "" + tax;
        lblTotal.Text = "" + withTax;
    }

    }
}
namespace Assignment_2
{
class Pizza
{
    string type;
    int quantity;
    public double Price;
    public double SubTotal;
    public double Tax;
    public double WithTax;
    public Pizza(string type, int quantity)
    {
        this.type = type;
        this.quantity = quantity;
        FindPrice();
        CalcSubTotal();
        CalcTax();
        CalcWithTax();
    }
    private void FindPrice()
    {
        switch (type)
        {
            case "Cheese":
                Price = 9.95;
                break;
            case "Vegetables":
                Price = 10.95;
                break;
            case "Meat":
                Price = 11.95;
                break;
        }
    }
    private void CalcSubTotal()
    {
        SubTotal = Price * quantity;
    }
    private void CalcTax()
    {
        Tax = SubTotal * 0.13;
    }
    private void CalcWithTax()
    {
       WithTax = SubTotal + Tax;
    }
}
}

共有1个答案

琴宾鸿
2023-03-14

答案很快:

>

  • validateanddeclareumantations从不html" target="_blank">返回false。当您设置“错误输入”时,它应该(可能)返回false。

    (次要)Int[]数量=新Int[3];除了给它写信,从来没有用过。

    命名不需要特定类别的东西:比如奶酪比萨饼和火腿比萨饼。枚举是你的朋友!使用它们而不是像“cheese”这样的字符串:

    public enum PizzaType{
        Cheese,
        Tomato
    }
    

    以这种方式使用枚举有助于避免意外的大写所带来的痛苦,而且速度也快得多。有奶酪披萨吗?

    重复:代码的大部分也是重复的;你会想要尽可能多的练习避免它。('dry'/'don't'repeatyourself')。一点前瞻性的计划会有很大的帮助。每个人对代码结构都有偏好;我这里是一个单独的“Pizza Displayer”类,它包含一个数量输入框并进行验证。

  •  类似资料:
    • 问题内容: 这是我第一次在laravel中使用验证。我正在尝试对以下json对象应用验证规则。json对象名称是有效负载,下面给出示例。 验证码如下所示,出于测试目的,我将数字验证为数字。当我执行以下代码时,上面的json对象被批准并插入到我的数据库中。相反,它应该给我一个例外,因为我正在传递带有字母数字值的名称,是我做错了什么: 问题答案: 请这样 验证中的字段必须是数字,并且必须具有确切的值长

    • 我有java对象数据。我正在将这个对象传递给递归方法,以构建上面映射中每个键的对象。请参阅下面的示例。 对于ex, private static Boolean validate(MAP>input,Set object)引发异常{Boolean result=TRUE;for(Pair cal:input.values()){if(!object.add(cal.left))返回FALSE;re

    • 问题内容: 这是我的JSON: 如何计算其中的对象数量? 问题答案: 那是一个数组。 您可以解析它(),然后使用该属性。

    • 假设我有以下课程: 是否可以通过“MyProduct”类验证“code”属性?比如:

    • 问题内容: 我有一个从json_decode创建的stdClass对象,当我运行count($ obj)函数时不会返回正确的数字。该对象具有30个属性,但count()函数的返回值为1。 有任何想法吗? 以下是其中一个对象的示例。(我正在从Twitter请求每日趋势信息)。如果此对象具有多个属性,则count($ obj)等于1。 问题答案: 问题在于count的目的是对数组中的索引进行计数,而不

    • 我显示了这个错误,但我不知道为什么: [15:52:26]TypeError:TypeError:undefined不是对象(计算“props.navigationstate.index”)