c++项目范例

include<iostream>

include<mysql/mysql.h>

include<list>

include<algorithm>

include<stdlib.h>

include<string.h>

include<stdio.h>

using namespace std;

//-----类------
class Boss
{
public:
Boss(){};
void Insert_manager(); //添加经理
void Insert_marger(); //添加销售经理
void Show_manager(); //显示经理信息
void Show_marger(); //显示销售经理信息
void Modify_manager(); //修改经理信息
void Modify_marger(); //修改销售经理信息
void Delete_manager(); //删除经理信息
void Delete_marger(); //删除销售经理信息
void Find_manager(); //查找某经理信息
void Find_marger(); //查找某销售经理信息
void Wage_manager(); //结算经理工资
void Wage_marger(); //结算销售经理工资
};

//基本员工类
class Employe
{
public:
int id;
char name[32];
int password;
int rank; //boss级别为1,经理级别2,销售经理级别3,兼职技术人员4,兼职推销员工级别5
float wage;
};

//manager经理
class Manager:public Employe
{
public:
Manager(){};
void Insert_manemploye(); //添加兼职技术人员
void Show_manemploye(); //显示兼职技术员工信息
void Modify_manemploye(); //修改兼职技术员工信息
void Delete_manemploye(); //删除兼职技术员工信息
void Find_manemploye(); //查找某技术员工信息
void Wage_manemploye(); //技术员工工资结算
};

//marger销售经理
class Marger:public Employe
{
public:
Marger(){};
void Insert_maremploye(); //添加兼职推销员工
void Show_maremploye(); //显示兼职推销员工信息
void Modify_maremploye(); //修改兼职推销员工信息
void Delete_maremploye(); //删除兼职推销员工信息
void Find_maremploye(); //查找兼职推销员工信息
void Wage_maremploye(); //结算兼职推销员工工资
};

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;

//-------主函数----------

int main(int argc,char **argv)
{

const char *server="localhost";
const char *user="root";
const char *password="917";
const char *database="students";
conn=mysql_init(NULL); //初始化句柄,成功:不为NULL
if(conn == NULL)
{
cout<<"mysql_init error!!"<<endl;
return -1;
}
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)) //连接成功,返回conn;失败,返回NULL。
{
fprintf(stderr,"%s\n",mysql_error(conn));
return 0;
}
mysql_set_character_set(conn,"utf8"); //字符集设置

//----------操作函数---------------

Boss boss; //定义Boss类的对象boss
boss.Insert_manager();//boss 添加经理
cout<<"按任意键显示数据库中经理的所有信息"<<endl;
boss.Show_manager(); //显示数据库中经理的信息
boss.Modify_manager();//修改数据库中的经理信息

mysql_close(conn); // 关闭数据库连接
return 0;
}

//------老板添加经理------- 先把数据放到容器中,然后把容器中的数据读到数据库中
void Boss::Insert_manager()
{
list<Manager> Link1;
Manager manager;
char ch;
char man[500];

while(1)
{
cout<<" 请输入要添加的经理的信息:"<<endl;
cout<<"编号:";
cin>>manager.id;
cout<<"姓名:";
cin>>manager.name;
cout<<"密码:";
cin>>manager.password;
cout<<"级别:";
cin>>manager.rank;
cout<<"工资:";
cin>>manager.wage;
Link1.push_back(manager);
cout<<" 是否继续添加【y/n】"<<endl;
while(getchar()!='\n');
ch=getchar();
if('n'==ch)
break;
}
cout<<" 确定结束添加吗【y/n】"<<endl;
while(getchar()!='\n');
ch=getchar();
if('y'==ch)
{
list<Manager>::iterator l=Link1.begin(); //创建容器Link1的迭代器 l;
while(l != Link1.end())
{
sprintf(man,"insert into manager(id,name,password,rank,wage) values(%d,'%s',%d,%d,%f)",l->id,l->name,l->password,l->rank,l->wage);
if(mysql_query(conn,man)) //发送SQL语句,成功返回0;
{
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
l++;
}
}
}

//-------------显示数据库中经理的所有信息------------通过发送SQL语句,直接显示从数区库返回的结果集
void Boss::Show_manager()
{
getchar();
getchar();
getchar();
if(mysql_query(conn,"select *from manager"))
{
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn); //获得结果集, 一个表。
cout<<" 经理的信息如下:"<<endl;
printf("编号\t姓名\t密码\t级别\t工资\n");
while((row=mysql_fetch_row(res)) != NULL) //打印数据库里的信息,每次获得一行
{
printf("%d\t%s\t%d\t%d\t%d\n",atoi(row[0]),row[1],atoi(row[2]),atoi(row[3]),atoi(row[4]));
}
mysql_free_result(res); //获取一次结果集后要跟着释放一次
return;
}

//------------修改数据库中某位经理的信息------ 通过容器接收数据库返回的结果集
void Boss::Modify_manager()
{
list<Manager> link2;
Manager manager;
char man[500];
int b=0;
cout<<"请输入要修改的编号:"<<endl;
cin>>b;
cout<<"按任意键显示所要修改的经理信息"<<endl;
getchar();
getchar();
getchar();
sprintf(man,"select * from manager where id=%d",b);
if(mysql_query(conn,man)) //发送SQL语句,成功返回0;
{
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn);
while((row=mysql_fetch_row(res))!=NULL)//通过容器接收从数据库中读取的信息
{
manager.id=atoi(row[0]);
strcpy(manager.name,row[1]);
manager.password=atoi(row[2]);
manager.rank=atoi(row[3]);
manager.wage=atoi(row[4]);
link2.push_back(manager);
}
list<Manager>::iterator l=link2.begin();
while(l!=link2.end()) //显示容器里的信息
{
cout<<"编号:"<<l->id;
cout<<" 姓名:"<<l->name;
cout<<" 密码:"<<l->password;
cout<<" 级别:"<<l->rank;
cout<<" 工资:"<<l->wage<<endl;
l++;
}
mysql_free_result(res); //获取一次结果集后要跟着释放一次

//....
//....

//修改信息并存储到数据库里

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容