您的位置:首页 > 其它

课程设计:通讯录

2014-06-23 15:11 155 查看
//*****************************************************

//                 通讯录管理系统                    

//*****************************************************

#include<iostream>

#include<string>

#include<iomanip>

#include<cstdlib>

#include<fstream>

using namespace std;

class book

{

public:
char start();//初始界面
void choose_function(char *p);//选择功能(function:功能)
char start_menu();//开始菜单
void add_linkman(char *p);//添加联系人(linkman:联系人)
void del_linkman(char *p);//删除联系人
void revamp(char *p);//修改联系人信息(revamp:修改)
void inquire(char *p);//查询联系人信息(inquire:查询)
void save_new(char *p);//保存新添加的联系人信息
void show_all_linkman(char *p);//显示所有联系人的信息
void return_menu();//返回开始菜单
void exit_system();//退出通讯录管理系统
book();

private:
string name;
string address;
string number;
string post;
string QQ;
bool exit_flag;//系统退出标志
bool del_flag;//删除标志

};

book::book()

{
name="\0";

    address="\0";
post="\0";
number="\0";
QQ="\0";
exit_flag=true;
del_flag=true;

}

//初始界面

char book::start()

{
system("cls");

cout<<endl;

    cout<<"\t\t\t★欢迎使用通讯录管理系统!★"<<endl;
cout<<endl;
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"\t\t~*                                        *~"<<endl;
cout<<"\t\t~*                 通讯录                *~"<<endl;
cout<<"\t\t~*                                        *~"<<endl;
cout<<"\t\t~*  ★1.通讯录 1★        ★2.通讯录 2★  *~"<<endl;
cout<<"\t\t~*  ~~~~~~~      ~~~~~~~ *~"<<endl; 
cout<<"\t\t~*  ★3.通讯录 3★        ★4.通讯录 4★  *~"<<endl;
cout<<"\t\t~* ~~~~~~~      ~~~~~~~  *~"<<endl;
cout<<"\t\t~*        ★5.关闭通讯录管理系统★        *~"<<endl;
cout<<"\t\t~* ~~~~~~~~~ ~~~~~~~~ *~"<<endl;
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<endl<<endl;
cout<<"\t\t\t~ 请进行选择:";

char choose1;
cin>>choose1;
fflush(stdin);

return choose1;

}

//选择功能

void book::choose_function(char *p)

{
char choose;

    while (choose = start_menu())

    {

        switch (choose)

        {

        case '1':

            add_linkman(p);//添加联系人

            break;

        case '2':
del_linkman(p);//删除联系人

            break;

        case '3':

            revamp(p);//修改信息

            break;

        case '4':

            inquire(p);//查询联系人

            break;
case '5':

            show_all_linkman(p);//显示所有联系人

            break;

        case '6':

            cout <<endl <<"\t\t\t谢谢使用通讯录管理系~" <<endl <<endl;

            exit_system();
system("pause");

            break;

        default:
{
cout<<endl;
cout<<"\t\t\t输入错误!请重新选择功能."<<endl;
system("pause");
break;
}
}
}

}

//开始菜单

char book::start_menu()

{
system("cls");
cout<<endl;

cout<<"\t\t\t欢迎使用通讯录管理系统~"<<endl;
cout<<endl;
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"\t\t~*                                        *~"<<endl;
cout<<"\t\t~*                通讯录               *~"<<endl;
cout<<"\t\t~*                                        *~"<<endl;
cout<<"\t\t~*    1.添加联系人        2.删除联系人    *~"<<endl;
cout<<"\t\t~*                                      *~"<<endl; 
cout<<"\t\t~*    3.修改联系人        4.查询联系人    *~"<<endl;
cout<<"\t\t~*                                       *~"<<endl;
cout<<"\t\t~*    5.显示所有信息      6.关闭通讯录    *~"<<endl;
cout<<"\t\t~*                                      *~"<<endl;
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<endl<<endl;
cout<<"\t\t\t~ 请进行选择:";

char choose;
cin>>choose;
fflush(stdin);

return choose;

}

//返回开始菜单

void book::return_menu()

{
char temp;
cout
4000
<<"是否返回开始菜单(Y/N)?"<<endl;
cin>>temp;
if(temp=='y' || temp=='Y')
{
start_menu();
}
else
{
exit_system();
}

}

//退出通讯录管理系统

void book::exit_system()

