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

    一、作业信息

    博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
    作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478
    作业目标 ATM管理系统
    学号 3180701201
    作业要求
    编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
    (1)开户,销户
    (2)查询账户余额
    (3)存款
    (4)取款
    (5)转账(一个账户转到另一个账户)等...
    允许网上查询参考,但请注意不要直接抄袭,可以理解看懂别人的代码,再自己编写
    代码分析
    结构体
    typedef struct{
    int uid;//卡号
    int password;//密码
    float balance; //余额
    bool flag;  //该账户是否存在,存在为true
    

    }account;
    vector base;检测函数 检查账户是否存在,true为存在//检查账户是否存在,true为存在
    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;
    }
    初始化函数
    //初始化
    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;
    

    }
    开户
    //开户
    void create(){
    account N;
    init(N);
    base.push_back(N);
    }
    注销
    //销户
    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("您已取消本次注销行为
    ");
    }
    

    }
    余额查询
    //查询余额
    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);
    }
    

    }
    存款
    //存款
    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);
    

    }
    取款
    //取款
    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);
    }
    

    }
    转账
    //转账
    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);
    }
    

    }
    菜单
    //菜单
    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 计划 5 3
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 5 5
    Development 开发 300 300
    Analysis 需求分析(包括学习新技术) 15 45
    Design Spec 生成设计文档 5 20
    Design Review 设计复审 5 5
    Coding Standard 代码规范 3 3
    Design 具体设计 10 12
    Coding 具体编码 200 200
    Code Review 代码复审 10 20
    Test 测试(自我测试,修改代码,提交修改) 10 60
    Reporting 报告 5 5
    Test Report 测试报告 5 5
    Size Measurement 计算工作量 20 30
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 20 20
  • 相关阅读:
    ps:图层知识
    ps:选区的存储及载入
    ps:消除锯齿和羽化
    ps:不规则选区
    ps:建立规则选区
    python如何查看内存占用空间
    python-生成器
    python3-列表生成式
    python:迭代
    Photoshop画笔工具的使用
  • 原文地址:https://www.cnblogs.com/yjjtt/p/13997199.html
Copyright © 2011-2022 走看看