C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合
上一篇:
C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果
https://blog.csdn.net/beijinghorn/article/details/123478581
C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程
https://blog.csdn.net/beijinghorn/article/details/123350910
C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程
https://blog.csdn.net/beijinghorn/article/details/123434181
真正的程序从数据开始,到数据结束。
先简单复习一下:
(1)前面三节课的代码,有不少不懂的?对的。咱们是沉浸式教学,如同把你扔到大不列颠大街上、大厦里去学习英语。不懂的,先放过!
(2)学习了 Panel 、 Button 以及 WebBrowser 三种组件,和 WindowsForm 程序界面的简单设计方法;WebBrowser 是最好的输出!
(3)知道了 字符串 string 数据类型及其简单的使用方法,做出了彩色的 Hello World 和动画!
(4)学习了随机数 Random,还学了一点 html 的知识。
这节课,学习 C# 的 “数” 与 数值!
所有编程语言都要处理这些数据:字节、(长、短)整数、(单、双精度)浮点数(含专门用于计算金额的金融专用数值)及字符与字符串、object。当然还有这些数据的各种集合。
1、C#数据第一:数字的组合!
C#的常用数据类型是 int 、 double 以及 string。int 是整数(英文 integer) 的简称,默认占据 4 个字节;double 是双精度实数(double precision real number)的简称,占 8 个字节。
int 可以用来表示很大的整数了,包括正负数。比如:双色球的奖池,为 ¥1,854,403,191元 ,大约18亿,就可以用 int 表示:
int winPool = 1854403191;
注:如果奖池超过25亿,能行吗?答:int 不够了,用 long!
一个独立的数值,通常不是程序的主体。一串数据才更有意义,比如一串数字组成的彩票号码!下面学习编写一段程序,随机生成一注彩票号码,或许能中500万呢(:P)。
先用前面 课程学习的方法,创建 WindwosForm,Panel1,Panel2,WebBrowser1 及 Button1,Button2,Button3。

