个人通讯录管理

#include<iostream>

#include<cstring>

#include<cstdlib>

#include<fstream>

#include<windows.h>

using namespace std;

class Message

{

public:

char name[20];  //名字

char adress[20]; //单位

char call[15];  //固定电话

char phone[15];  //移动电话

char unit[10];  //分类

char EMALL[20];  //E-mail

char QQ[15];    //QQ

Message *next;

};

class Booklist

{

public:

Booklist(); //构造函数

~Booklist(); //析构函数

void Input(); //输入函数

void Output(); //输出函数

void Delet(); //删除

void Insert(); //插入

void Find(); //查找

void Show(); //展示界面

void Amend(); //修改函数

void In(); //导入文件

void Out(); //导出文件

private:

Message *head;

};

Booklist::Booklist()//构造函数

{

head=new Message;//开辟空间

if(head==NULL)

{

cout<<"开辟失败"<<endl;

}

head->next=NULL;

}

Booklist::~Booklist()

{

free(head);//释放空间

}

void Booklist::Show()

{

system("cls");

cout<<"\t\t\t\t\t欢迎使用屈大帅管理系统\t\t\t\t\t"<<endl;

cout<<endl;

cout<<endl;

cout<<"\t\t\t\t\t\t请输入你的选择\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t1.输入\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t2.输出\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t3.增加\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t4.删除\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t5.查找\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t6.修改\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t7.保存\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t8.导出\t\t\t\t\t\t"<<endl;

cout<<"\t\t\t\t\t\t0.退出\t\t\t\t\t\t"<<endl;

}

void Booklist::Input()

{

Message *pre;

pre=new Message;

Message *p=head;

while(p->next!=NULL)

{

p=p->next;

}//找到尾节点

cout<<"请输入联系人的信息:"<<endl;

cout<<"姓名:";

cin>>pre->name;

cout<<"单位:";

cin>>pre->adress;

cout<<"call:";

cin>>pre->call;

cout<<"phone:";

cin>>pre->phone;

cout<<"分类:";

cin>>pre->unit;

cout<<"EMALL:";

cin>>pre->EMALL;c

cout<<"QQ:";

cin>>pre->QQ;

pre->next=NULL;//pre为尾节点

p->next=pre;

}

void Booklist::Output()

{

system("cls");

int s=1,count=0;

Message *p=head->next;

while(p!=NULL)

{

cout<<"第"<<s<<"个联系人信息如下"<<endl;

cout<<"姓名:"<<p->name<<"  单位:"<<p->adress<<"  固定电话:"<<p->call<<"  移动电话:"<<p->phone

<<"  分类:"<<p->unit<<"  EMALL:"<<p->EMALL<<"  QQ:"<<p->QQ<<endl;

p=p->next;

s++;

count++;

if(count%10==0)

{

cout<<"请按任意键翻页"<<endl;

system("pause");

system("cls");

}

}

}

void Booklist::Insert()

{

system("cls");

Message *pre;

pre=new Message;

Message *p=head;

int n;

while(p->next!=NULL)

{

p=p->next;

}

cout<<"请输入要添加的联系人信息:"<<endl;

cout<<"姓名:";

cin>>pre->name;

cout<<"单位:";

cin>>pre->adress;

cout<<"call:";

cin>>pre->call;

cout<<"phone:";

cin>>pre->phone;

cout<<"分类:";

cin>>pre->unit;

cout<<"EMALL:";

cin>>pre->EMALL;

cout<<"QQ:";

cin>>pre->QQ;

pre->next=NULL;

p->next=pre;

}

void Booklist::Delet()

{

system("cls");

char d_name[20];

Message *p=head;

Message *q;

q=p->next;

cout<<"请输入需要删除的联系人姓名:";

cin>>d_name;

while(q)//遍历

{

if (strcmp(q->name, d_name) == 0 )

        {

            p->next = q->next;//删除q节点,使原来指向q节点的指针直接指向q的下一个节点

            free(q);    //删除q节点

            break;

        }

        else

        {

            p = p->next;

            q = q->next;

        }

}

}

void Booklist::Find()