{
char temp;
cout<<endl;
cout<<"确定退出通讯录管理系统(Y/N)?"<<endl;
cin>>temp;
if(temp=='y' || temp=='Y')
{
exit(0);
}
else
{
exit_flag=false;
}

}

//添加联系人信息

void book::add_linkman(char *p)

{
system("cls");
cout<<endl;

cout<<"请输入联系人相关信息."<<endl;
cout<<"请输入联系人姓名:";
cin>>name;
fflush(stdin);
cout<<"请输入联系人地址:";
cin>>address;
fflush(stdin);
cout<<"请输入联系人电话:";
cin>>number;
fflush(stdin);
cout<<"请输入联系人短号:";
cin>>number;
fflush(stdin);
cout<<"请输入联系人QQ账号:";
cin>>QQ;
fflush(stdin);

cout<<endl;
cout<<"添加联系人信息完毕!请选择所要进行的操作:";
char temp;
cout<<endl;
cout<<"是否对所输入的信息进行保存(Y/N)?";
cin>>temp;
if(temp=='y' || temp=='Y')
{
save_new(p);
cout<<endl;
   cout<<"新联系人信息已经保存完毕!"<<endl;
}
else
{
cout<<endl;
cout<<"所添加信息没有保存!返回开始菜单!"<<endl;
return_menu();
}

system("pause");

}

//保存新添加的联系人信息

void book::save_new(char *p)

{
ofstream outdata(p,ios::app);
if(!outdata)
{
cout<<endl;
cout<<"对不起! 你所查找的文件不存在!"<<endl;
system("pause");
return;
}
outdata<<setiosflags(ios::left)<<setw(15)<<name<<" "
                          <<setw(14)<<number<<" "
  <<setw(18)<<address<<" "
  <<setw(16)<<QQ<<" "
  <<setw(12)<<post<<endl;

outdata.close();

}

//修改联系人信息

void book::revamp(char *p)

{
system("cls");
ofstream outdata("temp.txt",ios::out);
ifstream indata(p,ios::in);

if(!outdata || !indata)
{
cout<<endl;
cout<<"对不起! 你所查找的文件不存在! "<<endl;
system("pause");
return;
}

string sign;
cout<<endl;
cout<<"请输入你所要修改的联系人的姓名或是电话号码:";
cin>>sign;
string str1;
bool flag=true;
string str;

while (indata>>name>>number)
{
getline(indata,str);
if((sign==name) || (sign==number))
{
cout<<endl;
   cout<<"你所要修改的联系人为:"<<endl;
   cout<<str1<<endl;
   cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;

   cout<<endl;
   cout<<"请你根据以下提示信息修改联系人信息:"<<endl;

       cout<<"请输入联系人姓名:";
   cin>>name;
   fflush(stdin);
   cout<<"请输入联系人电话号码:";
   cin>>number;
   fflush(stdin);
   cout<<"请输入联系人地址:";
   cin>>address;
   fflush(stdin);
cout<<"请输入联系人QQ:";
   cin>>QQ;
   fflush(stdin);
   cout<<"请输入联系人短号:";
   cin>>number;
   fflush(stdin);

   char temp;
   cout<<"是否对所输入的信息进行保存(Y/N)?";
       cout<<endl;
cin>>temp;
       if(temp=='y' || temp=='Y')
{
save_new(p);
flag=false;
       cout<<endl;
           cout<<"联系人的新信息已经保存完毕!"<<endl;
char temp1;
cout<<"是否删除原联系人信息(Y/N)?"<<endl;
cin>>temp1;
if(temp1=='y' || temp1=='Y')
{
del_linkman(p);
}
else
{
return_menu();
}
        }
else
{
cout<<"所修改的联系人信息没有保存!返回开始菜单!"<<endl;
       return_menu();
        }

break;
}

outdata<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;
system("pause");
}

}

//删除联系人信息

void book::del_linkman(char *p)

