模拟摇号的小程序

article/2025/8/31 3:18:14

简介

我做了一个关于摇号的小程序,它可以实现给n个人每个人一个不同的随机数(号码),将每个人的号码排序然后输出,并选取排名靠前一定数量的人作为摇中的,给予随机数时会有渐慢的效果。

如图:(绿色为摇中的, 红色没摇中)

 

使用方式

输入两个数 n 和 k

表示有 n 个人, 选取其中 k% 的人

代码

#include <windows.h>
#include <algorithm>
#include <cstdio>
#include <math.h>
#include <ctime>
using namespace std;enum concol {black = 0,dark_blue = 1,dark_green = 2,dark_aqua = 3, dark_cyan = 3,dark_red = 4,dark_purple = 5, dark_pink = 5, dark_magenta = 5,dark_yellow = 6,dark_white = 7,gray = 8,blue = 9,green = 10,aqua = 11,cyan = 11,red = 12,purple = 13, pink = 13, magenta = 13,yellow = 14,white = 15
};struct Peo
{int Num, Score;bool operator < (Peo b){return Score >  b.Score;}
};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
int n;
Peo a[10050];
double UpVal;
CONSOLE_CURSOR_INFO CursorInfo;
COORD _GoToPos;
int backcol, textcol;inline void gt(short x, short y) {--x;--y;_GoToPos = {x, y};SetConsoleCursorPosition(hOut, _GoToPos);
}int GetRand()
{return abs(rand() + (rand() << 17));
}void GetRandomNum(int pln)
{int tmp;gt(5, pln);printf("%d", pln);for(int i=1;i<=20;++i){tmp = GetRand() % 1000000;gt(8, pln);printf("%06d", tmp);Sleep(5);}for(int i=1;i<=15;++i){tmp = GetRand() % 1000000;gt(8, pln);printf("%06d", tmp);Sleep(i*10);}a[pln].Score = tmp;a[pln].Num = pln;
}inline void HideCursor()
{GetConsoleCursorInfo(hOut, &CursorInfo);CursorInfo.bVisible = false;SetConsoleCursorInfo(hOut, &CursorInfo);	
}inline void settextcolor(concol textcolor) {textcol = textcolor;unsigned short wAttributes = ((unsigned int)backcol << 4) | (unsigned int)textcol;SetConsoleTextAttribute(hOut, wAttributes);
}inline void setbackcolor(concol backcolor) {hOut = GetStdHandle(STD_OUTPUT_HANDLE);backcol = backcolor;unsigned short wAttributes = ((unsigned int)backcol << 4) | (unsigned int)textcol;SetConsoleTextAttribute(hOut, wAttributes);
}int main()
{HideCursor();srand(time(NULL));system("mode con cols=22 lines=50");scanf("%d%lf", &n, &UpVal);system("cls");for(int i=1;i<=n;++i){gt(5, i);printf("%d ", i);GetRandomNum(i);}sort(a+1, a+n+1);double NowVal = 0;for(int i=1;i<=n;++i){NowVal = i * 100.0 / n;gt(5, i+n+1);settextcolor(white);setbackcolor(black);printf("%d ", a[i].Num);gt(8, i+n+1);printf("%06d", a[i].Score);if(NowVal <= UpVal){setbackcolor(green);}else{setbackcolor(red);}printf("  ");}getchar();getchar();return 0;
}


http://chatgpt.dhexx.cn/article/TMDlHFb7.shtml

相关文章

摇号中签生成随机号

在现在很多类似于股票市场的交易中&#xff0c;很多项目发行都需要进行申购&#xff0c;等到申购结束&#xff0c;进行摇号&#xff0c;根据中签尾号确定每个用户的中签数量。 如果用户U1购买了10个产品&#xff0c;那么他申购的产品尾号就是10000001到10000010&#xff0c;用…

用JavaScript+HTML实现双色球随机摇号效果

用JavaScriptHTML实现双色球随机摇号效果 首先要知道双色球的规则是什么 双色球投注区分为红球号码区和蓝球号码区 红球号码范围为01&#xff5e;33&#xff0c;蓝球号码范围为01&#xff5e;16 双色球每期从33个红球中开出6个号码&#xff0c;从16个蓝球中开出1个号码作为中奖…

Java用n种方法编写实现双色球随机摇号案例

方法清单 规则实现方式一实现方式二实现方式三实现方式四实现方法五 之前我用JavaScript编写过一个实现双色球随机摇号的案例&#xff0c; 点击此处查看&#xff0c;今天我再用Java语言来实现这一效果。 规则 那么首先我们要搞清楚规则是什么&#xff1a; 双色球投注区分为红…

抽奖摇号系统随机性算法介绍

参考视频教程: **高并发高性能 Go语言开发企业级抽奖项目 ** 摘要 本文分析GO语言包中的"crypto/rand"和"math/rand"&#xff0c;芯链HPB系统的区块链随机数&#xff0c;并给出了权衡效率和随机性&#xff0c;并给出了一款区块链摇号抽奖系统如何…

Windows 安装 JDK-11

目标 在 windows 上安装 JDK-11 安装 下载 JDK 安装包 地址下载https://download.csdn.net/download/m0_47406832/83449704 解压 安装 运行 jdk-11.0.11_windows-x64_bin.exe 程序&#xff0c; 许可安装请求 等待环境检测 开始安装 选择安装目录 接下来一路下一步&…

Win10安装JDK11(超详细)

目录 一、下载JDK二、安装JDK三、配置环境变量四、检查是否安装成功五、JDK中没有jre文件 一、下载JDK JDK11下载地址&#xff1a; Java SE Development Kit 11.0.19 下图是JDK11下载界面&#xff1a; 其中.exe后缀的是安装版本&#xff0c;需要手动设置安装路径进行安装&am…

