首页 > 其他分享 >银行管理系统2

银行管理系统2

时间:2024-08-07 22:57:51浏览次数:8  
标签:index account name 管理系统 账户 银行 accounts printf

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ACCOUNTS 100 // 设置账户上限
#define MAX_NAME_LEN 20 // 设置账户名长度上限

struct Account {
    char name[MAX_NAME_LEN]; // 账户名
    double balance; // 账户余额
};

// 定义全局变量
struct Account accounts[MAX_ACCOUNTS];
int num_accounts = 0;

// 添加账户
void create_account() {
    if (num_accounts >= MAX_ACCOUNTS) {
        printf("账户数量已达上限,无法添加新账户。\n");
        return;
    }

    char name[MAX_NAME_LEN];
    double balance;

    printf("请输入要创建的账户名:\n");
    scanf("%s", name);

    printf("请输入账户余额:\n");
    scanf("%lf", &balance);

    // 创建新账户
    struct Account new_account;
    strcpy(new_account.name, name);
    new_account.balance = balance;

    accounts[num_accounts] = new_account;
    num_accounts++;

    printf("已成功创建账户:%s,初始余额为 %.2lf。\n", name, balance);
}

// 账户存款
void deposit() {
    char name[MAX_NAME_LEN];
    double amount;

    printf("请输入要存款的账户名:\n");
    scanf("%s", name);

    // 查找账户
    int account_index = -1;
    for (int i = 0; i < num_accounts; i++) {
        if (strcmp(accounts[i].name, name) == 0) {
            account_index = i;
            break;
        }
    }

    if (account_index == -1) {
        printf("未找到账户:%s。\n", name);
        return;
    }

    printf("请输入存款金额:\n");
    scanf("%lf", &amount);

    accounts[account_index].balance += amount;

    printf("账户:%s,存入 %.2lf 元,现有余额 %.2lf 元。\n", name, amount, accounts[account_index].balance);
}

// 账户取款
void withdraw() {
    char name[MAX_NAME_LEN];
    double amount;

    printf("请输入要取款的账户名:\n");
    scanf("%s", name);

    // 查找账户
    int account_index = -1;
    for (int i = 0; i < num_accounts; i++) {
        if (strcmp(accounts[i].name, name) == 0) {
            account_index = i;
            break;
        }
    }

    if (account_index == -1) {
        printf("未找到账户:%s。\n", name);
        return;
    }

    printf("请输入取款金额:\n");
    scanf("%lf", &amount);

    if (accounts[account_index].balance < amount) {
        printf("账户:%s,余额不足,取款失败。\n", name);
        return;
    }

    accounts[account_index].balance -= amount;

    printf("账户:%s,取出 %.2lf 元,现有余额 %.2lf 元。\n", name, amount, accounts[account_index].balance);
}

// 转账
void transfer() {
    char from_name[MAX_NAME_LEN];
    char to_name[MAX_NAME_LEN];
    double amount;

    printf("请输入转出账户名:\n");
    scanf("%s", from_name);

    printf("请输入转入账户名:\n");
    scanf("%s", to_name);

    // 查找账户
    int from_index = -1;
    int to_index = -1;
    for (int i = 0; i < num_accounts; i++) {
        if (strcmp(accounts[i].name, from_name) == 0) {
            from_index = i;
        }

        if (strcmp(accounts[i].name, to_name) == 0) {
            to_index = i;
        }
    }

    if (from_index == -1 || to_index == -1 || from_index == to_index) {
        printf("转账失败:账户名不正确或相同。\n");
        return;
    }

    printf("请输入转账金额:\n");
    scanf("%lf", &amount);

    if (accounts[from_index].balance < amount) {
        printf("账户:%s,余额不足,转账失败。\n", from_name);
        return;
    }

    accounts[from_index].balance -= amount;
    accounts[to_index].balance += amount;

    printf("从账户:%s,将 %.2lf 元转入账户:%s,现有余额为 %.2lf 和 %.2lf 元。\n", from_name, amount, to_name, accounts[from_index].balance, accounts[to_index].balance);
}

