c++项目 ——公司管理系统

这是一个C++项目,构建了一个包含密码隐藏、MySQL数据库连接、员工升职降职管理等功能的公司管理系统。管理员可进行多项操作,实现了与数据库的交互。

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

这是关于C++的一个项目,这个项目是关于公司管理系统,使用到的比较特色的功能有,密码隐藏,连接mysql的库建立,里面的链接返回,公司的升职降职,管理员的功能等。


资源如下:http://download.youkuaiyun.com/detail/xx5595480/9160309

代码如下:

//#include"my_main.h"
#include"my_company.h"
#include<stdio.h>
#include<time.h>
#include<iomanip>
#include<iostream>
#include<string.h>
#include<mysql/mysql.h>
#include<stdlib.h>
#include <list>
#include <climits>
#include<unistd.h>
using namespace std;

MYSQL* conn;
list<Employee*> Link;        //创建一个用于存储Employee对象指针的list容器;

void Load_Menu();
void Main_Menu();
int login_account(int num,string pwd);
void conn_mysql();
void load();

void boss_fun(list<Employee*>::iterator p);
void man_fun(list<Employee*>::iterator p);
void manager_fun(list<Employee*>::iterator p);	


void view_all(list<Employee*>::iterator p);
void view_all(list<Employee*>::iterator p);
void add_manager(list<Employee*>::iterator p);
void del(list<Employee*>::iterator p);
void modify_salary(list<Employee*>::iterator p,list<Employee*>::iterator q);
void modify_mark(list<Employee*>::iterator p);
void update(list<Employee*>::iterator p);
void add_man(list<Employee*>::iterator p);
void show_depart(list<Employee*>::iterator p);	
void save_all();
void change_pwd(list<Employee*>::iterator p);
void show_personal(list<Employee*>::iterator p);
bool sort_any (const Employee *first,const Employee * second);	
bool sort_lead (const Employee *first,const Employee * second);
bool sort_depart (const Employee *first,const Employee * second);
bool sort_num (const Employee *first, const Employee * second);	
bool sort_name (const Employee *first,const Employee * second);		

int check=0;


void Employee::save_str(char *savestr)										//save information to mysql
{
	list<Employee*>::iterator l=Link.begin();  //创建容器Link1的迭代器 l;
	while(l != Link.end())
	{
		sprintf(savestr,"insert into Employee (number,name,password,position,salary,logtime,flag,remark,leader) values(%d,'%s','%s','%s',%f,'%s',%d,'%s','%s')",
			(*l)->number,(*l)->name.c_str(),(*l)->password.c_str(),(*l)->position.c_str(),
			(*l)->salary,(*l)->logtime.c_str(),(*l)->flag,(*l)->mark.c_str(),(*l)->leader.c_str());
		if(mysql_query(conn,savestr))    //发送SQL语句,成功返回0;
		{
			fprintf(stderr,"%s\n",mysql_error(conn));
			exit(1);
		}
		l++;
	}
}
////////////////////////////////////////////////////
bool sort_lead (const Employee *first,const Employee * second)			//sort from little to greater by lead
{
	return (first->leader) < (second->leader)?true:false;
}
////////////////////////
bool sort_depart (const Employee *first,const Employee * second)				//sort from little to greater by depart
{
	return (first->flag) <(second->flag)?true:false;
}
////////////////////////////
bool sort_num (const Employee *first, const Employee * second)			//sort from little to greater by number
{
	return (first->number) < (second->number)?true:false;
}
//////////////////////////
bool sort_name (const Employee *first,const Employee * second)			//sort from little to greater by name
{
	return (first->name) < (second->name)?true:false;
}
////////////////////////////////////////////////////////
bool sort_any (const Employee *first,const Employee * second)			//sort from little to greater by depart
{
	bool res;
	if((first->flag) < (second->flag))
	{
		if((first->leader) < (second->leader))
		{
			if((first->number) < (second->number))
			{
				res = true;
			}
			else
			{
				res = false;
			}
		}
	} 
	else
	{
		res = false;
	}
	return res = true?true:false;
}
///////////////////////////////////////////////
void show_personal(list<Employee*>::iterator p)						//show saleman's  information 
{
	system("clear");
	cout<<"\033[34;1m您的个人信息为:\033[0m"<<endl<<endl;
	
	cout<<"----------------------------------------------------------------------------------------------"<<endl;
	cout.width(10);	cout<<"工号 |";
	cout.width(19);	cout<<"姓名 |";
	cout.width(12);	cout<<"职位 |";
	cout.width(9);	cout<<"薪水 |";
	cout.width(9);	cout<<"等级 |";
	cout.width(19);	cout<<"REMARK |";
	cout.width(19);	cout<<"上级 |";
	cout.width(40);	cout<<"上次登录时间";
	cout<<endl;
	cout<<"----------------------------------------------------------------------------------------------"<<endl;
	(*p)->print();
	cin.ignore(1000,'\n');
	cin.get();
	
}
/////////////////////////////////////////////
void change_pwd(list<Employee*>::iterator p)					//change salesman's password 
{
	string pwd;
	string c_pwd;
	while(1)
	{
		cout<<"\n\033[34;1m请输入新密码:\033[0m";
		system("stty -echo");
		cin>>pwd;
		system("stty echo");
		cout<<"\n\033[34;1m请在输入一次:\033[0m";
		system("stty -echo");
		cin>>c_pwd;
		system("stty echo");
		if(pwd == c_pwd)
		{
			(*p)->set_passwd(pwd);
			cout<<"\n\033[34;1m密码修改成功!\033[0m"<<endl;
			cout<<"Input any key";
			cin.ignore(1000,'\n');
			cin.get();
			break;
		}		
	}
	save_all();
}
//////////////////////////////////////////////
void save_all()													//save all data to mysql
{
	list<Employee*>::iterator p=Link.begin();
	if(mysql_query(conn,"drop table Employee"))
	{
		cout<<"mysql error"<<endl;
		exit(1);
	}
	if(mysql_query(conn,"create table Employee(no int auto_increment not null primary key,number int not null,name varchar(20) not null,password varchar(20) not null default '1234',position varchar(20) not 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值