Comment utiliser MySQL et C++ pour développer un système d'examen simple
Actuellement, dans le domaine de l'éducation, la demande de systèmes d'examen électroniques augmente. Cet article explique comment utiliser MySQL et C++ pour développer un système d'examen simple. Grâce à ce système, les enseignants peuvent créer des banques de questions et générer des copies de test, et les étudiants peuvent se connecter au système pour passer des examens et les noter automatiquement.
#include <mysql_driver.h> #include <mysql_connection.h> using namespace std; using namespace sql; int main() { sql::mysql::MySQL_Driver *driver; sql::Connection *con; driver = sql::mysql::get_mysql_driver_instance(); con = driver->connect("tcp://127.0.0.1:3306", "root", "password"); con->setSchema("exam_system"); // 进行数据库操作 delete con; return 0; }
Dans ce code, nous introduisons d'abord les deux fichiers d'en-tête mysql_driver.h et mysql_connection.h. Ensuite, obtenez l'instance du pilote MySQL via la fonction get_mysql_driver_instance() et connectez-vous à la base de données à l'aide de la fonction connect(). Ensuite, sélectionnez la base de données à utiliser via la fonction setSchema(). Enfin, libérez la connexion après avoir effectué les opérations de base de données.
#include <iostream> #include <string> #include <vector> #include <mysql_driver.h> #include <mysql_connection.h> using namespace std; using namespace sql; class ExamSystem { private: sql::mysql::MySQL_Driver *driver; sql::Connection *con; public: ExamSystem() { driver = sql::mysql::get_mysql_driver_instance(); con = driver->connect("tcp://127.0.0.1:3306", "root", "password"); con->setSchema("exam_system"); } ~ExamSystem() { delete con; } vector<string> getQuestions() { vector<string> questions; // 查询题库表,获取题目和选项 sql::Statement *stmt; sql::ResultSet *res; stmt = con->createStatement(); res = stmt->executeQuery("SELECT question, options FROM questions"); while (res->next()) { string question = res->getString("question"); string options = res->getString("options"); // 将题目和选项拼接成一个字符串并添加到vector中 questions.push_back(question + " " + options); } delete res; delete stmt; return questions; } void generateExam(string name) { // 生成试卷并插入考试表 sql::Statement *stmt; stmt = con->createStatement(); stmt->execute("INSERT INTO exams (name, teacher_id) VALUES ('" + name + "', 1)"); delete stmt; } void submitResponse(int student_id, int exam_id, vector<string> choices) { // 将考试答卷插入答卷表 sql::Statement *stmt; stmt = con->createStatement(); stmt->execute("INSERT INTO responses (student_id, exam_id, choices) VALUES (" + to_string(student_id) + ", " + to_string(exam_id) + ", '" + choices + "')"); delete stmt; } float calculateScore(int student_id, int exam_id) { float score = 0; // 查询答卷表,计算得分 sql::Statement *stmt; sql::ResultSet *res; stmt = con->createStatement(); res = stmt->executeQuery("SELECT choices FROM responses WHERE student_id = " + to_string(student_id) + " AND exam_id = " + to_string(exam_id)); string choices; if (res->next()) { choices = res->getString("choices"); } // 根据题目和答案的对应关系计算得分 delete res; delete stmt; return score; } }; int main() { ExamSystem examSystem; vector<string> questions = examSystem.getQuestions(); // 输出题目和选项 return 0; }
Dans cet exemple, nous construisons une classe ExamSystem pour implémenter les fonctions du système d'examen. Dans le constructeur, on se connecte à la base de données MySQL et on sélectionne la base de données à utiliser. La fonction getQuestions() est utilisée pour interroger la table de la banque de questions et obtenir des questions et des options, et générer un vecteur contenant des questions et des options. La fonction generateExam() est utilisée pour générer des copies de test et les insérer dans la table de test. La fonction submitResponse() est utilisée pour insérer la feuille de réponses de l'examen dans la feuille de réponses. La fonction calculateScore() est utilisée pour calculer le score en fonction de la feuille de réponses.
Dans la fonction principale, nous utilisons les fonctions du système d'examen en appelant les fonctions de la classe ExamSystem.
Résumé :
Cet article explique comment utiliser MySQL et C++ pour développer un système d'examen simple. La banque de questions, les informations sur les étudiants, les copies de test et d'autres données sont stockées dans la base de données MySQL, et le code écrit en C++ est utilisé pour implémenter des fonctions telles que le fonctionnement de la banque de questions, la génération de copies de test, la réponse aux examens et la notation automatique. Les développeurs peuvent étendre et optimiser le code en fonction de besoins spécifiques pour mettre en œuvre des systèmes d'examen plus complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!