作业属于课程 | 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 |
个人小结 | |||
代码比较简单,只能进行基本的转账,取款等操作;且操作只能在两个初始化账户间进行;对于每次运行时的初始账户,必须重新设置输入,并不能称之为一个系统,还有待完善。 |