App Inventor 2 开发问答App

news/2024/5/19 21:39:49/

应用介绍

一个最基本的问答App开发,问答数据源来自csv文件格式,方便后续拓展成网络版的问答App。
事先出好题目、ABCD选择项及正确答案,先存在列表中,然后按顺序出题,答对则继续下一题,答错则Game over。

答题App截图

问答App教程(难度系数:★★)

教程入口:fun123.cn -> 登陆 -> “项目指南” -> 问答App"开始学习"。

App基本逻辑设计

  1. 一开始就把题目及答案出好,按照一定的格式存储(推荐csv格式,即逗号分隔存储)。
  2. 将题目及答案显示在屏幕上。
  3. 处理用户点击答案的事件,判断回答是否正确。

开始出题

题目及答案出好,语数英各来一个,完美!代码如下:

题目及答案出好

每个题目一个字符串组成题目的列表,字符串由题目本身 + 正确答案 + 四个选项组成,中间用英文逗号分隔(注意csv格式一定是英文逗号,中文逗号不符合规范)。

显示题目及答案

添加一个标签及4个按钮,用于显示题目及答案,如下:

添加一个标签4个按钮

定义几个变量:

定义几个变量

定义一个过程“出题”,过程的作用可参考文档。

定义出题过程

屏幕初始化时,开始出题:

屏幕初始化出题

此时,可以验证一下,题目是否可以正常显示在屏幕上。

检查回答是否正确

定义一个过程“检查答案”,设置一个参数“答案”:

定义检查答案过程

ABCD四个按钮分别添加点击事件,分别检查这4种答案:

检查按钮答案

此时,可以试试点击答案按钮,回答是否正确了。

可继续完善的方向

目前只是一个基本的答题框架,可以考虑以下方向继续完善答题App:

  1. 改为读本地csv文件,这样仅通过修改csv文件就可以更新题目库了,而不用修改代码。
  2. 改为通过WebAPI组件访问网络url获取csv格式文件,这样网络端修改即可更新题目库。
  3. 考虑支持多种类型的题目,比如多选、对错题。

http://www.ppmy.cn/news/47258.html

相关文章

C# 中的异步编程模型(Async/Await)和并行编程模型(Parallel)。

C# 中的异步编程模型(Async/Await)和并行编程模型(Parallel)是在处理异步操作和并行处理任务方面非常重要的概念。 异步编程模型(Async/Await): 异步编程模型(Async/Await&#xf…

React 条件渲染组件

组件通常需要根据不同的条件显示不同的内容,以及根据应用的状态变化只渲染其中的一部分。 在 React 中,可以使用 JavaScript 语法有条件地呈现 JSX,比如 if 语句、&&和 ?: 操作符。 根据条件返回 JSX Demo.js 文件: …

Spring之 @Configuration

Spring 提供了丰富的特性和功能,包括依赖注入、面向切面编程、事务管理、数据访问、Web应用程序开发等。其中,Configuration 是 Spring 中的一个注解,它用于标记一个类为配置类,通过配置类可以定义和组装 Spring Bean,…

缓存优化---环境搭建

缓存优化 为什么要使用redis缓存&#xff1f; 问题说明 用户数量多&#xff0c;系统访问大&#xff0c;频繁访问数据库&#xff0c;系统性能下降&#xff0c;用户体验差 环境搭建 maven坐标 在项目中的pom.xml文件中导入spring data redis的maven坐标&#xff1a; <depen…

数据结构---二叉树

专栏&#xff1a;数据结构 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;这里是HaiFan.的数据结构专栏&#xff0c;今天的内容是二叉树。 二叉树 树的概念及结构二叉树概念及结构二叉树的概念二叉树的存储结构 二叉树的顺序结构及实现大根堆和小根堆堆的实现及其各个接口堆…

DLRover: 云上自动扩缩容 DeepRec 分布式训练作业

背景 如今&#xff0c;深度学习已广泛应用在搜索、广告、推荐等业务中&#xff0c;这类业务场景普遍有两个特点&#xff1a; 1&#xff09;训练样本量大&#xff0c;需要分布式训练提升训练速度&#xff1b; 2&#xff09;模型稀疏&#xff0c;即模型结构中离散特征计算逻辑占…

【Vue】学习笔记-Vue生命周期

引出生命周期 生命周期 a.又名生命周期回调函数、生命周期函数、生命周期钩子 b.是什么&#xff1a;vue 在关键时刻帮助我们调用一些特殊名称的函数 c.生命周期函数的名字不可更改&#xff0c;但函数的具体内容是程序员根据需求编写的 d.生命周期函数中的this指向是vm或组件实…

