"该资源是基于C语言的模拟自动取款机(ATM)的代码实现,涵盖了登录、注册、初始化、主菜单、取款、余额查询、存款、转账、密码修改等功能。代码中使用了函数递归、全局变量以及文件指针,适合学习C语言的毕业设计或项目实践。" 在提供的代码片段中,我们可以看到一个基本的ATM模拟程序的框架。下面将详细解析这些关键知识点: 1. **函数声明**:在程序开头,我们看到一系列的函数声明,如`Login()`、`Registered()`等。这些函数是程序的主要功能模块,分别对应ATM的不同操作,例如用户登录、新用户注册等。 2. **全局变量**:`bal`、`wit`、`dep` 和 `b` 是全局变量,用于在整个程序中存储用户的账户余额、取款金额、存款金额和其他相关信息。全局变量在整个程序中可见,可以在任何函数中进行读写。 3. **结构体`struct user_data`**:定义了一个名为`user_data`的结构体,包含三个成员:`account`(账户号)、`name`(用户名)和`password`(密码)。结构体用于存储用户的基本信息。 4. **主函数`main()`**:C程序的入口点,`main()`函数中调用了`Tip()`函数,这可能是一个提示或欢迎信息的函数,是用户与ATM交互的开始。 5. **文件处理相关头文件**:`#include"stdio.h"`、`#include"process.h"`和`#include"conio.h"`。`stdio.h`是标准输入输出库,包含了处理文件和标准输入输出的功能;`process.h`可能是特定编译环境下的进程控制函数库,而`conio.h`通常在DOS环境下用于非标准的控制台输入输出,比如`getch()`函数。 6. **其他未定义的函数**:如`Rsfer()`、`Wsfer()`、`WData_user()`、`RData_user()`和`BLA()`等,这些函数可能是处理转账、保存和读取用户数据以及计算余额的具体实现,但具体实现没有在给出的代码片段中。 7. **C语言特性**:这个程序使用了C语言的一些基本特性,如函数定义、结构体、全局变量和注释。递归可能在某些函数中使用,如在处理用户菜单选择时,根据用户输入的不同值递归调用不同的功能。 8. **文件指针**:虽然代码中没有直接展示文件操作,但在模拟ATM系统中,通常会涉及到读写用户数据到文件,因此可以推断代码的其他部分可能包含了对文件指针的使用,以便持久化用户信息和交易记录。 9. **密码安全**:注意,代码中的密码是以明文形式存储的,这在实际应用中是不安全的。在实际的ATM系统中,密码通常会进行加密存储。 这个C语言的ATM模拟程序提供了学习和实践C语言基础以及理解面向过程编程的实例,同时也暴露出了一些安全性和设计上的问题,如使用全局变量和明文密码。在实际开发中,这些方面都需要进一步改进和完善。
#include "stdio.h"
#include "process.h"
#include "conio.h"
#include "string.h"
/****************************************************************************************************************************/
void Login();
void Registered();
void Initialization();
void Mastermenu();
void Withdrawals();
void Balance_inquires();
void Deposit();
void Transfer();
void Cipher_amending();
void Tip();
void Rsfer();
void Wsfer();
void WData_user();
void RData_user();
void BLA();
/****************************************************************************************************************************/
long bal; /*余额*/
long wit; /*取款*/
long dep; /*存款*/
long b;
int key;
struct user_data
{
long account;
char password[6];
}user={0,0,"\0"};
/****************************************************************************************************************************/
void main() /*主函数*/
{
Tip();
}
/****************************************************************************************************************************/
void Tip() /*提示函数*/
{
int sel;
system("cls");
printf("\n\n\n\n");
printf("\t\t*****************************************************\n");
printf("\t\t* 欢迎使用! *\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t* 1.登录 2.注册 3.初始化 0.退出 *\n");
printf("\t\t*****************************************************\n");
printf("\n\n\n\t\t 请选择<0―3>:");
scanf("%d",&sel);
switch(sel)
{
case 1:system("cls"); Login(); break;
case 2:system("cls"); Registered(); break;
case 3:system("cls"); Initialization(); break;
case 0:exit(0);
}
}
剩余43页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