天天看點

高校學生學籍系統C++&mysql

/*
           
C++程式設計實踐教學環節任務書
一、題目:高校學籍管理系統
二、目的與要求
1. 目的:
1.掌握C++語言基本知識及其程式設計方法 
2.掌握類和對象的基本概念與使用方法
3.掌握面向對象中的繼承與多态等面象對象特性
4.掌握檔案流的基本操作
2. 要求 
基本要求:
(1)要求利用面向對象的方法以及C++的程式設計思想來完成系統的設計; 
(2)要求在設計的過程中,建立清晰的類層次; 
(3)在系統中至少要定義8個類,每個類中要有各自的屬性和方法; 
(4)在系統的設計中,要求使用面向對象的繼承與多态
           
*/
           
#include <iostream>
#include <stdlib.h>
#include <string>
#include <winsock2.h>
#include <mysql.h>
#pragma comment(lib,"ws2_32")
#pragma comment(lib,"libmysql")
using namespace std;


class Student
{
int id;
    char name[200];
    char sex[100];
    char min_zu[220];
    char ji_guan[330];
char sheng_fen_zheng_hao[20];
    char QQ[20];
    char phone[20];
int score;
public:
void show_table();
int main_menu();
void input();
int xiu_gai();
int xiu_gai_menu();
int cha_xun();
int cha_xun_menu();
int del();
int shan_menu();
int score_tong_ji();
int score_tong_ji_menu();
};


class Xu_gai:public Student//修改類
{
public:
void xiu_gai_xue_hao();
void xiu_gai_xing_ming();
void xiu_gai_xing_bie();
    void xiu_gai_min_zu();
void xiu_gai_ji_guan();
void xiu_gai_shen_fen_zheng_hao();
void xiu_gai_QQ_hao();
void xiu_gai_dian_hua();
void xiu_gai_cheng_ji();
};


class Cha_xun:public Student//查詢類
{
public:
void xue_hao_cha_xun();
void xing_ming_cha_xun();
};


class Shan_chu:public Student//删除類
{
public:
void xue_hao_shan_chu();
void xing_ming_shan_chu();
};


class Score:public Student//成績統計類
{
public:
void cheng_ji_pai_xu();
void zui_gao_zui_di_fen_xin_xi();
void ping_jun_fen();
void ji_ge_lv();
};


void Score::ji_ge_lv()//全體學生的及格率
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;
    mysql_init(&mysql); 
MYSQL_RES *resultset;
MYSQL_ROW row;
     mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
{
   float a,b;
mysql_query(&mysql,"select count(*) from xueji where score >= 450");
cout<<"及格人數:";
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{ 

cout<<row[0];
a = atoi(row[0]);
cout<<endl;
}
}
mysql_query(&mysql,"select count(*) from xueji");
cout<<"總人數:";
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{ 
cout<<row[0];
b = atoi(row[0]);
cout<<endl;
}
}
cout<<"及格率:";
cout << ((a/b)*100)<<"%" << endl<<endl;
mysql_free_result(resultset);
}
}


void Score::ping_jun_fen()//全體學生的平均分
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;
    mysql_init(&mysql); 
MYSQL_RES *resultset;
MYSQL_ROW row;
     mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
{
    float a,b;
mysql_query(&mysql,"select avg(score) from xueji");
cout<<"平均分:";
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{ 
cout<<row[0];
a = atoi(row[0]);
cout<<endl;
}
}
mysql_free_result(resultset);
}
}


void Score::zui_gao_zui_di_fen_xin_xi()//最高最低分學生的資訊
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;
    mysql_init(&mysql); 
MYSQL_RES *resultset;
MYSQL_ROW row;
     mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
{
    float a,b;
mysql_query(&mysql,"select max(score) from xueji");
cout<<"最高分:";
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{ 
cout<<row[0];
a = atoi(row[0]);
cout<<endl;
}
}
mysql_query(&mysql,"select min(score) from xueji");
cout<<"最低分:";
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{ 
cout<<row[0];
b = atoi(row[0]);
cout<<endl;
}
} 
mysql_free_result(resultset);
}
}


