个人作业三-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
个人小结
代码比较简单,只能进行基本的转账,取款等操作;且操作只能在两个初始化账户间进行;对于每次运行时的初始账户,必须重新设置输入,并不能称之为一个系统,还有待完善。
原文地址:https://www.cnblogs.com/wjhne/p/13996540.html