#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<fstream>
using namespace std;
typedef struct
{
int number;//序号
string name;//姓名
string phone;//电话
string qq;//QQ
string email;//电子邮箱
string city;//城市
string zipcode;//邮编
}ElemType;//通讯录数据元素
typedef struct Node
{
ElemType data;
struct Node* next;
}Node, * LinkList;//链表
void Read(LinkList& L);//读取功能
void Save(LinkList& L);//保存功能
void Init(LinkList& L);//链表的初始化
void Add(LinkList& L);//添加功能
void Delete(LinkList& L);//删除功能
void Find(const LinkList& L);//查找功能
void Revise(LinkList& L);//修改功能
void Sort(LinkList& L);//排序功能
void menu(LinkList& L);//界面功能
void Read(LinkList& L)//读取功能
{
Node* p = L;
ifstream infile("E://应用题11/1.txt", ios::in);
int len = 0;
infile >> len;
ElemType tem;
while(len--)
{
infile>>tem.number>>tem.name>>tem.phone>>tem.qq>>tem.email>>tem.city>>tem.zipcode;
Node* t = new Node;
t->data = tem;
t->next = NULL;
p->next = t;
p = p->next;
}
infile.close();
}
void Save(LinkList& L)//保存功能
{
Node* t = L, * cnt = L;
ofstream outfile("E://应用题11/1.txt", ios::out);
int len = 0;
while(cnt->next)
{
len++;
cnt = cnt->next;
}
outfile<<len<<endl;
while(t)
{
if(t != L)
outfile << t->data.number << "\t" << t->data.name << "\t" << t->data.phone << "\t" << t->data.qq << "\t" << t->data.email << "\t\t" << t->data.city << "\t" << t->data.zipcode << endl;
t = t->next;
}
outfile.close();
}
void Init(LinkList& L)//初始化链表
{
L = new Node;
L->next = NULL;
}
void Add(LinkList& L)//添加功能
{
system("cls");//清屏
cout << "\t\t\t添加联系人功能" << endl;
Node* t = L;
int i = 1, flag = 1;
while(t->next)
{
i++;
t = t->next;
}
while (flag)
{
Node* p = new Node;
cout<<"\t\t\t输入序号:";
cin>> p->data.number;
cout<< "\t\t\t输入姓名:";
cin>> p->data.name;
cout<< "\t\t\t输入电话:";
cin>> p->data.phone;
cout<< "\t\t\t输入QQ:";
cin>>p->data.qq;
cout<< "\t\t\t输入电子邮箱:";
cin>>p->data.email;
cout << "\t\t\t输入城市:";
cin >> p->data.city;
cout << "\t\t\t输入邮编&#x
12-05
01-05
1065
09-11
12-25