Rumah >pangkalan data >tutorial mysql >Bagaimana untuk membangunkan sistem peperiksaan mudah menggunakan MySQL dan C++
Cara menggunakan MySQL dan C++ untuk membangunkan sistem peperiksaan yang mudah
Pada masa ini, dalam bidang pendidikan, permintaan terhadap sistem peperiksaan elektronik semakin meningkat. Artikel ini akan memperkenalkan cara menggunakan MySQL dan C++ untuk membangunkan sistem peperiksaan yang mudah. Melalui sistem ini, guru boleh mencipta bank soalan dan menjana kertas ujian, dan pelajar boleh log masuk ke sistem untuk mengambil peperiksaan dan menjaringkannya secara automatik.
#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; }
Dalam kod ini, kami mula-mula memperkenalkan dua fail pengepala mysql_driver.h dan mysql_connection.h. Kemudian, dapatkan contoh pemacu MySQL melalui fungsi get_mysql_driver_instance() dan sambungkan ke pangkalan data menggunakan fungsi connect(). Seterusnya, pilih pangkalan data untuk digunakan melalui fungsi setSchema(). Akhir sekali, lepaskan sambungan selepas melakukan operasi pangkalan data.
#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; }
Dalam contoh ini, kami membina kelas ExamSystem untuk melaksanakan fungsi sistem peperiksaan. Dalam pembina, kami menyambung ke pangkalan data MySQL dan memilih pangkalan data untuk digunakan. Fungsi getQuestions() digunakan untuk menanyakan jadual bank soalan dan mendapatkan soalan dan pilihan, serta menjana vektor yang mengandungi soalan dan pilihan. Fungsi generateExam() digunakan untuk menjana kertas ujian dan memasukkannya ke dalam jadual ujian. Fungsi submitResponse() digunakan untuk memasukkan kertas jawapan peperiksaan ke dalam kertas jawapan. Fungsi calculateScore() digunakan untuk mengira markah berdasarkan kertas jawapan.
Dalam fungsi utama, kami menggunakan fungsi sistem peperiksaan dengan memanggil fungsi kelas ExamSystem.
Ringkasan:
Artikel ini memperkenalkan cara menggunakan MySQL dan C++ untuk membangunkan sistem peperiksaan yang mudah. Bank soalan, maklumat pelajar, kertas ujian dan data lain disimpan melalui pangkalan data MySQL, dan kod yang ditulis dalam C++ digunakan untuk melaksanakan fungsi seperti operasi bank soalan, penjanaan kertas ujian, menjawab peperiksaan dan pemarkahan automatik. Pembangun boleh mengembangkan dan mengoptimumkan kod mengikut keperluan khusus untuk melaksanakan sistem peperiksaan yang lebih kompleks.
Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem peperiksaan mudah menggunakan MySQL dan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!