网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

C++通讯录管理系统设计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
数据结构课程设计-C++通讯录管理系统设计|数据结构课程设计
// 头文件
# include//forward declarationtemplateclass List;
//Item template definitiontemplateclass Item{ public:  friend List;  Item();  Item(const type &); private:  type data;  Item * next;};//ConstructortemplateItem::Item():next(0){}
//ConstructortemplateItem::Item(const type & N):data(N),next(0){}
templateclass List{ public:  List();//Destructor  bool IsEmpty();     void append();  void acquire();  void remove();      void print();  void modefy();    private:  Item * Head, * End;};templateList::List(){ Head=NULL;    End=NULL;}template void List::acquire(){ char response; int cnt(0); cout<<"请选择a.按姓名查询 b.按电话号码查询..."; cin>>response; switch(response) {  case 'a':   cin.ignore(80,'\n');      cout<<"请输入姓名:";      char nam[15];      cin.getline(nam,strlen(nam));   if(IsEmpty())    cout<<"没有记录系统为空!";   else   {    Item * pt=Head;    while(pt)    {     if((pt->data).IsThisName(nam))     {      (pt->data).print();      cnt++;     }
     pt=pt->next;    }   }    cout<<"共找到"< * pt=Head;    while(pt)    {     if((pt->data).IsThisPho(pho))     {      (pt->data).print();     }           pt=pt->next;    }   }      break;
 }
}template void List::remove(){ char response; cout<<"请选择你删除所选的方式 a.通过姓名b.通过电话号码.."; cin>>response;
 

 switch(response) { case 'a':   cin.ignore(80,'\n');      cout<<"请输入要删除的人的姓名:";      char nam[15];      cin.getline(nam,strlen(nam));   if(IsEmpty())    cout<<"没有记录系统为空!";   else   {         Item * pf=Head;     Item * pt=pf->next;     while(pf&&(pf->data).IsThisName(nam))     {      (pf->data).print();      cout<<"确定要删除?Y/N..";      cin>>response;      cin.ignore(80,'\n');      if(response=='y'||response=='Y')      {       Head=Head->next;       pf=Head;      }      if(pf==0) return;     }     pt=pf->next;     while(pt)     {

      if((pt->data).IsThisName(nam))      {       (pt->data).print();          cout<<"确定要删除?Y/N..";          cin>>response;          cin.ignore(80,'\n');          if(response=='y'||response=='Y')       {          pf->next=pt->next;          pt=pf->next;       }          else       {          pf=pf->next;          pt=pf->next;       }      }     }   }   break; case 'b':   cin.ignore(80,'\n');      cout<<"请输入要删除的人的电话号码:";      char pho[15];      cin.getline(pho,strlen(pho));   if(IsEmpty())    cout<<"没有记录系统为空!";   else   {         Item * pf=Head;     Item * pt=pf->next;     while(pf&&(pf->data).IsThisPho(pho))     {      (pf->data).print();      cout<<"确定要删除?Y/N..";      cin>>response;      cin.ignore(80,'\n');      if(response=='y'||response=='Y')      {       Head=Head->next;       pf=Head;      }      else      {       pf=pf->next;       pt=pf->next;      }     }               while(pt)     {
      if((pt->data).IsThisPho(pho))      {       (pt->data).print();          cout<<"确定要删除?Y/N..";          cin>>response;          cin.ignore(80,'\n');          if(response=='y'||response=='Y')       {          pf->next=pt->next;          pt=pf->next;       }          else       {          pf=pf->next;          pt=pf->next;       }      }     }   }   break; } } 
template void List::print(){ int cnt=0; if(Head==0) {  cout<<"empty\n"; } Item * pt=Head; while(pt) {  cout<<"No."<<++cnt<data).print();  pt=pt->next; } cout<<"\n\n"; }template void List::modefy(){ char response; cout<<"请选择修改方式..a.通过姓名b.通过电话号码.."; cin>>response; cin.ignore(80,'\n'); switch(response) { case 'a':      cout<<"请输入要修改的人的姓名:";      char nam[15];      cin.getline(nam,strlen(nam));   if(IsEmpty())    cout<<"没有记录系统为空!";   else   {    Item * pt=Head;    while(pt)    {
     if((pt->data).IsThisName(nam))     {      (pt->data).print();      cout<<"确定修改?Y/N..";      cin>>response;      cin.ignore(80,'\n');      if(response=='y'||response=='Y')      {       (pt->data).modefy();       pt=pt->next;      }      else       pt=pt->next;     }    }   }   break; case 'b':   cout<<"请输入要修改的人的电话号码:";      char pho[15];      cin.getline(pho,strlen(pho));   if(IsEmpty())    cout<<"没有记录系统为空!";   else   {    Item * pt=Head;    while(pt)    {        if((pt->data).IsThisPho(pho))     {      (pt->data).print();      cout<<"确定要修改?Y/N..";      cin>>response;      cin.ignore(80,'\n');      if(response=='y'||response=='Y')      {       (pt->data).modefy();       pt=pt->next;      }      else       pt=pt->next;     }    }   }   break; }} template void List::append(){ Item * pt=new Item; if(IsEmpty())  Head=End=pt; else {
    End->next=pt; End=pt; }}
template bool List::IsEmpty(){ return(Head==0);}
 

\\主程序
//用面向对象的程序设计方法设计一个通讯录管理程序。通讯录内容包括//姓名、家庭住址、出生日期、电话号码。采用链表来做(最好能采用前//面的通用链表类)。具有:创建、输出、排序(电话号码)、插入、删除、//查找等功能。通讯录的操作结果用文件进行保存。# include # include"iomanip.h"# include # include"List.h"//Menu definitionclass Menu{public: Menu(); void SetName(); void SetAdd(); void SetBir(); void SetPho(); int IsThisAdd(char Add[]); int IsThisPho(char Pho[]); int IsThisName(char nam[]); int IsThisBir(char Bir[]); void modefy(); void print();private: char name[10],address[20],birth[20],phone[20];};Menu::Menu(){    cin.ignore(80,'\n');    cout<<"请输入姓名:"; cin.getline(name,strlen(name)); cout<<"请输入家庭住址:"; cin.getline(address,strlen(address)); cout<<"请输入出生日期 :"; cin.getline(birth,strlen(birth)); cout<<"请输入电话号码:"; cin.getline(phone,strlen(phone));
}void Menu::print(){ cout<<"姓名:"<>response; switch(response) { case 'a':  SetName();  break; case 'b':  SetAdd();  break; case 'c':  SetBir();  break; case 'd':  SetPho();  break; default:  break; }}void Menu::SetName(){ char s[10];    cin.ignore(80,'\n');    cout<<"请输入新姓名 :"; cin.getline(s,strlen(s));    int len=strlen(s); for(int i=0;i<10;i++)  name[i]='\0'; for(i=0;i MenuNote;MenuNote menunote;void system(){
 cout<<"请选择你要的操作.. a.插入 b.删除 c.查询 d.浏览全部 e.修改..."; char response; cin>>response; switch(response) { case 'a':  menunote.append();  break; case 'b':  menunote.remove();  break; case 'c':  menunote.acquire();  break; case 'd':  menunote.print();  break; case 'e':  menunote.modefy();  break; default:  break; } cout<<"\n ........ 继续操作 ? Y/N?"; cin>>response; if(response=='y'||response=='Y')  system();}void main(){ cout<<".-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-\n"; cout<<"这里是通讯录!!开始操作?Y/N?"; char response; cin>>response;    if(response=='y'||response=='Y')  system();}
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师