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.函数名尽量用英文单词,不随意使用缩写

posted on 2020-11-19 09:50  韩雨晨  阅读(312)  评论(0)    收藏  举报

导航