Menu
CoddyTech

项目概览

本课属于 Coddy GDScript 学习旅程的“面向对象编程”单元。第 56 课,共 65 课。

challenge icon

挑战

中等

在这个项目中,你将分六步构建一个图书馆管理系统:图书馆、书籍和用户、借阅、搜索、统计和归还。每一步都从上一步的文件开始。

这一步会在 library.gd 中创建 Library 类。初始代码已经声明了它的三个属性:

  • library_name:图书馆的名称
  • books 和 users:两个初始为空的 Array[String]。目前,它们存放书名和用户名。

完成这两个方法:

  1. 构造函数 _init(library_name) 将名称存储在属性 library_name 中。
  2. _to_string() 返回 NAME Library (books: N, users: M),其中 N 和 M 分别是两个数组的长度。

提供的代码会从第一行读取图书馆名称,然后逐行读取命令:book TITLE 和 user NAME 会将内容追加到数组中,info 会输出三个属性,show 会输出图书馆。对于以下输入:

Community
info
book Dune
user Ada
show

输出为:

Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)

你的代码应写在 library.gd 中。main.gd 包含提供的输入/输出代码,不能编辑。

亲手试试

extends Node

func _ready():
	# 提供的输入输出代码:保持原样
	var library := Library.new(OS.read_string_from_stdin())
	var line := OS.read_string_from_stdin()
	while line != "":
		var parts := line.split(" ", true, 1)
		match parts[0]:
			"book":
				library.books.append(parts[1])
			"user":
				library.users.append(parts[1])
			"info":
				print("Name: ", library.library_name)
				print("Books: ", library.books.size())
				print("Users: ", library.users.size())
			"show":
				print(library)
		line = OS.read_string_from_stdin()

面向对象编程中的所有课

自己练习: GDScript 在线编译器