用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

网络

2014-05-24 作者: 夏夏弥弥举报

[c]代码库

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#define N 200

void zhanghao();                 //账号
void xuanzhe();                  //选择函数
void enter_ATM();                //账号输入函数  
void input_code();               //密码输入函数
void caozuo();                   //基本操作界面
void qukuan();                   //取款函数
void success();                  //操作成功函数
void delay();                    //延时函数
void YU_E();                     //余额查询函数
void cunkuan();                  //存款函数
void panduan(double z);          //判断取款是否合法函数
void exit();                     //退出界面函数
void mima();                     //密码修改
void zhuanzhang();               //转账函数
void read();                     //文件写入函数
void write();                    //文件读取函数
void guanli();                   //管理员函数
void tequancode();               //管理员密码
void hu();                       //户
void xinxi();                    //信息
void gmima();                   //管理员改密
void CAOZUO();                   //管理员操作函数
void yinghang();                 //银行账户查询函数
void jia();                      //账户添加函数
void shanchu();                  //账户删除函数
typedef struct
{
	long int zhanghao;
	int mima;
	double yu_e;
}atm;
atm guan[N];
int k;
////////////////////////////////////////////////////////////主函数
void main()
{
	xuanzhe();
}
////////////////////////////////////////////////////////////功能选择函数
void xuanzhe()
{
	system("cls");
	printf("*          请选择功能       *\n");
	printf("*     1.管理员    2.用户    *\n");
	switch (getch())
	{
	case '1':tequancode(); break;
	case '2':enter_ATM(); break;
	default:{
				printf("\a非法输入");
				delay();
				system("cls");
				xuanzhe();
	}; break;
	}
}

///////////////////////////////////////////////////////////柜台机账号输入函数 
void enter_ATM()
{
	delay();
	system("cls");
	read();
	printf("*     欢迎使用 ATM 柜台机     *\n");
	printf("*          请输入卡号         *\n");
	long int user;
	scanf("%d", &user);
	if (user == 0)
	{
		printf("*        账号错误       *\n");
		enter_ATM();
	}
	else if (user != (guan[k].zhanghao))
	{
		for (k = 1; k<N; k++)
		{
			if (user == (guan[k].zhanghao))
				input_code();
		}
		system("cls");
		printf("*    账户不存在,请从新输入    *\n");
		enter_ATM();
	}
	else
		input_code();

}
////////////////////////////////////////////////////////////////密码输入函数
void input_code()
{
	long int code;
	int temp = 3;
	read();
	system("cls");
	printf("*          请输入密码          *\n");
	scanf("%d", &code);
	while (code != guan[k].mima)
	{
		temp--;
		system("cls");
		printf("*     密码错误,请重新输入     *\n");
		printf("*        您还有 ");
		printf("%d", temp);
		printf(" 次机会       *\n");
		scanf("%d", &code);

		if (temp == 1)
		{
			system("cls");
			printf("*      您已经 3 次输入密码     *\n");
			printf("*         系统将退出操作       *\n");
			delay();
			enter_ATM();
		}
	}
	caozuo();
}
//////////////////////////////////////////////////////////////////主操作界面函数
void caozuo()
{
	system("cls");
	printf("********************************\n");
	printf("*         请选择一下业务       *\n");
	printf("*          1.修改密码          *\n");
	printf("*          2.查询余额          *\n");
	printf("*          3.取款              *\n");
	printf("*          4.存款              *\n");
	printf("*          5.转账              *\n");
	printf("*          6.退出              *\n");
	printf("********************************\n");
	switch (getch())
	{
	case '1': mima();     break;
	case '2': YU_E();    break;
	case '3': qukuan();  break;
	case '4': cunkuan(); break;
	case '5': zhuanzhang(); break;
	case '6': exit();    break;
	default:{
				printf("\a非法操作\n");
				caozuo();
	};
	}
}
//////////////////////////////////////////////////////////////////////密码修改函数
void mima()
{
	long int mm1, mm2, mm3;
	int temp;
	system("cls");
	printf("旧密码:");
	scanf("%d", &mm1);
	printf("\n");
	if (mm1 != guan[k].mima)
	{
		system("cls");
		printf("旧密码错误,请重新输入\n");
		delay();
		mima();
	}
	printf("新密码:");
	scanf("%d", &mm2);
	if (mm2<100000 || mm2>999999)
	{
		system("cls");
		printf("        密码必须等于6位数  \n");
		printf("           请重新输入!    \n");
		delay();
		mima();
	}
	temp = mm2 % 111111;
	if (temp == 0)
	{
		system("cls");
		printf("          密码过于简单       \n");
		printf("           请重新输入!      \n");
		delay();
		mima();
	}
	printf("\n");
	printf("确认新密码:");
	scanf("%d", &mm3);
	if (mm2 != mm3)
	{
		system("cls");
		printf("确认密码不一致,请重新输入\n");
		delay();
		mima();
	}

	if (mm3 = mm2)
	{
		guan[k].mima = mm3;
		write();
		success();
	}
}

