ATM管理系统
:-😐:-:
这个作业的要求在哪里|https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478|
这个作业的目标|1.根据需求分析完成各个功能模块2.代码条理清晰
学号|3180701235
三、ATM管理系统
1、功能模块代码
菜单:
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 );
}
//打印密码,用于调试
int dump_pwd( char *name, char* a, int b )
{
int i = 0;
printf( "===========*****begin*****===========\n" );
for ( i = 0; i < b; i++ )
printf( "name is %s,a[%d] is:%c\n", name, i, a[i] );
printf( "===========*****end*****===========\n" );
}
账户验证:
int checkPass()
{
system( "cls" );
char m[7];
printf( "\n-----------ATM----------\n" );
printf( "\n** Bank **\n\n" );
printf( "\n正在进行IC卡认证,请稍吿...\n\n" );
printf( "请输入密码(系统默认初始密码:000000):\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 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" );
}
}
头文件:
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);
}
2.代码运行



3.psp
| PSP2.3 | Personal Software Process Stages | Time (%) Senior Student | Time (%) |
|---|---|---|---|
| Planning | 计划 | 6 | 8 |
| · Estimate | 估计这个任务需要多少时间 | 8 | 10 |
| Development | 开发 | 88 | 125 |
| · Analysis | 需求分析 (包括学习新技术) | 6 | 10 |
| · Design Spec | 生成设计文档 | 5 | 8 |
| · Design Review | 设计复审 | 4 | 6 |
| · Coding Standard | 代码规范 | 3 | 3 |
| · Design | 具体设计 | 15 | 18 |
| · Coding | 具体编码 | 30 | 35 |
| · Code Review | 代码复审 | 7 | 9 |
| · Test | 测试(自我测试,修改代码,提交修改) | 12 | 21 |
| Reporting | 报告 | 6 | 6 |
| · | 测试报告 | 3 | 2 |
| · | 计算工作量 | 2 | 1 |
| · | 并提出过程改进计划 | 3 | 2PSP2.1 |
4、实验小结
1.要按照需求分析结果逐步实现各功能模块
2.代码应当有合理适当的注释
3.函数名尽量用英文单词,不随意使用缩写
浙公网安备 33010602011771号