sqlite3与c++的交互

#include "menu.h"
#include <iostream>
#include <stdio.h>
using namespace std;
void changemenu()
{
	printf("\n\n");
	printf("\t\t\t\t*******************************\n");
	printf("\t\t\t\t**      1.修改工资           **\n");
	printf("\t\t\t\t**                           **\n");
	printf("\t\t\t\t**      2.修改年龄           **\n");
	printf("\t\t\t\t**                           **\n");
	printf("\t\t\t\t**      3.修改工资(每小时)  **\n");
	printf("\t\t\t\t**                           **\n");
	printf("\t\t\t\t**      4.修改姓名           **\n");
	printf("\t\t\t\t**                           **\n"); 
	printf("\t\t\t\t**      5.修改性别           **\n");
	printf("\t\t\t\t**                           **\n");
	printf("\t\t\t\t**      6.返回               **\n");
	printf("\t\t\t\t*******************************");
	printf("\n\n");
	cout << "请选择您要进行的操作:";
}

void mangermenu()
{
	cout << "\n\n";
	printf("                                            欢迎进入职工管理系统!\n");
	printf("                              **************************************************\n");
	printf("                              **               1.增加职工                     **\n");
	printf("                              **                                              **\n");
	printf("                              **               2.开除职工                     **\n");
	printf("                              **                                              **\n");
	printf("                              **               3.修改职工信息                 **\n");
	printf("                              **                                              **\n");
	printf("                              **               4.搜索职工信息                 **\n");
	printf("                              **                                              **\n");
	printf("                              **               5.浏览职工信息                 **\n");
	printf("                              **                                              **\n");
	printf("                              **               6.发工资                       **\n");
	printf("                              **                                              **\n");
	printf("                              **               7.返回                         **\n");
	printf("                              **************************************************\n");
	printf("请按键选择:");
}
void mainmenu()
{

	printf("\n\n");
	printf("                                        欢 迎 使 用 图 书 管 理 系 统 !\n");
	printf("                              **************************************************\n");
	printf("                              **                    1.登录                    **\n");
	printf("                              **                                              **\n");
	printf("                              **                    2.注册                    **\n");
	printf("                              **                                              **\n");
	printf("                              **                    3.修改密码                **\n");
	printf("                              **                                              **\n");
	printf("                              **                    4.退出                    **\n");
	printf("                              **************************************************\n");
	printf("请按键选择:");
}
#include <iostream>
#include <Windows.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include "menu.h"
#include "sqlite3.h"
#pragma comment(lib,"sqlite3.lib")
#define LEDTEST 0
using namespace std;
// 职工类
class Worker
{
private:
	int number;
	int salary;
	int age;
	int working_hours;
	int salary_hour;
	string name;
	string sex;
	class Worker* next;

public:
	void CreateWorkerNode();
	void Output();
	void set_rand_working_hours(Worker* p);
	void set_number(int _number) { number = _number; }
	void set_salary(int _salary) { salary = _salary; }
	void set_age(int _age) { age = _age; }
	void set_working_hours(int _working_hours) { working_hours = _working_hours; }
	void set_salary_hour(int _salary_hour) { salary_hour = _salary_hour; }
	void set_name(string _name) { name = _name; }
	void set_sex(string _sex) { sex = _sex; }
	void set_next(Worker* _next) { next = _next; }

	int get_number() { return number; }
	int get_salary() { return salary; }
	int get_age() { return age; }
	int get_working_hours() { return working_hours; }
	int get_salary_hour() { return salary_hour; }
	string get_name() { return name; }
	string get_sex() { return sex; }
	Worker* get_next() { return next; }
};

