美文网首页
c++项目范例

c++项目范例

作者: 踩在浪花上00 | 来源:发表于2016-10-25 15:53 被阅读0次

    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); //获取一次结果集后要跟着释放一次

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

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

    }

    相关文章

      网友评论

          本文标题:c++项目范例

          本文链接:https://www.haomeiwen.com/subject/awbruttx.html