基于MYSQL的球员信息管理

ER图
这里写图片描述

#include <iostream>
#include <QSqlDatabase>
#include <Qtsql>
#include <string>
#include <QSqlTableModel>
#include <QVariant>
#include <QString>
#include <stdio.h>
#include <QTextStream>
using namespace std;
class birthday{
private:
    int year_;
    int month_;
    int day_;
public:
    birthday(){}
    birthday(int x,int y,int z)
    {
        year_ = x;
        month_ = y;
        day_ = z;
    }
    int get_year()
    {
        return year_;
    }
    friend ostream &operator<<(ostream &os, const birthday &item)
    {
        os<< item.year_<<"-"<<item.month_<<"-"<<item.day_;
        return os;
    }
    friend istream &operator>>(istream &is, birthday &item)
    {
        is>> item.year_>> item.month_>>item.day_;
        return is;
    }
    QString toString()//转化为QString类型用来导入数据库
    {
        QString s;
        s= year_+ '-' + month_+ '-' + day_;
        return s;
    }
    string toStdString()
    {
        string s;
        s= year_+'-'+month_+'-'+day_;
        cout<<s<<endl;
        return s;
    }
};
class League{
private:
    QString leagueName_;
    QString leagueCountry;
public:

};
class Club{
private:
    QString clubName_;
   // birthday clubBith_;
    QString clubCountry_;
    //League clubOfLeague;
public:
    Club(QString name,QString country)
    {
        clubName_ = name;
        clubCountry_ = country;
        //clubBith_ = bith;
        QSqlQuery q;
        q.exec(QObject::tr("insert into club values(0,'%1','%2')").arg(clubName_,clubCountry_));
    }
    QString toQString()
    {
        QString s;
        s = clubName_ + '-' + clubCountry_ ;
        return s;
    }
};

class FootballPlayer{
private:
    QString PlayerName_;
    QString PlayerSex_;
    QString PlayerBith_;
    QString PlayerCountry_;
    QString PlayerHeavyFoot_;
    QString PlayerHeight_;
    QString PlayerWeight_;
    QString PlayerLocation_;
  //  Club PlayerOfClub_;
public:
    FootballPlayer(){}
    FootballPlayer(QString name, QString sex,QString bith, QString country, QString foot, QString height, QString weight , QString location )
    {
        PlayerName_ = name;
        PlayerSex_ = sex;
        PlayerBith_ = bith;
        PlayerCountry_ = country;
        PlayerHeavyFoot_ = foot;
        PlayerHeight_ = height;
        PlayerWeight_ = weight;
        PlayerLocation_ = location;
        QSqlQuery q;
        q.exec(QObject::tr("insert into footballplayer values(0,'%1','%2','%3','%4','%5','%6','%7','%8')").arg(name,sex,bith,country,foot,height,weight,location));
      //  cout<<q.exec()<<endl;
       // q.exec(QObject::tr("insert into footballplayer values(0,'%1','%2','%3','%4','%5','%6','%7','%8')").arg(name,sex,bith,country,foot,height,weight,location));
        //cout<<PlayerName_.toStdString()<<","<<PlayerSex_.toStdString()<<","<<PlayerBith_.toStdString()<<","<<PlayerCountry_.toStdString()<<","<<PlayerHeavyFoot_.toStdString()<<","<<PlayerHeight_.toStdString()<<","<<PlayerWeight_.toStdString()<<","<<PlayerLocation_.toStdString()<<endl;
       // cout<<PlayerName_.toStdString()<<","<<PlayerSex_.toStdString()<<","<<
         //         PlayerBith_.toString()<<","<<PlayerCountry_.toStdString()<<","<<PlayerHeavyFoot_.toStdString()
           //    <<","<<PlayerHeight_.toStdString()<<","<<PlayerWeight_.toStdString()<<","<<PlayerLocation_.toStdString()<<endl;
       // cout<<q.exec()<<endl;
    }

