第三次作业-ATM管理系统

| 作业班级 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18 | |
| 作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478| ---- |
| 作业目标 | 编写一个ATM管理系统 | |
| 学号 | 3180701320 ||

一、题目要求

编写一个ATM管理系统,语言不限,要求应包括以下主要功能:

(1)开户,销户

(2)查询账户余额

(3)存款

(4)取款

(5)转账(一个账户转到另一个账户)
二、代码提交
//账户结构体
struct account{
int uid;//卡号
int password;//密码
float balance; //余额
bool flag; //该账户是否存在,存在为true
}account;

vector base;
主函数:
//显示菜单:
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);

}

初始化:
//初始化
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;

}
开户:
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}
销户:
//销户
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);
}

}
三、运行截图:

四、个人小结:

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 20
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 12 10
Development 开发 120 480
Analysis 需求分析(包括学习新技术) 16 8
Design Spec 生成设计文档 6 3
Design Review 设计复审 5 5
Coding Standard 代码规范 6 2
Design 具体设计 10 12
Coding 具体编码 60 70
Code Review 代码复审 6 8
Test 测试(自我测试,修改代码,提交修改) 15 19
Reporting 报告 15 18
Test Report 测试报告 6 3
Size Measurement 计算工作量 2 1
Postmortem & Process Improvement Plan Improvement Plan 事后总结,并提出过程改进计划 3 3
原文地址:https://www.cnblogs.com/wu102030/p/14003087.html