{

system("cls");

int choice;

char c_name[20];

char c_adress[20];

char c_unit[20];

Message *p=head->next;

int flag=0;//flag用于判定是否有查询结果

cout<<"请选择要查询的方式"<<endl;

cout<<"1.姓名"<<endl;

cout<<"2.单位"<<endl;

cout<<"3.分类"<<endl;

cin>>choice;

switch(choice)

{

case 1:

cout<<"请输入要查询的姓名:";

cin>>c_name;

cout<<"查询结果如下"<<endl;

while(p!=NULL)

{

if(strcmp(p->name,c_name)==0)

{

cout<<"姓名:";

cout<<p->name<<endl;

cout<<"单位:";

cout<<p->adress<<endl;

cout<<"固定电话:";

cout<<p->call<<endl;

cout<<"移动手机:";

cout<<p->phone<<endl;

cout<<"分类:";

cout<<p->unit<<endl;

cout<<"EMALL:";

cout<<p->EMALL<<endl;

cout<<"QQ:";

cout<<p->QQ<<endl;

cout<<endl;

flag++;

}

p=p->next;

}

if(flag==0)

{

cout<<"无此信息!!"<<endl;

}

break;

case 2:

cout<<"请输入要查询的单位:";

cin>>c_adress;

cout<<"查询结果如下"<<endl;

while(p!=NULL)

{

if(strcmp(p->adress,c_adress)==0)

{

cout<<"姓名:";

cout<<p->name<<endl;

cout<<"单位:";

cout<<p->adress<<endl;

cout<<"固定电话:";

cout<<p->call<<endl;

cout<<"移动手机:";

cout<<p->phone<<endl;

cout<<"分类:";

cout<<p->unit<<endl;

cout<<"EMALL:";

cout<<p->EMALL<<endl;

cout<<"QQ:";

cout<<p->QQ<<endl;

cout<<endl;

flag++;

}

p=p->next;

}

if(flag==0)

{

cout<<"无此信息!!"<<endl;

}

break;

case 3:

cout<<"请输入要查询的分类:";

cin>>c_unit;

cout<<"查询结果如下"<<endl;

while(p!=NULL)

{

if(strcmp(p->unit,c_unit)==0)

{

cout<<"姓名:";

cout<<p->name<<endl;

cout<<"单位:";

cout<<p->adress<<endl;

cout<<"固定电话:";

cout<<p->call<<endl;

cout<<"移动手机:";

cout<<p->phone<<endl;

cout<<"分类:";

cout<<p->unit<<endl;

cout<<"EMALL:";

cout<<p->EMALL<<endl;

cout<<"QQ:";

cout<<p->QQ<<endl;

cout<<endl;

flag++;

}

p=p->next;

}

if(flag==0)

{

cout<<"无此信息!!"<<endl;

}

break;

}

}

void Booklist::Amend()

{

char A_name[20];   

char A_adress[20]; 

char A_call[15]; 

char A_phone[15];

char A_unit[10];

char A_EMALL[20];

char A_QQ[15];

int amend=0;

Message *p;

p=head->next;

cout<<"请输入要修改信息的联系人姓名:";

cin>>A_name;

while(p)

{

if(strcmp(A_name,p->name)==0)

{

cout<<"该联系人信息如下"<<endl;

cout<<"姓名:";

cout<<p->name<<endl;

cout<<"单位:";

cout<<p->adress<<endl;

cout<<"固定电话:";

cout<<p->call<<endl;

cout<<"移动手机:";

cout<<p->phone<<endl;

cout<<"分类:";

cout<<p->unit<<endl;

cout<<"EMALL:";

cout<<p->EMALL<<endl;

cout<<"QQ:";

cout<<p->QQ<<endl;

cout<<endl;

cout<<"请输入要修改的信息"<<endl;

cout<<"姓名:";

cin>>A_name;

cout<<"单位:";

cin>>A_adress;

cout<<"call:";

cin>>A_call;

cout<<"phone:";

cin>>A_phone;

cout<<"分类:";

cin>>A_unit;

cout<<"EMALL:";

cin>>A_EMALL;

cout<<"QQ:";

cin>>A_QQ;

strcpy(p->name,A_name);//strcpy拷贝函数

strcpy(p->adress,A_adress);

strcpy(p->call,A_call);

strcpy(p->phone,A_phone);

strcpy(p->unit,A_unit);

strcpy(p->EMALL,A_EMALL);

strcpy(p->QQ,A_QQ);

amend++;

break;

}

else

{

p=p->next;

}

}

if(amend==0)

{

cout<<"查无此人!"<<endl;

}

}

void Booklist::In()

{

Message *p;

fstream file;

file.open("通讯录.txt",ios::out);

if(!file)

{

cout<<"打开文件失败!"<<endl;

exit(1);

}

p=head->next;

while(p!=NULL)

{

file<<p->name<<" "<<p->adress<<" "<<p->call<<" "<<p->phone<<" "<<p->unit<<" "<<p->EMALL<<" "<<p->QQ<<endl;

p=p->next;

}

file.close();

cout<<"保存成功!!"<<endl;

}

void Booklist::Out()

{

Message *q=head->next;

fstream file;

file.open("通讯录.txt",ios::in);

if(!file)

{

cout<<"文件打开失败!"<<endl;

}

while(q)

{

file>>q->name>>q->adress>>q->call>>q->phone>>q->unit>>q->EMALL>>q->QQ;

cout<<" 姓名:"<<q->name<<" 单位:"<<q->adress<<" 固定电话:"<<q->call<<" 移动手机:"<<q->phone<<" 分类:"<<q->unit<<" EMALL:"<<q->EMALL<<" QQ:"<<q->QQ<<endl;

q=q->next;

}

file.close();

}

int main()

{

Booklist L;

int choose;

int n;

int count=0;

int sum=0;

system("color B5");

for ( int k = 0; k < 15; k++)

{

cout<<"      █";

Sleep(100);

}

cout<<endl;

while(sum==0)

{

L.Show();

cout<<endl;

cout<<"请输入选择:";

cin>>choose;

switch(choose)

{

case 1:

cout<<"请输入要记录的联系人个数:";

cin>>n;

for(int i=1;i<=n;i++)

{

cout<<"第"<<i<<"个联系人信息为"<<endl;

L.Input();

}

system("pause");

break;

case 2:

L.Output();

system("pause");

break;

case 3:

L.Insert();

cout<<"插入成功!!"<<endl;

system("pause");

break;

case 4:

L.Delet();

cout<<"删除成功!!"<<endl;

system("pause");

break;

case 5:

L.Find();

system("pause");

break;

case 6:

L.Amend();

system("pause");

break;

case 7:

L.In();

system("pause");

break;

case 8:

L.Out();

system("pause");

break;

case 0:

sum++;

cout<<"再见!!"<<endl;

break;

}

}

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容