非常紧急非常重要的有关问题(100分啊)多谢了.(关于C++文件删除其中一行,并保存,及用指针处理双向链表.等等有关问题)

非常紧急非常重要的问题(100分啊)谢谢了...(关于C++文件删除其中一行,并保存,及用指针处理双向链表..等等问题)
问题在程序右边的注释处已经写清楚了... 请各位高手花点时间,修改修改,应该几分钟就改好了...这个作业小弟我今天下午就要交了,谢谢了.
C/C++ code
#include <iostream>        
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;    //使用标准命名空间std
class book                
{
public:                    
    book();                
    char inter_face();    //首界面
    void add_person();    //添加联系人
    void del_person();    //删除联系人
    void show_all();    //显示所有联系人
    void alter();        //修改信息
    void select();        //查询联系人
    void save_new();    //保存新增加的联系人
private:                
    string name;        //姓名
    string address;        //地址
    string number;        //电话号码
    string post;        //邮编
    string qq;            //QQ号
};
struct record            //定义一个链表节点结构
{
    book object;        //一个结构体record里有个类的对象,每个节点饱含一个人的信息.
    record *prior;        //指向前躯节点
    record *next;        //指向后继节点
};
book::book()            //定义构造函数
{
    name="\0";
    address="\0";
    number="\0";
    post="\0";
    qq="\0";
}
char book::inter_face()    //实现首界面的函数
{
    system("cls");
    cout<<endl;
    cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl
        <<"\t\t※                                                ※"<<endl
        <<"\t\t※             欢迎使用小小通讯录                 ※"<<endl 
        <<"\t\t※                                                ※"<<endl
        <<"\t\t※      1. 添加新联系人.      4. 修改信息.        ※"<<endl 
        <<"\t\t※                                                ※"<<endl
        <<"\t\t※      2. 删除联系人.        5. 查询联系人.      ※"<<endl
        <<"\t\t※                                                ※"<<endl
        <<"\t\t※      3. 显示所有联系人.    6. 关闭通讯录.      ※"<<endl 
        <<"\t\t※                                                ※"<<endl
        <<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl<<endl
        <<"\t\t选择:" ;
    char choose;
    cin>>choose;
    fflush(stdin);        
    return choose;
}
void book::add_person()    //定义添加联系人函数
{
    cout<<endl<<"根据下面提示输入新联系人信息"<<endl;
    cout<<"姓名: ";
    cin>>name;            //输入姓名
    fflush(stdin);        //清空输入缓冲区,为了处理缓冲区残留的回车什么的,经常需要清空输入缓冲区
    cout<<"电话: ";
    cin>>number;        //输入电话号码
    fflush(stdin);
    cout<<"QQ: ";
    cin>>qq;            //输入QQ号码
    fflush(stdin);
    cout<<"邮编: ";
    cin>>post;            //输入邮编
    fflush(stdin);
    cout<<"地址: ";
    cin>>address;        //输入地址
    fflush(stdin);
    save_new();            //调用保存输入信息函数
    cout<<endl<<"新联系人信息已经保存好!!!"<<endl<<endl;
    system("pause");    //屏幕暂停
}

void book::save_new()                                        //保存新添加的联系人函数
{
    ofstream outData("pbook.txt", ios::app);                //将输入信息输出到磁盘文件pbook.txt中.
    if(!outData)                                            //检测文件打开是否成功打开
    {
        cout<<endl<<"对不起!!!打开文件失败!!!"<<endl<<endl;
        system("pause");
        return;
    }
    outData<<setiosflags(ios::left)<<setw(17)<<name<<" "    //将输入信息写入pbook.txt文件中
        <<setw(16)<<number<<" "<<setw(18)<<qq<<" "
        <<setw(14)<<post<<" "<<setw(20)<<address<<endl;
    outData.close();                                        //关闭pbook.txt文件
}

void book::del_person()                            //定义删除联系人函数
{    //?????????????


    //*********************************************//
    //
    //这里就是问题啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!请看下面...谢谢.在alter()函数中也有问题...谢谢了...
    //
    //
    //
    // 下面这段被注释的代码实在是搞不懂啊,????? 
    //想实现的功能是输入要删除的姓名或电话号码,
    //并将与此相关人的全部信息从pbook.txt文件中删除,之后文件中就剩下未被删除的人的信息.这该怎么实现啊????? 
    /*
    ifstream inData("pbook.txt", ios::in);        //打开文件pbook.txt,进行读操作
    if(!inData);                                //判断文件是否打开,即判断文件指针是不是指向文件尾.
    {
        cout<<endl<<"对不起!!!找不到文件!!!"<<endl;
        system("pause");
        return;
    }
    string sign;               
    cout<<endl<<"你要删除输入姓名或电话号:";
    cin>>sign;
       bool flag=true;                            //定义布尔型变量flag.  
    string str;                                //定义一个字符串变量,用来接受除与输入姓名或电话号码相同的行之外的其他信息
    while(inData>>name>>number)//???从文件pbook.txt中依次读取与输入的name或number相同的信息.这里(inData>>name>>number)并不是很清楚???
    {
        //read line at time until end-of-file
        getline(inData, str);                //???getline()应该是把上一行的name或者number中的信息送入字符串str中吧???    
        if((sign==name)||(sign==number))    
        {
            cout<<endl<<"你想删除的联系人:"<<endl;
            cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;        //输出要删除的人的信息 
            flag=false;
            break;
        }    
    }  
    if(flag)
    {
        cout<<endl<<"对不起!!!联系人中没你找的人!!!"<<endl<<endl;
    }
    else
    {
        while(getline(inData,str))
        {
            cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;        //输出要删除的人的信息
                
         
        }       
        //outData.close();                                //关闭temp.txt文件
        inData.close();                                    //关闭pbook.txt文件      
        ofstream out("pbook.txt", ios::out);
        //ifstream in("temp.txt", ios::in);       
        if(!out);            //||!in)
        {
            cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;
            system("pause");
            return;
        }
        while(getline(in,str))
        {
            out<<str<<endl;
        }       
        out.close();                        //关闭pbook.txt文件
        //in.close();                            //关闭temp.txt文件
        cout<<endl<<"这个人的信息已经从你的通迅录中删除!!!"<<endl<<endl;
    }*/
    system("pause");    
}
void book::show_all()                        //定义显示所有所有联系人信息函数
{
    ifstream inData("pbook.txt",ios::in);    //打开文件pbook.txt,并进行读操作
    if (!inData)                            //判断文件是否打开,即判断文件指针是不是指向文件尾
    {
        cout<<endl<<"对不起!!!没有找到文件!!!"<<endl;
        system("pause");
        return;
    }
    bool flag=true;
    string allpersons;                        //定义allpersons字符串,用来接收文件中的所有人的信息   
    while(getline(inData, allpersons))
    {
        if(flag)
        {
            cout<<"所有联系人信息如下:"<<endl;
        }
        cout<<allpersons<<endl;
        flag=false;
    }
    if(flag)
    {
        cout<<endl<<"你的通迅录中没有联系人!!!"<<endl<<endl;
    }
    else
    {
        cout<<"所有联系人已经全部显示出来!!!"<<endl;
    }
    system("pause");
}