zoukankan      html  css  js  c++  java
  • ATM管理系统

    博客班级 软件工程
    作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478
    学号 3180701228

    一、题目要求

    编写一个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
  • 相关阅读:
    Android——监听事件OnLongClickListener
    Android——edittext的几个属性
    源码安装Postgresql9.4.1
    添加产品唯一性限制以后,复制按钮不能使用
    [转载]git 忽略某些文件
    grep 命令搜索 带空格的字符
    听故事学会计笔记
    利用Python的三元表达式解决Odoo中工资条中城镇、农村保险的问题
    8.0 Qweb 报表编写步骤
    Buff系统
  • 原文地址:https://www.cnblogs.com/weihang/p/13997343.html
Copyright © 2011-2022 走看看