C语言实现ATM自动取款机系统的示例代码

本文将详细讲解如何使用C语言实现一个ATM自动取款机系统,包括如何进行账户验证、显示余额、进行取款、修改密码等功能。我们将通过一个示例代码来展示实现的过程。下面是完整攻略:

第一步:创建用户结构体

我们需要用一个结构体来表示存储在数据库中的用户信息,包含账户名、密码、余额等属性。以下是一个用户结构体的示例代码:

struct user {
    char username[20];
    char password[20];
    double balance;
};

第二步:创建模拟数据库

我们使用一个数组来模拟用户数据存储在数据库中的情况。以下是一个示例的用户数组:

struct user user_database[] = {
    {"Alice", "123456", 10000},
    {"Bob", "654321", 2000},
    {"Cindy", "111111", 5000},
    {"David", "222222", 3000}
};

第三步:实现账户验证功能

实现账户验证功能要求用户输入账户名和密码,程序通过遍历数据库查询是否有对应的账户信息。以下是一个账户验证功能的示例代码:

struct user *verify_account(char *username, char *password) {
    for (int i = 0; i < sizeof(user_database) / sizeof(*user_database); i++) {
        if (strcmp(user_database[i].username, username) == 0
            && strcmp(user_database[i].password, password) == 0) {
            return &user_database[i];
        }
    }
    return NULL;
}

第四步:实现显示余额功能

当用户登录成功后,界面应该显示用户的余额信息。以下是一个显示余额信息的示例代码:

void show_balance(struct user *u) {
    printf("Your balance: %.2lf\n", u->balance);
}

第五步:实现取款功能

当用户选择取款操作时,程序应该验证取款金额是否合法、账户余额是否充足,并更新用户余额信息。以下是一个取款操作的示例代码:

void withdraw(struct user *u, double amount) {
    if (amount <= 0) {
        printf("Invalid amount.\n");
        return;
    }
    if (u->balance < amount) {
        printf("Insufficient balance.\n");
        return;
    }
    u->balance -= amount;
    printf("Withdraw %lf success.\n", amount);
}

第六步:实现修改密码功能

当用户选择修改密码操作时,程序应该验证原密码、新密码是否合法,更新用户密码信息。以下是一个修改密码操作的示例代码:

void change_password(struct user *u, char *old_password, char *new_password) {
    if (strlen(new_password) < 6) {
        printf("Password must be at least 6 characters.\n");
        return;
    }
    if (strcmp(u->password, old_password) != 0) {
        printf("Wrong password.\n");
        return;
    }
    strcpy(u->password, new_password);
    printf("Change password success.\n");
}

以上是一个完整的C语言实现ATM自动取款机系统的示例代码攻略。我们通过模拟数据库、验证账户、显示余额、取款、修改密码等功能,实现了一个简单的ATM自动取款机系统。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现ATM自动取款机系统的示例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++11智能指针之weak_ptr详解

    C++11智能指针之weak_ptr详解 简介 C++11添加了4种智能指针:unique_ptr、shared_ptr、weak_ptr、auto_ptr。其中weak_ptr是一种弱引用类型的指针,它不对所指对象进行引用计数,可以防止 shared_ptr 的循环引用问题。 特点 weak_ptr 所指向的对象可能已经被删除了,因此在使用 weak_pt…

    C 2023年5月22日
    00
  • 更改Mysql数据库存储位置的具体步骤

    更改Mysql数据库存储位置的具体步骤如下: 步骤一:备份原有数据库 在操作之前,我们需要先备份原有的数据库文件,防止出现意外情况导致数据丢失。可以使用mysqldump命令进行备份,命令格式如下: mysqldump -u root -p –default-character-set=utf8 数据库名 > 备份文件.sql 其中,-u指定用户名,…

    C 2023年5月23日
    00
  • 华为MateBook D 14锐龙版值得买吗 华为MateBook D 14锐龙版笔记本全面评测

    华为MateBook D 14锐龙版值得买吗 简介 华为MateBook D 14锐龙版已经上市一段时间了,不过很多人仍然不确定是否值得购买。本文将从外观、性能、续航、售价等多个角度进行分析评测,帮助大家了解这款笔记本是否适合自己。 外观 华为MateBook D 14锐龙版采用了全金属机身,简约大气,颜值在线。相比于其他同价位的笔记本,华为MateBook…

    C 2023年5月22日
    00
  • Perl 函数集小结

    Perl 函数集小结 – 完整攻略 什么是 Perl 函数 Perl 函数是一段可重复使用的代码,用于实现某个具体的功能。Perl 中的函数通常带有参数,有时会返回值。Perl 函数通常需要先定义后使用。 Perl 函数的定义 在 Perl 中定义函数的语法如下: sub function_name { # 函数体 } 其中,function_name 为函…

    C 2023年5月23日
    00
  • 当前标识没有对”Temporary ASP.NET Files”的写访问权限的解决办法

    如果您在使用ASP.NET应用程序时遇到了如下错误: Could not load file or assembly ‘WebApplication1’ or one of its dependencies. The system cannot find the file specified. Description: An unhandled except…

    C 2023年5月23日
    00
  • C语言实现魔方比赛管理系统

    C语言实现魔方比赛管理系统 系统实现需求 本系统需要实现以下功能: 登录与注册功能 管理员与普通用户权限管理 创建比赛与编辑比赛 报名参加比赛 评分与排名展示功能 系统框架 本系统采用C语言,使用MySQL数据库进行数据存储。 系统框架如下: graph TD; A[登录与注册] –> B[管理员与普通用户权限管理]; B –> C[创建比赛…

    C 2023年5月24日
    00
  • CLion搭建配置C++开发环境的图文教程 (MinGW-W64 GCC-8.1.0)

    请参照以下攻略: CLion搭建配置C++开发环境的图文教程 一、下载CLion 访问CLion官网,下载适合自己操作系统的二进制安装包。 二、安装MinGW-W64 GCC 访问MinGW官网,下载适合自己操作系统的MinGW-W64 GCC安装包。选择安装包的时候,需要注意选择合适的安装路径。完成下载后点击安装包,选择“Add to PATH”选项。 三…

    C 2023年5月23日
    00
  • AE怎么安装并使用Plexus插件? ae特效plexus的用法

    下面是安装并使用Plexus插件的完整攻略: 1. 下载并安装Plexus插件 Plexus插件是一款AE特效插件,需从AE插件市场或者其他资源网站下载。下载下来的插件应该是一个.zxp文件,需要使用Adobe Extension Manager将其安装到AE中。 2. 安装Adobe Extension Manager 如果你已经安装了Adobe Crea…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部