能把数据库管理模块用c++写一下吗
时间: 2023-12-03 19:42:55 浏览: 50
采用c++写的数据库管理系统
当然可以。下面是一个基本的数据库管理模块的示例代码:
```c++
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
struct Student {
string name;
int age;
double score;
};
class Database {
private:
vector<Student> students;
string filename;
public:
Database(string file) : filename(file) {
load();
}
void addStudent(Student s) {
students.push_back(s);
save();
}
void listStudents() {
cout << "Name\tAge\tScore" << endl;
for (auto s : students) {
cout << s.name << "\t" << s.age << "\t" << s.score << endl;
}
}
void save() {
ofstream file(filename);
for (auto s : students) {
file << s.name << "," << s.age << "," << s.score << endl;
}
file.close();
}
void load() {
ifstream file(filename);
if (file.is_open()) {
students.clear();
string line;
while (getline(file, line)) {
Student s;
int pos = line.find(",");
s.name = line.substr(0, pos);
line = line.substr(pos + 1);
pos = line.find(",");
s.age = stoi(line.substr(0, pos));
line = line.substr(pos + 1);
s.score = stod(line);
students.push_back(s);
}
file.close();
}
}
};
int main() {
Database db("students.txt");
db.addStudent({"Alice", 20, 90});
db.addStudent({"Bob", 21, 85.5});
db.addStudent({"Charlie", 19, 95});
db.listStudents();
return 0;
}
```
在这个示例中,我们定义了一个 `Student` 结构体来表示学生的信息,然后定义了一个 `Database` 类来管理学生信息的存储和读取。具体来说,我们使用了一个 `vector` 来存储所有学生的信息,并将它们保存到一个文件中,以便下次启动程序时可以读取它们。我们还定义了 `addStudent` 和 `listStudents` 方法来添加和列出学生信息。
在 `save` 方法中,我们将所有学生的信息写入文件中,每行包含一个学生的姓名、年龄和分数,用逗号分隔。在 `load` 方法中,我们从文件中读取所有行,解析每个学生的信息,并将它们添加到 `students` 向量中。
在主函数中,我们创建了一个 `Database` 对象,并向其中添加了三个学生。然后,我们列出了所有学生的信息。
当然,这只是一个简单的示例,实际的数据库管理模块可能需要更多的功能,例如删除和更新学生信息等等。
阅读全文