{
system("cls");

ofstream outdata("temp.txt",ios::out);
ifstream indata(p,ios::in);

if (!outdata || !indata)
{
cout<<endl;
cout<<"对不起! 你所查找的文件不存在! "<<endl;
system("pause");
return;
}

string sign;
cout<<endl;
cout<<"请输入所要删除的人的姓名或是电话号码:";
cin>>sign;
string str1;

    bool del_flag=true;
string str;

while(indata>>name>>number)
{
getline(indata,str);

if((sign==name) || (sign==number))
{
cout<<endl;
cout<<"你所要删除的联系人:"<<endl;
cout<<str1<<endl;
cout<<setiosflags(ios::left)<<setw(15)<<name<<" "<<number<<str<<endl;
cout<<endl;
char temp;
cout<<"确定要删除此联系人信息(Y/N)?"<<endl;
cin>>temp;
if(temp=='y' || temp=='Y')
{
del_flag=false;
   break;
}
else
{
return_menu();
}
}

outdata<<setiosflags(ios::left)<<setw(15)<<name<<" "<<number<<str<<endl;
}

if(del_flag)
{
cout<<endl;
cout<<"对不起, 通讯录中没有你所要查找的联系人信息!"<<endl;
}
else
{
while(getline(indata, str))
{
outdata<<str<<endl;
}

outdata.close();
indata.close();

ofstream out(p,ios::out);
ifstream in("temp.txt",ios::in);

if(!out || !in)
{
cout<<endl;
cout<<"对不起!你不能打开此文件!"<<endl;
system("pause");
return;
}

while(getline(in,str))
{
out<<str<<endl;
}

out.close();
in.close();
cout<<endl;
cout<<"此联系人的信息已经从你的通讯录中删除!"<<endl;
}

system("pause");

}

//显示所有联系人的信息

void book::show_all_linkman(char *p)

{
system("cls");

ifstream indata(p,ios::in);

if(!indata)
{
cout<<endl;
cout<<"对不起,你所查找的文件不存在!"<<endl;
system("pause");
return;
}

    bool flag=true;
string record;

while (getline(indata,record))
{
if(flag)
{
cout<<endl;
cout<<"所有联系人的信息如下:"<<endl;
cout<<setiosflags(ios::left)<<setw(15)<<"姓名"<<" "
                               <<setw(16)<<"电话号码"<<" "
        <<setw(16)<<"地址"<<" "
       <<setw(16)<<"QQ账号"<<" "
       <<setw(15)<<"短号"<<" "<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
}
cout<<record<<endl;
cout<<endl;
flag=false;
}

if(flag)
{
cout<<endl;
cout<<"通讯录中没有任何联系人信息!"<<endl;
}
else
{
cout<<endl;
cout<<"所有联系人信息已经全部显示!"<<endl;
}

system("pause");

}

//查询联系人信息

void book::inquire(char *p)

{
system("cls");

ifstream indata(p,ios::in);

if(!indata)
{
cout<<endl;
cout<<"对不起! 你所查找的文件不存在!"<<endl;
system("pause");
return;
}

string sign;
cout<<endl;
cout<<"请输入你所要查找的联系人的姓名、电话号码、QQ或者地址:";
cin>>sign;
fflush(stdin);

string str1;
bool flag=true;

string str;
while(indata>>name>>number>>address>>QQ)
{
getline(indata,str);

if((name==sign) || (number==sign) || (address==sign) || (QQ==sign))
{
cout<<endl;
cout<<"你所要查找的联系人是:"<<endl;
cout<<str1<<endl;
cout<<setiosflags(ios::left)<<setw(12)<<"姓名"<<" "
                               <<setw(16)<<"电话号码"<<" "
        <<setw(16)<<"地址"<<" "
       
<<setw(16)<<"QQ账号"<<" "
       <<setw(15)<<"短号"<<" ";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<setiosflags(ios::left)<<setw(13)<<name
                               <<setw(16)<<number<<" "
       <<setw(16)<<address<<" "
       <<setw(8)<<QQ<<" "
       <<setw(12)<<number<<endl;
flag=false;
}
}

system("pause");

}

//主函数

int main()

{
char *p;

    char choose1;

    book abj;

while (choose1 = abj.start())
{
switch(choose1)
{
case '1':
p="mybook1.txt";
abj.choose_function(p);
   break;
   case '2':
   p="mybook2.txt";
abj.choose_function(p);
   break;
   case '3':
   p="mybook3.txt";
abj.choose_function(p);
   break;
   case '4':
   p="mybook4.txt";
abj.choose_function(p);
   case '5':
   cout <<endl <<"\t\t\t谢谢使用通讯录管理系统。" <<endl <<endl;

            abj.exit_system();

            break;
   default:
   {
   cout<<endl;
   cout<<"\t\t\t输入错误,请重新选择!"<<endl;
   system("pause");
   break;
   }
   }
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: