本篇教程基于仓颉编程语言扩展了计算器功能,支持加减乘除的基础运算,以及幂运算和开平方等高级功能。代码经过简化后,移除了对输入的复杂校验,提升了程序的可维护性和交互效率。
关键词
- 仓颉编程语言
- 函数封装
- 高级运算
一、功能说明
升级后的计算器实现了以下功能:
- 支持基础运算(加、减、乘、除)和高级运算(幂运算、开平方)。
- 提供简单的用户提示,减少复杂的输入校验。
- 使用函数封装,保持代码逻辑清晰和可扩展性。
二、代码实现
2.1 主程序
主程序用于提供菜单交互,并调用相应的功能处理函数。
/* 文件名:55-1.cj */
package cjcDemo
import std.console.*
import std.math.* // 数学运算支持
import std.convert.* // 数据转换模块
// 主函数
main(): Int64 {
println("高级计算器 - 支持加减乘除、幂运算与开平方")
while (true) {
println("\n请选择操作:")
println("1. 基础运算 (+, -, *, /)")
println("2. 幂运算 (^)")
println("3. 开平方 (sqrt)")
println("4. 退出程序")
let mode: Int64 = readInt("请输入操作编号 (1-4):")
if (mode == 4) {
println("程序已退出。再见!")
break
}
handleChoice(mode)
}
return 0
}
2.2 核心功能:操作处理与计算
// 根据用户选择调用对应功能
func handleChoice(mode: Int64) {
if (mode == 1) {
println("请输入第一个数字:")
let num1: Int64 = readInt("请输入整数:")
println("请输入第二个数字:")
let num2: Int64 = readInt("请输入整数:")
println("请输入操作符 (+, -, *, /):")
let operation: String = Console.stdIn.readln().getOrThrow()
calculateAndPrintResult(num1, num2, operation)
} else if (mode == 2) {
println("请输入底数:")
let base: Float64 = readFloat("请输入数字:")
println("请输入指数:")
let exponent: Float64 = readFloat("请输入数字:")
let result: Float64 = power(base, exponent)
println("幂运算结果: ${result}")
} else if (mode == 3) {
println("请输入需要开平方的数字:")
let number: Float64 = readFloat("请输入数字:")
let result: Float64 = squareRoot(number)
println("开平方结果: ${result}")
} else {
println("无效选择,请输入 1, 2, 3 或 4。")
}
}
2.3 公共工具函数
// 幂运算函数
func power(base: Float64, exponent: Float64): Float64 {
return pow(base, exponent)
}
// 开平方函数
func squareRoot(number: Float64): Float64 {
if (number < 0.0) {
println("错误:不能对负数开平方")
return 0.0
}
return sqrt(number)
}
// 读取整数输入
func readInt(prompt: String): Int64 {
println(prompt)
let input: String = Console.stdIn.readln().getOrThrow()
return Int64.parse(input)
}
// 读取浮点数输入
func readFloat(prompt: String): Float64 {
println(prompt)
let input: String = Console.stdIn.readln().getOrThrow()
return Float64.parse(input)
}
// 计算并输出结果
func calculateAndPrintResult(num1: Int64, num2: Int64, operation: String) {
if (operation == "+") {
println("结果: ${num1 + num2}")
} else if (operation == "-") {
println("结果: ${num1 - num2}")
} else if (operation == "*") {
println("结果: ${num1 * num2}")
} else if (operation == "/") {
if (num2 != 0) {
println("结果: ${num1 / num2}")
} else {
println("错误:除数不能为零")
}
} else {
println("错误:无效的操作符。请使用 +, -, *, /")
}
}
三、效果示例
效果示例
输入:
高级计算器 - 支持加减乘除、幂运算与开平方 请选择操作: 1 请输入第一个数字: 8 请输入第二个数字: 2 请输入操作符 (+, -, *, /): /
输出:
结果: 4
输入:
请选择操作: 2 请输入底数: 3 请输入指数: 2
输出:
幂运算结果: 9.000000
输入:
请选择操作: 3 请输入需要开平方的数字: -4
输出:
错误:不能对负数开平方
四、小结
本次教程通过仓颉编程语言实现了更复杂的计算器功能。简化后的实现去掉了复杂的输入校验逻辑,依赖用户的正确输入,保持了代码简洁性。同时,通过函数封装保持代码模块化,方便后续扩展更多功能。
上一篇: 「Mac玩转仓颉内测版54」应用篇1 - 编写一个简单的计算器
下一篇: 「Mac玩转仓颉内测版56」应用篇3 - 增强计算器功能与数据存储
📍公测版
- 仓颉编程语言官网
- 开发指南
- 仓颉编程语言库 API
- 仓颉语言 IDE 插件使用指南
- 仓颉编程语言白皮书
- 词法结构