////////////////////////////////////////////////////////////////////余额查询函数
void YU_E()
{
	read();
	system("cls");
	printf("你的余额为:%lf\n", (guan[k].yu_e));
	printf("1.返回      2.退出     \n");
	switch (getch())
	{
	case '1': caozuo(); break;
	case '2': exit();   break;
	}
}
/////////////////////////////////////////////////////////////////////////取款函数
void qukuan()
{
	double temp;
	system("cls");
	printf("     请选择您要取款的金额     \n");
	printf("        1.100    2.200        \n");
	printf("        3.500    4.800        \n");
	printf("        5.1000   6.其它       \n");
	printf("                              \n");
	printf("        7.返回   8.退出       \n");
	switch (getch())
	{
	case '1': panduan(100);   break;
	case '2': panduan(200);   break;
	case '3': panduan(500);   break;
	case '4': panduan(800);   break;
	case '5': panduan(1000);  break;
	case '6':
		system("cls");
		printf("请输入您要取款的金额:");
		scanf("%lf", &temp);
		panduan(temp);      break;
	case '7':caozuo();      break;
	case '8':exit();        break;
	}
}
///////////////////////////////////////////////////////////////////判断取款是否合法函数
void panduan(double z)
{
	int beishu;
	if (z>(guan[k].yu_e))
	{
		system("cls");
		printf("           余额不足!         \n");
		printf("          请重新操作          \n");
		printf("     1.返回       2.退出      \n");
		switch (getch())
		{
		case '1': qukuan();
		case '2': exit();
		}
	}
	beishu = (int)z % 100;
	if (beishu != 0)
	{
		system("cls");
		delay();
		printf("  本ATM机只支持 100 的人民币  \n");
		printf("           请重新操作         \n");
		printf("                              \n");
		printf("     1.返回        2.退出     \n");
		switch (getch())
		{
		case '1': qukuan();
		case '2': exit();
		}
	}
	if (z == 5000.00 || z>5000.00)
	{
		system("cls");
		printf("    每次取款不能超过 5000 元  \n");
		printf("           请重新操作         \n");
		printf("                              \n");
		printf("     1.返回        2.退出     \n");
		switch (getch())
		{
		case '1': qukuan();
		case '2': exit();
		}
	}
	(guan[k].yu_e) -= z;
	write();
	success();
}
/////////////////////////////////////////////////////////////////存款函数
void cunkuan()
{
	double cun;
	system("cls");
	printf(" 请放入人民币:");
	scanf("%lf", &cun);
	while (cun<0)
	{
		system("cls");
		printf("            非法存款          \n");
		printf("        请重新放入人民币      \n");
		scanf("%lf", &cun);
	}
	(guan[k].yu_e) += cun;
	write();
	success();
}
/////////////////////////////////////////////////////////////////转账号函数
void zhuanzhang()
{
	int i, hao;
	double money;
	long int a = 2109999999;
	system("cls");
	delay();
	read();
	printf("*       请输入账号      *\n");
	scanf("%d", &hao);
	printf("*       请输入金额      *\n");
	scanf("%lf", &money);
	if (hao<1000000000 || hao>a)
	{
		printf("*     账号错误,操作取消    *\n");
		delay();
		delay();
		caozuo();
	}
	else if (money>guan[k].yu_e || money<0)
	{
		printf("*     金额错误,操作取消    *\n");
		delay();
		delay();
		caozuo();
	}
	else
	{
		read();
		for (i = 1; i<N; i++)
		{
			if (guan[i].zhanghao == hao)break;
		}
		guan[k].yu_e -= money;
		guan[i].yu_e += money;
		write();
		success();
	}
}
///////////////////////////////////////////////////////延时函数
void delay()
{
	long int bl1;
	int bl2;
	for (bl1 = 600000; bl1>0; bl1--)
	{
		for (bl2 = 300; bl2>0; bl2--);
	}
}
/////////////////////////////////////////////////操作成功函数
void success()
{
	system("cls");
	printf("           操作已成功         \n");
	printf("                              \n");
	printf("     1.返回        2.退出     \n");
	switch (getch())
	{
	case '1':caozuo();     break;
	case '2':exit();  break;
	}
}
//////////////////////////////////////////////系统退出函数
void exit()
{
	system("cls");

	printf("*        欢迎您的再次使用      *\n");
	printf("*         系统正在退出...      *\n");
	delay();
	xuanzhe();
}
////////////////////////////////////////////////////文件读取函数
void read()
{
	int i;
	FILE *fp;
	fp = fopen("xinxi.txt", "r");
	if (fp == NULL)
	{
		printf("打开文件失败\n");
		return;
	}
	for (i = 0; i<N; i++)
	{

		fscanf(fp, "%d  ", &(guan[i].zhanghao));
		fscanf(fp, "%d   ", &(guan[i].mima));
		fscanf(fp, "%lf\n", &(guan[i].yu_e));
	}
	fclose(fp);
}

