当前位置: 首页 > wzjs >正文

潍坊网站建设案例seo收费标准

潍坊网站建设案例,seo收费标准,如何利用ps做网站,做一些购物网站1.示例截图: 2.功能说明 程序功能说明 这个 ATM 模拟器实现了以下核心功能: 用户账户管理: 初始化了几个测试账户用于演示 支持登录和登出功能 PIN 验证和锁定机制(尝试 3 次错误后锁定) 基本交易操作: 余…

 1.示例截图:

 2.功能说明

程序功能说明
这个 ATM 模拟器实现了以下核心功能:
用户账户管理:
初始化了几个测试账户用于演示
支持登录和登出功能
PIN 验证和锁定机制(尝试 3 次错误后锁定)
基本交易操作:
余额查询:显示当前账户余额
取款:从账户中提取现金
存款:向账户中存入现金
转账:向其他账户转账
交易记录:
记录每笔交易的详细信息
支持查看历史交易记录
使用方法
程序启动后,首先需要登录(使用测试账户)
卡号:1234567890,PIN:1234
卡号:0987654321,PIN:4321
卡号:5678901234,PIN:5678
登录后,可以选择各种交易操作:
查询余额
取款
存款
转账
查看交易记录
登出或退出
所有操作都会实时更新账户余额和交易记录

3.程序代码:

