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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B端系统的颜值问题:成也框架,败也框架!

B端UI框架和前端框架的出现&#xff0c;让系统的搭建就像堆积木一样&#xff0c;十分的容易了。这也一下子把程序员的设计和审美水平拔高到了UI框架能够达到的高度。伴随而来的则是系统的堆砌、同质化、糟糕的体验&#xff0c;以及各种违和的组件被生搬硬套的绑定在一块&#x…

nosql数据库的特点

NoSQL简介 NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称,它所采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。NoSQL数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束。因此…

前端只允许一次函数调用

如果你正在进行前端开发&#xff0c;并且只想允许一次函数调用&#xff0c;你可以使用JavaScript的闭包结构创建一个只能被调用一次的函数。这样的函数有时被称为单次调用函数&#xff08;“one-time call” functions&#xff09;或一次性函数&#xff08;“once” functions&…

网页自动关闭

将【<body 】标签内容复制到网页内容中 <!DOCTYPE html><html><head><title>自动关闭的网页</title></head><body onload"setTimeout(closePage, 5000)"><script>function closePage() {window.close();}</s…

虚拟机开启网络代理设置

前言&#xff1a; 不管是物理主机还是实验环境中的VMware虚拟机&#xff0c;有时候总要访问一些镜像网站或者资源网站拉取一些学习资料&#xff0c;但由于国内外网络环境的差异和网络安全的问题。总是会被阻拦。物理机相对比较容易一些&#xff0c;今天我们来说一说虚拟机应该…

YOLOv8模型训练参数详细解析

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

VSTO Word.net 如何在另外的工程内添加CustomTaskPane

其他工程肯定是不能直接添加CustomTaskPane面板的&#xff0c;但我们可以在ThisAddIn 中先把对应的panel给新建出来再进行隐藏。步骤如下&#xff1a; 1.在另外工程中定义public static CustomTaskPane currMainForm;把需要隐藏的界面赋值给currMainForm&#xff1b; 2.在另外…

酷暑骄阳,热情似火丨deepin校园联盟走进湖北大学,共话开源新篇章

内容来源&#xff1a;deepin&#xff08;深度&#xff09;社区 炎炎夏日&#xff0c;骄阳似火&#xff0c;6月11日&#xff0c;deepin校园联盟湖北大学站交流活动如期举行。在湖北大学计算机与信息工程学院&#xff0c;deepin(深度)社区研发工程师王溢学为热情似火的学子们开展…

手写图片懒加载

参考来自前辈 Aidan路修远i 的文章面试官&#xff1a;请你手写一下&#xff01;懒加载 - 掘金 (juejin.cn) Hello.vue <template><div><!-- src里面为空&#xff0c;data-original里面写图片真正的url(此处省略) --><img src"" data-origina…

【LeetCode滑动窗口算法】长度最小的子数组 难度:中等

我们先看一下题目描述&#xff1a; 解法一&#xff1a;暴力枚举 时间复杂度&#xff1a;o(n^3) class Solution { public:int minSubArrayLen(int target, vector<int>& nums){int i 0, j 0;vector<int> v;for (;i < nums.size();i){int sum nums[i];fo…

HarmonyOS(34) @Track使用指南

Track Track概述使用案例使用条件 Track概述 Track是class对象的属性装饰器。当一个class对象是状态变量时&#xff08;也就是使用State修饰时&#xff09;&#xff0c;Track装饰的属性发生变化&#xff0c;只会触发该属性关联的UI更新&#xff1b;而未被标记的属性不能在UI中…

Elasticsearch-IndexTemplate和DynamicTemplate 有什么区别

Elasticsearch中的Index Template和Dynamic Template是两种不同的概念&#xff0c;它们在索引管理中扮演不同的角色&#xff1a; ### Index Template&#xff08;索引模板&#xff09; 1. **目的**&#xff1a;用于定义新索引的默认设置&#xff0c;包括映射、设置、别名等。 …

Eclipse的下载和安装

Eclipse的下载和安装过程可以归纳为以下几个步骤&#xff1a; 一、下载Eclipse 访问Eclipse的官方网站&#xff1a;http://www.eclipse.org/downloads/。在页面上&#xff0c;你会看到多个下载选项&#xff0c;包括“Download x86_64”等&#xff0c;选择适合你操作系统的版本…

python-windows10普通笔记本跑bert mrpc数据样例0.1.048

python-windows10普通笔记本跑bert mrpc数据样例0.1.000 背景参考章节获取数据下载bert模型下载bert代码windows10的cpu进行训练进行预测注意事项TODOLIST背景 看了介绍说可以在gpu或者tpu上去微调,当前没环境,所以先在windows10上跑一跑,看是否能顺利进行,目标就是训练的…

(精品推荐)培训机构xx教育大型市场活动策划方案

市场现场活动方案 (精品推荐&#xff09;培训机构xx教育大型市场活动策划方案 一、 市场活动意义 市场活动是学校对外宣传和招生的重要方式&#xff0c;好的市场活动可以提升学校以及学校的课程品牌形象。大型的市场活动应该是一项有目的、有计划、有步骤地组织众多人参与的社会…

如何免费用 Qwen2 辅助你翻译与数据分析?

对于学生用户来说&#xff0c;这可是个好消息。 开源 从前人们有一种刻板印象——大语言模型里好用的&#xff0c;基本上都是闭源模型。而前些日子&#xff0c;Meta推出了Llama3后&#xff0c;你可能已经从中感受到现在开源模型日益增长的威力。当时我也写了几篇文章来介绍这个…

Mysql查询分析工具Explain的使用

一、前言 作为一名合格的开发人员&#xff0c;与数据库打交道是必不可少的&#xff0c;尤其是在业务规模和数据体量大规模增长的条件下&#xff0c;应用系统大部分请求读写比例在10:1左右&#xff0c;而且插入操作和一般的更新操作很少出现性能问题&#xff0c;遇到最多的&…

力扣42 接雨水

听说字节每人都会接雨水&#xff0c;我也要会哈哈哈 数据结构&#xff1a;数组 算法&#xff1a;核心是计算这一列接到多少雨水&#xff0c;它取决于它左边的最大值和右边的最大值&#xff0c;如下图第三根柱子能接到的雨水应该是第一根柱子高度和第五根柱子高度的最小值减去第…

Win10超清图库

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Win10每次锁屏时&#xff0c;系统都会展现一张背景图。其实这就是Windows 聚焦&#xff1b;图示如下&#xff1a; 这些图片不但精美&#xff0c;而且会每隔一段时间自动更新…