• 个人作业三-ATM管理系统


    作业属于课程 AHPU-软件工程导论
    作业要求链接 个人作业三-ATM管理系统
    作业目标 编写一个ATM管理系统
    学号 3180701110

    一.题目要求

    编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
    (1)开户,销户
    (2)查询账户余额
    (3)存款
    (4)取款
    (5)转账(一个账户转到另一个账户)等...

    二.代码提交

    1.账户

    // 建立两个账户, 分别是操作账户和接受转账的账户
    PACCOUNT pMainAcc = (PACCOUNT)malloc(sizeof(ACCOUNT));
    PACCOUNT pAssistAcc = (PACCOUNT)malloc(sizeof(ACCOUNT));
    // 初始化两个账户的信息
    InitAccount(pMainAcc);
    InitAccount(pAssistAcc);
    
    void InitAccount(PACCOUNT pA)
    {
    printf("请初始化账户名, 密码, 姓名, 账户余额.
    ");
    pA->UID = (char *)malloc(sizeof(char)*20);
    pA->pwd = (char *)malloc(sizeof(char)*20);
    pA->UName = (char *)malloc(sizeof(char)*20);
    gets(pA->UID);
    gets(pA->pwd);
    gets(pA->UName);
    scanf("%d", &pA->balance);
    getchar();
    return ;
    }
    

    2.查询账户信息

    void showAccount(ACCOUNT A, bool flag)
    {
    if(flag)
    {
    int i = 0;
    getchar();
    char * tmpPwd = (char *)malloc(sizeof(char)*20);
    while(strcmp(tmpPwd, A.pwd))
    {
    printf("请输入账户%s的密码:
    ", A.UID);
    gets(tmpPwd);
    if(++i > 3)
    {
    printf("对不起, 密码输入错误!只能显示部分信息!
    ");
    showAccount(A, false);
    free(tmpPwd);
    return ;
    }
    }
    printf("账户信息如下:
    账户名	账户密码	账户余额	姓名
    ");
    printf("%6s	%8s%8d	%8	s
    ", A.UID, A.pwd, A.balance, A.UName);
    free(tmpPwd);
    }
    else
    {
    printf("账户信息如下:
    账户名	账户余额	姓名
    ");
    printf("%6s	%8d	%4s
    ", A.UID, A.balance, A.UName);
    }
    return ;
    }
    

    3.存款

    // 存钱, 需要密码验证并输入金额
    bool deposite(PACCOUNT pA)
    {
    if(!Authentication(pA))
    return false;
    int val = 0;
    printf("请输入金额:
    ");
    scanf("%d", &val);
    pA->balance += val;
    return true;
    }
    

    4.取款

     // 取钱, 需要密码验证并输入金额
    bool withDraw(PACCOUNT pA)
    {
    if(!Authentication(pA))
    return false;
    printf("请输入金额");
    int val = 0;
    scanf("%d", &val);
    if(pA->balance >= val)
    {
    pA->balance -= val;
    }
    else
    {
    printf("对不起, 余额不足!");
    return false;
    }
    return true;
    }
    

    5.转账

    // 转账, 需要密码验证, 并输入金额
    bool transfer(PACCOUNT pA, PACCOUNT pB)
    {
    if(!Authentication(pA))
    return false;
    printf("请输入金额");
    int val = 0;
    scanf("%d", &val);
    if(pA->balance >= val)
    {
    pA->balance -= val;
    pB->balance += val;
    }
    else
    {
    printf("对不起, 余额不足!");
    return false;
    }
    return true;
    }
    

    三.运行截图




    四.个人小结

    psp表格

    psp3.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 15 30
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 20 20
    Development 开发 100 300
    Analysis 需求分析(包括学习新技术) 20 20
    Design Spec 生成设计文档 10 10
    Design Review 设计复审 15 15
    Coding Standard 代码规范 10 10
    Design 具体设计 10 10
    Coding 具体编码 40 40
    Code Review 代码复审 5 5
    Test 测试(自我测试,修改代码,提交修改) 10 10
    Reporting 报告 10 10
    Test Report 测试报告 3 4
    Size Measurement 计算工作量 10 10
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 5
    个人小结
    代码比较简单,只能进行基本的转账,取款等操作;且操作只能在两个初始化账户间进行;对于每次运行时的初始账户,必须重新设置输入,并不能称之为一个系统,还有待完善。
  • 相关阅读:
    条件注释判断浏览器版本<!--[if lt IE 9]>
    动态加载js、css 代码
    C趣味题目
    shell脚本
    Logiscope学习网址
    将double型小数点后面多余的零去掉
    qt和makefile学习网址
    微软推出的工作流引擎
    java例子
    js 定义hash类
  • 原文地址:https://www.cnblogs.com/wjhne/p/13996540.html
Copyright © 2020-2023  润新知