package mainimport ("bufio""fmt""os""strconv""strings""time"
)// 账户结构
type Account struct {AccountNumber stringPin           stringBalance       float64Transactions  []Transaction
}// 交易记录结构
type Transaction struct {Type      string    // 交易类型:存款、取款、转账Amount    float64   // 交易金额Timestamp time.Time // 交易时间ToAccount string    // 转账目标账户(仅在转账时使用)
}// ATM 结构
type ATM struct {Accounts       map[string]*Account // 账户映射表,键为卡号CurrentAccount *Account            // 当前登录的账户
}// 创建新的 ATM
func NewATM() *ATM {// 初始化一些测试账户accounts := make(map[string]*Account)// 添加几个测试账户accounts["1234567890"] = &Account{AccountNumber: "1234567890",Pin:           "1234",Balance:       1000.00,Transactions:  []Transaction{},}accounts["0987654321"] = &Account{AccountNumber: "0987654321",Pin:           "4321",Balance:       5000.00,Transactions:  []Transaction{},}accounts["5678901234"] = &Account{AccountNumber: "5678901234",Pin:           "5678",Balance:       2500.00,Transactions:  []Transaction{},}return &ATM{Accounts: accounts,}
}// 主菜单
func (atm *ATM) ShowMainMenu() {reader := bufio.NewReader(os.Stdin)for {if atm.CurrentAccount == nil {fmt.Println("\n===== ATM 模拟器 =====")fmt.Println("1. 登录")fmt.Println("2. 退出")fmt.Print("请选择操作: ")choice, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)continue}choice = strings.TrimSpace(choice)switch choice {case "1":atm.Login()case "2":fmt.Println("感谢使用,再见!")returndefault:fmt.Println("无效选择,请重试。")}} else {fmt.Println("\n===== 欢迎使用 ATM 服务 =====")fmt.Printf("当前账户: %s\n", atm.CurrentAccount.AccountNumber)fmt.Println("1. 查询余额")fmt.Println("2. 取款")fmt.Println("3. 存款")fmt.Println("4. 转账")fmt.Println("5. 查看交易记录")fmt.Println("6. 登出")fmt.Println("7. 退出")fmt.Print("请选择操作: ")choice, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)continue}choice = strings.TrimSpace(choice)switch choice {case "1":atm.CheckBalance()case "2":atm.Withdraw()case "3":atm.Deposit()case "4":atm.Transfer()case "5":atm.ShowTransactions()case "6":atm.Logout()case "7":fmt.Println("感谢使用,再见!")returndefault:fmt.Println("无效选择,请重试。")}}}
}// 登录功能
func (atm *ATM) Login() {reader := bufio.NewReader(os.Stdin)fmt.Print("请输入卡号: ")accountNumber, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}accountNumber = strings.TrimSpace(accountNumber)account, exists := atm.Accounts[accountNumber]if !exists {fmt.Println("卡号不存在,请重试。")return}// 尝试3次PIN输入for attempts := 0; attempts < 3; attempts++ {fmt.Print("请输入PIN: ")pin, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}pin = strings.TrimSpace(pin)if pin == account.Pin {atm.CurrentAccount = accountfmt.Println("登录成功!")return} else {fmt.Printf("PIN错误,还有%d次尝试机会。\n", 2-attempts)}}fmt.Println("尝试次数过多,账户已锁定。")
}// 登出功能
func (atm *ATM) Logout() {atm.CurrentAccount = nilfmt.Println("已成功登出。")
}// 查询余额
func (atm *ATM) CheckBalance() {if atm.CurrentAccount == nil {fmt.Println("请先登录。")return}fmt.Printf("当前余额: ¥%.2f\n", atm.CurrentAccount.Balance)
}// 取款功能
func (atm *ATM) Withdraw() {if atm.CurrentAccount == nil {fmt.Println("请先登录。")return}reader := bufio.NewReader(os.Stdin)fmt.Print("请输入取款金额: ¥")amountStr, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}amountStr = strings.TrimSpace(amountStr)amount, err := strconv.ParseFloat(amountStr, 64)if err != nil {fmt.Println("请输入有效的金额。")return}if amount <= 0 {fmt.Println("取款金额必须大于0。")return}if amount > atm.CurrentAccount.Balance {fmt.Println("余额不足。")return}// 模拟取款过程fmt.Println("正在处理取款请求...")time.Sleep(1 * time.Second)atm.CurrentAccount.Balance -= amount// 添加交易记录atm.CurrentAccount.Transactions = append(atm.CurrentAccount.Transactions, Transaction{Type:      "取款",Amount:    amount,Timestamp: time.Now(),})fmt.Printf("取款成功!已取出 ¥%.2f\n", amount)fmt.Printf("当前余额: ¥%.2f\n", atm.CurrentAccount.Balance)
}// 存款功能
func (atm *ATM) Deposit() {if atm.CurrentAccount == nil {fmt.Println("请先登录。")return}reader := bufio.NewReader(os.Stdin)fmt.Print("请输入存款金额: ¥")amountStr, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}amountStr = strings.TrimSpace(amountStr)amount, err := strconv.ParseFloat(amountStr, 64)if err != nil {fmt.Println("请输入有效的金额。")return}if amount <= 0 {fmt.Println("存款金额必须大于0。")return}// 模拟存款过程fmt.Println("正在处理存款请求...")time.Sleep(1 * time.Second)atm.CurrentAccount.Balance += amount// 添加交易记录atm.CurrentAccount.Transactions = append(atm.CurrentAccount.Transactions, Transaction{Type:      "存款",Amount:    amount,Timestamp: time.Now(),})fmt.Printf("存款成功!已存入 ¥%.2f\n", amount)fmt.Printf("当前余额: ¥%.2f\n", atm.CurrentAccount.Balance)
}// 转账功能
func (atm *ATM) Transfer() {if atm.CurrentAccount == nil {fmt.Println("请先登录。")return}reader := bufio.NewReader(os.Stdin)fmt.Print("请输入目标账户卡号: ")targetAccountNumber, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}targetAccountNumber = strings.TrimSpace(targetAccountNumber)if targetAccountNumber == atm.CurrentAccount.AccountNumber {fmt.Println("不能向自己的账户转账。")return}targetAccount, exists := atm.Accounts[targetAccountNumber]if !exists {fmt.Println("目标账户不存在。")return}fmt.Print("请输入转账金额: ¥")amountStr, err := reader.ReadString('\n')if err != nil {fmt.Println("读取输入错误:", err)return}amountStr = strings.TrimSpace(amountStr)amount, err := strconv.ParseFloat(amountStr, 64)if err != nil {fmt.Println("请输入有效的金额。")return}if amount <= 0 {fmt.Println("转账金额必须大于0。")return}if amount > atm.CurrentAccount.Balance {fmt.Println("余额不足。")return}// 模拟转账过程fmt.Println("正在处理转账请求...")time.Sleep(1 * time.Second)atm.CurrentAccount.Balance -= amounttargetAccount.Balance += amount// 添加交易记录atm.CurrentAccount.Transactions = append(atm.CurrentAccount.Transactions, Transaction{Type:      "转账",Amount:    amount,Timestamp: time.Now(),ToAccount: targetAccountNumber,})targetAccount.Transactions = append(targetAccount.Transactions, Transaction{Type:      "接收转账",Amount:    amount,Timestamp: time.Now(),ToAccount: atm.CurrentAccount.AccountNumber,})fmt.Printf("转账成功!已向账户 %s 转账 ¥%.2f\n", targetAccountNumber, amount)fmt.Printf("当前余额: ¥%.2f\n", atm.CurrentAccount.Balance)
}// 显示交易记录
func (atm *ATM) ShowTransactions() {if atm.CurrentAccount == nil {fmt.Println("请先登录。")return}transactions := atm.CurrentAccount.Transactionsif len(transactions) == 0 {fmt.Println("没有交易记录。")return}fmt.Println("\n===== 交易记录 =====")fmt.Println("序号\t类型\t\t金额\t\t时间\t\t\t目标账户")for i, tx := range transactions {target := ""if tx.ToAccount != "" {target = tx.ToAccount}fmt.Printf("%d\t%s\t\t¥%.2f\t\t%s\t%s\n",i+1, tx.Type, tx.Amount, tx.Timestamp.Format("2006-01-02 15:04:05"), target)}
}func main() {fmt.Println("===== ATM 模拟器启动 =====")atm := NewATM()atm.ShowMainMenu()
}

