电脑报2022年第24期Scratch制作通讯录管理系统存在的小瑕疵

发布于:2023-01-15 ⋅ 阅读:(649) ⋅ 点赞:(0)

简介:本文介绍电脑报2022年第24期“编程  创客“专栏介绍的编程文章《Scratch制作通讯录管理系统》在Scratch3.0环境下遇到的问题以及解决方法。同时对Scratch中的”列表“知识作以讲解。

 有的时候看上去简单的程序,反而不好调试。(花生心得)

 

今天模仿电脑报上的编程专栏编写一个通信录程序,竟然没有调试通过。

手头没有纸质版电脑报的,可以参考以下连接:

https://www.fx361.cc/page/2022/0701/10499283.shtml

文章要实现的,就是在一个固定的”舞台“上,通过”显示“”隐藏“功能控制不同的”角色“(也就是按钮)出现或者消失,实现一个多界面的应用程序。

 主界面上又两个按钮,一个注册,一个登录。

 点击登录按钮后,需要输入用户名和密码,如果有权限,那么进入管理界面,管理界面有4个按钮,分别对应的是增加联系人/删除联系人/查找联系人和修改联系人。

 现在的问题是:点击登录按钮,输入用户名和密码后,不能显示“管理界面”。

下图是“登录”按钮(或者叫角色)的代码。

 

这个代码的核心是一个判断语句,就是看列表“用户名”中是否包含刚才用户输入的用户名变量。

 一个列表往往拥有多个成员,例如新建了三个用户,对应三个密码。那么是不是上述一条指令可以实现对整个列表的遍历?从程序运行效果来看,这个判断列表中是否包含的语句,其实没有器作用。如下图所示,要想判断“用户名”列表中是否包含“456”,那就得从头走一遍,直到找到456.

 修改后的代码如下:将一个只运行一次的判断语句修改为循环N次的循环语句。N就等于列表的项数,有多少项就循环多少次,如果压根就没有该用户名,那就提示用户名不存在。如果循环的过程中,发现有逐个用户名,那么就判断对应的密码是否一致,如果对,那就广播“操作界面”,当增减删改四个按钮收到后,就将自己显示出来,当注册和登录收到这个广播后,就隐藏起来,因此看上去,好像程序换了一个界面一样,但实际上,“舞台”并没有改变,只是“角色”变了。

 运行的效果非常好。这次,只要输入正确的用户名和密码,就能显示“操作界面”了。

在scratch中,有的书上会将列表叫做“链表”,说的都是一回事。学C语言的同学应该对“链表”更加痛恨,查找替换增加删除都要通过链表来实现,甚至通过链表来完成某个图书系统的操作。没想到scratch这种图形化的语言,本不应该这么复杂,也要孩子们掌握链表才行。

 链表和变量的区别是变量只能存储单一的值,你让它是1,就不能让它存储更多的值,下一次你让它是0,它就不会再存储1的任何信息。

若存储一系列的值,单个变量就显得力不从心。例如存储电话号码,一个图书馆里的书名,一个月的天气数据。假如每天的平均温度要存储30个,我们总不能新建30个变量来存储吧。这时链表的优势就显示出来了。

链表是存放许多变量的容器,你可以存储或者获得容器中每一个变量的值。它就像有许多抽屉的梳妆台一样,每个抽屉都存放着物品。为了获得链表中的变量,你可以指定变量在链表中的索引(或者叫做位置)。例如用户456的索引位置是2,就像是第二个抽屉,对应的密码也是456,它的索引页是2.

 

链表的常用操作有:创建/删除/增加/插入/替换等。

链表的功能非常强大,还可以完成线性搜索/频数统计/冒泡排序/寻找中位数等常见的数学操作。

因此,尽管scratch看起来萌萌的,像是给孩子们玩的玩具,但真正地掌握,用它完成一个功能强大的软件,对编程的知识和基础要求,依然是非常高的。

所以有些机构说,让孩子们一年级就学编程,作者其实非常不赞同这个观点,太小的孩子,其实无法领会编程的思想的。