跟我一起学“仓颉”编程语言-银行ATM机系统

发布时间:2026/6/8 4:29:46

跟我一起学“仓颉”编程语言-银行ATM机系统 一、系统需求使用仓颉编程语言实现一个可以多用户的开户、查看余额、存款、取款的银行ATM机自动存取款系统。二、系统实现package Study.atm import std.random.Random import std.env.* import std.convert.* import std.collection.* // 用来存储多个账户信息 var accountList ArrayListAccount() /* * 账户类 */ 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机系统的内容下一章为大家带来学生成绩管理系统的内容。最后创作不易如果大家觉得我的文章对学习仓颉服务端开发有帮助的话就动动小手点个免费的赞吧收到的赞越多我的创作动力也会越大哦谢谢大家

相关新闻