void Score::cheng_ji_pai_xu()//成績排序
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;
    mysql_init(&mysql); 
MYSQL_RES *resultset;
MYSQL_ROW row;
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
    {  
cout<<"**************************************開始成績排名**************************************"<<endl;
  cout<<"    學号  "<<"    姓名  "<<"性别 "<<"民族  "<<"籍貫  "<<"      身份證  "<<"         QQ  "<<"       電話  "<<"    成績  "<<endl;
cout<<"--------------------------------------------------------------------------------------"<<endl;
mysql_query(&mysql,"select * from xueji order by score desc");
resultset=mysql_store_result(&mysql);
         if(mysql_num_rows(resultset)!=NULL)
{
//int numRows = mysql_num_rows(resultset);
int numFields = mysql_num_fields(resultset);
while(row=mysql_fetch_row(resultset))
{
int i;
for(i=0;i<numFields;i++)
{
cout<<" "<<row[i]<<" ";
}
cout<<endl;
cout<<"--------------------------------------------------------------------------------------"<<endl;
}
}
else
{
cout<<"\n無查詢結果!";
}
mysql_free_result(resultset);
}
}


void Shan_chu::xing_ming_shan_chu()//按姓名删除
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;   
    mysql_init(&mysql);   
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
    {  
        char std[220]; 
char  na[200];
cout<<"請輸入要删除學籍資訊的學生姓名: "<<endl;
cin>>na;
        sprintf(std,"delete from xueji where name='%s';",na);
if(mysql_query(&mysql, std))
{ 
   cout<<"資料查詢發生錯誤"<<endl;
}
        else
{
cout<<"删除成功!"<<endl;
}
}
}


void Shan_chu::xue_hao_shan_chu()//按學号删除
{
Student zhao;
system("pause");
system("cls");
zhao.show_table();
    MYSQL mysql;   
    mysql_init(&mysql);   
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))  
    {  
        printf("\n資料庫連接配接發生錯誤!");  
    }  
    else   
    {  
        char std[220]; 
int  na;
cout<<"請輸入要删除學籍資訊的學生學号: "<<endl;
cin>>na;
        sprintf(std,"delete from xueji where id=%d;",na);
if(mysql_query(&mysql, std))
{ 
   cout<<"資料查詢發生錯誤"<<endl;
}
        else
{
cout<<"删除成功!"<<endl;
}
}
}


void Cha_xun::xing_ming_cha_xun()//姓名查詢
{
system("cls");
system("pause");
    MYSQL mysql;
mysql_init(&mysql);
MYSQL_RES *resultset;
MYSQL_ROW row;
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
char std[200];
char n[200];
        cout<<"請輸入要查的姓名:"<<endl;
cin>>n;
        sprintf(std,"select * from xueji where name='%s';",n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料查詢發生錯誤\n");
}
        else
{
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields=mysql_num_fields(resultset);//**獲得表中的字段
while(row=mysql_fetch_row(resultset))
{
int i=0;
for(i=0;i<numFields;i++)
{
mysql_query(&mysql,"SET NAMES LATIN1");
cout<<" "<<row[i]<<" ";
}
cout<<endl;
}
}
else
{
cout<<"顯示無果!";
}
}
mysql_free_result(resultset);
}
}


void Cha_xun::xue_hao_cha_xun()//學号查詢
{
system("cls");
system("pause");
    MYSQL mysql;
mysql_init(&mysql);
MYSQL_RES *resultset;
MYSQL_ROW row;
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
char std[200];
int n;
        cout<<"請輸入要查的學号:"<<endl;
cin>>n;
cout<<"--------------------------------------顯示查詢----------------------------------------"<<endl;
cout<<"    學号  "<<"    姓名  "<<"性别 "<<"民族  "<<"籍貫  "<<"      身份證  "<<"         QQ  "<<"       電話  "<<"    成績  "<<endl;
cout<<"--------------------------------------------------------------------------------------"<<endl;
        sprintf(std,"select * from xueji where id=%d;",n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料查詢發生錯誤\n");
}
        else
{
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields=mysql_num_fields(resultset);//**獲得表中的字段
while(row=mysql_fetch_row(resultset))
{
int i=0;
for(i=0;i<numFields;i++)
{
mysql_query(&mysql,"SET NAMES LATIN1");
cout<<" "<<row[i]<<" ";
}
cout<<endl;
}
cout<<"--------------------------------------------------------------------------------------"<<endl;
}
else
{
cout<<"顯示無果!";
}
}
mysql_free_result(resultset);
}
}


