用c++语言微型数据存储与查询系统实现
时间: 2023-12-17 08:06:08 浏览: 28
以下是一个使用C++语言实现微型数据存储与查询系统的示例:
```
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 定义数据结构
struct Person {
string name;
int age;
string address;
};
// 定义数据库类
class Database {
private:
vector<Person> data;
string filename;
public:
Database(string filename) {
this->filename = filename;
load();
}
~Database() {
save();
}
// 加载数据
void load() {
ifstream file(filename);
if (!file.is_open()) {
return;
}
data.clear();
Person person;
while (file >> person.name >> person.age >> person.address) {
data.push_back(person);
}
file.close();
}
// 保存数据
void save() {
ofstream file(filename);
if (!file.is_open()) {
return;
}
for (int i = 0; i < data.size(); i++) {
file << data[i].name << " " << data[i].age << " " << data[i].address << endl;
}
file.close();
}
// 添加数据
void add(Person person) {
data.push_back(person);
}
// 查询数据
vector<Person> query(string name) {
vector<Person> result;
for (int i = 0; i < data.size(); i++) {
if (data[i].name == name) {
result.push_back(data[i]);
}
}
return result;
}
// 删除数据
void remove(string name) {
for (int i = 0; i < data.size(); i++) {
if (data[i].name == name) {
data.erase(data.begin() + i);
}
}
}
};
// 主程序
int main() {
// 创建数据库
Database db("data.txt");
// 添加数据
db.add({ "Tom", 25, "Beijing" });
db.add({ "Jerry", 30, "Shanghai" });
// 查询数据
vector<Person> result = db.query("Tom");
for (int i = 0; i < result.size(); i++) {
cout << result[i].name << " " << result[i].age << " " << result[i].address << endl;
}
// 删除数据
db.remove("Jerry");
return 0;
}
```
该程序使用了STL中的vector容器来存储数据,使用了fstream库来读写文件,实现了添加、查询和删除数据的功能。需要注意的是,该程序没有考虑数据的安全性和隐私保护,实际使用中需要进行加强。