/////////////////////////////////////////////////////////////文件写入函数
void write(int i)
{
	FILE *fp;
	fopen_s(fp,"用户信息.dat", "ab+");
	if (fp == NULL)
	{
		printf("打开文件失败\n");
		return;
	}
	fprintf(fp, "%d  ", guan[i].zhanghao);
	fprintf(fp, "%d  ", guan[i].mima);
	fprintf(fp, "%lf\n", guan[i].yu_e);
	fclose(fp);
}

void tequancode()
{
	long int code;
	int temp = 2;
	read();
	system("cls");
	printf("*       请输入管理员密码          *\n");
	scanf("%d", &code);
	while (code != guan[0].mima)
	{

		system("cls");
		printf("*     密码错误,请重新输入     *\n");
		printf("*        您还有 ");
		printf("%d", temp);
		printf(" 次机会       *\n");
		scanf("%d", &code);
		temp--;
		if (temp == 0)
		{
			system("cls");
			printf("*\a    您已经 3 次输入密码     *\n");
			printf("*         系统将退出操作       *\n");
			delay();
			xuanzhe();
		}
	}
	guanli();
}
////////////////////////////////////////////////////////////////管理员函数
void guanli()
{
	system("cls");
	delay();
	printf("*           1.信息查询          *\n");
	printf("*           2.操作              *\n");
	printf("*           3.退出              *\n");
	switch (getch())
	{
	case '1':zhanghao(); break;
	case '2':CAOZUO(); break;
	case '3':exit(); break;
	default:{
				printf("\a非法操作");
				guanli();
	};
	}
}
/////////////////////////////////////账号
void zhanghao()
{
	system("cls");
	read();
	printf("           请输入账号         \n");
	long int user;
	scanf("%d", &user);
	if (user != (guan[k].zhanghao))
	{
		for (k = 1; k<N; k++)
		{
			if (user == (guan[k].zhanghao))
				hu();
		}
		system("cls");
		printf("*    账户不存在,请从新输入    *\n");
		delay();
		guanli();
	}
	else
	{
		delay();
		hu();
	}
}
////////////////////////////////////////////////账户
void hu()
{
	system("cls");
	printf("*   1.信息   2.改密码   *\n");
	printf("*   3.返回   4.退出     *\n");
	switch (getch())
	{
	case '1':xinxi(); break;
	case '2':gmima(); break;
	case '3':zhanghao(); break;
	case '4':guanli(); break;
	default:{
				printf("\a非法操作\n");
				hu();
	};
	}
}
///////////////////////////////////////////////信息
void xinxi()
{
	system("cls");
	read();
	printf("*账号      密码     余额*\n");
	printf("%d  ", guan[k].zhanghao);
	printf("%d  ", guan[k].mima);
	printf("%lf  \n", guan[k].yu_e);
	printf("*     1.返回    2.退出   *\n");
	switch (getch())
	{
	case '1':hu(); break;
	case '2':guanli(); break;
	}
}
///////////////////////////////////////////管理员改密
void  gmima()
{
	long int mm1, mm2, mm3;
	char temp;
	system("cls");
	printf("旧密码:");
	scanf("%d", &mm1);
	printf("\n");
	if (mm1 != guan[k].mima)
	{
		system("cls");
		printf("旧密码错误,请重新输入\n");
		delay();
		gmima();
	}
	printf("新密码:");
	scanf("%d", &mm2);
	if (mm2<100000 || mm2>999999)
	{
		system("cls");
		printf("        密码必须等于6位数  \n");
		printf("           请重新输入!    \n");
		delay();
		gmima();
	}
	temp = mm2 % 111111;
	if (temp == 0)
	{
		system("cls");
		printf("          密码过于简单       \n");
		printf("           请重新输入!      \n");
		delay();
		gmima();
	}
	printf("\n");
	printf("确认新密码:");
	scanf("%d", &mm3);
	if (mm2 != mm3)
	{
		system("cls");
		printf("确认密码不一致,请重新输入\n");
		delay();
		gmima();
	}
	if (mm3 = mm2)
	{
		guan[k].mima = mm3;
		write();
		hu();
	}
}
///////////////////////////////////////////管理员操作函数
void CAOZUO()
{
	system("cls");
	delay();
	printf("*   1.查询所有账户    *\n");
	printf("*   2.添加账户        *\n");
	printf("*   3.删除账户        *\n");
	printf("*   4.返回    5.退出  *\n");
	switch (getch())
	{
	case '1':yinghang(); break;
	case '2':jia(); break;
	case '3':shanchu(); break;
	case '4':guanli(); break;
	case '5':xuanzhe(); break;
	default:{printf("\a非法操作\n");
		CAOZUO(); };
	}

}
//////////////////////////////////////////银行账户查询函数
void yinghang()
{
	system("cls");
	delay();
	read();
	printf("*账号      密码     余额*\n");
	for (; k<N; k++)
	{
		if (guan[k].zhanghao != 0 && guan[k].zhanghao>0)
		{
			printf("%d  ", guan[k].zhanghao);
			printf("%d  ", guan[k].mima);
			printf("%lf\n", guan[k].yu_e);
		}
	}
	printf("*     1.返回    2.退出   *\n");
	switch (getch())
	{
	case '1':CAOZUO(); break;
	case '2':guanli(); break;
	}
}
//////////////////////////////////////////账户添加函数
void jia()
{
	int mm1, mm2;
	int temp;
	system("cls");
	delay();
	read();
	printf("*    请输入密码   *\n");
	scanf("%d", &mm1);
	if (mm1<100000 || mm1>999999)
	{
		system("cls");
		printf("        密码必须等于6位数  \n");
		printf("           请重新输入:    \n");
		delay();
		scanf("%d", &mm1);
	}
	temp = mm1 % 111111;
	if (temp == 0)
	{
		system("cls");
		printf("          密码过于简单       \n");
		printf("           请重新输入:      \n");
		delay();
		scanf("%d", &mm1);
	}
	printf("\n");
	printf("确认密码:\n");
	scanf("%d", &mm2);
	if (mm1 != mm2)
	{
		system("cls");
		printf("确认密码不一致,操作取消\n");
		delay();
		CAOZUO();
	}
	if (mm1 = mm2)
	{
		for (; k<N; k++)
		{
			if (guan[k].zhanghao == 0)
			{
				guan[k].zhanghao = guan[k - 1].zhanghao + 1;
				guan[k].mima = mm2;
				write();
				break;
			}
		}
		printf("账号创建成功!\n");
		printf("您的账号是%d,请妥善保管!\n", guan[k].zhanghao);
		printf("*     1.返回    2.退出   *\n");
		switch (getch())
		{
		case '1':CAOZUO(); break;
		case '2':guanli(); break;
		}
	}
}
/////////////////////////////////////////账户删除函数
void shanchu()
{
	system("cls");
	delay();
	read();
	printf("*          请输入账号         *\n");
	long int user;
	scanf("%d", &user);
	if (user == 0)
	{
		printf("*  账号错误,操作取消       *\n");
		CAOZUO();
	}
	else if (user != (guan[k].zhanghao))
	{
		for (k = 1; k<N; k++)
		{
			if (user == (guan[k].zhanghao))
			{
				for (; k<N; k++)
				{
					guan[k].zhanghao = guan[k + 1].zhanghao;
					guan[k].mima = guan[k + 1].mima;
					guan[k].yu_e = guan[k + 1].yu_e;
					write();
				}
				printf("账号删除成功!\n");
				printf("*     1.返回    2.退出   *\n");
				switch (getch())
				{
				case '1':CAOZUO(); break;
				case '2':guanli(); break;
				}
			}
		}
		system("cls");
		printf("*          账户不存在         *\n");
		delay();
		CAOZUO();
	}
	else
	{
		for (; k<N; k++)
		{
			guan[k].zhanghao = guan[k + 1].zhanghao;
			guan[k].mima = guan[k + 1].mima;
			guan[k].yu_e = guan[k + 1].yu_e;
			write();
		}
		printf("账号删除成功!\n");
		printf("*     1.返回    2.退出   *\n");
		switch (getch())
		{
		case '1':CAOZUO(); break;
		case '2':guanli(); break;
		}
	}
}



网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...