哇塞不!赛博时代云上自动化辅导孩子学习。

news2024/11/20 13:45:00

背景

孩子天天上网看动画片,都幼儿园大班了还不会100以内的加减法,因为我平时还需要忙着工作不能天天陪着孩子。
这次我们整个活,让孩子每天心甘情愿的做100道题。而且电脑还要给孩子一些提醒,即使做错了也会不厌其烦的给孩子提示计算的方法,每做对一道题还会鼓励孩子坚持学习。
无论是做对还是做错了题,都要存到C盘根目录里,这样等下班回来了还可以针对孩子做错的题分析和加强训练。

做一个让孩子输入数学运算的成绩

用VB.Net做的程序
为了能够实现让孩子在算完数学题之前不能用电脑,我们要拿出祖传的VB.Net语言
在这里插入图片描述
主窗体把TopMost勾上,界面就会永远覆盖在其他界面之上,孩子就没办法擅自打开网页和游戏了
在这里插入图片描述
外观FormBorderStyle选择None,这样界面就不会显示最大化、最小化、关闭按钮了

在这里插入图片描述
屏幕初始位置设置为CenterScreen(居中),窗口状态设置为Maximized(最大化),这样就能实现全屏效果
在这里插入图片描述
把控件都拖拽到界面上,属性栏里可以设置一下界面背景、文字颜色、文字大小
在这里插入图片描述
为了能用系统自带的文字转语音功能,让程序能和孩子互动说话,还需要加上System.Speech引用
然后重点来了,我们双击窗体任意空白位置,开始写代码

Imports System.Speech.Synthesis
Public Class Form1
    ' 第一个数
    Dim a As Integer = 0
    ' 第二个数
    Dim b As Integer = 0
    ' 符号
    Dim c As Integer = 0
    ' 正确得数
    Dim d As Integer = 0
    ' 得分
    Dim score As Integer = 0
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        出题()
    End Sub

    Private Sub 出题()
Start:
        Dim rand As New Random()
        a = rand.Next(100)
        b = rand.Next(100)
        c = rand.Next(2)

        If c = 0 Then
            If a + b > 100 Then
                GoTo Start
            End If
            d = a + b
            Label1.Text = a & "+" & b & "="
        ElseIf c = 1 Then
            If a - b < 0 Then
                GoTo Start
            End If
            d = a - b
            Label1.Text = a & "-" & b & "="
        End If

        Dim thread As New Threading.Thread(AddressOf say)
        thread.Start()

        Label2.Text = "得分:" & score
    End Sub

    Private Sub say()
        SpeakText(Label1.Text.Replace("-", "减").Replace("+", "加").Replace("=", "等于多少"))
    End Sub

    Private Sub yes()
        Dim a = New Random().Next(10)
        Dim text = ""
        Select Case a
            Case 0
                text = "对啦!你好聪明!"
            Case 1
                text = "哇,天才!"
            Case 2
                text = "太棒了!"
            Case 3
                text = "未来的科学家!"
            Case 4
                text = "数学不错!"
            Case 5
                text = "好极了!"
            Case 6
                text = "你真优秀!"
            Case 7
                text = "答对啦!"
            Case 8
                text = "不错哦!"
            Case 9
                text = "继续保持,加油!"
        End Select
        SpeakText(text)
    End Sub

    Private Sub no()
        Dim text = "再想想"

        Dim 算式 = Label1.Text.Replace("=", "")
        If 算式.Contains("+") Then
            Dim 数字 As String() = 算式.Split("+")
            Dim 数字1 As Integer = 数字(0)
            Dim 数字2 As Integer = 数字(1)
            If HasCarry(数字1, 数字2) Then
                text &= ",这是个加法进位题,个位凑十之后剩下的就是新的个位,而且不要忘了进位"
            Else
                text &= ",这道题对你来说不难"
            End If
        ElseIf 算式.Contains("-") Then
            Dim 数字 As String() = 算式.Split("-")
            Dim 数字1 As Integer = 数字(0)
            Dim 数字2 As Integer = 数字(1)
            If NeedsBorrow(数字1, 数字2) Then
                text &= ",这个是减法退位题,不够减我们要借一个十,最后不要忘了十位上要退位"
            Else
                text &= ",这道题对你来说不难"
            End If
        End If

        SpeakText(text)
    End Sub

    Public Function NeedsBorrow(a As Integer, b As Integer) As Boolean
        If a Mod 10 < b Mod 10 Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function HasCarry(a As Integer, b As Integer) As Boolean
        If a Mod 10 + b Mod 10 > 9 Then
            Return True
        Else
            Return False
        End If
    End Function

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            If TextBox1.Text = d.ToString Then
                IO.File.AppendAllLines("C:\答对题目.txt", New String() {Label1.Text & TextBox1.Text})
                score += 1
                If score >= 100 Then
                    SpeakText("宝贝,恭喜你全部答对了,你真聪明!现在可以看动画片了,拜拜!")
                    End
                End If
                yes()
                出题()
            Else
                Dim thread As New Threading.Thread(AddressOf no)
                thread.Start()
                IO.File.AppendAllLines("C:\错题本.txt", New String() {Label1.Text & TextBox1.Text})
            End If
            TextBox1.Text = ""
            TextBox1.Focus()
        End If
    End Sub

    Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
        TextBox1.Focus()
    End Sub

    Public Sub SpeakText(text As String)
        Try
            Using synth As New SpeechSynthesizer()
                synth.SetOutputToDefaultAudioDevice() '设置输出音频设备(默认)
                synth.Speak(text) '朗读文本
            End Using
        Catch ex As Exception

        End Try
    End Sub
