个人作业三-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前再见。

posted on 2020-11-15 23:29  GClock  阅读(134)  评论(0)    收藏  举报

导航