双击 Button1 ,编写(复制)相应的代码:
在 前面加入一行,定义一个随机数发生器 rnd。
public partial class Form1 : Form{Random rnd = new Random();public Form1(){InitializeComponent();}
增加 button1_click 的代码:
private void button1_Click(object sender, EventArgs e)
{// 双色球最多6个红球int redBallMax = 6;// 有效红球数量;int redBall = 0;// 结果字符串,用于保存最后的成果!string redBallString = "<font color=red>";// 循环!while (redBall < redBallMax){// 生成一个红球号码!string oneRedBall = String.Format("{0:D2}", rnd.Next(1, 34));// 如果结果字符串中已经有新代码,不行啊!if (redBallString.Contains(oneRedBall)){continue;}// 添加新号码到结果redBallString += oneRedBall + ",";redBall++;}// 去掉最后的一个逗号!避免被投注站老板骂哦!redBallString = redBallString.Substring(0, redBallString.Length - 1);redBallString += "</font>";// 再加入蓝球!string blueBallString = "<font color=blue>";blueBallString += String.Format("{0:D2}", rnd.Next(1, 17));blueBallString += "</font>";// 号码显示到浏览器webBrowser1.DocumentText = redBallString + "+" + blueBallString;
}
特别要注意其中的逻辑(逻辑是程序的灵魂!):
(1)红球最多6个,不能重复!号码在 01 与 33 之间;
(2)蓝球只有 1个,号码在 01-16 之间。

点击【Button1】 就能生成一注彩票号码!如果现在的时间是每周二、四、日的20:00之前,可以去投注站买彩票哈!中了500万,给俺私信表示一下感谢哦!
2、C#数据之二:合理的组合!
实际上,你拿着上面的彩票号码去购买,老板娘还是会暗暗骂你?新瓜蛋子。
为什么?因为红球顺序乱来,在彩票终端上找来找去,浪费时间撒。
程序员 和 码农 的本质区别就是为谁着想,程序员为他人着想,码农为自己和老板着想。
咱们在上述代码的基础上,做出些改进。要用到新的数据类型:数组!
数组 array ,就是 一组数啊。C# 是这样的:
int oneNumber; // 定义一个数int[] numberArray = new int[34]; // 定义一个存储34个数字的数组
彩票号码、身高数据、数学成绩等等都是一组数,一个方向检索计算即可,称为一维数组;一张Excel表格也是一组数,但需要从两个方向检索计算,称为二维数组;一个房间或飞机座舱内温度的分布,是立体的数据,需要从xyz三个方向检索计算,称为三维数组;一个房间或飞机座舱内温度、不同时间的分布,是超级立体的数据,需要从xyzt四个方向检索计算,称为四维数组;如此可以没完没了......
北京联高软件开发有限公司开发的 Truffer 与 Matlab 一样,支持无限维计算。
改进后的代码,双击【Button2】,写在 button2_click 中,如下:
private void button2_Click(object sender, EventArgs e)
{// 整数数组,记录33个红球的标志int[] redBallArray = new int[34];int redBallMax = 6;int redBall = 0;while (redBall < redBallMax){// 生成一个随机的红球数字int oneRedBall = rnd.Next(1, 34);// 标志位已经设置,再来!if (redBallArray[oneRedBall] == 1){continue;}// 设置标志位redBallArray[oneRedBall] = 1;redBall++;}// 从01开始检索每个标志位int redBallIndex = 1;string redBallString = "<font color=red>";while (redBallIndex < redBallArray.Length){if (redBallArray[redBallIndex] == 1){redBallString += String.Format("{0:D2}", redBallIndex) + ",";}redBallIndex++;}redBallString = redBallString.Substring(0, redBallString.Length - 1);redBallString += "</font>";// 蓝球string blueBallString = "<font color=blue>";blueBallString += String.Format("{0:D2}", rnd.Next(1, 17));blueBallString += "</font>";// 显示500万中奖号码 :PwebBrowser1.DocumentText = redBallString + "+" + blueBallString;
}
更多数值与数学的花样,且听下回及所有下回分解。
——————————————————————
POWER BY 315SOFT.COM &
TRUFFER.CN
下一篇:
C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示
https://blog.csdn.net/beijinghorn/article/details/124675293
相关文章:
C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合
上一篇: C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果https://blog.csdn.net/beijinghorn/article/details/123478581 C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net…...
UWB高精度定位技术在智能仓储中的应用
在智能化和数字化转型的浪潮中,UWB高精度定位系统逐渐成为企业优化仓储管理和生产调度的关键技术。结合RFID标签打印机和服装生产型ERP软件,这一技术为企业带来了全新的管理方式和效率提升。 UWB高精度定位系统的核心优势 UWB(超宽带&…...
计算机毕业设计hadoop+spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制
目录 一、背景 二、核心特性 2.1 AI驱动的代码自动生成 2.2 智能问答与代码补全 2.3 多语言支持 2.4 插件与扩展 三、架构 四、下载使用 4.1 下载与安装 4.2 界面与配置 五、应用实践 5.1 快速生成代码 5.2 智能问答与调试 5.3 团队协作与代码审查 六、与Cursor…...
CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅
CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅 🌟 默语,是一位在技术分享与社区建设中坚持深耕的博客作者。今年,我有幸再次入围成为 CSDN 博客之星TOP300 的一员,这既是对过往努力的肯定,也是对未来探…...
《探秘鸿蒙Next:非结构化数据处理与模型轻量化的完美适配》
在鸿蒙Next的人工智能应用场景中,处理非结构化数据并使其适配模型轻量化需求是一项关键且具有挑战性的任务。以下是一些有效的方法和策略。 数据预处理 数据清洗:非结构化数据中往往存在噪声、重复和错误数据。对于文本数据,要去除乱码、特殊…...
async++库的使用示例
1、普通异步函数 如前面的博客介绍的,这个库中提供了async::spawn方法,这个方法通常用来启动异步函数,这个框架会利用线程池去完成函数,因此要注意数据安全。正因为将任务放到了单独的线程执行,并且还有调度开销&…...
springboot基于微信小程序的手机银行系统
Spring Boot基于微信小程序的手机银行系统是一种结合现代Web技术和移动应用优势的创新金融服务平台。 一、系统背景与意义 随着信息技术的快速发展和用户对便捷金融服务需求的日益增长,传统手机银行系统的人工管理方法已逐渐显露出效率低下、安全性低以及信息传输…...
25/1/22 算法笔记<ROS2> TF变换
TF(Transform) 是 ROS(Robot Operating System)中的一个核心功能,用于管理和发布坐标系之间的变换关系。TF 的主要作用是描述机器人系统中各个部分(如传感器、执行器、底盘等)之间的位置和姿态关…...
Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普
引言: 今天我们聊聊Android生态中最“硬核”的话题:通用内核镜像(GKI)与内核模块接口(KMI)。这是内核碎片化终结者的秘密武器,解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…...
dp 凸优化
时间有点仓促,过几天会补。 来自 czz 学长的课,SMWC -> Day4 。 目录 凸函数介绍WQS二分1. P2619【国家集训队 2】Tree I2. CF739E Gosha is hunting 闵可夫斯基和1. QOJ-5421 Factories Once More2. GD 省集 tower Slope Trick1. CF713C2. ABC217H3.…...
详细介绍:Kubernetes(K8s)的技术架构(核心概念、调度和资源管理、安全性、持续集成与持续部署、网络和服务发现)
目录 前言1、K8s架构概述1.1、控制面(Control Plane)1.2、工作节点(Worker Node) 2、Kubernetes核心概念2.1、Pod2.2、ReplicaSet2.3、Deployment2.4、Service2.5、Namespace2.6、ConfigMap与Secret2.7、Persistent Volume&#x…...
[SAP ABAP] Dialog屏幕开发
Dialog屏幕开发在SAP ABAP环境中被广泛应用于创建交互式的用户界面,允许终端用户与应用程序进行互动 Dialog屏幕开发相关资料 [Dialog屏幕开发] 设置GUI Status 菜单/GUI Title 标题 [Dialog屏幕开发] 屏幕绘制(文本/输入框/按钮控件)...
安全测试之 SSTI 模板注入入门
文章目录 一、什么是SSTI?二、python 中的 Jinja2 漏洞验证三、Java 的 Thymeleaf 模版漏洞验证四、小结 一、什么是SSTI? SSTI(Server-Side Template Injection)是一种服务器端模板注入漏洞,它出现在使用模板引擎的W…...
滑动窗口解题模板
滑动窗口适用于固定长度的窗口问题,或者需要动态维护一个窗口的场景。 模板 public int slidingWindowTemplate(int[] nums, int k) { int n nums.length; int maxSum 0; // 记录最大值(或最小值) int windowSum 0; // 当前窗口的值 …...
SOC和SOH的含义
SOC 和 SOH 是在电池管理系统中常见的两个概念,通常用于描述电池的状态,以下是具体解释: SOC(State of Charge) 定义:荷电状态,也叫剩余电量,反映的是电池在一定条件下当前所剩余的…...
Genetic Prompt Search via Exploiting Language Model Probabilities
题目 利用语言模型概率的遗传提示搜索 论文地址:https://www.ijcai.org/proceedings/2023/0588.pdf 项目地址:https://github.com/zjjhit/gap3 摘要 针对大规模预训练语言模型(PLMs)的即时调优已经显示出显著的潜力,尤其是在诸如fewshot学习…...
1561. 你可以获得的最大硬币数目
class Solution:def maxCoins(self, piles: List[int]) -> int:piles.sort()res,n0,len(piles)for i in range(n//3):respiles[n-2-2*i]return res这里如果"你"想要获取最大,那么从最大的开始找 每隔俩算一个最大累计,Bob默认自己从最小那找…...
DNA结合之Motif_1:CNN
1,首先可以识别在KO前后的motif——》由CNN模型做出识别,看看这个有没有什么灵感 2,ZNF143等都可以使用来识别 3,暂时只使用单个peak文件,后期可以使用ENCODE中所有的对应的TF的peak文件 1,文件解压之后…...
kong 网关和spring cloud gateway网关性能测试对比
该测试只是简单在同一台机器设备对spring cloud gateway网关和kong网关进行对比,受限于笔者所拥有的资源,此处仅做简单评测。 一、使用spring boot 的auth-service作为服务提供者 该服务提供了一个/health接口,接口返回"OK"&…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