End Class

加上监控手段

配合上向日葵远程桌面观看和萤石云摄像头,就可以随时查看孩子是否在学习了
在这里插入图片描述phone
有的时候孩子跑去玩别的,或者注意力不集中,则可以用系统自带的文本转语音把孩子叫回来(监控对讲也有相同的效果,不过就没有电脑对孩子的神秘感了)
在这里插入图片描述

实际使用效果

用了大概一周的时间,孩子已经把100以内的加减法练的非常熟练了,家里的老人和保姆都夸这解决方案是真的让人很省心。现在孩子每天甚至会主动打开电脑把100道题做完,因为着急要用电脑看动画片。达到了想要的效果。

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

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

相关文章

图像颜色空间转换

目录 1.图像颜色空间介绍 RGB 颜色空间 2.HSV 颜色空间 3.RGBA 颜色空间 2.图像数据类型间的互相转换convertTo() 3.不同颜色空间互相转换cvtColor() 4.Android JNI demo 1.图像颜色空间介绍 RGB 颜色空间 RGB 颜色空间是最常见的颜色表示方式之一&#xff0c;其中 R、…

【C++】—— 异常处理

前言&#xff1a; 本期&#xff0c;我将给大家讲解的是有关 异常处理 的相关知识&#xff01; 目录 &#xff08;一&#xff09;C语言传统的处理错误的方式 &#xff08;二&#xff09;C异常概念 &#xff08;三&#xff09;异常的使用 1、异常的抛出和捕获 1️⃣ 异常的…

Windows Qt 5.12.10下载与安装

Qt 入门实战教程&#xff08;目录&#xff09; C自学精简实践教程 目录(必读) 1 Qt5.12.10下载 qt-opensource-windows-x86-5.12.10.exe 官方离线安装包 Download Source Package Offline Installers | Qt 下载巨慢&#xff08;也可能很快&#xff09; 只能下载到最新的&…

C语言——类型转换

数据有不同的类型&#xff0c;不同类型数据之间进行混合运算时涉及到类型的转换问题。 转换的方法有两种&#xff1a; 自动转换(隐式转换)&#xff1a;遵循一定的规则&#xff0c;由编译系统自动完成强制类型转换&#xff1a;把表达式的运算结果强制转换成所需的数据类型 语法格…

自动化测试(三):接口自动化pytest测试框架

文章目录 1. 接口自动化的实现2. 知识要点及实践2.1 requests.post传递的参数本质2.2 pytest单元测试框架2.2.1 pytest框架简介2.2.2 pytest装饰器2.2.3 断言、allure测试报告2.2.4 接口关联、封装改进YAML动态传参&#xff08;热加载&#xff09; 2.3 pytest接口封装&#xff…

20 MySQL(下)

文章目录 视图视图是什么定义视图查看视图删除视图视图的作用 事务事务的使用 索引查询索引创建索引删除索引聚集索引和非聚集索引影响 账户管理&#xff08;了解非DBA&#xff09;授予权限 与 账户的相关操作 MySQL的主从配置 视图 视图是什么 通俗的讲&#xff0c;视图就是…

编绎和优化,脚本代码小米加步枪赶超英法美

编程达人&#xff1a;冰冻牡蛎 测试&#xff0c;总结》》 今有空&#xff0c;继续看了一下竹笋大师几天前提出的“使用for循环查找10亿内可被7整除的数的个数”的题目&#xff08;相关文件&#xff1a;群文件 10亿以内多少个数字可以整除7.7z &#xff09; 1. 论输出的exe大小…

Pytorch-以数字识别更好地入门深度学习

目录 一、数据介绍 二、下载数据 三、可视化数据 四、模型构建 五、模型训练 六、模型预测 一、数据介绍 MNIST数据集是深度学习入门的经典案例&#xff0c;因为它具有以下优点&#xff1a; 1. 数据量小&#xff0c;计算速度快。MNIST数据集包含60000个训练样本和1000…

