个人作业三-ATM管理系统
| 博客班级 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19 |
| ---- | ---- | ---- |
| 作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477 |
| 作业目标| 做出ATM管理系统 |
| 学号 | 3190704134 |
题目要求
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...
代码分模块讲解
/*登录界面*/
int checkPass()
{
system( "cls" );
char m[7];
printf( "\n@@@@@@@@中国建设银行@@@@@@@@\n" );
printf( "\n**China Construction Bank**\n\n" );
printf( "\n正在进行IC卡认证,请稍吿...\n\n" );
printf( "请输入密码(系统默认初始密码:123456):\n" );
printf( "Please input your Press Enter\n\n" );
/* dump_pwd("mypwd",m,7); */
while ( 1 )
{
for ( n = 0; n < 6; n++ )
{
m[n] = getch();
printf( "*" );
}
//dump_pwd( "mypwd", m, 7 );
//dump_pwd( "moren", ch, 7 );
if ( strncmp( ch, m, 6 ) == 0 )
{
printf( "\n\n\t\t 正在进行ID认证,请稍等" );
/* Sleep(400); */
printf( "." );
Sleep( 400 );
printf( "." );
Sleep( 400 );
printf( "." );
Sleep( 400 );
printf( "." );
/* Sleep(2000); */
printf( "\n\n\t\t 登录成功.....\n" );
break;
}
puts( "\n密码错误,请重新输入密码:\n" );
}
return(0);
}


/* ///菜单 */
void menu()
{
system( "cls" );
printf( "\t\t Please Select Service\n\n" );
printf( "\n\n\t\t\t**电子现金**\n\n" );
printf( "\t\t1.存款业务 2.取款业务\n\n" );
printf( "\t\t3.转账业务 4.查询业务\n\n" );
printf( "\t\t5.修改密码 6.退卡\n\n" );
}

/* //存款业务 */
int deposit()
{
int m;
printf( "请输入您的存入金额\n" );
scanf( "%d", &m );
printf( "成功存入 %d 元\n", m );
i += m;
return(i);
}

/* //取款业务 */
int GetCash()
{
int n;
if ( i <= 0 )
{
printf( "余额不足\n" );
return(i);
}
printf( "请输入您的取出金额\n" );
while ( 1 )
{
scanf( "%d", &n );
if ( n > i )
{
printf( "请输入少于%d 元\n", i );
}else
break;
}
printf( "成功取出 %d 元\n", n );
i -= n;
return(i);
}

/*转账业务*/
int Transf()
{
int n;
long int number;
if ( i <= 0 )
{
printf( "余额不足\n" );
return(i);
}
printf( "请输入您要转帐的银行卡号\n" );
scanf( "%ld", &number );
printf( "请输入您的转出金额\n" );
while ( 1 )
{
scanf( "%d", &n );
if ( n > i )
{
printf( "请输入少于%d 元\n", i );
}else
break;
}
printf( "成功向%ld 账号转账 %d 元\n", number, n );
i -= n;
return(i);
}

/*查询业务*/
void Checkmoney()
{
if ( i <= 0 )
printf( "您的账户余额: 0 元\n" );
else
printf( "您的账户余额: %d 元\n", i );
}

/*修改密码*/
void modiPass()
{
char mi[7];
printf( "请输入原来的密码:\n" );
while ( 1 )
{
for ( n = 0; n < 6; n++ )
{
mi[n] = getch();
printf( "*" );
}
printf( "\n" );
if ( strncmp( mi, ch, 6 ) == 0 )
{
puts( "请输入新的密码:\n" );
for ( n = 0; n < 6; n++ )
{
ch[n] = getch();
printf( "*" );
}
printf( "\n" );
if ( strcmp( mi, ch ) != 0 )
{
printf( "密码修改成功!\n" );
break;
}else
printf( "密码修改失败(新密码与旧密码相同),请重新修改.\n请输入原来的密码:\n" );
}else
printf( "密码错误,请重新输入:\n" );
}
}

/*退卡*/
void Exit()
{
printf( "交易结束,请取回您的卡\n" );
Sleep( 1000 );
}

/*主函数*/
int main()
{
int x;
/* modiPass(); */
while ( 1 )
{
checkPass();
menu();
while ( 1 )
{
printf( "\n请选择业务:" );
while ( 1 )
{
scanf( "%d", &x );
if ( x > 6 || x < 0 )
{
printf( "\n输入有误,请重新输入:" );
}else break;
}
switch ( x )
{
case 1: deposit();
break;
case 2: GetCash();
break;
case 3: Transf();
break;
case 4: Checkmoney();
break;
case 5: modiPass();
break;
case 6: Exit();
x = 6;
break;
default: break;
}
if ( x == 6 )
break;
}
}
return(0);
}
psp表格总结
| 任务内容 | 计划完成所需时间(min) | 实际完成所需时间(min) |
|---|---|---|
| 计划 | 10 | 10 |
| 完成任务所需时间,并规划工作步骤 | 10 | 10 |
| 开发 | 150 | 200 |
| 需求分析 | 0 | 0 |
| 生成设计文档 | 0 | 0 |
| 设计复审 | 0 | 0 |
| 代码规范 | 0 | 0 |
| 具体设计 | 10 | 10 |
| 具体编码 | 5 | 5 |
| 代码复审 | 5 | 5 |
| 测试 | 20 | 20 |
| 报告 | 0 | 0 |
| 测试报告 | 0 | 0 |
| 计算工作量 | 10 | 10 |
| 事后总结,并提出过程改进计划 | 10 | 20 |
项目小结
通过这个小项目,复习了一下C语言基础知识,简易登录界面等操作。
其实还从GitHub上盗来了一份C++写的ATM代码,然后逼迫自己学会了怎么将其在VS上成功跑起来(毕竟deadline是第一生产力嘛),刚开始不会,感觉很折磨,会了之后,发现一切不过如此。所以呀,有时候我们觉得事情很难,可能真的只是格局不够大吧。C++实现的功能比较全面,由于最近事太多,deadline又马上就到了,懒得把那么多代码贴上来了。。。。哦,说的也差不多了,是时候say goodbye了,我亲爱的博客园伙计,下次deadline前再见。
浙公网安备 33010602011771号