SpringBoot 表单提交全局日期格式转换器

参考资料 SpringBoot–LocalDateTime格式转换(前端入参)SpringBoot InitBinder注解绑定请求参数 目录 一. 实现Converter<S, T>接口的方式二. 全局ControllerAdvice InitBinder注解的方式三. RequestMappingHandlerAdapter的方式四. 效果 分析 ⏹当前台的提交数据的Con…

计及氢能的综合能源优化调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

AI数据标注工程师这个职业怎么样?

本篇文章主要讲解ai数据标注工程师这个职业的具体情况和相关的职业前景 作者&#xff1a;任聪聪 日期&#xff1a;2023年4月18日 数据是ai的灵魂&#xff0c;自然界中相对应的数据都活多少存在不准确、杂乱、无效等属性&#xff0c;需要人为进行收集、整理、分类和处理。其中ai…

最优化方法Python计算:连续函数的单峰区间计算

我们知道&#xff0c;闭区间上的一元连续函数必在区间上取得最大值和最小值。实践中我们需要能数值地确定含有 f ( x ) f(x) f(x)的唯一最优解 x 0 x_0 x0​的区间 [ a , b ] [a,b] [a,b]。这里介绍寻求连续函数 f ( x ) f(x) f(x)在一点 x ∗ x^* x∗附近单峰区间的包围算法及…

学习小程序基础内容之逻辑交互

我们先来看一下实现的效果。 然后再来分享结构。 结构分为左右3:7 分配&#xff0c; 左侧是类别&#xff0c;右侧是该类别对应的品牌。 后台会在onload的请求把左侧的类别返回来&#xff0c;然后我们通过循环把数据展示出来。然后通过点击事件&#xff0c;把对应的品牌请求回来…

学习同步异步的概念,并了解MQ消息队列

文章目录 一、 同步和异步1.1 同步调用1.2 异步调用 二、MQ1.1 介绍1.2 MQ的优点和使用场景 一、 同步和异步 1.1 同步调用 同步调用是一种程序调用方式&#xff0c;在该调用方式中&#xff0c;调用者发起一个请求&#xff0c;然后一直等待被调用者返回响应结果后再继续执行。…

《Android性能优化》一次失败的启动速度优化

正文 在优化APP启动之前&#xff0c;我们首先需要知道&#xff0c;APP启动时究竟发生了什么&#xff0c;才能有的放矢的优化。 APP的启动过程 APP的启动过程就是指&#xff0c;在手机屏幕上点击某个APP的图标&#xff0c;到APP的首页显示在用户面前的过程。 一般APP的启动过…

【数据分析之道-NumPy(三)】numpy切片与索引

文章目录 专栏导读1、前言2、NumPy数组切片2.1一维数组切片2.2多维数组切片 3、NumPy数组索引3.1一维数组索引3.2多维数组索引 4、NumPy数组高级索引4.1整数数组索引4.2布尔数组索引4.3数组索引 总结 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Python领域新星创作…

【一】MATLAB基础知识

【一】MATLAB基础知识 1 数值数据类型的分类 整型 无符号整数&#xff1a;无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。 带符号整数&#xff1a;带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。 无符号8位整数数据范围&#xff…

耗时半月,终于把牛客网上的软件测试面试八股文整理成了PDF合集(测试基础+linux+MySQL+接口测试+自动化测试+测试框架+jmeter测试+测试开发)

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了&#xff0c;考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些程序员了。 这不&#xf…

软件生存周期

软件生存周期 同任何事物一样&#xff0c;一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许 多阶段&#xff0c;一般称为软件生存周期。把整个软件生存周期划分为若干阶段&#xff0c;每个阶段的任务相对 独立&#xff0c;而且比较简单&#xff0c;便于不同人员…

嵌入式Linux(7):字符设备驱动--申请设备号

文章目录 1、字符设备和杂项设备的区别2、注册字符类设备号的两个办法第一种&#xff1a;静态分配一个设备号第二种&#xff1a;动态分配注销设备号 写代码不带参数测试&#xff08;动态分配&#xff09;&#xff1a;带参数测试&#xff08;静态设置&#xff09;&#xff1a; 建…

C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。

目录标题 引言缓存优化数据局部性 数据对齐&#xff1a;优化数据结构的布局&#xff0c;以提高内存访问速度。内存池&#xff1a;为对象分配使用预先分配的内存池&#xff0c;以减少动态内存分配和释放的开销。垃圾收集优化&#xff1a;针对使用垃圾收集的语言&#xff0c;优化…