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++ Boost Atomic详细讲解

    C++ Boost Atomic详细讲解 什么是Boost Atomic? Boost Atomic是C++ Boost库的一个组件,提供了跨平台多线程编程中的原子操作。原子操作是一种不可分割的操作,要么全部完成,要么全部不完成。 如何使用Boost Atomic? 安装Boost库 要想使用Boost Atomic,需要先安装Boost库。可以参考Boos…

    C 2023年5月23日
    00
  • C语言实现万年历源码

    以下是详细的“C语言实现万年历源码”的完整攻略,包括示例说明: 1. 确定需求 首先,我们需要确定要实现一个什么样的功能,比如万年历。在确定需求后,我们需要考虑要用到哪些关键的功能模块,比如日期计算、月份输出等等。 2. 设计数据结构 在确定需要的功能模块后,我们需要设计合适的数据结构来存储相关信息,比如保存日期信息的结构体等。 3. 编写代码 在设计好数据…

    C 2023年5月23日
    00
  • C语言完整特性详情

    C语言完整特性详情攻略 什么是C语言? C语言是一种高效且灵活的计算机程序设计语言,是当前最为流行的程序设计语言之一。它可以用于开发操作系统、编写嵌入式系统、控制硬件资源等。 C语言特性概述 C语言有以下几大特性: 显式的内存管理,开发者可以直接操作指针来分配和释放内存。 面向过程的程序设计范式,将一个大程序拆分成多个函数,实现不同的功能。 简单的语言规范和…

    C 2023年5月22日
    00
  • C 程序 检查数字是偶数还是奇数

    以下是 “C 程序 检查数字是偶数还是奇数” 的完整使用攻略,包括概述、功能介绍、使用方法及示例说明: 概述 该程序是一个简单的 C 语言程序,可用于检查数字是偶数还是奇数。 功能介绍 该程序接受用户输入一个整数,并检查该整数是偶数还是奇数。如果该整数是偶数,则输出 “Even”;如果该整数是奇数,则输出 “Odd”。 使用方法 打开任意一个 C 语言编译器…

    C 2023年5月9日
    00
  • C语言实现栈的示例详解

    C语言实现栈的示例详解 栈(Stack)是一种非常重要的数据结构,在许多编程语言中都有广泛的应用。在C语言中,我们可以利用数组来实现栈数据结构。下面将介绍C语言实现栈的示例详解。 栈的结构 栈是一种线性数据结构,它具有以下特点: 后进先出(LIFO):最后压入栈的元素最先出栈; 插入(入栈)和删除(出栈)操作都在栈顶进行。 示意图如下: |_______| …

    C 2023年5月23日
    00
  • C语言嵌套链表实现学生成绩管理系统

    下面我将详细讲解“C语言嵌套链表实现学生成绩管理系统”的完整攻略。 什么是嵌套链表? 嵌套链表就是在链表的节点中包含另一个链表节点的指针,这样就可以形成多级结构。在C语言中,可以使用结构体和指针实现嵌套链表。 实现学生成绩管理系统的步骤 下面是实现学生成绩管理系统的步骤: 定义链表节点结构体 struct node { int stu_id; //学生编号 …

    C 2023年5月23日
    00
  • VS Code 中安装运行、编写C语言程序的详细教程

    以下是在 VS Code 中安装运行、编写 C 语言程序的详细教程: 1. 安装 VS Code 首先,你需要在官网 https://code.visualstudio.com/上下载并安装 VS Code。 2. 安装 C/C++ 扩展 打开 VS Code,并按下快捷键 Ctrl + Shift + X 或者点击左侧的 Extensions 图标 在搜索…

    C 2023年5月23日
    00
  • C语言预处理预编译命令及宏定义详解

    C语言预处理预编译命令及宏定义详解 C语言中有一种预处理器,可以利用预处理指令在编译之前进行文本替换、宏定义、条件编译等操作,这种预处理器就是C语言预处理器。本文将介绍C语言预处理器的使用方法和一些常见的预处理命令及宏定义的详解。 预处理命令 C语言预处理器使用一些特殊的指令进行预处理,下面列举了一些常见的预处理命令: include #include &l…

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