关于C++的 程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:42:25
设计一个实用的小型通信录程序,具有查询和删除功能,并且能打开或修改指定文件及多个文件组成一个文件。它完全使用类来实现,充分体现面向对象的程序设计特点。
功能设计要求:
1、建立文件
(1)存储文件可以使用默认文件名或指定文件名.
(2)可以不保存输入记录,但需要确认是否保存输入记录。
(3)如果已经有文件,只能在其后追加。
2、文件的存取和显示
(1)可以单独存取文件。
(2)可以随时显示内存中记录的全部内容。
(3)可以直接存取默认文件或指定的文件。
3、删除记录
(1)可以按“姓名”的方式删除记录并更新内存内容。
(2)能给出被删除记录的信息。
(3)如果已经是空表,删除时应给出提示信息并返回主菜单。
(4)如果没有要删除的信息,输出没有找到的信息。
4、查询记录
(1)可以按“姓名”或“电话”方式查询记录。
(2)能给出查询记录的信息。
(3)如果查询的信息不存在,输出“没有找到”的信息。
姓名 电话
李大嘴 04326123456
郭芙蓉 05519823555
白展堂 13912345678
吕秀才 0551884453333
佟湘玉 01064534688

可使用C++标准库提供的list来实现双向链表用以保存数据。
这个题目怎么做呀!最好能给出解释

===============================
给,如下程序已经编译运行确认,
由于我的是日文系统,所以一些中文你得再改一改。

#include<iostream>
#include<string>
#include<iomanip>
#include<list>
#include<fstream>
#include<algorithm>
#define SPACE "\t\t\t"
using namespace std;
struct Record{
string name;
string tel;
public:
friend ostream& operator<<(ostream& os,const Record *rec){
return os<<rec->name<<SPACE<<rec->tel<<endl;
};
friend istream& operator>>(istream& is,Record *rec){
is>>rec->name;

is>>rec->tel;
return is;
}
static bool comp(string patten,int type,Record *rec){
switch(type){
case 0: {return rec->name==patten;}break;
case 1: {return rec->tel==patten;}break;
}
return false;
}
static bool isvan(Record *rec){
retu