我们对Scratch的列表已经非常熟悉了,实际上,它相当于Scratch为我们提供的一个小型“数据库”,你可以把不同类型的数据放在列表中,对它们进行统一管理,比如我们的同学录、成绩表等。如果你是一个爱读书的人,你还可以把你的个人藏书资料保存在Scratch里面,随时查询相关的图书资料。这节课的内容将以图书管理系统为例,向你演示怎样把列表当作“数据库”来使用。
问题
使用Scratch开发个人图书管理系统,要求支持查询图书资料的入库、查询和删除功能。要求:
- 图书要包括书名、类别和作者三项基本信息;
- 入库时,如果书架上已经有同名图书,不重复添加,提示用户;
- 删除时要确认用户是否真的删除。
分析
根据需求描述,图书信息要包括书名、类别和作者三项,要把三项信息同时保存,最好的方法是建立三个列表进行同步操作,也就是说,书名、类别和作者分别保存在三个列表中,同一本书在三个列表中的序号要保持一致,且在进行入库、删除操作时也必须同时进行,确保顺序不能乱。只要明确了这一点,实现一个图书管理系统就不难了,要注意的是划分好角色之间的职责,给用户使用提供比较好的体验,而且可以利用自制积木减少程序中的重复代码。
编程
一、新建Scratch项目,建立如下角色:
- 查询按钮:负责给主要角色发送查询消息;
- 入库按钮:负责给主要角色发送入库消息;
- 删除按钮:负责给主要角色发送删除消息;
- Pico:主要角色,接收三个按钮发送的消息并做相应操作;程序的主要功能都实现在这个角色的代码中;
- 图书信息框:负责图书信息的显示和隐藏。
二、建立书名、类别和作者三个变量,相应地,也要建立书名列表、类别列表和作者列表三个列表,注意保持三个列表为空,不要手工加入信息,然后把它们隐藏起来。
三、分别给查询、入库、删除按钮编写指令,发对应的消息给Pico,此处代码从略。
四、先为Pico编写四个自制积木,分别实现输入书名、查找图书、新增图书和删除图书的功能。输入书名的时候,如果输入为空,会反复询问,直至输入正确的内容为止:
五、有了上面的自制积木,Pico处理消息的代码会非常简洁。这个时候你会看到自制积木的效果了,入库、查询和删除都需要先输入书名,我们调用自制积木,这部分代码写一遍即可,节约了时间精力。如果输入书名的代码需要更改,也只需要修改一处,调用它的地方都会生效:
六、至于图书信息框,就是为了处理显示隐藏而设置的:
七、最后,程序的运行效果如下:
总结
一般做图书管理这类数据列表类程序时,都会用到本节示例的方法。要管理的对象有几个属性,就建立几个列表,对它们进行同步的操作即可。
如果现在要求你给本系统的图书增加“图书简介”信息,你能独立完成吗?试试看。