怎么用c++编写增 删 查 改?哪位高手能给给个模板
如何用c++编写增 删 查 改?谁能给给个模板
如何用c++编写增 删 查 改?谁能给给个模板
------解决方案--------------------
参考:
如何用c++编写增 删 查 改?谁能给给个模板
------解决方案--------------------
参考:
- C/C++ code
#include <map> #include <string> #include <iostream> #include <vector> using namespace std; // 学生类 class Student { private: int id; // 学号 string name; // 姓名 double chinese; // 语文成绩 double english; // 英语成绩 double math; // 数学成绩 double computer; // 计算机成绩 public: Student() { id = -1; name = ""; chinese = 0.0; english = 0.0; math = 0.0; computer = 0.0; } Student(int id, string name, double chinese, double english, double math, double computer) { this->id = id; this->name = name; this->chinese = chinese; this->english = english; this->math = math; this->computer = computer; } int get_id() const { return id; } string get_name() const { return name; } void set_name(string name) { this->name = name; } double get_chinese() const { return chinese; } void set_chinese(double chinese) { this->chinese = chinese; } double get_english() const { return english; } void set_english(double english) { this->english = english; } double get_math() const { return math; } void set_math(double math) { this->math = math; } double get_computer() const { return computer; } void set_computer(double computer) { this->computer = computer; } void show_info() { cout << id << "\t" << name << "\t" << chinese << "\t" << english << "\t" << math << "\t" << computer << endl; } }; // 数据库类,包含增、删、改、查等操作 class Database { private: // 模拟数据库,学号作为主键 map<int, Student> students; public: // 增加一个学生 void add_student(Student student) { students.insert(pair<int, Student>(student.get_id(), student)); } // 删除一个学生 void delete_student(int id) { map<int, Student>::iterator iter; iter = students.find(id); students.erase(iter); } // 更改一个学生 void update_student(Student student) { map<int, Student>::iterator iter; iter = students.find(student.get_id()); if(iter != students.end()) { iter->second.set_name(student.get_name()); iter->second.set_chinese(student.get_chinese()); iter->second.set_english(student.get_english()); iter->second.set_math(student.get_math()); iter->second.set_computer(student.get_computer()); } else { cout << "This student does not exist in database, update failed." << endl; } } // 根据学号查询学生 Student select_student(int id) { map<int, Student>::iterator iter; iter = students.find(id); return Student(iter->second.get_id(), iter->second.get_name(), iter->second.get_chinese(), iter->second.get_english(), iter->second.get_math(), iter->second.get_computer()); } // 获取数据库中的所有学生 vector<Student> select_all() { vector<Student> vec; map<int, Student>::iterator iter; for(iter = students.begin(); iter != students.end(); ++iter) { vec.push_back(iter->second); } return vec; } }; int main(int argc, char* argv[]) { Student student1(1, "Andy", 100.0, 100.0, 100.0, 100.0); Student student2(2, "Bob", 99.0, 99.0, 99.0, 99.0); Student student3(3, "Chris", 98.0, 98.0, 98.0, 98.0); Database db; // 增加数据 db.add_student(student1); db.add_student(student2); db.add_student(student3); // 显示增加数据后,数据库中的所有数据 vector<Student> vec = db.select_all(); for(vector<Student>::iterator iter = vec.begin(); iter != vec.end(); ++iter) { iter->show_info(); } cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; // 删除student2 db.delete_student(student2.get_id()); // 显示删除操作后,数据库中的所有数据 vec = db.select_all(); for(vector<Student>::iterator iter = vec.begin(); iter != vec.end(); ++iter) { iter->show_info(); } cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; // 更改数据 Student update_student(1, "Andrew", 120.0, 120.0, 120.0, 120.0); db.update_student(update_student); // 显示更改数据后,数据库中的所有数据 vec = db.select_all(); for(vector<Student>::iterator iter = vec.begin(); iter != vec.end(); ++iter) { iter->show_info(); } cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; // 查询数据 Student student = db.select_student(1); // 显示查询结果 student.show_info(); return 0; }