c++ ABCBank项目(二)

本文介绍了一种基于C++和MySQL实现的银行系统职工登录注册功能的方法,详细展示了服务器端如何处理客户端发来的注册和登录请求,并与数据库交互的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                     服务器和客户端搭建好后,创建一个属于银行职工的类,类里面有职工的姓名,账号和密码,首先是注册,打开自己电脑上的mysql数据库,在里面创建一个表格用来存放职工和客户的信息,然后在客户端的的注册里面输入自己的信息,通过send将信息传送到服务器中去,因为客户端会有各种不同的指令传送过来,所以需要你在类里面设置一些标志符来区分各个指令,服务器根据不同的指令来调用相关的函数,在收到注册的信息内容后,服务器便会打开本地的mysql,将收到的信息存放到银行职工的表格里去,下面是服务器操作的数据库代码:

打开本地的数据库:

// 初始化一个连接句柄MYSQL
	MYSQL* mysql;
	mysql = mysql_init(NULL);
	if (mysql == NULL)
	{
		printf("error: %s\n", mysql_error(mysql));
		return 1;
	}

	my_bool reconnect = true;
	mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
	mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk");

	if (!mysql_real_connect(mysql, NULL, "root", "132097", "gushuaige",	0, NULL, 0))
	{
		printf("error: %s\n", mysql_error(mysql));
		return 1;
	}

注册:

int result;
			// 没有返回结果集的操作
			char buff[200];
			sprintf(buff,"insert into zhigong values('%s',%d,'%s')",(object->shname()).c_str(),object->shaccount(),(object->shpassword()).c_str());

			result = mysql_query(mysql,buff);
			if (result != 0)
			{
				printf("error: %s\n", mysql_error(mysql));
				return fail;
			}
			else
			{
				printf("%llu 行受影响  添加信息成功!\n", mysql_affected_rows(mysql));
				return success ;
			}

注册好后便是登陆,客户端输入自己的账号和密码传送给服务器,服务器拿接收到的账号去找到数据库中的该栏,将里面的密码与接收到的密码进行比较,相同则返回success给客户端,从而进入操作的界面,不同则给个友好提示返回主界面,重新操作或输入,下面是登录的操作代码:

int result ;
			char buff[200];
			sprintf(buff,"select * from zhigong where id=%d;",object->shaccount());
			result = mysql_query(mysql, buff);
			if (result != 0)
			{
				printf("error: %s\n", mysql_error(mysql));
				return 1;
			}
			MYSQL_RES* mysql_res;
			MYSQL_FIELD* mysql_field;
			MYSQL_ROW mysql_row;
			unsigned int cols;
			mysql_res = mysql_store_result(mysql);
			cols = mysql_num_fields(mysql_res);
			if (mysql_res)
			{
				while ((mysql_row = mysql_fetch_row(mysql_res)))
				{
					for (unsigned int i=0; i<cols; ++i)
					{
						printf("%s\t", mysql_row[i] ? mysql_row[i] : "NULL");
					}
					printf("\n");
					if(mysql_row[2] == object->shpassword())
					{
						object->setmuser(mysql_row[0],atoi(mysql_row[1]),mysql_row[2]) ;
						return  success ;
					}
					else
					{
						return  fail ;
					}
				}
				mysql_free_result(mysql_res);
			}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值