如何用c++编写增 删 查 改?谁能给给个模板

艾玛没名字了 2012-06-15 09:33:07
如何用c++编写增 删 查 改?谁能给给个模板
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾玛没名字了 2012-06-16
  • 打赏
  • 举报
回复
在简单点不用vector
pathuang68 2012-06-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

在简单点不用vector
[/Quote]

不用map和vector,怎样才能更简单点呢?

哥6楼给你写的代码,是给你参考用的,不是在帮你做作业。那样会耽误你, 你可不要陷哥于不义。

就算是作业,这样题目也没有出清楚吧?

如果你不想用map和vector,那就自己实现一个链表之类的东西也可以。
pathuang68 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

还有就是要有密码重置
[/Quote]

参考6楼的代码吧。你可以给Student类增加一个password成员变量,修改password和修改chinese等成员变量的做法是一样的。
pathuang68 2012-06-15
  • 打赏
  • 举报
回复
参考:

#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;
}
艾玛没名字了 2012-06-15
  • 打赏
  • 举报
回复
还有就是要有密码重置
艾玛没名字了 2012-06-15
  • 打赏
  • 举报
回复
学生图书管理系统,要求能增删查显用户仅用c++即可
xiao0915 2012-06-15
  • 打赏
  • 举报
回复
数据库?LIST?VECTOR?数组?
W170532934 2012-06-15
  • 打赏
  • 举报
回复
楼主说的是什么啊?
MyLiveIsLost 2012-06-15
  • 打赏
  • 举报
回复
?看不明白你要增啥,删啥?
数据库?LIST?VECTOR?数组?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