跟我一起学“仓颉”编程语言-银行ATM机系统
2026/6/8 4:29:29 网站建设 项目流程

一、系统需求

使用仓颉编程语言,实现一个可以多用户的开户、查看余额、存款、取款的银行ATM机自动存取款系统。

二、系统实现

package Study.atm import std.random.Random import std.env.* import std.convert.* import std.collection.* // 用来存储多个账户信息 var accountList = ArrayList<Account>() /* * 账户类 */ class Account { private var _idcard: String = "" private var _password: String = "" private var _money: Float64 = 0.0 mut prop idcard: String { get() { this._idcard } set(_idcard) { this._idcard = _idcard } } mut prop password: String { get() { this._password } set(_password) { this._password = _password } } mut prop money: Float64 { get() { this._money } set(_money) { this._money = _money } } } /* * 主菜单 */ func mainMenu() { println("欢迎使用ATM机自动存取款系统") subMenu() } /* * 次要菜单 */ func subMenu() { println("1. 开户") println("2. 余额") println("3. 存款") println("4. 取款") println("5. 退出") print("请选择您的需要: ") } /* * 开户 */ func createAccount() { println("开户信息") let id = (Random().nextInt64(899999) + 100000).toString() println("系统生成的卡号为: ${id}") print("请输入密码: ") let password = getStdIn().readln().getOrThrow() while (true) { print("请再次输入密码: ") let passwordAgain = getStdIn().readln().getOrThrow() if (password == passwordAgain) { break } else { println("两次输入的密码不一样") } } var account = Account() account.idcard = id account.password = password accountList.add(account) println("开户成功") println("卡号: ${account.idcard}") println("密码: ${account.password}") println("余额: ${account.money.format(".2")}") } /* * 检查用户信息 */ func checkAccount(data: String) { var result = "" for (account in accountList) { if (data == account.idcard) { result = account.idcard } else if (data == account.password) { result = account.password } } return result } /* * 登录 */ func login() { print("请输入卡号: ") var id = getStdIn().readln().getOrThrow() while (true) { if (id == checkAccount(id)) { break } else { print("卡号错误, 请重新输入: ") id = getStdIn().readln().getOrThrow() } } print("请输入密码: ") var password = getStdIn().readln().getOrThrow() while (true) { if (password == checkAccount(password)) { break } else { print("密码错误, 请重新输入: ") password = getStdIn().readln().getOrThrow() } } return id } /* * 余额 */ func show() { println("余额信息") let id = login() for (account in accountList) { if (id == account.idcard) { println("您的余额为: ${account.money.format(".2")}") } } } /* * 存款 */ func save() { println("存款信息") let id = login() print("请输入您的存款金额: ") let money = getStdIn().readln().getOrThrow() for (account in accountList) { if (id == account.idcard) { account.money += Float64.parse(money) break } } println("存款成功") } /* * 取款 */ func take() { println("取款信息") let id = login() var flag = true while (flag) { print("请输入取款金额: ") let money = Float64.parse(getStdIn().readln().getOrThrow()) for (account in accountList) { if (id == account.idcard) { if (account.money > 0.0 && money <= account.money) { account.money -= money println("取款成功") println("您的取款金额为: ${money.format(".2")}") println("您的余额为: ${account.money.format(".2")}") break } else { println("取款失败") println("您的取款金额为: ${money.format(".2")}") break } } } println("是否再次取款") println("再次取款: Y/y") println("取消取款: N/n") let takeInfo = getStdIn().readln().getOrThrow() if (takeInfo == "y" || takeInfo == "Y") { flag = true } else if (takeInfo == "n" || takeInfo == "N") { flag = false } else { flag = false println("非法输入") break } } } /* * 启动 */ public func begin() { mainMenu() while (true) { let input = getStdIn().readln().getOrThrow() if (input == "1") { // 开户 createAccount() // 次要菜单 subMenu() } else if (input == "2") { // 余额 show() // 次要菜单 subMenu() } else if (input == "3") { // 存款 save() // 次要菜单 subMenu() } else if (input == "4") { // 取款 take() // 次要菜单 subMenu() } else if (input == "5") { println("退出系统") break } else { println("非法输入") subMenu() } } }

三、小结

本章为大家详细的介绍了仓颉编程语言中银行ATM机系统的内容,下一章,为大家带来学生成绩管理系统的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询