// 管理层类
class Manger
{
private :
	string account;
	string password;
	string spassword;
	int balance;
	class Manger* next;
public:
	void CreateMangerNode();
	void Login();
	void Register();
	void change_password();
	void Payoff(Manger* mp);
	void Add();
	void Delete();
	void Modify();
	void Seek();
	void set_rand_balance(Manger* p);
public:
	void set_account(string _account) { account = _account; }
	void set_password(string _password) { password = _password; }
	void set_spassword(string _spassword) { spassword = _spassword; }
	void set_balance(int _balance) { balance = _balance; }
	void set_next(Manger* _next) { next = _next; }
	string get_account() { return account; }
	string get_password() { return password; }
	string get_spassword() { return spassword; }
	int get_balance() { return balance; }
	Manger* get_next() { return next; }
};

// 数据库类
class Sql
{
private :
	char** Result;
	int Row;
	int Column;
public:
	Sql(int Row = 0, int Column = 0) {}
	char** get_Result() { return Result; }
	int& get_Row() { return Row; }
	int& get_Column() { return Column; }
public:
	bool sql_exec(string sql,int flag);
	void update_exec(string sql);
	void open_db();
	void close_db();
	void pay_off(Manger* mp, int sum);
};

// 链表类
class Link
{
private:
	Worker* head;
	Manger* mhead;
public:
	Link() { head = NULL; mhead = NULL; mhead = new Manger; head = new Worker; head->set_next(NULL); }
	Worker* get_head() { return head; }
	Manger* get_mhead() { return mhead; }
	void craete_worker_table();
	void create_manger_table();
	void MangerFunction(Manger* p);
	void _main();
};
int n = 10;
sqlite3* db = NULL; sqlite3* root = NULL;
Worker* head = NULL; Worker* _end = NULL;
Manger* mhead = NULL; Manger* mend = NULL;