Java实现根据商品ID获取1688商品详情跨境属性数据,1688商品重量数据接口,1688API接口封装方法

要通过1688的API获取商品详情跨境属性数据&#xff0c;您可以使用1688开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过1688开放平台API获取商品详情属性数据接口&#xff1a; 首先&#xff0c;确保您已注册成为1688开放平台的开发者…

网工内推 | IT网工,华为、华三认证优先,15k*13薪

01 广东善能科技发展股份有限公司 招聘岗位&#xff1a;IT网络工程师 职责描述&#xff1a; 1、负责公司项目售后技术支持工作&#xff1b; 2、负责项目交付实施&#xff0c;配置调试、运维等&#xff1b; 3、参加合作厂商产品技术知识培训&#xff1b; 4、参加合作厂商工程师…

运维Shell脚本小试牛刀(二)

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 一: if---else.....fi 条件判断演示 [rootwww shelldic]# cat checkpass.sh #!/bin/bash - # # # # FILE: checkpass.sh # USAGE: ./checkpass.sh # DESCRI…

贝叶斯人工智能大脑与 ChatGPT

文章目录 一、前言二、主要内容 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;https://arxiv.org/abs/2308.14732 这篇论文旨在研究 Chat Generative Pre-trained Transformer&#xff08;ChatGPT&#xff09;在贝叶斯…

【AI】数学基础——高数(积分部分)

高数&#xff08;函数&微分部分&#xff09; 文章目录 1.4 微积分1.4.1 基本思想1.4.2 定积分定义定义计算定积分定积分性质定理N-L公式泰勒公式麦克劳林公式 1.5 求极值1.5.1 无条件极值1.5.2 条件极值1.5.3 多条件极值1.5.4 凹函数与凸函数 1.4 微积分 用于求解速度、面积…

开始MySQL之路——MySQL 事务(详解分析)

MySQL 事务概述 MySQL 事务主要用于处理操作量大&#xff0c;复杂度高的数据。比如说&#xff0c;在人员管理系统中&#xff0c;你删除一个人员&#xff0c;你即需要删除人员的基本资料&#xff0c;也要删除和该人员相关的信息&#xff0c;如信箱&#xff0c;文章等等&#xf…

JS小球绕着椭圆形的轨迹旋转并且近大远小

在ivx中案例如下&#xff1a; VxEditor 效果如下&#xff0c;近大远小 主要代码如下&#xff1a; const centerX 360 / 2; // 椭圆中心的X坐标 const centerY 120 / 2; // 椭圆中心的Y坐标 const a 100; // 长半轴 const b 60; // 短半轴const elementsWithClassName d…

uniapp项目实战系列(1):导入数据库,启动后端服务,开启代码托管

目录 前言前期准备1.数据库的导入2.运行后端服务2.1数据库的后端配置2.2后端服务下载依赖&#xff0c;第三方库2.3启动后端服务 3.开启gitcode代码托管 ✨ 原创不易&#xff0c;还希望各位大佬支持一下&#xff01; &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&…

虚拟化技术:云计算发展的核心驱动力

文章目录 虚拟化技术的概念和作用虚拟化技术的优势虚拟化技术对未来发展的影响结论 &#x1f389;欢迎来到AIGC人工智能专栏~虚拟化技术&#xff1a;云计算发展的核心驱动力 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系…

RabbitMQ---Spring AMQP

Spring AMQP 1. 简介 Spring有很多不同的项目&#xff0c;其中就有对AMQP的支持&#xff1a; Spring AMQP的页面&#xff1a;http://spring.io/projects/spring-amqp 注意这里一段描述&#xff1a; Spring-amqp是对AMQP协议的抽象实现&#xff0c;而spring-rabbit 是对协…

如何在有或没有WiF适配器的情况下把台式机接入WiFi

Wi-Fi在台式电脑中越来越普遍,但并不是所有的台式电脑都有。添加Wi-Fi,你就可以无线连接到互联网,并为其他设备托管Wi-Fi热点。 这是一个简单、廉价的过程。买一个合适的小适配器,你甚至可以随身携带,通过将一个小设备插入USB端口,可以快速将Wi-Fi添加到你遇到的任何桌面…

Particle Life粒子生命演化的MATLAB模拟

Particle Life粒子生命演化的MATLAB模拟 0 前言1 基本原理1.1 力影响-吸引排斥行为1.2 距离rmax影响 2 多种粒子相互作用2.1 双种粒子作用2.1 多种粒子作用 3 代码 惯例声明&#xff1a;本人没有相关的工程应用经验&#xff0c;只是纯粹对相关算法感兴趣才写此博客。所以如果有…