• ATM


    | 班级 | ahpu软件工程 |
    | 实验要求 | atm机管理系统 |
    | 学号 | 3180110234 |
    目录
    一、题目要求
    二、代码
    三、运行结果
    四、
    博客班级 软件工程
    作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478
    学号 3180110234
    一、题目要求
    编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
    (1)开户
    (2)查询账户余额
    (3)存款
    (4)取款
    (5)转账(一个账户转到另一个账户)

    二、代码
    1.结构体
    typedef struct{
    int uid;//卡号
    int password;//密码
    float balance; //余额
    bool flag; //该账户是否存在,存在为true
    }account;
    vector base;

    2.检测函数
    bool check(account N){

    bool flag = true;

    if (N.uid-first > base.size() || !N.flag) {

    printf("抱歉您所寻找的账户并不存在,请重新输入: ");

    flag = false;
    }
    if (!N.flag) {

    printf("抱歉您所寻找的账户已注销,请重新输入: ");
    flag = false;
    }

    return flag;
    }

    3.初始化函数
    void init(account &N){

    //设置卡号

    int id = int(base.size());

    N.uid = first+id; //六位卡号

    printf("您的卡号为: %d ",N.uid);

    //设置密码

    printf("请设置您的密码: ");

    int psw = 0;

    scanf("%d",&psw);

    N.password = psw; //账户密码

    //初始化余额

    N.balance = 0; //账户余额

    //将账户标记为存在,没有被注销

    N.flag = true;
    }

    4.开户
    void create(){

    account N;

    init(N);

    base.push_back(N);
    }

    5.注销
    void cancel(){

    printf("请输入您需要删除的账号卡号: ");

    int id = 0;

    scanf("%d",&id);

    while (check(base[id-first]) == false) {

    scanf("%d",&id);
    }

    printf("请输入该 %d 账号的密码: ",id);

    int psw = 0;

    scanf("%d",&psw);

    while (psw != base[id-first].password) {

    printf("抱歉,您输入的密码并不正确,请重新输入: ");

    scanf("%d",&psw);
    }

    printf("您是否确认注销该账户? 输入1为确认注销,输入0为不注销 ");

    int choice = 0;

    cin>>choice;

    if (choice == 1) {

    base[id-first].flag = false; //flag标记为账户不存在
    } else {

    printf("您已取消本次注销行为 ");
    }
    }

    6.余额查询
    void enquire(){

    printf("请输入您的账户卡号: ");

    int id = 0;

    scanf("%d",&id);

    while (check(base[id-first]) == false) {

    scanf("%d",&id);
    }

    if (base[id-first].balance == 0) {

    printf("很抱歉,您当前并未有任何存款 ");
    } else {

    printf("您的余额为: %f ¥ ",base[id-first].balance);
    }
    }

    7.存款
    void deposit(){

    printf("请输入您的账户卡号: ");

    int id = 0;

    scanf("%d",&id);

    while (check(base[id-first]) == false) {

    scanf("%d",&id);
    }

    float input = 0;

    printf("请输入您要存入的金额数目 ");

    scanf("%f",&input);

    base[id-first].balance += input;

    printf("您的余额为: %f ¥ ",base[id-first].balance);
    }

    8.取款
    void withdraw(){

    printf("请输入您的账户卡号: ");

    int id = 0;

    scanf("%d",&id);

    while (check(base[id-first]) == false) {

    scanf("%d",&id);
    }

    float input = 0;

    printf("请输入您要取出的金额数目 ");

    scanf("%f",&input);

    if (base[id-first].balance < input) {

    printf("抱歉,您的存款不足,不能取出 ");
    } else {

    base[id-first].balance -= input;

    printf("您的余额为: %f ¥ ",base[id-first].balance);
    }
    }

    9.转账
    void transfer(){

    printf("请输入您的账户卡号: ");

    int oid = 0;

    scanf("%d",&oid);

    while (check(base[oid-first]) == false) {

    scanf("%d",&oid);
    }

    printf("请输入您所要转入的账户卡号: ");

    int iid = 0;

    scanf("%d",&iid);

    while (check(base[oid-first]) == false) {

    scanf("%d",&oid);
    }

    float input = 0;

    printf("请输入您要转出的金额数目 ");

    scanf("%f",&input);

    if (base[oid-first].balance < input) {

    printf("抱歉,您的存款不足,不能转出 ");
    } else {

    base[oid-first].balance -= input;

    base[iid-first].balance += input;

    printf("您的余额为: %f ¥ ",base[oid-first].balance);

    printf("对方余额为: %f ¥ ",base[iid-first].balance);
    }
    }

    10.菜单
    void menu(){

    int end = 0; //是否结束,0记为不结束

    do {

    printf("请选择您需要进行的操作: 1.开户 2.销户 3.查询当前余额 4.存款 5.取款 6.转账 0.退出 ");

    int choose = 0;

    scanf("%d",&choose);

    switch (choose) {

    case 0:
    
        printf("Bye~
    ");
    
        exit(0);
    
    case 1:
    
        create();
    
        break;
    
    case 2:
    
        cancel();
    
        break;
    
    case 3:
    
        enquire();
    
        break;
    
    case 4:
    
        deposit();
    
        break;
    
    case 5:
    
        withdraw();
    
        break;
    
    case 6:
    
        transfer();
    
        break;
    
        
    
    default:
    
        break;
    

    }

    printf("请问您是否需要继续进行其他操作?输入1继续进行其他操作,输入0则退出 ");

    scanf("%d",&end);
    } while (end);
    }

    三、运行结果

    四、

    psp 任务内容 计划完成的时间(min) 实际完成时间(min)
    Planning 计划 30 30
    Estimate 估计这个任务需要多少时间 50 60
    Development 开发 20 20
    Design 设计 15 15
    Test 测试 6 6
    Postmortem & Process Improvement Plan 事后总结 5 5

  • 相关阅读:
    Linux配置虚拟RAID阵列
    D-Bus错误 D-Bus setup failed: Connection "xxx" is not allowed to own the service "org.bluez" due to security policies in the configuration file
    ftp
    echarts图例过多,折线过多颜色不知道怎么分配怎么办??优化如下
    vuex页面刷新数据丢失的解决办法
    obj转换为gltf方法three.js一步一步来--性能优化超厉害的!!!!!超赞操作!!!Obj模型转Gltf模型并超强压缩!!!!!
    three.js一步一步来--加载模型并修改其大小、按照规定的区域把一堆模型摆得整整齐齐~~~
    three.js一步一步来--简单交互--点击物体变红
    线上代码已变更,客户没有刷新浏览器,导致点击菜单后找不到相对路由js文件无法加载XXX路由,解决办法如下
    angular配置多个系统 配置动态路由,缩短模块初次加载时间,快速打开界面,优化用户访问体验
  • 原文地址:https://www.cnblogs.com/Tlz621/p/14195369.html
Copyright © 2020-2023  润新知