通过C#实现自动售货机接口

通过C#实现自动售货机接口的完整攻略如下:

一、了解接口

在开始编写自动售货机接口之前,需要先了解什么是接口。接口(Interface)是一种抽象的类型,它定义了让其他程序集(Assembly)访问该程序集的功能。通过接口,可以使一个类实现多个不相关的类型。

二、创建项目

  1. 打开Visual Studio,创建一个新的C#控制台应用程序项目;
  2. 在解决方案资源管理器中,右键单击项目名称,选择添加 -> 新建项 -> 接口;
  3. 在弹出的对话框中,输入接口名称(例如:IVendingMachine),点击添加;
  4. 在打开的接口文件中,添加自动售货机需要实现的方法(例如:SelectItemInsertCoinReturnCoinGetItem等)。

示例代码如下:

public interface IVendingMachine
{
    bool SelectItem(string item);

    bool InsertCoin(double amount);

    double ReturnCoin();

    string GetItem();
}

三、创建自动售货机类并实现接口

  1. 创建自动售货机类,并实现接口中定义的方法;
  2. 在类中定义自动售货机需要用到的变量(例如:_itemList_coinAmount等);
  3. 实现接口中定义的方法,完成自动售货机的具体操作。

示例代码如下:

public class VendingMachine : IVendingMachine
{
    private Dictionary<string, double> _itemList;
    private List<double> _coinAmount;

    public VendingMachine()
    {
        _itemList = new Dictionary<string, double>();
        _itemList.Add("Coke", 1.5);
        _itemList.Add("Pepsi", 1.6);
        _itemList.Add("Soda", 1.2);
        _coinAmount = new List<double>();
    }

    public bool SelectItem(string item)
    {
        if (_itemList.ContainsKey(item))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public bool InsertCoin(double amount)
    {
        if (amount == 0.1 || amount == 0.5 || amount == 1 || amount == 2)
        {
            _coinAmount.Add(amount);
            return true;
        }
        else
        {
            return false;
        }
    }

    public double ReturnCoin()
    {
        double totalAmount = 0;
        foreach(double amount in _coinAmount)
        {
            totalAmount += amount;
        }
        _coinAmount.Clear();
        return totalAmount;
    }

    public string GetItem()
    {
        double totalAmount = 0;
        foreach(double amount in _coinAmount)
        {
            totalAmount += amount;
        }
        if(totalAmount >= _itemList[item])
        {
            _coinAmount.Clear();
            return item;
        }
        else
        {
            return null;
        }
    }
}

四、使用自动售货机类

  1. 在程序中使用自动售货机类,并实例化一个对象;
  2. 调用自动售货机类中定义的方法,完成自动售货机的操作。

示例代码如下:

static void Main(string[] args)
{
    VendingMachine vendingMachine = new VendingMachine();

    bool isSuccess = vendingMachine.SelectItem("Coke");//选择物品
    if(isSuccess)
    {
        isSuccess = vendingMachine.InsertCoin(1);//插入硬币
        if(isSuccess)
        {
            double change = vendingMachine.ReturnCoin(); //退还硬币
            string item = vendingMachine.GetItem(); //获取物品
            Console.WriteLine("Change:{0}, Item:{1}", change, item);
        }
    }
}

以上就是通过C#实现自动售货机接口的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过C#实现自动售货机接口 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • c#封装百度web服务geocoding api 、百度坐标转换示例

    下面是详细讲解“c#封装百度web服务geocodingapi、百度坐标转换示例”的完整攻略。 1.了解百度Web服务、GeoCodingAPI和坐标转换功能 在开始本教程之前,首先需要了解百度Web服务、GeoCodingAPI和坐标转换功能的作用。 1.1 百度Web服务 百度Web服务是百度提供的一种通过互联网进行信息传输的服务。通过百度Web服务,你…

    C# 2023年5月15日
    00
  • 遍历文件系统目录树的深入理解

    遍历文件系统目录树的深入理解 遍历文件系统目录树是我们在开发的过程中经常会用到的操作之一,可以用来查找文件、文件夹,或者对一个文件夹下面的所有文件进行批量处理。本文将介绍如何使用 Python 的 os 模块来遍历文件系统目录树。 使用 os.walk() 方法 Python 提供了 os.walk() 方法,它可以用来遍历目录树。这个方法的返回值是一个迭代…

    C# 2023年6月8日
    00
  • ASP.NET MVC验证码功能实现代码

    当用户填写表单时,防止自动化脚本恶意提交表单的一种有效方式是通过验证码来验证用户的身份。下面是一个ASP.NET MVC验证码功能实现的完整攻略。 步骤一:在视图中添加验证码 添加一个表单或者用户输入数据的其他元素,然后在元素下方放置一个图片框来显示验证码的图片。图片框应该包含一个用于输入验证码的文本输入框,和一个刷新验证码的按钮。下面是一个示例: <…

    C# 2023年5月31日
    00
  • c#基于NVelocity实现代码生成

    下面是基于NVelocity实现C#代码生成的完整攻略。 什么是NVelocity? NVelocity是一款轻量级的Java模板引擎,可以通过模板文件和数据生成文本。不仅如此,NVelocity还拥有.NET版本的实现:NVelocity.dotnet。在本文中,我们将使用NVelocity.dotnet在C#中实现代码生成。 NVelocity.dotn…

    C# 2023年5月31日
    00
  • Unity的IPostBuildPlayerScriptDLLs实用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs实用案例深入解析 什么是IPostBuildPlayerScriptDLLs IPostBuildPlayerScriptDLLs是Unity中的一个接口类,可以在BuildPlayer过程中自定义处理DLL文件。通过在Unity编辑器中实现该接口,可以在生成构建设置时自定义处理DLL文件,从而…

    C# 2023年6月7日
    00
  • .NET API 接口数据传输加密最佳实践记录

    以下是.NET API接口数据传输加密最佳实践记录的完整攻略: 1. 什么是API接口数据传输加密 API接口数据传输加密是指在API接口数据传输过程中,使用加密算法对数据进行加密,以保证数据的安全性和机密性。API接口数据传输加密可以防止黑客攻击、窃取数据、篡改数据等安全问题。 2. API接口数据传输加密的最佳实践 以下是API接口数据传输加密的最佳实践…

    C# 2023年5月12日
    00
  • asp.net网站底部的版权信息实现代码且可维护

    关于ASP.NET网站底部的版权信息实现代码,一般有两种常见的实现方式,分别是通过ASP.NET Master页和ASP.NET User Control实现。 通过ASP.NET Master页实现 步骤一:创建Master页 在Visual Studio中创建Web应用程序,添加Master Page,并设置该Master Page为网站默认页。在Mas…

    C# 2023年5月31日
    00
  • asp.net 获取系统中参数的实现代码

    要获取系统中的参数,我们可以使用 ASP.NET 提供的 System.Web.Configuration 命名空间中的 ConfigurationSettings、AppSettings 和 ConnectionStrings 类。 1. 使用 ConfigurationSettings 类 ConfigurationSettings 类提供一种获取应用程…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部