bool Sql::sql_exec(string sql, int flag )
{
	if (flag == 1)
	{
		if (sqlite3_exec(db, sql.c_str(), NULL, NULL, NULL))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	if (flag == 2)
	{
		if (sqlite3_exec(root, sql.c_str(), NULL, NULL, NULL))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
}
void Sql::update_exec(string sql)
{
	int ret = sqlite3_exec(db, sql.c_str(), NULL, NULL,NULL);
	if (ret != SQLITE_OK)
	{
		cout << "修改失败!\n" << endl;
		system("pause");
	}
	else
	{
		cout << "修改成功!";
		system("pause");
	}
	
}
void Sql::open_db()
{
	if (sqlite3_open("worker.db", &db) != SQLITE_OK)
	{
		cout << "文件打开失败!\n";
		system("pause");
		exit(0);
	}
	if (sqlite3_open("manger.db", &root) != SQLITE_OK)
	{
		cout << "文件打开失败!\n";
		system("pause");
		exit(0);
	}
}

void Sql::pay_off(Manger* mp, int sum)
{
	Worker* wp = NULL;
	Worker* pp = head->get_next();
	string sql;
	char buf[500];
	mp->set_balance(mp->get_balance() - sum);
	sprintf_s(buf, "update manger set balance=%d;", mp->get_balance() - sum);
	sql = buf;
	sqlite3_exec(root, sql.c_str(), NULL, NULL, NULL);
	while (pp)
	{
		pp->set_salary(pp->get_salary_hour() * pp->get_working_hours() + pp->get_salary());
		pp->set_working_hours(0);
		pp = pp->get_next();
	}
	pp = head->get_next();
	while (pp)
	{
		sprintf_s(buf, "update worker set salary=%d,working_hours=%d where number=%d;", pp->get_salary(), 0, pp->get_number());
		sql = buf;
		sqlite3_exec(db, sql.c_str(), NULL, NULL, NULL);

		pp = pp->get_next();
	}
	system("cls");

	cout << "\n\n\n\n工资发放成功!\n";
	wp->Output();
	system("pause");
}
void Sql::close_db()
{
	sqlite3_close(db);
	sqlite3_close(root);
}
#if LEDTEST
void Link::create_manger_table() // 创建manger数据库
{
	int ret;
	string sql;
	sql = "create table manger(account text primary key not null, \
								password text not null,\
								spassword text not null,\
								balance real);";
	ret = sqlite3_exec(root, sql.c_str(), NULL, NULL, NULL);
	if (ret != SQLITE_OK)
	{
		cout << "已创建此表!";
		system("pause");
	}
}
void Link::craete_worker_table() // 创建worker数据库
{
	int ret;
	string sql;

	sql = "create table worker(number real primary key not null, \
								salary real check(salary > 0) not null, \
								age real check(age > 0) not null, \
								working_hours real,\
								salary_hour real not null,\
								name text not null,\
								sex text not null);";
	ret = sqlite3_exec(db, sql.c_str(), NULL, NULL, NULL);
	if (ret != SQLITE_OK)
	{
		cout << "已创建此表!!";
		system("pause");
	}
}


#endif

void Worker::CreateWorkerNode() // 创建链表
{
	Sql* sp = new Sql;
	string sql;
	char** Result = sp->get_Result();

	if (sqlite3_get_table(db, "select * from worker order by number desc;", &Result, &sp->get_Row(), &sp->get_Column(), NULL) != SQLITE_OK)
	{
		cout << "未找到worker表!" << endl;
		system("pause");
		return;
	}
	for (int i = 7; i < (sp->get_Row() + 1) * sp->get_Column();)
	{
		Worker* p = new Worker;
		p->set_number(atoi(Result[i])); i++;
		p->set_salary(atoi(Result[i])); i++;
		p->set_age(atoi(Result[i])); i++;
		p->set_rand_working_hours(p); i++;
		p->set_salary_hour(atoi(Result[i])); i++;
		p->set_name(Result[i]); i++;
		p->set_sex(Result[i]); i++;
		_end->set_next(p);
		p->set_next(NULL);
		_end = _end->get_next();
	}
	sqlite3_free_table(Result);
}

void Worker::set_rand_working_hours(Worker* p)
{
	int a[10];
	srand((unsigned)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		a[i] = (rand() % (24  - 16  + 1)) + 16 ;
	}
	p->set_working_hours(a[(rand() % (10 - 1 + 1)) + 1] * n);
	n = n - 2;
	if (n == 6)
	{
		n = 9;
	}
	if (n == 5)
	{
		n = 10;
	}
}

void Worker::Output() // 输出链表中的信息
{
	Worker* p = head->get_next();
	cout << "\nnumber\tsalary\tage\tworking_hours\tsalary_hour\tname\tsex\n" << endl;
	while (p)
	{
		cout << p->get_number() << "\t" << p->get_salary() << "\t" << p->get_age() << "\t"
			<< p->get_working_hours() << "\t\t" << p->get_salary_hour() << "\t\t" << p->get_name() << "\t" << p->get_sex() << endl;
		p = p->get_next();
	}

	_getch();
}
void Manger::CreateMangerNode()
{
	Sql* sp = new Sql;
	string sql;
	char** Result;
	int Row ;
	int Column ;
	
	if (sqlite3_get_table(root, "select * from manger;", &Result, &Row, &Column, NULL) != SQLITE_OK)
	{
		cout << "未找到manger表!" << endl;
		system("pause");
		return;
	}

	for (int i = 4; i < (Row + 1) * Column;)
	{
		Manger* p = new Manger;
		p->set_account(Result[i]); i++;
		p->set_password(Result[i]); i++;
		p->set_spassword(Result[i]); i++;
		p->set_rand_balance(p); i++;
		mend->set_next(p);
		p->set_next(NULL);
		mend = mend->get_next();
	}
	sqlite3_free_table(Result);
}


void Manger::Add() // 添加职工信息
{
	int number;
	int salary;
	int age;
	int salary_hour;
	char name[200];
	char sex[200];
	char buf[600];
	int n;
	Sql* sp = NULL;
	Worker* p = new Worker;
	string sql;
	cout << "请输入要增加的人数:";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		system("cls");
		cout << "请输入第" << i + 1 << "个职工的信息:\n";
		cout << "请输入工号(按0退出):";
		cin >> number;
		if (number == 0)
		{
			return;
		}
		p->set_number(number);
		cout << "请输入工资:";
		cin >> salary;
		p->set_salary(salary);
		cout << "请输入年龄:";
		cin >> age;
		p->set_age(age);
		cout << "请输入每小时工资:";
		cin >> salary_hour;
		p->set_salary_hour(salary_hour);
		cout << "请输入姓名:";
		cin >> name;
		p->set_name(name);
		cout << "请输入性别(男或女):";
		while (cin >> sex)
		{
			if (strcmp(sex, "男") == 0 || strcmp(sex, "女") == 0)
			{
				p->set_sex(sex);
				break;
			}
			else
			{
				cout << "请输入男或女:";
			}
		}


		sprintf_s(buf, "insert into worker(number, salary, age, salary_hour, name, sex) values(%d,%d,%d,%d,'%s','%s');", number, salary, age, salary_hour, name, sex);
		sql = buf;
		if (sp->sql_exec(sql,1) != SQLITE_OK)
		{
			cout << "\n已有工号为" << number << "的职工!" << endl;
			system("pause");
			continue;
		}
		cout << "添加成功!!\n";
		system("pause");
		_end->set_next(p);
		p->set_next(NULL);
		_end = p;
	}
}

void Manger::Delete() // 删除职工信息
{
	Worker* p = head->get_next();
	Sql* sp = NULL;
	p->Output();

	int number = 0;
	int flag = 0;
	string sql;
	char buf[200];
	cout << "请输入您要删除的职工号码(按0退出):";
	while (cin >> number)
	{
		if (number == 0)
		{
			return;
		}
		while (p)
		{
			if (p->get_number() == number)
			{
				flag = 1;
				break;
			}
			p = p->get_next();
		}
		if (flag)
		{
			break;
		}
		else
		{
			cout << "查无此人!请重新输入(按0退出):";
			p = head->get_next();
		}
	}
	p = head->get_next();
	Worker* pp = head;
	while (p)
	{
		if (p->get_number() == number)
		{
			if (p->get_next() == NULL)
			{

				head->set_next(NULL);
			}
			else
			{
				pp->set_next(p->get_next());
			}
		}
		p = p->get_next();
		pp = pp->get_next();
	}
	
	sprintf_s(buf, "delete from worker where number=%d;", number);
	sql = buf;

	if ( sp->sql_exec(sql,1) != SQLITE_OK)
	{
		cout << "删除失败!\n" << endl;
		system("pause");
		return;
	}
	cout << "删除成功!";
	system("pause");
}

void Manger::Modify() // 修改职工信息
{
	Worker* p = head->get_next();
	Sql* sp = NULL;
	int number;
	int salary;
	int age;
	int salary_hour;
	char name[20];
	char sex[5];
	int flag = 0;
	string sql;
	char buf[600];
	p->Output();
	cout << "请输入要修改职工的工号(按0退出):";
	while (cin >> number)
	{
		if (number == 0)
		{
			return;
		}
		while (p)
		{
			if (p->get_number() == number)
			{
				flag = 1;
				break;
			}
			p = p->get_next();
		}
		if (flag)
		{
			break;
		}
		else
		{
			cout << "查无此人!请重新输入(按0退出):";
			p = head->get_next();
		}
	}
	if (!flag)
	{
		return;
	}
	else
	{
		Sql* sp = NULL;
		int sign = 0;
		while (1)
		{
			system("cls");
			changemenu();
			switch (_getch())
			{
			case '1':
				system("cls");
				cout << "请输入要修改的工资:";
				cin >> salary;
				p->set_salary(salary);
				sprintf_s(buf, "update worker set salary=%d where number=%d", salary, number);
				sql = buf;
				sp->update_exec(sql);
				break;
			case '2':
				system("cls");
				cout << "请输入要修改的年龄:";
				cin >> age;
				p->set_age(age);
				sprintf_s(buf, "update worker set age=%d where number=%d", age, number);
				sql = buf;
				sp->update_exec(sql);
				break;
			case '3':
				system("cls");
				cout << "请输入要修改的每小时的工资:";
				cin >> salary_hour;
				p->set_age(salary_hour);
				sprintf_s(buf, "update worker set salary_hour=%d where number=%d", salary_hour, number);
				sql = buf;
				sp->update_exec(sql);
				break;
			case '4':
				system("cls");
				cout << "请输入要修改的姓名:";
				cin >> name;
				p->set_name(name);
				sprintf_s(buf, "update worker set name='%s' where number=%d", name, number);
				sql = buf;
				sp->update_exec(sql);
				break;
			case '5':
				system("cls");
				cout << "请输入要修改的性别:";
				while (cin >> sex)
				{
					if (strcmp(sex, "男") == 0 || strcmp(sex, "女") == 0)
					{
						p->set_sex(sex);
						break;
					}
					else
					{
						cout << "请输入男或女:";
					}
				}
				sprintf_s(buf, "update worker set sex='%s' where number=%d", sex, number);
				sql = buf;
				sp->update_exec(sql);
				break;
			case '6':
				system("cls");
				sign = 1;
				break;
			}
			if (sign)
			{
				break;
			}
		}
	}
}

void Manger::Seek()
{
	Worker* p = head->get_next();
	int number;
	int flag = 0;
	cout << "请输入要查找职工的工号(按0退出):";
	while (cin >> number)
	{
		if (number == 0)
		{
			return;
		}
		while (p)
		{
			if (p->get_number() == number)
			{
				flag = 1;
				break;
			}
			p = p->get_next();
		}
		if (flag)
		{
			break;
		}
		else
		{
			cout << "查无此人!请重新输入(按0退出):";
			p = head->get_next();
		}
	}
	cout << "\nnumber\tsalary\tage\tname\tsex\n";
	cout << p->get_number() << "\t" << p->get_salary() << "\t" << p->get_age() << "\t"
		<< p->get_name() << "\t" << p->get_sex() << endl;
	system("pause");
}

void Manger::Login()
{
	Link* lp = NULL;
	Manger* p = mhead->get_next();
	char c;
	int i;
	int k = 0;
	int flag = 0;
	int cnt = 3;
	char account[200];
	char password[200];
	cout << "请输入您的账户(按0退出):";
	while (cin >> account)
	{
		if (strcmp(account,"0") == 0)
		{
			return;
		}
		if (strlen(account) <= 15)
		{
			break;
		}
		else
		{
			cout << "请输入长度为1到15的账户(按0退出):";
		}
	}

	cout << "请输入密码(按0退出):";
	for (i = 0; (c = _getch()) != '\r';)
	{
		if (c == '0')
		{
			return;
		}
		if (i <= 15 && isprint(c))
		{
			password[i] = c;
			i++;
			k++;
			cout << "*";
		}
		if (k > 0 && c == '\b')
		{
			i--;
			k--;
			cout << "\b" << " " << "\b";
		}
	}
	password[i] = '\0';
	cout << "\n";
	while (p)
	{
		if (p->get_account() == account)
		{
			flag = 1;
			while (p->get_password() != password)
			{
				cnt--;
				if (cnt == 0)
				{
					system("cls");
					cout << "\n\n\n\n\n\n\n";
					cout << "密码输入次数已用完!!即将退出登录页面...";
					Sleep(1500);
					return;
				}
				cout << "密码错误!您还有" << cnt << "次机会" << endl;
				cout << "请重新输入(按0退出):";
				for (i = 0; (c = _getch()) != '\r';)
				{
					if (c == '0')
					{
						return;
					}
					if (i <= 15 && isprint(c))
					{
						password[i] = c;
						i++;
						k++;
						cout << "*";
					}
					if (k > 0 && c == '\b')
					{
						i--;
						k--;
						cout << "\b" << " " << "\b";
					}
				}
				password[i] = '\0';
				cout << "\n";
			}
			system("cls");
			cout << "\n\n\n\n";
			cout << "管理层" << account << "登录成功!!\n";
			cout << "公司的总资产为" << p->get_balance() << "元\n";
			system("pause");
			lp->MangerFunction(p);
			return;
		}
		p = p->get_next();
	}
	if (!flag)
	{
		cout << "不存在此账户!请先前往注册!" << endl;
		system("pause");
	}
}

void Manger::Register()
{
	Link* lp = NULL;
	char account[200];
	char password[200];
	char spassword[200];
	Manger* p = new Manger;
	cout << "\n\n\n\n\n\n\n";
	cout << "请输入账户(按0退出):";
	while (cin >> account)
	{
		if (strcmp(account, "0") == 0)
		{
			return;
		}
		if (strlen(account) <= 16 )
		{
			break;
		}
		else
		{
			cout << "请输入长度为1到16位的账户:";
		}
	}
	p->account = account;
	cout << "请输入密码(按0退出):";
	while (cin >> password)
	{
		if (strcmp(password, "0") == 0)
		{
			return;
		}
		if (strlen(password) <= 16)
		{
			break;
		}
		else
		{
			cout << "请输入长度为1到16位的密码(按0退出):";
		}
	}
	p->password = password;
	cout << "请输入您的密保(按0退出):";
	while (cin >> spassword)
	{
		if (strcmp(spassword, "0") == 0)
		{
			return;
		}
		if (strlen(spassword) <= 16)
		{
			break;
		}
		else
		{
			cout << "请输入长度为1到16位的密保(按0退出):";
		}
	}
	p->spassword = spassword;
	mend->set_next(p);
	mend = p;
	mend->set_next(NULL);
	
	Sql* sp = NULL;
	string sql;
	char buf[500];
	sprintf_s(buf, "insert into manger(account,password,spassword) values('%s','%s','%s');", account, password, spassword);
	sql = buf;
	char* Errmsg;
	int ret = sqlite3_exec(root, sql.c_str(), NULL, NULL, &Errmsg);
	if (ret != SQLITE_OK)
	{
		cout << "已有此账户!!\n注册失败!!" << endl;
		cout << Errmsg << endl;
		system("pause");
		return;
	}
	system("cls");
	cout << "\n\n\n\n\n\n\n";
	cout << "\t\t\t\t\t*******************************\n";
	cout << "\t\t\t\t\t**                           **\n";
	cout << "\t\t\t\t\t       管理层" << account << "注册成功!!\n";
	cout << "\t\t\t\t\t**                           **\n";
	cout << "\t\t\t\t\t*******************************\n";
	system("pause");
}

void Manger::change_password()
{
	Manger* p = mhead->get_next(), *mp = new Manger;
	Sql* sp = NULL;
	string sql;
	char buf[500];
	int flag = 0;
	int sign = 0;
	char maccount[200];
	char mpassword[200];
	char mspassword[200];
	cout << "请输入您的账户(按0退出):";
	while (cin >> maccount)
	{
		if (strcmp(maccount, "0") == 0)
		{
			return;
		}
		while (p)
		{
			if (p->get_account() == maccount)
			{
				flag = 1;
				break;
			}
			p = p->get_next();
		}
		if (flag)
		{
			break;
		}
		else
		{
			cout << "此账号不存在!请重新输入(按0退出):";
			p = mhead->get_next();
		}
	}
	if (flag)
	{
		p = mhead->get_next();
		cout << "请输入您设置的密保(按0退出):";
		while (cin >> mspassword)
		{
			if (strcmp(mspassword, "0") == 0)
			{
				return;
			}
			while (p)
			{
				if (p->get_spassword() == mspassword)
				{
					sign = 1;
					break;
				}
				p = p->get_next();
			}
			if (sign)
			{
				cout << "请输入修改后的密码(按0退出):";
				while (cin >> mpassword)
				{
					if (strcmp(mpassword, "0") == 0)
					{
						return;
					}
					if (strlen(mpassword) <= 16)
					{
						break;
					}
					else
					{
						cout << "请输入长度为1到16位的密码(按0退出):";
					}
				}
				p->set_password(mpassword);
				sprintf_s(buf, "update manger set password='%s' where account='%s';", mpassword, maccount);
				sql = buf;
				sqlite3_exec(root, sql.c_str(), NULL, NULL, NULL);
				cout << "密码修改成功!!\n";
				system("pause");
				return;
			}
			else
			{
				cout << "密保输入错误!!请重新输入(按0退出):";
				p = mhead->get_next();
			}
		}
	}
}

void Manger::Payoff(Manger* mp)
{
	Worker* wp = NULL;
	Sql* sp = NULL;
	wp->Output();
	int sum = 0;
	int sign = 0;

	Worker* p = head->get_next();
	while (p)
	{
		sum += p->get_salary_hour() * p->get_working_hours();
		p = p->get_next();
	}
	cout << "所有员工总工资为:" << sum << endl;
	cout << "公司总资产为:" << mp->get_balance() << endl;
	if (sum <= mp->get_balance())
	{
		while (1)
		{
			cout << "检测到当前公司总资产大于职工工资总和,是否发放工资?\n";
			cout << "1.是                                      2.否\n";
			switch (_getch())
			{
			case '1':
				sp->pay_off(mp, sum);
				sign = 1;
				break;
			case'2':
				system("cls");
				sign = 1;
				break;
			}
			if (sign)
			{
				break;
			}
		}
		
	}
	else
	{
		cout << "检测到当前公司总资产小于职工总工资,暂时不能发放工资!!\n";
		system("pause");
	}
}

void Manger::set_rand_balance(Manger* p)
{
	int a[10], b[10];
	srand((unsigned)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		a[i] = (rand() % (900000 * (i + 1) - 500000 * (i + 1) + 1)) + 500000 * (i + 1);
	}
	
	for (int i = 0; i < 10; i++)
	{
		b[i] = (rand() % (10 - 1 + 1)) + 1;
	}
	p->set_balance(a[b[5]]);
}
void Link::MangerFunction(Manger* p)
{
	int sign = 0;
	Worker* pp = NULL;
	Manger* mp = NULL;

	while (1)
	{
		system("cls");
		mangermenu();
		switch (_getch())
		{
		case '1':
			system("cls");
			mp->Add();
			break;
		case '2':
			system("cls");
			mp->Delete();
			break;
		case '3':
			system("cls");
			p->Modify();
			break;
		case '4':
			system("cls");
			mp->Seek();
			break;
		case '5':
			system("cls");
			pp->Output();
			break;
		case '6':
			system("cls");
			mp->Payoff(p);
			break;
		case '7':
			system("cls");
			sign = 1;
			break;
		}
		if (sign)
		{
			break;
		}
	}
}

void Link::_main()
{
	Manger* p = new Manger;
	Link* lp = new Link;
	while (1)
	{
		system("cls");
		mainmenu();
		switch (_getch())
		{
		case '1':
			system("cls");
			p->Login();
			break;
		case '2':
			system("cls");
			p->Register();
			break;
		case '3':
			system("cls");
			p->change_password();
			break;
		case '4':
			system("cls");
			exit(0);
		}
	}
}
int main()
{
	Sql* sp = NULL;
	sp->open_db();
#if LEDTEST
	Link link;
	link.craete_worker_table();
	link.create_manger_table();
#endif
	
	head = new Worker; _end = new Worker; head->set_next(NULL); _end = head;
	mhead = new Manger; mend = new Manger; mhead->set_next(NULL);mend = mhead;
	Manger* mp = new Manger;Worker* wp = new Worker;
	mp->CreateMangerNode();wp->CreateWorkerNode();
	Link* lp = new Link;
	lp->_main();
	sp->close_db();
	return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值