「Mac玩转仓颉内测版9」入门篇9 - 综合案例篇
本篇结合前面学习的Cangjie语法、变量命名规则、控制结构以及函数与方法,通过一个综合案例演示如何将这些知识应用到实际编程项目中。通过该案例,可以更好地理解如何使用Cangjie编写结构化、清晰且高效的程序。
关键词
- 综合案例
- 控制结构
- 函数与方法
- 变量命名
- 实践应用
一、案例背景
本次综合案例实现一个简单的图书管理系统,包含以下功能:
- 列出所有书籍及其相关信息(如书名、作者、出版年份)。
- 根据书名或作者搜索书籍。
- 添加新书到系统中。
通过该案例,展示如何使用控制结构、循环、函数与方法来组织和处理数据。
二、代码结构概述
案例的实现分为以下几个部分:
- 数据结构:定义存储书籍信息的数据结构,包含书名、作者、出版年份。
- 函数实现:
- 列出所有书籍信息。
- 根据书名或作者搜索书籍。
- 添加新书到系统中。
- 测试函数:直接调用各个功能函数并输出结果。
三、数据结构定义
首先,使用一个包含书籍信息的列表来存储图书数据。每本书包含书名、作者和出版年份。
// 图书数据列表
var books = [
("1984", "George Orwell", 1949),
("To Kill a Mockingbird", "Harper Lee", 1960),
("The Great Gatsby", "F. Scott Fitzgerald", 1925)
]
四、功能实现
4.1 列出所有书籍
定义一个函数来列出所有存储的书籍信息,包括书名、作者和出版年份。
func listBooks(): Unit {
for ((title, author, year) in books) {
println("书名: ${title}, 作者: ${author}, 出版年份: ${year}")
}
}
4.2 搜索书籍
定义一个函数,根据书名或作者进行搜索。用户可以通过输入关键词找到匹配的书籍。
func searchBook(keyword: String): Unit {
var found = false
for ((title, author, year) in books) {
if (title.contains(keyword) || author.contains(keyword)) {
println("找到书籍: 书名: ${title}, 作者: ${author}, 出版年份: ${year}")
found = true
}
}
if (!found) {
println("未找到相关书籍")
}
}
4.3 添加新书
定义一个函数,允许输入新书的信息并将其添加到系统中。
func addBook(title: String, author: String, year: Int): Unit {
let newBook = (title, author, year)
var newBooks = books.concat(newBook)
books = newBooks
println("成功添加新书: ${title}")
}
五、测试函数
为了方便测试,定义一个函数来调用所有的功能函数并打印输出结果。通过此函数,可以直接测试每个功能的实现,而无需进行系统交互。
// 测试函数
func test(): Unit {
// 列出所有书籍
println("测试列出所有书籍")
listBooks()
// 搜索书籍
println("\n测试搜索书籍 '1984'")
searchBook("1984")
println("\n测试搜索书籍 '不存在的书'")
searchBook("不存在的书")
// 添加新书
println("\n测试添加新书 'Pride and Prejudice'")
addBook("Pride and Prejudice", "Jane Austen", 1813)
// 列出所有书籍(包含新书)
println("\n再次列出所有书籍(包含新书)")
listBooks()
}
main(): Int64 {
// 执行测试
test()
return 0
}
在测试函数 test 中,依次调用 listBooks、searchBook 和 addBook 函数,以展示各个功能的实现效果。此函数将输出所有的操作结果,方便进行功能测试和验证。
六、示例执行
运行测试函数时,将依次执行列出书籍、搜索书籍和添加新书的功能,输出结果如下:
示例输出:
测试列出所有书籍
书名: 1984, 作者: George Orwell, 出版年份: 1949
书名: To Kill a Mockingbird, 作者: Harper Lee, 出版年份: 1960
书名: The Great Gatsby, 作者: F. Scott Fitzgerald, 出版年份: 1925
测试搜索书籍 '1984'
找到书籍: 书名: 1984, 作者: George Orwell, 出版年份: 1949
测试搜索书籍 '不存在的书'
未找到相关书籍
测试添加新书 'Pride and Prejudice'
成功添加新书: Pride and Prejudice
再次列出所有书籍(包含新书)
书名: 1984, 作者: George Orwell, 出版年份: 1949
书名: To Kill a Mockingbird, 作者: Harper Lee, 出版年份: 1960
书名: The Great Gatsby, 作者: F. Scott Fitzgerald, 出版年份: 1925
书名: Pride and Prejudice, 作者: Jane Austen, 出版年份: 1813
小结
通过本篇综合案例,展示了如何将Cangjie中的控制结构、循环表达式、函数与方法相结合,实现一个小型的图书管理系统。该案例巩固了前面学习的知识,并展示了如何在实际项目中应用这些概念。
下篇预告
下一篇将探讨如何通过PTA刷题提高Cangjie的编程技巧,敬请期待 「Mac玩转仓颉内测版10」PTA刷题篇1 - L1-001 Hello World!
上一篇:「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法
下一篇:「Mac玩转仓颉内测版10」PTA刷题篇1 - L1-001 Hello World
作者:SoraLuna 链接:https://www.nutpi.net/ 來源:坚果派 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 0回答
- 1粉丝
- 0关注
- 「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建
- 「Mac玩转仓颉内测版4」入门篇4 - Cangjie变量命名规则
- 「Mac玩转仓颉内测版5」入门篇5 - Cangjie控制结构(上)
- 「Mac玩转仓颉内测版6」入门篇6 - Cangjie控制结构(中)
- 「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
- 「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法
- 「Mac玩转仓颉内测版3」入门篇3 - Cangjie的基本语法与结构
- 「Mac玩转仓颉内测版29」基础篇9 - 数组类型详解
- 「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序
- 「Mac玩转仓颉内测版18」PTA刷题篇9 - L1-009 N个数求和
- 「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
- 「Mac玩转仓颉内测版26」基础篇6 - 字符类型详解
- 「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解
- 「Mac玩转仓颉内测版28」基础篇8 - 元组类型详解
- 「Mac玩转仓颉内测版30」基础篇10 - 区间类型详解