C#中如何实现微信红包功能的示例代码分享

这篇文章主要介绍了c#实现微信红包功能,使用正态分布计算红包金额,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#仿微信红包功能的具体代码,供大家参考,具体内容如下

Program.cs代码:

class Program  {    static void Main(string[] args)    {      //初始化要发起的红包基础数据      double total = 100;      int num = 50;      double min = 0.01;      string temp;      bool flag = false;      Console.WriteLine(string.Format("是否需要自定义红包金额和数量(默认{0}元/{1}人)Y/N:", total, num));      temp = Console.ReadLine();      if (temp.Trim().ToLower().Equals("y") || temp.Trim().ToLower().Equals("yes"))      {        Console.WriteLine("请输入你要发起的红包金额:");        do        {          temp = Console.ReadLine();          flag = double.TryParse(temp, out total);          if (!flag)          {            Console.WriteLine("金额必须为整数或小数,请重新输入:");          }        } while (!flag);        Console.WriteLine("请输入你要发起的红包个数:");        do        {          temp = Console.ReadLine();          flag = int.TryParse(temp, out num);          if (!flag)          {            Console.WriteLine("红包个数必须为整数,请重新输入:");          }        } while (!flag);      }      total -= min * num;      if (total  0)        {          do          {            result = Round((double)Normal(u1.NextDouble(), u2.NextDouble(), average, variance), 2);          } while (result == null || result  result)          {            total = (double)Round((total - (double)result), 2);          }          else          {            result = total;            total = 0;          }        }        else if (i == num - 1)        {          total = 0;        }        nums[i] = Math.Round(min + (double)result, 2); //浮点运算问题,这里需要四舍五入数据才正确        Console.WriteLine(string.Format("第{0}个红包金额:{1}", i + 1, (min + result)));        Console.WriteLine("剩余金额:" + ((i != num - 1 && total == 0) ? min * (num - i - 1) : total + (min * (num - i - 1))));      }      Console.WriteLine("最大金额:" + nums.Max());      Console.WriteLine("最小金额:" + nums.Min());      Console.WriteLine("总额:" + Round(nums.Sum(), 2));      Console.WriteLine("初始方差:" + variance);      Console.WriteLine("结果方差:" + Variance(nums));      Console.WriteLine("按任意键退出!");      Console.ReadKey();    }    ///     /// 产生符合正态分布的随机数    ///     /// 正态分布第一个随机数    /// 正态分布第二个随机数    /// 正态期望(平均值)    /// 正态标准差(Math.Sqrt(方差))    ///     public static double? Normal(double u1, double u2, double averageValue, double variance)    {      double? result = null;      try      {        result = averageValue + Math.Sqrt(variance) * Math.Sqrt((-2) * Math.Log(u1)) * Math.Sin(2 * Math.PI * u2);      }      catch (Exception)      {        result = null;      }      return result;    }    ///     /// 求一组数据的方差    ///     /// 要求的数组    ///     public static double Variance(double[] nums)    {      double average = nums.Sum() / nums.Length;      double sum = 0;      double variance = 0;      foreach (double num in nums)      {        sum += Math.Pow((num - average), 2);      }      variance = sum / nums.Length;      return variance;    }    ///     /// 截取小数指定小数位,且不四舍五入    ///     /// 要截取的小数    /// 截取小数后位数    ///     public static double? Round(double originNum, int lastNum)    {      double? result = null;      int index = originNum.ToString().IndexOf('.');      if (index != -1)      {        string temp = originNum.ToString();        result = Convert.ToDouble(temp.Substring(0, index + 1) + temp.Substring(index + 1, Math.Min(temp.Length - index - 1, lastNum)));      }      if (result == 0)      {        result = null;      }      else if (index == -1)      {        result = originNum;      }      return result;    }  }

登录后复制

运行结果:

C#中如何实现微信红包功能的示例代码分享

C#中如何实现微信红包功能的示例代码分享

以上就是C#中如何实现微信红包功能的示例代码分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2439622.html

(0)
上一篇 2025年3月3日 12:08:17
下一篇 2025年2月17日 23:59:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C#中自定义控件如何实现TextBox禁止粘贴的示例代码

    这篇文章主要介绍了c#自定义控件实现textbox禁止粘贴的方法,结合具体实例形式分析了c#自定义控件的创建、使用方法及textbox禁止粘贴的实现技巧,需要的朋友可以参考下 本文实例讲述了C#自定义控件实现TextBox禁止粘贴的方法。分…

    编程技术 2025年3月3日
    200
  • C#中DateTime与时间戳转换的实例代码

    本篇文章主要介绍了c# datetime与时间戳转换实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳。 1. 什么是…

    编程技术 2025年3月3日
    200
  • 如何限制所有HTTP请求是POST方式?

    这篇文章主要为大家详细介绍了mvc 5限制所有http请求必须是post方式的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 今天有位同事,提出了这样一个问题,他想限制所有MVC接收到的HTTP请求必须是POST方式。 接下来在下面…

    编程技术 2025年3月3日
    200
  • 简单使用的ASP.NET验证码实例代码

    这篇文章主要为大家详细介绍了一个简单的asp.net验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了ASP.NET验证码的具体代码,供大家参考,具体内容如下 我主要是看到干扰线了,一个验证码里面要是没有干扰线什…

    编程技术 2025年3月3日
    200
  • C#连接Oracle的实例教程

    这篇文章主要介绍了c#连接oracle的方法,结合实例形式总结分析了几种常见的c#连接oracle数据库的操作技巧与相关注意事项,需要的朋友可以参考下 本文实例总结了C#连接Oracle的方法。分享给大家供大家参考,具体如下: 一、通过Sy…

    编程技术 2025年3月3日
    200
  • C#中如何使用SendMessage?

        在c#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在c#中使用消息有时候还是大大提高编程的效率的。  1 定…

    编程技术 2025年3月3日
    200
  • 创建自己的RSS实例教程

    本文主要提供代码,创建自己的rss,供别人订阅… — RSS.aspx— RSS.aspx.csusing System;using System.Collections;using System.ComponentMo…

    编程技术 2025年3月3日
    200
  • 详解关于Blog实现一个日历的实例教程

    日历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少。纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发。   新建一个用户控件,把calender控件拉进来。第一步是外观设…

    编程技术 2025年3月3日
    200
  • 带你掌握OOM框架AutoMapper使用实例

    本文主要介绍了oom框架automapper的相关知识,本篇的五个实例可以帮你解决常见的基本问题。具有一定的参考价值,下面跟着小编一起来看下吧 写在前面 OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMa…

    编程技术 2025年3月3日
    200
  • WPF实现定时刷新UI界面的实例详解

    这篇文章主要为大家详细介绍了wpf实现定时刷新ui界面功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了WPF定时刷新UI界面展示的具体代码,供大家参考,具体内容如下 代码: using NHibernate.Cr…

    编程技术 2025年3月3日
    200

发表回复

登录后才能评论