JDK11安装-macos

JDK 概述 JDK 全称 Java Development ToolKit&#xff0c;是 Java 语言开发工具包。JDK 是整个 JAVA 的核心&#xff0c;包括了 Java 运行环 境&#xff08;Java Runtime Environment&#xff09;&#xff0c;一堆 Java 工具&#xff08;javac/java/jdb 等&#xff09;和 Java…

jdk9、jdk10、jdk11、jdk12、jdk13新特性

我们绝大部分人估计都还在用着jdk8&#xff0c;12其实是一个非LTS&#xff08;long time support&#xff09;版本&#xff0c;而11与8一样是LTS版&#xff0c;意味着下个通用的版本将从8直接到11&#xff0c;毕竟11包含了9和10的所有新特性&#xff0c;因此9和10估计就直接被废…

window11安装JDK1.8【jdk-8u121】

&#x1f469;‍&#x1f4bb;博客主页&#xff1a;大家好我是poizxc2014的博客主页 ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f4d6;个人主页&#xff1a;poizxc2014的博客_CSDN博客-数据库,mysql,java领域博主 &#x1f4bb;首发时间&#xff1a;&#…

JDK11 新特性详解

1、增强局部变量类型推断 var Consumer<String> consumer t -> System.out.println(t.toUpperCase()); Consumer<String> consumer (var t) -> System.out.println(t.toUpperCase());错误的形式&#xff1a;必须要有类型&#xff0c;可以加上var Consumer…

JDK11安装教程(WIN10)

文章目录 前言一、Java是什么&#xff1f;二、搭建Java环境1.下载2.安装3.配置环境变量4.检验是否安装成功 总结 前言 从毕业到工作已经快一年了&#xff0c;这一年来&#xff0c;公司给我的发展方向是项目经理&#xff0c;但是第一&#xff0c;工作地点离家太远&#xff1b;第…

【JDK】win 10 / win 11:jdk 8 下载、安装、配置、验证

目录 一、下载 JDK &#xff08;1&#xff09;官网下载 JDK 最新版本 &#xff08;2&#xff09;官网下载 JDK 历史版本&#xff08;示例 Java 8&#xff09; 二、安装 JDK &#xff08;1&#xff09;新建安装目录 jdk 和 jre &#xff08;2&#xff09;启动安装程序 &a…

【JDK】win 10 / win 11:jdk 8 升级为 jdk 17

目录 一、前言 二、历史版本 Java 安装 三、最新版本 Java 安装 &#xff08;1&#xff09;历史版本作废 &#xff08;2&#xff09;最新版本沿用旧版 JDK 系统环境变量 &#xff08;3&#xff09;JDK 17 下载 &#xff08;4&#xff09;JDK 17 安装 &#xff08;5&am…

Windows下安装JDK11(详细版)

简介 在JDK1.8之后的下一个稳定版本就是JDK11&#xff0c;所以下面教大家安装JDK11 第一步:下载 官网下载地址[https://www.oracle.com/java/technologies/javase-jdk11-downloads.html] 拉至页面到底部&#xff0c;选择如下版本下载&#xff0c;然后它可能要Oracle帐号才能…

Windows下安装JDK11(详细)

文章目录 一、简介第一步&#xff1a;下载第二步&#xff1a;安装第三步&#xff1a;设置环境变量第四步&#xff1a;生成 jre 文件第五步&#xff1a;检查是否成功 一、简介 因为JDK1.8版本已经不维护且比较老&#xff0c;故选用下一个稳定的版本&#xff0c;即JDK11。 第一…

win10安装jdk11

win10安装jdk11 jdk11下载与安装下载手动安装免安装配置系统环境变量检测是否安装成功 切换jdk版本 jdk11下载与安装 下载 1.第一步&#xff0c;前往oracle官网下载jdk11 oracle官方下载地址 2.选择要下载的jdk x64 Installer&#xff1a;这个是需要手工安装的版本 x64 Com…

jdk11下载与安装教程(win10)超详细

一、下载安装步骤 1、官网下载还需要注册&#xff0c;可以点【我的网盘】目录下载&#xff0c;密码3360&#xff0c;目录也有其它低版本的&#xff0c;如果有需要大家根据需要自行选择。 2、下载后直接点击安装程序&#xff0c;点击【运行】。这里我使用的是64位的。 3、点击【…

JDK11下载安装、JRE生成、环境配置

一、 下载 JDK11官网下载&#xff1a; Java SE - Downloads | Oracle Technology Network | Oracle 选择自己合适的版本。 二、安装 三、生成JRE 1、安装目录 找到jdk的安装目录 2、jdk11安装目录里面我们可以看到是没有jre的&#xff0c;但是我们在之后可能是会需要用到…

JDK11下载与安装 win10 64位

Java11 为LTS(长期支持)版本。 1.下载JDK11 建议直接找安装包&#xff0c;不要去官网下载。 下面是 jdk11的下载地方 方法1&#xff1a;百度网盘链接&#xff1a;https://pan.baidu.com/s/11yQTrDv653hceNA-wfcFsg 提取码&#xff1a;qgfk 方法2&#xff1a;阿里云盘&#xff1…

2020年最新 java JDK 11 下载、安装与环境变量配置教程

java JDK11下载、安装与环境变量配置 一、下载步骤 首先明确自己的操作系统&#xff08;本次配置jdk操作系统&#xff1a;Windows 10 家庭中文版&#xff09; 下载地址&#xff1a;点击跳转 点击进入下载地址后我们可以看见目前&#xff08;2020/8/15&#xff09;最新版本是…