MySQL学生成绩管理系统based on C++ and Clion

博客介绍了mysql_free_result()函数用于释放结果集内存,是同步操作。还提及mysql_query()函数执行语句,若传递std::string类型需转化为字符。强调实验中MySQL链接建立的重要性,同时列出了相关文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql_free_result()函数的作用是释放结果集的内存,是同步的,也就是要中断一下

该实验使用了MySQL链接数据库的基本使用方法,具体使用了

MYSQL_RES 数据库的mysql_store_result()函数的返回值是一个结果集,该函数的作用是检索比并存储整个结果集
MYSQL_ROW 数据库的mysql_fetch_row()函数的返回值是一个集行,搭配上一个mysql_res使用的,一个一个读他,函数的作用是获取下一个结果集行

mysql_query()函数是执行语句的意思,也就是发给数据库让他执行这条语句,函数传递语句的使用如果是std::string 类型的话,需要调用.c_str()函数进行转化成字符才能进行传递

std::ifstream  infile("../src/student2.txt",std::ios::in);
infile>>temp[j];
std::ofstream outfile("../src/student2.txt",std::ios::out);
outfile<<"学号\t"<<"名字\t"<<"得分\n"<<std::endl;

该方法分别对应了流对于文件的读入和写入操作的执行,使用完毕之后要执行close()操作

本实验我认为最重要的是对于mysql的链接建立问题

    MYSQL mysql;
    const char db_Username[]="root";
    const char db_Password[]="123456";
    const char db_Host[]="localhost";
    const char db_Name[]="sp";
    unsigned long db_Port=3306;
    mysql_init(&mysql);
    mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gbk");
    if(mysql_real_connect(&mysql,db_Host,db_Username,db_Password,db_Name,db_Port,NULL,0)==NULL){
        std::cout<<"connect error!!!"<<std::endl;
        return false;
    }
    std::cout<<"connect success!!!"<<std::endl;
  1. build
  2. docs
  3. include
    1. Main.h
    2. Student.h
  4. src
    1. main.cpp
    2. Methods.cpp
    3. student.cpp
    4. student2.txt
  5. CMakeLists.txt

Main.h


#ifndef NEW_PROJECTS_MAIN_H
#define NEW_PROJECTS_MAIN_H

#include<iostream>
#include<mysql.h>
#include <fstream>





void show_mean();//显示菜单

bool connect_mysql(MYSQL& mysql);//链接数据库

void query(MYSQL& mysql);//查询学生数据

void modify(MYSQL& mysql);//修改学生数据

void insert(MYSQL& mysql);//添加学生数据

void Delete(MYSQL& mysql);//删除学生数据

void filein(MYSQL& mysql);//导入文件数据

int getline();//获取文件行数

void fileout(MYSQL& mysql);//将数据库中的文件导出到另外一个文件中

void createTable(MYSQL& mysql);//创建表格

#endif //NEW_PROJECTS_MAIN_H

Student.h

#ifndef NEW_PROJECTS_STUDENT_H
#define NEW_PROJECTS_STUDENT_H
#include"main.h"
class Student{
private:
    int Id;
    std::string name;
    int score;
public:
    int getId();
    std::string getName();
    int getScore();
    void setId(int& Id);
    void setName(std::string& name);
    void setScore(int& score);
};
#endif //NEW_PROJECTS_STUDENT_H

main.cpp

#include "Main.h"

int main() {
    MYSQL mysql;
    mysql_init(&mysql);
    mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gbk");
    system("chcp 65001");
    if(connect_mysql(mysql)==false){
        return 0;
    }
    else{
        int choices=1;
        while(choices!=0){
            show_mean();
            std::cin>>choices;
            switch (choices) {
                case 1:
                    filein(mysql);
                    break;
                case 2:
                    query(mysql);
                    break;
                case 3:
                    modify(mysql);
                    break;
                case 4:
                    insert(mysql);
                    break;
                case 5:
                    Delete(mysql);
                    break;
                case 0:
                    fileout(mysql);
                    break;
                default:
                    std::cout<<"Input error,please again!!!"<<std::endl;
                    break;
            }
        }
        std::cout<<"success"<<std::endl;
        system("pause");
        system("cls");
    }

}

Methods.cpp

#include"Main.h"
#include"Stu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值