标题:
教师管理系统源码
[打印本页]
作者:
ppoooo
时间:
2018-7-4 13:07
标题:
教师管理系统源码
#include<iostream>
#include<string>
#include<fstream>
#include<WinSock.h>
#include<mysql.h>
#include<conio.h>
#pragma comment(lib,"C:\\MySQL\\lib\\opt\\libmysql.lib")
using namespace std;
void Str_to_double(double temp,string &str)
{
//values1表示整数部分,values2表示小数部分
int values1 = int(temp);
int values2 = (temp-values1) * 100;//values2最多为十位数
int *a;
a = new int[10];
for(int i = 0;(values1 / 10) != 0;i++)
{
a[i] = values1 % 10;
values1 /= 10;
}
a[i] = values1;
for(int j = i;j >= 0;j--)
str += a[j] + 48;
str += ".";
int one,two;
one = values2 / 10;
two = values2 % 10;
str += one + 48;
str += two + 48;
delete[] a;//释放内存
}
bool InitDatabase(MYSQL &mydata)
{
//初始化数据库
if(0==mysql_library_init(0, NULL, NULL))
cout << "初始化数据库成功--" << endl;
else
{
cout << "mysql_library_init() failed!" << endl;
return 0;
}
//初始化数据结构
if(NULL!=mysql_init(&mydata))
cout << "初始化数据结构成功--" << endl;
else
{
cout << "mysql_init() failed!" << endl;
return false;
}
//初始化字符集
if(0==mysql_options(&mydata,MYSQL_SET_CHARSET_NAME, "gbk"))
cout << "初始化字符集成功--" << endl;
else
{
cout << "mysql_options() failed!" << endl;
return false;
}
//链接数据库
if(NULL!=mysql_real_connect(&mydata,"localhost","root","123456","teacher_salary_system",0,NULL,0))
cout << "链接数据库成功--" << endl;
else
{
cout << "mysql_real_connect() failed!" << endl;
return false;
}
string sqlstr;
sqlstr = "create table if not exists Teacher_data";
sqlstr += "(";
sqlstr += "Number int unsigned not null auto_increment primary key," ;//教师号
sqlstr += "Name varchar(10) not null,";//姓名
sqlstr += "Sex varchar(10) not null,";//性别
sqlstr += "Company varchar(100) not null,";//单位名称
sqlstr += "Address varchar(100) not null,";//家庭住址
sqlstr += "Telephone varchar(20) not null,";//联系电话
sqlstr += "Basic_sal double unsigned not null,";//基本工资
sqlstr += "Sub_sal double unsigned not null,";//津贴
sqlstr += "Life_sal double unsigned not null,";//生活补贴
sqlstr += "Tele_mon double unsigned not null,";//电话费
sqlstr += "Elec_water_mon double unsigned not null,";//水电费
sqlstr += "House_mon double unsigned not null,";//房租
sqlstr += "Income_tax double unsigned not null,";//所得税
sqlstr += "Health_mon double unsigned not null,";//卫生费
sqlstr += "Gongji_mon double unsigned not null,";//公积金
sqlstr += "Got_sal double unsigned not null,";//应发工资
sqlstr += "Total_spend double unsigned not null,";//合计扣款
sqlstr += "Real_sal double unsigned not null";//实发工资
sqlstr += ");";
if(0 == mysql_query(&mydata,sqlstr.c_str()))
{
cout << "初始化Teacher_data成功!" << endl << "按任意键继续--";
getch();
return true;
}
else
{
cout << "mysql() 创建Teacher_data失败!" << endl;
return false;
}
}
bool Input(MYSQL &mysql) //用引用
{
while(1)
{
system("CLS");
string data = "insert into Teacher_data values(";
string temp;
cout << "--按提示进行操作--" << endl;
cout << "请输入(下同)教师编号:" << endl;
cin >> temp;
data += temp + ",";
cout << "教师姓名:" << endl;
cin >> temp;
data += "'" + temp + "',";
cout << "教师性别:" << endl;
cin >> temp;
data += "'" + temp + "',";
cout << "单位名称:" << endl;
cin >> temp;
data += "'" + temp + "',";
cout << "家庭住址:" << endl;
cin >> temp;
data += "'" + temp + "',";
cout << "联系电话:" << endl;
cin >> temp;
data += "'" + temp + "',";
cout << "基本工资:" << endl;
double temp1;
cin >> temp1;
Str_to_double(temp1,data);
data += ",";
cout << "津贴:" << endl;
double temp2;
cin >> temp2;
Str_to_double(temp2,data);
data += ",";
cout << "生活补贴:" << endl;
double temp3;
cin >> temp3;
Str_to_double(temp3,data);
data += ",";
cout << "电话费:" << endl;
double temp4;
cin >> temp4;
Str_to_double(temp4,data);
data += ",";
cout << "水电费:" << endl;
double temp5;
cin >> temp5;
Str_to_double(temp5,data);
data += ",";
cout << "房租:" << endl;
double temp6;
cin >> temp6;
Str_to_double(temp6,data);
data += ",";
cout << "所得税:" << endl;
double temp7;
cin >> temp7;
Str_to_double(temp7,data);
data += ",";
cout << "卫生费:" << endl;
double temp8;
cin >> temp8;
Str_to_double(temp8,data);
data += ",";
cout << "公积金:" << endl;
double temp9;
cin >> temp9;
Str_to_double(temp9,data);
data += ",";
double temp10 = temp1 + temp2 + temp3;//应发工资
Str_to_double(temp10,data);
data += ",";
double temp11 = temp4 + temp5 + temp6 + temp7 +temp8 + temp9;//合计扣款
Str_to_double(temp11,data);
data += ",";
double temp12 = temp10 - temp11;//实发工资
cout << "实发工资:" << temp12 << endl;
Str_to_double(temp12,data);
data += ");";
if(0 == mysql_query(&mysql,data.c_str()))//只能接收二进制文件
cout << "插入成功!" << endl;
else
{
cout << "mysql_query() failed!" << endl;
cout << data.c_str() << endl;
cout << "按任意键继续--" << endl;
getch();
return false;
}
cout << "输入成功,是否继续输入?Y/N" << endl;
string judge;
cin >> judge;
if(!(judge == "Y" || judge == "y"))
return false;
}
}
void Show(MYSQL &mydata,string model)
{
string sqlstr;
if(model == "all")
sqlstr = "select * from Teacher_data order by Number" ;
else if (model == "search")
{
cout << "**************************" << endl;
cout << " ****请选择查询的方式**** " << endl;
cout << " ****1、编号查询**** " << endl;
cout << " ****2、姓名查询**** " << endl;
cout << " ****3、性别查询**** " << endl;
cout << " ****4、单位名称查询****" << endl;
cout << " ****5、家庭住址查询****" << endl;
cout << " ****6、联系电话查询****" << endl;
int i;//用于选择查询方式
string p;//输入查询的内容
cin >> i;
while(i > 6 || i < 1)
{
cout << "无该查询方式,请重新输入--" << endl;
cin >> i;
}
switch (i)
{
case 1:
cout << "请输入查询的教师编号:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where Number = " + p + ";";
break;
case 2:
cout << "请输入查询的教师姓名:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where name = '" + p + "';";
break;
case 3:
cout << "请输入查询的教师性别:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where sex = '" + p + "';";
break;
case 4:
cout << "请输入查询教师的单位名称:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where company = '" + p + "';";
break;
case 5:
cout << "请输入查询教师的家庭住址:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where address = '" + p + "';";
break;
case 6:
cout << "请输入查询教师的联系电话:" << endl;
cin >> p;
sqlstr = "select * from Teacher_data where telephone = '" + p + "';";
break;
default:
break;
}
}
system("CLS");
MYSQL_RES *result = NULL;
if(0 == mysql_query(&mydata,sqlstr.c_str()))
{
//一次性取得数据集
result = mysql_store_result(&mydata);
//取得并打印行数
int rowcount = mysql_num_rows(result);
cout << "row count: " << rowcount << endl;
//取得并打印各字段的名称
unsigned int fieldcount = mysql_num_fields(result);
MYSQL_FIELD *field = NULL;
for (unsigned int i = 0; i < fieldcount; i++)
{
field = mysql_fetch_field_direct(result, i);
cout << field->name << "\t";
}
cout << endl;
//打印各行
MYSQL_ROW row = NULL;
row = mysql_fetch_row(result);
while (NULL != row)
{
for (int i = 0; i < fieldcount; i++)
{
cout << row[i] << "\t";
}
cout << endl;
row = mysql_fetch_row(result);
}
cout << "按任意键继续--" << endl;
getch();
}
else
{
cout << "退出系统--" <<endl;
exit(0);
}
}
bool Delete(MYSQL &mydata)
{
system("CLS");
string sqlstr;
cout << "请输入要删除信息的教师号--" << endl;
string i;
cin >> i;
sqlstr += "delete from Teacher_data where Number = " + i + ";";
if(0 == mysql_query(&mydata,sqlstr.c_str()))
{
cout << "删除成功--" << endl << "按任意键继续--";
getch(); //便于查找语法错误,下同
return true;
}
else
{
cout << "删除失败!请检查您输入的ID是否存在" << endl;
cout << sqlstr.c_str() << endl;
getch();
return false;
}
}
bool Modify(MYSQL &mydata)
{
system("CLS");
string sqlstr;
cout << "请输入要修改信息的教师号--" << endl;
string i;
cin >> i;
sqlstr = "select * from Teacher_data where Number = " + i + ";" ;
MYSQL_RES *result = NULL;//结果集
MYSQL_FIELD *field = NULL; //字段名指针
MYSQL_ROW row = NULL;//行
if(0 == mysql_query(&mydata,sqlstr.c_str()))
{
result = mysql_store_result(&mydata);//取得全部结果
unsigned int fieldcount = mysql_num_fields(result); //字段名数量
int rowcount = mysql_num_rows(result);//取得行数
for(int j = 0; j < fieldcount; j++)
{
//打印字段名称
field = mysql_fetch_field_direct(result,j);
cout << field -> name << "\t";
}
cout << endl;
row = mysql_fetch_row(result);//检测结果的下一行
while(row != NULL)
{
for(int k = 0; k < fieldcount; k++)
{
cout << row[k] << "\t";//输出每一行的字段
}
row = mysql_fetch_row(result);//往下面加一行
cout << endl;
}
}
sqlstr = "update Teacher_data set ";
cout << "请输入要修改的字段名称:" << endl;
string temp;//记录当前用户输入的字段
cin >> temp;
sqlstr += temp;
cout << "请输入要修改的内容:" << endl;
cin >> temp;
sqlstr += " = '" + temp + "'";
sqlstr += " where Number = ";
sqlstr += i + ";";
if(0 == mysql_query(&mydata,sqlstr.c_str()))
{
cout << "修改成功--" << endl;
getch();
return true;
}
else
{
cout << "mysql_query() modify failed!" << endl;
cout << sqlstr.c_str() << endl;
getch();
return false;
}
}
void menu()
{
cout<<"**************************"<<endl;
cout<<"****教师工资管理系统****"<<endl;
cout<<" ***1、输入教师信息*** "<<endl;
cout<<" ***2、修改教师信息*** "<<endl;
cout<<" ***3、删除教师信息*** "<<endl;
cout<<" ***4、浏览教师信息*** "<<endl;//将全部教师显示到屏幕上
cout<<" ***5、查找教师信息*** "<<endl;//查找某一教师的所有信息
cout<<" ***0、安全退出系统*** "<<endl;
cout<<"-----------------------"<<endl;
cout<<endl;
}
int main(void)
{
MYSQL mydata;
if( !InitDatabase(mydata))
{
cout << "初始化失败" << endl;
getch();
exit(0);
}
while(1)
{
system("CLS");
menu();
int select_opreation;
cin >> select_opreation;
while(select_opreation > 5 || select_opreation < 0)
{
cout << "输入有误请重新输入!" <<endl;
cin >> select_opreation;
}
switch(select_opreation)
{
case 1:
Input(mydata);
break;
case 2:
Modify(mydata);
break;
case 3:
Delete(mydata);
break;
case 4:
Show(mydata,"all");
break;
case 5:
Show(mydata,"search");
break;
case 0:
cout<<"系统退出!!!"<<endl;
exit(0);
default:
break;
}
cin.clear();//重置cin输入状态
cin.sync(); //清楚缓冲区没有读取的信息
}
return 0;
}
复制代码
teacher.docx
2018-7-4 13:06 上传
点击文件名下载附件
下载积分: 黑币 -5
17.13 KB, 下载次数: 2, 下载积分: 黑币 -5
完整
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1