程序要求

1:任意输入金额和红包个数

2:输出每个红包的金额,并标记手气最佳
3:1键模拟抢红包过程 
4:2键列出当前红包情况(总金额、总红包数、剩余红包数等)

5:3键取消发红包

代码如下:

package home0201;

import java.text.DecimalFormat;
import java.util.Scanner;

public class OneTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
boolean isok=true;
boolean isgo=true;
while(isgo)
{
isok=true;
isgo=true;
System.out.println("输入总金额和红包数");
Scanner in=new Scanner(System.in);
double money=in.nextDouble();
int number=in.nextInt();
RedPackets packets=new RedPackets(number, money);
while(isok)
{
System.out.println("操作如下:");
System.out.println("1键模拟抢红包过程 \t2键列出当前红包情况(总金额、总红包数、剩余红包数等)\t3键取消发红包");
packets.showDraw();
int operator=in.nextInt();
switch(operator)
{
case 1:
isok=packets.draw();
break;
case 2:
packets.getCondition();break;
case 3:
isok=false;isgo=false;break;
default:
break;
}

}
}
System.out.println("取消抢红包活动");

}

}

class RedPackets{
private int packetsNumber;
private double totalMoney;
private int nowNumber;
private double nowMoney; 
private double [] result=null;
private double maxMoney;

public RedPackets(int number,double money)
{
packetsNumber=number;
nowNumber=number;
totalMoney=money;
nowMoney=money;
result=new double[number];
}

public void showDraw()
{
for(int i=1;i<=packetsNumber-nowNumber;i++)
{
StringBuffer buffer=new StringBuffer("第"+i+"个人领了"+result[i-1]+"元的红包\t");
if(maxMoney==result[i-1])
{
buffer.append("手气最佳");
}
System.out.println(buffer);
}
}

public void getCondition()
{
System.out.println("总金额为:"+totalMoney+"\t总红包数为:"+packetsNumber+"\t剩余红包数为:"+nowNumber);
}

public boolean draw()
{
double drawMoney=0.0;
if(nowNumber==1)
{
drawMoney=nowMoney;
}else{
drawMoney=Math.random()*nowMoney;
}
DecimalFormat df=new DecimalFormat("#.##");
drawMoney=Double.parseDouble(df.format(drawMoney));
if(drawMoney>maxMoney)
{
maxMoney=drawMoney;
}
nowMoney=nowMoney-drawMoney;
result[packetsNumber-nowNumber]=drawMoney;
nowNumber--;
System.out.println("你所抢得的红包为:"+drawMoney);
if(nowNumber==0)
{
showDraw();
System.out.println("红包已经全部抢完了");
return false;
}
return true;
}

public int getPacketsNumber() {
return packetsNumber;
}
public void setPacketsNumber(int packetsNumber) {
this.packetsNumber = packetsNumber;
}
public double getTotalMoney() {
return totalMoney;
}
public void setTotalMoney(double totalMoney) {
this.totalMoney = totalMoney;
}
public int getNowNumber() {
return nowNumber;
}
public void setNowNumber(int nowNumber) {
this.nowNumber = nowNumber;
}

}

Java抢红包小程序相关推荐

  1. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...

    前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...

  2. vue小米商城源代码_微信商城信息管理系统(java后台+小程序)

    前一段时间在公众号中发布了一套微信商城信息管理系统(java后台+小程序),也许大家可能都还记得.今天再给大家重复呈现一遍.重新梳理下,方便大家理解这是做什么用的,以便日后使用.开始正题 01 编写目 ...

  3. java 后台 小程序微信支付

    java 后台 小程序微信支付 步骤说明: 微信公众平台支付接口调试工具 #1.生成字符串: appid=appId&body=测试商品名称&mch_id=商户号&nonce_ ...

  4. 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送

    本文是比较老得技术来实现,用最新技术实现小程序推送,请看 5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码) 也可以看最新的视频讲解:https://edu.csd ...

  5. 简单明了实现Java地图小程序项目

    简单明了实现Java地图小程序项目 ✨博主介绍 前言 地图概述 地图技术 地图应用场景 网约车服务 智能穿戴 智能物流 智能景区 车联网 国内常见地图 地图API与搜索 JS API GL(演示百度地 ...

  6. 进阶版的Java发牌小程序

    进阶版的Java发牌小程序 考虑到上次的发牌程序有很大的缺陷,无法得知牌的花色和点数,也就无法对牌添加别的操作方法,这次采用面向对象的思想,重新编写这个发牌小程序. 程序如下: /*** 扑克类,具有 ...

  7. java实现小程序开发(一)

    小程序开发官方文档 一. 1.首先看授权流程技术说明其中会说明具体怎么开发小程序: 2.需要做些开发小程序前期准备的工作. 3.首先你要申请个小程序:申请小程序官网链接 具体怎么申请我想就不要说了吧- ...

  8. 基于java微信小程序的校园二手商城设计与实现

    基于java微信小程序的二手商城设计与实现 首先介绍一下SpringSecurity安全登陆框架 微信小程序 我用的是mysql数据库 这是我小程序的用例图 系统总体功能架构图 系统功能模块设计 数据 ...

  9. 牛逼的uniapp+Java微信小程序商城来了

    牛逼的uniapp+Java微信小程序商城来了 减少重复造轮子,开源微信小程序商城(前后端开源:uniapp+Java),秒杀.优惠券.多商户.直播卖货.分销等功能.快速搭建一个属于自己的微信小程序商 ...

最新文章

  1. thymeleaf引用图片_SpringBoot访问静态资源(图片、html)以及整合thymeleaf 注意点
  2. 计算机之间是如何实现通信的?—Vecloud微云
  3. 架构实战:(一)Redis采用主从架构的原因
  4. 回旋矩形C语言,C语言回旋函数解释下,该如何处理
  5. Swift中文教程(十六) 自动引用计数
  6. go 数组任意位置插入数字类型的元素
  7. C++ 单例模式中处理在类中声明一个指向一个自己的指针,在编译时显示定义的指针未定义的处理办法
  8. linux下的mongodb数据库原生操作
  9. AD19PCB增加board shape即增大黑色布的面积
  10. 梨花带雨音乐播放器3.91源码开源(网站添加背景音乐)
  11. Jira 破解版 Docker 部署
  12. php投影,投影效果怎么做?PS制作逼真的投影效果
  13. android 闪屏动态界面,Android 实现闪屏
  14. 2022高教社杯 国赛数学建模 A题思路
  15. python实训报告心得体会-Python学习心得体会
  16. [乱七八糟]Google搜索使用详细
  17. 《 Kubebuilder v2 使用指南 》-P1-总览篇
  18. ADI-SigmaDSP开发入门
  19. 鬼吹灯之怒睛湘西 SDUT
  20. C/C++版本更迭历程

热门文章

  1. 营销圈也可以提供类似“不涂口红的你”的创意文案?
  2. C语言创建指定大小的txt文件
  3. List对象sream()操作
  4. 离散数学第三章 集合与关系(1~7)
  5. 前端工程师需要掌握哪些知识?
  6. Java - JDK8新特性,代码demo示例;
  7. nvidia jetson TX2 踩坑解决记录
  8. 小米股价腰斩的原因找到了,在海外两大市场均受挫
  9. 弱监督语义分割论文方法分类
  10. Java单元测试进阶之如何打桩(用easymock轻松打桩)