    friend ostream &operator<<(ostream &os,const FootballPlayer &item )
    {
        os<<item.PlayerName_.toStdString()<<endl<<item.PlayerSex_.toStdString()
         <<endl<<item.PlayerBith_.toStdString()<<endl<<item.PlayerCountry_.toStdString()
        <<item.PlayerHeavyFoot_.toStdString()<<endl<<item.PlayerHeight_.toStdString()<<endl
        <<item.PlayerWeight_.toStdString()<<endl<<item.PlayerLocation_.toStdString();
        return os;
    }

};
class administrator{
private:
    QString  user_;
    QString password_;
public:
    administrator(QString u,QString p)
    {
        QSqlQuery q;
        user_=u;
        password_=p;
       /* q.prepare("insert into administrator(user,password) values(:user,:password)");
        QVariant user;
        QVariant password;
        user<<usr_;
        password<<password_;
        q.bindValue(":name",usr);
        q.bindValue(":password",password);
       // q.finish();*/
      //  q.prepare("insert into administrator(user,password) values(:user:password)");
       // q.bindValue(":id","a1");
       // q.bindValue(":password","123456");
        q.exec(QObject::tr("insert into administrator values('%1','%2')").arg(user_,password_));//成功插入数据
       // QSqlQuery a("insert into administrator(user,password) values('b','b')");
       // cout<<"ok"<<endl;
    }
};
class PlayerOfClub{
private:
    QString playerNo_;
    QString clubNo_;
    QString ptime_;
public:
    PlayerOfClub(QString pno, QString cno,QString time)
    {
        playerNo_  = pno;
        clubNo_ = cno;
        ptime_=time;
        QSqlQuery q;
        // cout<<playerNo_.toStdString()<<" "<<clubNo_.toStdString()<<" "<<ptime_.toStdString()<<endl;
        q.exec(QObject::tr("insert into playerofclub values('%1','%2','%3')").arg(playerNo_,clubNo_,ptime_));
        //q.exec(QObject::tr("insert into playerofclub values('%1','%2','%3')").arg(pno,cno,time));
    }
};

bool connectDb()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("mosquito");
    db.setUserName("root");
    db.setPassword("sz11199634");
   if(db.open())
   {
        return true;
   }
    else
       return 0;
}
void selectPlayerAll()
{

    QSqlQuery q;
  //  q.exec("insert into text values('t03','hello')");
   // cout<<"get"<<endl;
    q.exec("select * from footballplayer");

    while(q.next())//遍历表
    {

        QString no,name,sex,bith,country,heavyfoot,height,weight,location;
        no = q.value(0).toString();
        name = q.value(1).toString();
         sex = q.value(2).toString();
         bith = q.value(3).toString();
          country = q.value(4).toString();
           heavyfoot = q.value(5).toString();
            height = q.value(6).toString();
             weight = q.value(7).toString();
             location = q.value(8).toString();
        qDebug()<<no<<":"<<name<<":"<<sex<<":"<<bith<<":"<<country<<":"<<heavyfoot<<":"<<height<<":"<<weight<<":"<<location;
    }
}
bool selectOnOne(QString one,QString table)//按条件查询某张表
{
   QSqlQuery q;
  /* QSqlTableModel model;
   model.setTable(table);
   model.setFilter(one);
   model.select();
   for(int i=0;i<model.rowCount();i++)
   {
       QSqlRecord record = model.record(i);
       QString user = record.value("user").toString();
       QString password = record.value("password").toString();
       std::cerr<<user<<":"<<password<<endl;
   }*/

   q.exec(QObject::tr("select * from %1 where %2").arg(table,one));
   while(q.next())//遍历表
   {

       QString user;
       user = q.value(0).toString();
       QString password;
       password = q.value(1).toString();
       qDebug()<<qPrintable(user)<<":"<<password;
   }
   return true;
}
void selectOnPlayer()
{
    qDebug()<<"请输入条件";
    QString s;
    string a;
    cin>>a;//输入不能带空格
    s=QString::fromStdString(a);
    QSqlQuery q;
    q.exec(QObject::tr("select * from footballplayer where %1").arg(s));
    while(q.next())//遍历表
    {
       // cout<<"in"<<endl;
        QString no,name,sex,bith,country,heavyfoot,height,weight,location;
        no = q.value(0).toString();
        name = q.value(1).toString();
         sex = q.value(2).toString();
         bith = q.value(3).toString();
          country = q.value(4).toString();
           heavyfoot = q.value(5).toString();
            height = q.value(6).toString();
             weight = q.value(7).toString();
             location = q.value(8).toString();
        qDebug()<<no<<":"<<name<<":"<<sex<<":"<<bith<<":"<<country<<":"<<heavyfoot<<":"<<height<<":"<<weight<<":"<<location;
       /* for(int i=0;i<8;i++)
        {
            QString a=q.value(i).toString();
            qDebug() <<a;
        }*/
    }

}
void selectOnClub()
{
    qDebug()<<"请输入条件";
    QString s;
    string a;
    cin>>a;//输入不能带空格
    s=QString::fromStdString(a);
    QSqlQuery q;
    q.exec(QObject::tr("select * from club where %1").arg(s));
    while(q.next())//遍历表
    {

        QString no,name,country;
        no = q.value(0).toString();
        name=q.value(1).toString();
        country=q.value(2).toString();
        qDebug()<<no<<":"<<name<<":"<<country;
    }
}
void selectClubAll()
{
    QSqlQuery q;
    q.exec("select * from club");

    while(q.next())//遍历表
    {

        QString no,name,country;
        no = q.value(0).toString();
        name=q.value(1).toString();
        country=q.value(2).toString();
        qDebug()<<no<<":"<<name<<":"<<country;
    }
}