http://www.dtcms.com/wzjs/396451.html

相关文章:

  • 网站建设发票的税点佛山网络排名优化
  • 个体营业执照网上年报seo优化方案总结
  • 沙井网站推广销售外包公司
  • 设计相关网站网络营销的现状和发展趋势
  • 石家庄市住房城乡建设局网站互动营销的案例有哪些
  • 全球采购seo点击软件排名优化
  • 网站群建设的优点新疆疫情最新情况
  • 软件工程师怎么学宿州百度seo排名软件
  • 专业苏州网站建设公司seo外贸网站制作
  • 一级门户网站建设费用网站优化推广招聘
  • 做恐怖网站学生制作个人网站
  • 门户网站seo郑州网站推广效果
  • 汝州网站建设站长素材官网免费
  • 建设银行福州分行招聘网站百度提交收录
  • php wordpress 漏洞石家庄全网seo
  • 做众筹网站有哪些爱站网关键词挖掘工具
  • 南县做网站多少钱网络广告网站
  • 怎么在南京人社网站做失业登记太原百度seo排名软件
  • 号网站开发媒体吧软文平台
  • 自已建网站上海seo公司哪家好
  • 德清淘宝网站建设微信公众号营销
  • 网站备案需要什么资料品牌营销公司
  • 网站建设推广唯心cidun8百度竞价推广点击软件
  • 网站开发需要多线程小程序推广平台
  • asp网站建设郑州seo线上推广技术
  • 手机网站建设的背景seo对网店推广的作用有哪些
  • 常州微信网站制作网络加速器
  • 设计logo网站侵权吗知乎百度收录推广
  • 网站首页banner动态化今日头条搜索优化怎么做
  • 传媒公司商业计划书优化大师免费版下载