// 显示所有账户信息
void show_accounts() {
    if (num_accounts == 0) {
        printf("暂无账户信息。\n");
        return;
    }

    printf("所有账户信息如下:\n");
    for (int i = 0; i < num_accounts; i++) {
        printf("%d. 账户名:%s,余额:%.2lf 元。\n", i+1, accounts[i].name, accounts[i].balance);
    }
}

int main() {
    while (1) {
        printf("欢迎来到银行管理系统,请选择要进行的操作:\n");
        printf("1. 创建账户\n");
        printf("2. 存款\n");
        printf("3. 取款\n");
        printf("4. 转账\n");
        printf("5. 显示账户信息\n");
        printf("6. 退出\n");

        int choice;
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                create_account();
                break;
            case 2:
                deposit();
                break;
            case 3:
                withdraw();
                break;
            case 4:
                transfer();
                break;
            case 5:
                show_accounts();
                break;
            case 6:
                printf("谢谢使用银行管理系统,再见!\n");
                exit(0);
            default:
                printf("无效的选择,请重新输入。\n");
        }
    }

    return 0;
}

欢迎订阅专栏,数据结构实验,期末大作业,前端后端都有哦,想我发哪个方面的资源或文章可以私信我,免费的哦

标签:index,account,name,管理系统,账户,银行,accounts,printf
From: https://blog.csdn.net/2301_79235379/article/details/141003233

相关文章

  • Springboot计算机毕业设计大学生档案管理系统-程序+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,学生档案,班级成绩单,登记表,个人荣誉开题报告内容一、研究背景与意义研究背景:随着高等教育的发展,大学生人数的不断增加,学生档案信息的数量急剧增长......
  • JSP个人博客管理系统4n8ge(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,日志信息,个人相册,标签分类,登录签到,积分充值技术要求:    开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技......
  • python+flask计算机毕业设计新冠疫情后病历管理系统(程序+开题+论文)
    志羽·羽场管理与智能推荐系统2220o本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景新冠疫情的爆发对全球医疗体系产生了深远影响,特别是在病历管理方面。传统的病历管理方式在面对大规模......
  • python+flask计算机毕业设计社区居民信息管理系统 (程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快,社区居民信息管理成为社区管理的重要组成部分。传统的社区管理方式存在信息更新不及时、管理效率低下等问题,难以满足......
  • 基于springboot+MySQL校园社团信息管理系统的设计与实现-计算机毕设 附源码 02705
    springboot校园社团信息管理系统的设计与实现目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 校园社团信息管理系统系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3 系统......
  • SSM+MySQL四川工商学院图书馆管理系统-计算机毕设 附源码 03457
    SSM四川工商学院图书馆管理系统目 录摘 要1绪论1.1课题背景1.2研究目的和意义1.3国内外研究现状1.4系统设计思想1.5本章小结2 开发环境及相关技术介绍2.1MySQL数据库的介绍2.2 B/S架构的介绍2.3 Java语言2.4 SSM框架2.5本章小结3 ......
  • 锡耶纳大学与 NocoBase:教育管理系统的全新篇章
    关于锡耶纳大学锡耶纳大学(意大利语:UniversitàdegliStudidiSiena,简称UNISI)建于1240年,是欧洲最古老的大学之一。如今,锡耶纳大学以其法学院和医学院闻名。这所著名的大学坐落在意大利托斯卡纳的中心,其影响力遍及阿雷佐、格罗塞托和圣乔凡尼瓦尔达尔诺等城市,并在15个学科部......
  • 基于django+vue的小区物业管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,住宅小区作为城市居民生活的重要载体,其管理与服务水平直接影响到居民的生活质量和幸福感。传统的物业管理方式往往依......
  • 智能停车场管理系统
    文章目录目录文章目录论文目录项目介绍开发环境系统实现论文参考论文目录摘 要1绪论1.1研究背景1.2研究现状1.3研究内容2系统关键技术2.1JSP技术2.2JAVA简介2.3MYSQL数据库2.4B/S结构3系统分析3.1可行性分析3.1.1技术可行性3.1......
  • Java计算机毕业设计山西工程技术学院学生请假管理系统的设计与实现(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大和学生管理需求的日益复杂化,传统的人工请假管理方式已难以满足高效、准确、便捷的管理要求。山西工程技术学院作为一所培养工......