void addPlayer()
{
    qDebug()<<"请输入球员姓名";
    string a;
    cin>>a;
    QString name=QString::fromStdString(a);
    qDebug()<<"请输入球员性别";
    cin>>a;
    QString sex=QString::fromStdString(a);
    qDebug()<<"请输入球员生日";
    cin>>a;
    QString b=QString::fromStdString(a);
    qDebug()<<"请输入球员国家";
    cin>>a;
    QString country=QString::fromStdString(a);
    qDebug()<<"请输入球员惯用脚";

    cin>>a;
    QString foot=QString::fromStdString(a);
    qDebug()<<"请输入球员身高";

    cin>>a;
    QString height=QString::fromStdString(a);
    qDebug()<<"请输入球员体重";
    cin>>a;
    QString weight=QString::fromStdString(a);
    qDebug()<<"请输入球员位置";

    cin>>a;
    QString location=QString::fromStdString(a);
    //QSqlQuery q;
     //q.exec(QObject::tr("insert into footballplayer values(0,'%1','%2','%3','%4','%5',%6,%7,'%8',1)").arg(name,sex,b.toString(),country,foot,height,weight,location));
      //cout<<q.exec()<<endl;
    FootballPlayer player(name,sex,b,country,foot,height,weight,location);
}


void addClub()
{
    qDebug()<<"请输入俱乐部姓名";
    string a;
    cin>>a;
    QString name=QString::fromStdString(a);
    qDebug()<<"请输入俱乐部国家";
    cin>>a;
    QString country=QString::fromStdString(a);
    Club add(name,country);
}

void addPlayerOfClub()
{
    qDebug()<<"请输入球员ID";
    string a;
    cin>>a;
    QString pid=QString::fromStdString(a);
    qDebug()<<"请输入俱乐部ID";
    cin>>a;
    QString cid=QString::fromStdString(a);
    qDebug()<<"输入入会time";
    cin>>a;
    QString time = QString::fromStdString(a);

    PlayerOfClub add(pid,cid,time);
}
void delPlayer()
{
    qDebug()<<"输入删除球员ID";
    string id;
    cin>>id;
    QString qid;
    qid = QString::fromStdString(id);
    QSqlQuery q;
    q.exec(QObject::tr("delete from footballplayer where playerno = '%1' ").arg(qid));

}
void delClub()
{
    qDebug()<<"输入删除俱乐部ID";
    string id;
    cin>>id;
    QString cid;
    cid = QString::fromStdString(id);
    QSqlQuery q;
    q.exec(QObject::tr("delete from club where clubno = '%1' ").arg(cid));

}

void mainwindows()
{
    qDebug()<<"1.查看所有球员"<<endl;
    qDebug()<<"2.查看所有俱乐部"<<endl;
    qDebug()<<"3.按条件查询球员"<<endl;
    qDebug()<<"4.按条件查询俱乐部"<<endl;
    qDebug()<<"5.增加球员"<<endl;
    qDebug()<<"6.增加俱乐部"<<endl;
    qDebug()<<"7.删除球员"<<endl;
    qDebug()<<"8.删除俱乐部"<<endl;
    qDebug()<<"9.增加球员所属俱乐部"<<endl;
    qDebug()<<"15.退出"<<endl;
}
void choose()
{
    int x;
    scanf("%d",&x);
    switch(x)
    {
        case(1):selectPlayerAll();break;
        case(2):selectClubAll();break;
        case(3):selectOnPlayer();break;
        case(4):selectOnClub();break;
        case(5):addPlayer();break;
        case(6):addClub();break;
        case(7):delPlayer();break;
        case(8):delClub();break;
        case(9):addPlayerOfClub();break;
        case(15):exit(1);
    }
}
int main()
{
   connectDb();
    QSqlQuery q;


  // administrator a("a1","123456");
 //  q.exec("insert into footballplayer values(0,'guoxiaoqi','man','1900-11-11','china','left','170','120','b',1)");
  // cout<<q.exec()<<endl;
  // FootballPlayer b("Ronaldo","man","1985-2-5","Portugal","right", "180","150","ST");
  // q.exec("insert into footballplayer values(0,'Ronaldo','man','1985-2-5','Portugal','right', 185,150,'ST')");
  // cout<<q.exec()<<endl;
 //  selectOnOne("password = '123456'","administrator");
  //  Club c("text1","Espa?a");
   // PlayerOfClub p("3","3");
   //FootballPlayer m ("guoxiao","man",birthday(1909,11,11),"china","left" ,"170","120","cb");

     mainwindows();
     choose();
    return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值