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;
}