新人求对C++代码注释和说明!解决办法

新人求对C++代码注释和说明!
[code=C/C++][/code]

//#include "iostream.h"
#include <iostream>
#include "string.h"
#include "fstream"
#define NULL 0
unsigned int key;
unsigned int key2;
  int *p;
struct node //建节点
{
  char name[8],address[20];
  char num[11];
  node * next;
};

typedef node* pnode;
typedef node* mingzi;
  node **phone;
  node **nam;
  node *a;
  
  using namespace std; //使用名称空间

void hash(char num[11]) //哈希函数
{
  int i = 3;
  key=(int)num[2];

  while(num[i]!=NULL)
  {
  key+=(int)num[i];
  i++;
  }
  key=key%20;
}

void hash2(char name[8]) //哈希函数
{
  int i = 1;
  key2=(int)name[0];
  while(name[i]!=NULL)
  {
  key2+=(int)name[i];
  i++;
  }
  key2=key2%20;
}

node* input() //输入节点
{
  node *temp;
  temp = new node;
  temp->next=NULL;
  cout<<"输入姓名:"<<endl;
  cin>>temp->name;
  cout<<"输入地址:"<<endl;
  cin>>temp->address;
  cout<<"输入电话:"<<endl;
  cin>>temp->num;
  return temp;
}

int apend() //添加节点
{
  node *newphone;
  node *newname;
  newphone=input();
  newname=newphone;
  newphone->next=NULL;
  newname->next=NULL;
  hash(newphone->num);
  hash2(newname->name);
  newphone->next = phone[key]->next;
  phone[key]->next=newphone;
  newname->next = nam[key2]->next;
  nam[key2]->next=newname;
  return 0;
}

void create() //新建节点
{
  int i;
  phone=new pnode[20];
  for(i=0;i<20;i++)
  {
  phone[i]=new node;
  phone[i]->next=NULL;
  }
}
void create2() //新建节点
{
  int i;
  nam=new mingzi[20];
  for(i=0;i<20;i++)
  {
  nam[i]=new node;
  nam[i]->next=NULL;
  }
}
void list() //显示列表
{
  int i;
  node *p;
  for(i=0;i<20;i++)
  {
  p=phone[i]->next;
  while(p)
  {
  cout<<p->name<<'_'<<p->address<<'_'<<p->num<<endl;
  p=p->next; 
  }
  }
}
void list2() //显示列表
{
  int i;
  node *p;
  for(i=0;i<20;i++)
  {
  p=nam[i]->next;
  while(p)
  {
  cout<<p->name<<'_'<<p->address<<'_'<<p->num<<endl;
  p=p->next;  
  }
  }
}

void find(char num[11]) //查找用户信息
{
  hash(num);
  node *q=phone[key]->next;
  while(q!= NULL)
  {
  if(strcmp(num,q->num)==0)
  break;
  q=q->next;
  }
  if(q)
  cout<<q->name<<"_" <<q->address<<"_"<<q->num<<endl;
  else cout<<"无此记录"<<endl;
}
void find2(char name[8]) //查找用户信息
{
  hash2(name);
  node *q=nam[key2]->next;
  while(q!= NULL)