vb.net小demo(计算器、文件处理等/C#也可看)
Demo1:使用窗体控件实现一个简易版计算器

Public Class Form1Private Sub Button_1_Click(sender As Object, e As EventArgs) Handles Button_1.ClickCalSubBox.Text += Button_1.TextEnd SubPrivate Sub Button_2_Click(sender As Object, e As EventArgs) Handles Button_2.ClickCalSubBox.Text += Button_2.TextEnd SubPrivate Sub Button_3_Click(sender As Object, e As EventArgs) Handles Button_3.ClickCalSubBox.Text += Button_3.TextEnd SubPrivate Sub Button_4_Click(sender As Object, e As EventArgs) Handles Button_4.ClickCalSubBox.Text += Button_4.TextEnd SubPrivate Sub Button_5_Click(sender As Object, e As EventArgs) Handles Button_5.ClickCalSubBox.Text += Button_5.TextEnd SubPrivate Sub Button_6_Click(sender As Object, e As EventArgs) Handles Button_6.ClickCalSubBox.Text += Button_6.TextEnd SubPrivate Sub Button_7_Click(sender As Object, e As EventArgs) Handles Button_7.ClickCalSubBox.Text += Button_7.TextEnd SubPrivate Sub Button_8_Click(sender As Object, e As EventArgs) Handles Button_8.ClickCalSubBox.Text += Button_8.TextEnd SubPrivate Sub Button_9_Click(sender As Object, e As EventArgs) Handles Button_9.ClickCalSubBox.Text += Button_9.TextEnd SubPrivate Sub Button_0_Click(sender As Object, e As EventArgs) Handles Button_0.ClickCalSubBox.Text += Button_0.TextEnd SubPrivate Sub Button_Add_Click(sender As Object, e As EventArgs) Handles Button_Add.ClickCalSubBox.Text += Button_Add.TextEnd SubPrivate Sub Button_Sub_Click(sender As Object, e As EventArgs) Handles Button_Sub.ClickCalSubBox.Text += Button_Sub.TextEnd SubPrivate Sub Button_Mul_Click(sender As Object, e As EventArgs) Handles Button_Mul.ClickCalSubBox.Text += Button_Mul.TextEnd SubPrivate Sub Button_Exc_Click(sender As Object, e As EventArgs) Handles Button_Exc.ClickCalSubBox.Text += Button_Exc.TextEnd SubPrivate Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.ClickCalSubBox.Text += "."End SubPrivate Sub Button_CE_Click(sender As Object, e As EventArgs) Handles Button_CE.ClickResultBox.Text = vbNullStringCalSubBox.Text = ""N_S = ""End SubPrivate Sub Button_C_Click(sender As Object, e As EventArgs) Handles Button_C.ClickResultBox.Text = vbNullStringCalSubBox.Text = ""N_S = ""End SubPublic Result As DoublePublic ErrMsg As String = "正无穷大"Private Sub Button_Equal_Click(sender As Object, e As EventArgs) Handles Button_Equal.ClickTryDim result = New DataTable().Compute(CalSubBox.Text, Nothing) '将一个表达式进行运算ResultBox.Text = result '将结果显示出来If (ErrMsg = ResultBox.Text) ThenResultBox.Text = "除数不能为0"End IfCatch ex As ExceptionMsgBox("无法计算:" & ex.Message)End TryDim Split_Str As String() = CalSubBox.Text.Split({"+"c, "-"c, "/"c, "*"c}) 'Split_Str是分割后的单个字符串DelZero(Split_Str)Console.WriteLine("新字符串:" & N_S)CalSubBox.Text = DelLastChar(N_S) '去掉最后一个字符,展示到文本框中End SubFunction DelLastChar(s As String)Return s.Substring(0, s.Length - 1)End FunctionFunction DelZero(ByVal StrArr As String())Dim Op_StrArr As String = GetOperateStr(CalSubBox.Text) '[+,-] 先获取整个字符串列表Dim Op_Str As StringFor i = 0 To StrArr.Length - 1 ' strArr实质上是分割后的单个字符串Console.WriteLine("第" & i + 1 & "次" & vbNewLine)Dim DelZero_S As String = StrArr(i).TrimStart({"0"c}) 'DelZero_S是抹零后的单个字符串、Console.WriteLine("抹零后:" & DelZero_S)If Not i = Op_StrArr.Length Then '最后一次不需要获取Op_Str = Op_StrArr(i) '获取当前的单个操作数,从字符串数组中获取End IfConsole.WriteLine("操作数:" + Op_Str)N_S += DelZero_S + Op_Str '将抹零的字符串 与 当前操作数拼接 '最后一次的单个操作数不变,用DelLastChar去掉即可Console.WriteLine("N_S:" & N_S)Console.WriteLine(" DelZero_S:" & DelZero_S)NextReturn N_SEnd FunctionFunction GetOperateStr(ByVal StrArr As String) '获取操作数,返回一个存放操作数的字符串数组Dim NewStrArr As String = ""For i = 0 To StrArr.Length - 1 '获取下标,从Index开始寻找第一个操作数,而不是重新开始If StrArr(i) = "+" Or StrArr(i) = "-" Or StrArr(i) = "*" Or StrArr(i) = "/" ThenNewStrArr += StrArr(i)End IfNextReturn NewStrArr '字符串数组[+,-,]End FunctionPrivate Sub Button_Backspace_Click(sender As Object, e As EventArgs) Handles Button_Backspace.ClickTryCalSubBox.Text = CalSubBox.Text.Substring(0, CalSubBox.Text.Length - 1) '回退一个字符:将字符串截取0,end-1赋值回去即可Catch ex As ExceptionMsgBox("发生错误:" & ex.Message)CalSubBox.Text = ""End TryEnd SubEnd Class
Demo2:对文件进行处理
要求:1.去掉当前文件的第一行
2.从第二行开始算,保留奇数行,去掉偶数行
3.将每一行的分隔符改为“/”
4.将每一行的2位和3位数字调换位置
5.将每一个数字保留2位小数
Imports System.IOModule Module1Sub Main()Dim fr As New StreamReader("E:\T4-2.txt") '这里存放要处理的文件路径Dim fw As New StreamWriter("C:\Users\Public\Desktop\T4-2-处理.txt") '写到桌面的fw流的路径Dim data As String = ""Dim data1 As String = ""Dim new_data As String = ""fr.ReadLine() '跳过第一行中文字体,相当于第0行While data <> " " 'data读奇数行,data1读偶数行,遇到空格行就退出data = fr.ReadLine() '读取第一/三/五...行数据,并把读的内容赋值给当前data(data每次循环都会被重新赋值)If data = Nothing Then Exit While '当data读到空格行就退出循环,下同new_data = replace_splitChar(data) '将读取的data替换字符并返回给新data,此时的新data可以被写出Console.WriteLine("newData:" + new_data)fw.WriteLine(new_data, True) '写出 (重写)data1 = fr.ReadLine() '跳过第二/四/六...行,If data1 = Nothing Then Exit While 'End Whilefr.Close()fw.Close()Console.WriteLine("已输出到桌面、按下任意键退出.....")Console.ReadKey()End SubFunction replace_splitChar(ByVal charStr As String)Dim new_str As String = "" '用一个新的Str来拼接/Dim new_str1 As String = ""Dim strArr As String() = charStr.Split(",") '分隔为字符串数组["110","23","12"]For Each s In strArr'把每个字符串保留两位小数Dim f_s = Double.Parse(s).ToString("0.00") 'f_s是保留两位小数的当前字符串new_str += f_s & "/" '拿到每一个字符串并拼接/ 赋值给新StrNext'交换的代码Dim strArr1 As String() = new_str.Split("/") '对newstr进行交换操作For i = 0 To new_str.Length - 1 'strArr就是字符串数组new_str1 = strArr1(0) + "/" + exchange(strArr(1), strArr(2)) + "/" + strArr1(3)NextReturn new_str1End FunctionFunction exchange(ByVal StrA As String, ByVal StrB As String) As String '将两个字符串进行交换位置的函数StrA = Double.Parse(StrA).ToString("0.00") '先转换再交换StrB = Double.Parse(StrB).ToString("0.00")Return StrB + "/" + StrAEnd FunctionEnd Module
Demo3:OPenDialog和SaveDialog对话框案例(包括ToolStripMenu)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickOpenFileDialog1.InitialDirectory = "D:\"OpenFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"OpenFileDialog1.Title = "打开文件"' .RestoreDirectory = True '对话框关闭之前还原至当前目录If OpenFileDialog1.ShowDialog() = DialogResult.OK ThenfileName = OpenFileDialog1.FileName 'OpenFileDialog1已经拿到文件名了fr = New StreamReader(fileName) '创建fileReader流通过文件名来读取文件RichTextBox1.Text = fr.ReadToEnd() 'fr已经获取到文件的所有信息,使用ReadToEnd()获取其内容fr.Close()End IfEnd SubPrivate Sub 打开文件ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 打开文件ToolStripMenuItem.ClickOpenFileDialog1.InitialDirectory = "D:\"OpenFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"OpenFileDialog1.Title = "打开文件"' .RestoreDirectory = True '对话框关闭之前还原至当前目录If OpenFileDialog1.ShowDialog() = DialogResult.OK ThenfileName = OpenFileDialog1.FileName 'OpenFileDialog1已经拿到文件名了fr = New StreamReader(fileName) '创建fileReader流通过文件名来读取文件RichTextBox1.Text = fr.ReadToEnd() 'fr已经获取到文件的所有信息,使用ReadToEnd()获取其内容fr.Close()End IfEnd Sub
相关文章:
vb.net小demo(计算器、文件处理等/C#也可看)
Demo1:使用窗体控件实现一个简易版计算器 Public Class Form1Private Sub Button_1_Click(sender As Object, e As EventArgs) Handles Button_1.ClickCalSubBox.Text Button_1.TextEnd SubPrivate Sub Button_2_Click(sender As Object, e As EventArgs) Handles …...
【vue3|第8期】深入理解Vue 3 computed计算属性
日期:2024年6月10日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方…...
《精通ChatGPT:从入门到大师的Prompt指南》附录C:专业术语表
附录C:专业术语表 本附录旨在为读者提供一本全面的术语表,帮助理解《精通ChatGPT:从入门到大师的Prompt指南》中涉及的各种专业术语。无论是初学者还是高级用户,这些术语的定义和解释将为您在使用ChatGPT时提供重要参考。 A AI&…...
YOLOv8可视化界面PYQT5
yolov8,可视化界面pyqt。支持图片检测,视频检测,摄像头检测等,实时显示检测画面。支持自定义数据集,计数,fps展示……,即插即用,无需更改太多代码...
远程代码执行和远程命令执行是一个东西吗
远程代码执行(Remote Code Execution,简称RCE)和远程命令执行在概念上有所区别,但两者都涉及到攻击者通过远程方式在目标系统上执行代码或命令。以下是两者的详细比较: 定义: 远程代码执行(RCE…...
C++ 20新特性之线程与jthread
💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 为什么要引入jthread 在C 11中,已经引入了std::thread。std::thread为C标准库带来了一流的线程支持,极大地促进了多线程…...
赶紧收藏!2024 年最常见 20道并发编程面试题(七)
上一篇地址:赶紧收藏!2024 年最常见 20道并发编程面试题(六)-CSDN博客 十三、什么是线程局部存储(Thread-Local Storage)? 线程局部存储(Thread-Local Storage,简称TLS…...
HAL库开发--第一盏灯
知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 需求 开发流程 项目创建 芯片配置 功能配置 时钟配置 项目配置 编写代码 编译测试 烧录失败解决 编辑 总结 前言 在嵌入式系统开发中,掌握HAL库开发流程、STMCubeMX配置过程以及…...
Linux C语言:变量的作用域和生命周期(auto、register、static和extern)
一、变量存储类型-auto 1、auto变量的说明 变量在程序中使用时,必须预先说明它们的存储类型和数据类型。 变量说明的一般形式是: <存储类型> <数据类型 > <变量名> ; <存储类型>是关键词auto、register、static和extern<…...
AI Stable diffusion 报错:稳定扩散模型加载失败,退出
可能是内存不够,看看你最近是加了新的大的模型,可以把你的stable-diffusion-webui\models\Stable-diffusion目录下的某个ckpt删除掉,可能ckpt太大,无法加载成功; Stable diffusion model failed to load, exiting 如图…...
[Python学习篇] Python循环语句
while 循环 语法: while 条件: 条件成立后会重复执行的代码 ...... 示例1:死循环 # 这是一个死循环示例 while True:print("我正在重复执行")示例2:循环指定次数 i 1 while i < 5:print(f"执行次数 {i}")…...
MongoDB 正则表达式
MongoDB 正则表达式 MongoDB 是一个流行的 NoSQL 数据库,它提供了强大的查询功能,包括对正则表达式的支持。正则表达式是一种强大的文本搜索工具,它允许用户根据特定的模式匹配和搜索字符串。在 MongoDB 中,正则表达式可以用于查…...
Django配置连接池:使用django-db-connection-pool配置连接池
一、该三方库文档使用 github地址: https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdhttps://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本,查看指定版本的文档和配置&am…...
SpringBoot整合钉钉实现消息推送
前言 钉钉作为一款企业级通讯工具,具有广泛的应用场景,包括但不限于团队协作、任务提醒、工作汇报等。 通过Spring Boot应用程序整合钉钉实现消息推送,我们可以实现以下功能: 实时向指定用户或群组发送消息通知。自定义消息内容…...
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
🔥 个人主页:空白诗 文章目录 引言一、集成学习的定义二、Bagging方法1. 随机森林(Random Forest)2. 其他Bagging方法 二、Boosting方法1. 梯度提升树(Gradient Boosting Machine, GBM)解释GBM的基本原理和…...
工业 web4.0 的 UI 卓越非凡
工业 web4.0 的 UI 卓越非凡...
C语言 | Leetcode C语言题解之第145题二叉树的后序遍历
题目: 题解: void addPath(int *vec, int *vecSize, struct TreeNode *node) {int count 0;while (node ! NULL) {count;vec[(*vecSize)] node->val;node node->right;}for (int i (*vecSize) - count, j (*vecSize) - 1; i < j; i, --j)…...
如何在 Vue 3 中使用 vue3-print-nb 实现灵活的前端打印
你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧! 前言 在前端开…...
Go Module详解
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
基于51单片机的智能水表
一.硬件方案 本设计主要以51单片机作为主控处理器的智能水表,该水表能够记录总的用水量和单次用水量,当用水量超出设定值时系统发出声光报警提醒,水量报警值能够通过按键进行自行设置,并且存储于AT24C02中,并且可以测…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
