ATM提款机及其可视化处理(四)

2023-11-02 08:10
文章标签 可视化 处理 atm 提款机

本文主要是介绍ATM提款机及其可视化处理(四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前面我们完成了用户端和管理员端的基础代码实现,这一节我们要实现整合在一起的功能实现

我们在整合代码时,一般将函数的实现和mian函数放在两个不同的.cpp文件中,这样只需要在函数中引用头文件和定义即可

首先我们就要引入提前定义的头文件

并且定义好要使用的变量

在start函数的参数中我们也可以看见要体现出传入指针从而达到通过形式参数的改变而引起实际参数的改变

 

这里的return可以替换成exit(0)更佳

其实函数体的主体实现还是依赖的

switch case方式进行选择然后实现

这里的for循环结构替换成whlie(1)更佳

这里使用for是为了方便调试

 

在引入管理员头文件后

就可以正常使用其中定义实现的函数

 

这里有一个密码输入三次锁卡操作

 

 

 

这里需要注意的是,用户的很多功能是要登陆之后才能实现的,所以我们需要将功能写在登陆成功之下

 

 

 

完整源码

#define _CRT_SECURE_NO_WARNINGS
#include "Bank1.h"
#include <stdio.h>
#include"Manger.h"void start(PList list, MPlist Mlist) {int point, flag, key;int choice, id,password,  money;char name[10],  idcard[20],  phone[12];printf("请选择身份:1.用户 2.管理员 ");scanf("%d", &point);if (point ==2) {for (int i = 0; i < 4; i++) {printf("请选择:  1. 注册 2. 登录  3.退出");scanf("%d", &choice);if (choice == 3){return;}switch (choice) {default:printf("输出错误请重试\n");break;case 1:printf("请输入账号、密码、姓名、电话、身份证:\n");scanf("%d%d%s%s%s", &id, &password, name, phone, idcard);Muser user;init_Muser(&user, name, idcard, phone);register_Manger(Mlist, id, password, &user);break;case 2:printf("请输入账号,密码:");scanf("%d%d", &id, &password);key = login_Manger(Mlist, id, password);while (Mlist->arr->count < 3) {if (key != -1) {printf("请选择:3.激活  4.注销\n");scanf("%d", &choice);switch (choice) {case 3:printf("请输入身份证号\n");scanf("%s", &idcard);active_Manger(Mlist, idcard);break;case 4:destory_Manger(Mlist);break;}}else{key = login_Manger(Mlist, id, password);}break;}}}}if (point == 1) {for (int i = 0; i < 6; i++) {printf("请选择:  1. 注册 2. 登录 3. 挂失  4.激活  5.注销  6.退出");scanf("%d", &choice);if (choice == 6){return;}switch (choice) {default:printf("输出错误请重试\n");break;case 1:printf("请输入账号、密码、姓名、电话、身份证、初始金额:\n");scanf("%d%d%s%s%s%d", &id, &password, name, phone, idcard, &money);User user;init_user(&user, name, phone, idcard);BankCard card;init_card(&card, id, password, money, &user);register_card(list, id, password, money, &user);break;case 2:printf("请输入账号,密码:");scanf("%d%d", &id, &password);flag = login_card(list, id, password);while (list->cards_array->count < 3) {if (flag != -1) {printf("请选择:1.存款 2.取款 3.转账 4. 查看流水 5.查看开卡时间 6.查余额 7.退出");scanf("%d", &choice);if (choice == 7){break;}switch (choice){default:printf("输出错误请重试\n");break;case 1:printf("请输入存钱金额:\n");scanf("%d", &money);savemoney(&card, money);break;case 2:printf("请输入取款金额:\n");scanf("%d", &money);withdrawmoney(&card, money);break;case 3:printf("请输入转账的账号和转账金额:\n");scanf("%d%d", &id, &money);transfer(list, &card, id, money);break;case 4:getwatermessage(&card);break;case 5:get_create_card_date(&card);break;case 6:getmoney(&card);break;}}else {flag=login_card(list, id, password);}}break;case 3:printf("请输入身份证号:\n");scanf("%s", idcard);lost(list, idcard);break;case 4:printf("请输入身份证号:\n");scanf("%s", idcard);active(list, idcard);break;case 5:printf("请输入账号:\n");int index = SearchCard(list, id);destory_card_records(&card);destory_card(list, index);break;}}}}

  

#include "Bank1.h"
#include <stdio.h>
#include"Manger.h"
void start(PList list,MPlist Mlist);int main() {SqList_BankCards cards;Mlist Mcard;init_sqlist_cards(&cards);init_Manger_list(&Mcard);start(&cards,&Mcard);destory(&cards);destory_Manger(&Mcard);return 0;
}

在主函数中我们只需要写入start函数和销毁函数即可

这篇关于ATM提款机及其可视化处理(四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329258

相关文章

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python中处理NaN值的技巧分享

《Python中处理NaN值的技巧分享》在数据科学和数据分析领域,NaN(NotaNumber)是一个常见的概念,它表示一个缺失或未定义的数值,在Python中,尤其是在使用pandas库处理数据时,... 目录NaN 值的来源和影响使用 pandas 的 isna()和 isnull()函数直接比较 Na