void Xu_gai::xiu_gai_cheng_ji()//修改成績
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的成績:"<<endl;
cin>>m;
        sprintf(std,"update xueji set score='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_dian_hua()//修改電話
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的電話:"<<endl;
cin>>m;
        sprintf(std,"update xueji set phone='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_QQ_hao()//修改QQ号
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的QQ号:"<<endl;
cin>>m;
        sprintf(std,"update xueji set QQ='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_shen_fen_zheng_hao()//修改身份證号************************************************************
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的身份證号:"<<endl;
cin>>m;
        sprintf(std,"update xueji set sheng_fen_zheng_hao='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_ji_guan()//修改籍貫
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的籍貫:"<<endl;
cin>>m;
        sprintf(std,"update xueji set ji_guan='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_min_zu()//修改民族
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的民族:"<<endl;
cin>>m;
        sprintf(std,"update xueji set min_zu='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_xing_bie()//修改性别
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的性别:"<<endl;
cin>>m;
        sprintf(std,"update xueji set sex='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_xing_ming()//修改姓名
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
char m[200];
int n;
cout<<"對目标學号資訊進行修改:"<<endl;
        cin>>n;
        cout<<"請輸入要新的姓名:"<<endl;
cin>>m;
        sprintf(std,"update xueji set name='%s' where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


void Xu_gai::xiu_gai_xue_hao()//修改學号
{
system("cls");
system("pause");
cout<<"顯示學生資料"<<endl;
Xu_gai zhao;
zhao.show_table();
    MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
        char std[200];
int n,m;
cout<<"請輸入要修改的學号:"<<endl;
        cin>>n;
        cout<<"請輸入要新的學号:"<<endl;
cin>>m;
        sprintf(std,"update xueji set id=%d where id=%d;",m,n);
        if(mysql_query(&mysql, std))
{ 
printf("\n資料庫更改發生錯誤\n");
}
        else
{
            printf("\n資料庫更改資料成功\n");
}
}
}


int Student::xiu_gai()//定義修改函數
{ 
cout<<"進入修改系統..."<<endl;
int h;
Xu_gai geng_zheng;
    system("pause");
system("cls");
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{ 
while(1)
{
h=geng_zheng.xiu_gai_menu();
            switch(h)
{
   case 1:
geng_zheng.xiu_gai_xue_hao();
break;
            case 2:
geng_zheng.xiu_gai_xing_ming(); 
break;      
case 3:
geng_zheng.xiu_gai_xing_bie();
break;
            case 4:
geng_zheng.xiu_gai_min_zu();
break;
            case 5:
geng_zheng.xiu_gai_ji_guan();
break;
            case 6:
geng_zheng.xiu_gai_shen_fen_zheng_hao(); 
break;
            case 7:
geng_zheng.xiu_gai_QQ_hao();
break;
case 8:
geng_zheng.xiu_gai_dian_hua();
break;
case 9:
geng_zheng.xiu_gai_cheng_ji();
break;
   case 0:
return 0; 
break;
            default: 
                 cout<<"請選擇正确的菜單項進行操作。多謝合作!"<<endl; 
}
}
}
return 0;
}


int Student::cha_xun()//查詢
{
system("pause");
system("cls");
Cha_xun cha;
MYSQL mysql;
int h;
    mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
    else
{
while(1)
{
h=cha.cha_xun_menu();
            switch(h)
{
   case 1:
cha.xue_hao_cha_xun();
break;
            case 2:
cha.xing_ming_cha_xun(); 
break;       
   case 0:
return 0; 
break;
            default: 
                 cout<<"請選擇正确的菜單項進行操作。多謝合作!"<<endl;
}
}
}
return 0;
}


int Student::del()//删除
{
system("pause");
system("cls");
Shan_chu shan;
MYSQL mysql;
int h;
    mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
    else
{
while(1)
{
h=shan.shan_menu();
            switch(h)
{
   case 1:
shan.xue_hao_shan_chu();
break;
            case 2:
shan.xing_ming_shan_chu(); 
break;       
   case 0:
return 0; 
break;
            default: 
                 cout<<"請選擇正确的菜單項進行操作。多謝合作!"<<endl;
}
}
}
return 0;
}


int Student::score_tong_ji()//成績統計分析
{
system("pause");
system("cls");
Score tong_ji;
MYSQL mysql;
int h;
    mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
    else
{
while(1)
{
h=tong_ji.score_tong_ji_menu();
            switch(h)
{
   case 1:
tong_ji.cheng_ji_pai_xu();
break;
            case 2:
tong_ji.zui_gao_zui_di_fen_xin_xi(); 
break;  
case 3:
tong_ji.ping_jun_fen(); 
break;      
case 4:
tong_ji.ji_ge_lv(); 
break;           
   case 0:
return 0; 
break;
            default: 
                 cout<<"請選擇正确的菜單項進行操作。多謝合作!"<<endl;
}
}
}
return 0;
}


void Student::input()//錄入學生資訊
{
system("pause");
system("cls");
Student lu_ru;
char std[200];
MYSQL mysql;
    mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
{
cout<<"資料庫連接配接錯誤!"<<endl;
}
else
{
cout<<"請錄入學生資訊資料"<<endl<<endl<<"錄入格式說明:輸入一項按Enter鍵進行下一項的輸入"<<endl<<endl;
mysql_query(&mysql, "SET NAMES LATIN1");
cout<<"學号  "<<"姓名  "<<"性别  "<<"民族  "<<"籍貫  "<<"身份證  "<<"QQ  "<<"電話  "<<"成績  "<<endl;
cin>>lu_ru.id>>lu_ru.name>>lu_ru.sex>>lu_ru.min_zu>>lu_ru.ji_guan>>lu_ru.sheng_fen_zheng_hao>>lu_ru.QQ>>lu_ru.phone>>lu_ru.score;
        sprintf(std,"insert into xueji VALUES(%d,'%s','%s','%s','%s','%s','%s','%s',%d);"
,lu_ru.id,lu_ru.name,lu_ru.sex,lu_ru.min_zu,lu_ru.ji_guan,lu_ru.sheng_fen_zheng_hao,lu_ru.QQ,lu_ru.phone,lu_ru.score);
mysql_query(&mysql,std);
  cout<<"添加成功"<<endl;
}
}


void Student::show_table()//資訊表資料的顯示
{
system("cls");
MYSQL mysql;
MYSQL_RES *resultset;
MYSQL_ROW row;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
if(!mysql_real_connect(&mysql,"localhost","root","123456","student",3306,NULL,0))
{
cout<<"\n資料庫連接配接發生錯誤!";
}
else
{
if(mysql_query(&mysql,"select * from xueji"))
{
cout<<"表格資料顯示失敗!";
}
else
{
cout<<"--------------------------------------顯示資訊----------------------------------------"<<endl;
   cout<<"    學号  "<<"    姓名  "<<"性别 "<<"民族  "<<"籍貫  "<<"      身份證  "<<"         QQ  "<<"       電話  "<<"    成績  "<<endl;
    cout<<"--------------------------------------------------------------------------------------"<<endl;
resultset=mysql_store_result(&mysql);
if(mysql_num_rows(resultset)!=NULL)
{
int numFields=mysql_num_fields(resultset);//**獲得表中的字段
while(row=mysql_fetch_row(resultset))
{
int i=0;
for(i=0;i<numFields;i++)
{
mysql_query(&mysql,"SET NAMES LATIN1");
cout<<" "<<row[i]<<" ";
}
cout<<endl;
cout<<"--------------------------------------------------------------------------------------"<<endl;
}
}
else
{
cout<<"顯示無果!";
}
}
mysql_free_result(resultset);
}


}


int Student::main_menu()//主菜單
{
system("pause");
system("cls");
int s;
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl
    <<"                        1:   錄入學生資訊           "<<endl
    <<"                        2:   顯示學生資訊           "<<endl
    <<"                        3:   查找學生資訊           "<<endl
    <<"                        4:   删除學生資訊           "<<endl
    <<"                        5:   修改學生資訊           "<<endl
    <<"                        6:   統計學生成績           "<<endl
    <<"                        0:   退出系統               "<<endl
    <<"                        請選擇:";
    cin>>s;
    return s;
}


int Student::xiu_gai_menu()//修改菜單
{ 
system("pause");
system("cls");
int a;
    cout<<endl<<endl<<endl<<endl<<endl
    <<"                        1:   修改學号           "<<endl
    <<"                        2:   修改姓名           "<<endl
    <<"                        3:   修改性别           "<<endl
    <<"                        4:   修改民族         "<<endl
    <<"                        5:   修改籍貫           "<<endl
    <<"                        6:   修改身份證           "<<endl
    <<"                        7:   修改QQ号           "<<endl
    <<"                        8:   修改手機号               "<<endl
    <<"                        9:   修改成績               "<<endl
    <<"                        0:   傳回上一層              "<<endl
    <<"                        請選擇:";
    cin>>a;
    return a;
}


int Student::cha_xun_menu()//查詢菜單
{
system("pause");
system("cls");
int k;
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
    <<"                        1:   按學号查找           "<<endl
    <<"                        2:   按姓名查找           "<<endl
    <<"                        0:   傳回上一層              "<<endl
    <<"                        請選擇:";
    cin>>k;
    return k;
}


int Student::shan_menu()//删除菜單
{
system("pause");
system("cls");
int g;
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
    <<"                        1:   按學号删除           "<<endl
    <<"                        2:   按姓名删除           "<<endl
    <<"                        0:   傳回上一層              "<<endl
    <<"                        請選擇:";
    cin>>g;
    return g;
}


int Student::score_tong_ji_menu()//成績統計菜單
{
system("pause");
system("cls");
int d;
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
    <<"                        1:   對成績進行排序           "<<endl
    <<"                        2:   最高和最低成績的學生資訊           "<<endl
    <<"                        3:   全體學生的平均分           "<<endl
    <<"                        4:   及格率           "<<endl
    <<"                        0:   傳回上一層              "<<endl
    <<"                        請選擇:";
    cin>>d;
    return d;
}


int main()
{
int n;
Student zhao;
MYSQL mysql;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,"localhost","root","123456","student",3306,NULL,0))
{
cout<<"\n資料庫連接配接發生錯誤!";
}
else
{
cout<<"\n\n\n\n\n\n\n\n\n                                    資料庫連接配接成功!\n\n\n\n\n\n\n\n";
        system("PAUSE");
system("cls");
while(1)
{
    n=zhao.main_menu();
            switch(n)
{
    case 1:
    zhao.input(); 
    break;
            case 2:
    zhao.show_table();
    break;
            case 3:
    zhao.cha_xun();
    break;
            case 4:
    zhao.del();
    break;
            case 5:
    zhao.xiu_gai(); 
    break;
            case 6:
    zhao.score_tong_ji(); 
    break;
    case 0:
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"                      ··········"<<endl;
cout<<"                   ***···謝謝使用···***"<<endl;
cout<<"                      ··········"<<endl<<endl<<endl<<endl<<endl<<endl;
    exit(1);
    break;
            default: 
                cout<<"請選擇正确的菜單項進行操作。多謝合作!"<<endl; 
}
} 
}
return 0;
}
           

繼續閱讀