c++课程设计总结报告 通讯录管理系统

C++(或C)语言课程设计总结报告

源代码:

#include <iostream>

#include <string>

#include <iomanip>

#include <fstream>

#include<conio.h>

#include <cstdlib>

using namespace std;

class book

{

public:

    book();

    char inter_face();

    void add_person();

    void del_person();

    void show_all();

    void alter();

    void select();

    void save_new();

private:

    string name;

    string address;

    string number;

    string post;

    string qq;

};

struct record

{

    book object;

    record *prior;

    record *next;

};

book::book()

{

    name = "\0";

    address = "\0";

    number = "\0";

    post = "\0";

    qq = "\0";

}

char book::inter_face()

{

    system("cls");

   

    cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★" <<endl

        <<"\t\t※                                                ※" <<endl

        <<"\t\t※             小 小 通 迅   录                   ※" <<endl

        <<"\t\t※                                                ※" <<endl

        <<"\t\t※      1. 添加新联系人.      4. 修改信息.        ※" <<endl

        <<"\t\t※                                                ※" <<endl

        <<"\t\t※      2. 删除联系人.        5. 查询联系人.      ※" <<endl

        <<"\t\t※                                                ※" <<endl

        <<"\t\t※      3. 显示所有联系人.    6. 关闭通迅录.      ※" <<endl

        <<"\t\t※                                                ※" <<endl

        <<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★" <<endl <<endl

        <<"\t\t\t选择 :" ;

   int choose;

    cin>>choose;

    fflush(stdin);

   return choose;

}

void book::add_person()

{

    cout <<"根据下面提示输入新联系人信息" <<endl<<"姓名 :" ;

       

    cin >>name;

    fflush(stdin);

    cout <<"电话 : ";

    cin >>number;

    fflush(stdin);

    cout <<"qq   : ";

    cin >>qq;

    fflush(stdin);

    cout <<"邮编 : ";

    cin >>post;

    fflush(stdin);

    cout <<"地址 : ";

    cin >>address;

    fflush(stdin);

    save_new();

    cout  <<"新联系人信息已经保存好!!!!!" <<endl;

    system("pause");

}

void book::del_person()

{

    ofstream outData("temp.txt", ios::out);

    ifstream inData("pbook.txt", ios::in);

    if (!outData || !inData)

   {

        cout<<"对不起!!!!找不到文件!!!!" <<endl;

        system("pause");

        return;

   }

    string sign;

    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 <<str1 <<endl;

          cout <<setiosflags(ios::left) <<setw(17) <<name<<" " <<number <<str <<endl;

          flag = false;

          break;

     }

     outData <<setiosflags(ios::left) <<setw(17) <<name<<" " <<number <<str <<endl;

   }

   if (flag)

   {

      cout  <<"对不起!!!联系人中没你找的人!!!!"  <<endl;

   }

   else

   {

       while (getline(inData, str))

      {

           outData <<str <<endl;

      }

    outData.close();

    inData.close();

    ofstream out("pbook.txt", ios::out);

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

   if (!out || !in)

   {

      cout  <<"对不起不能打开文件!!!"  <<endl;

      system("pause");

      return;

   }

   while (getline(in, str))

   {

       out <<str <<endl;

   }

    out.close();

    in.close();

    cout<<"这个人的信息已经从你的通迅录中删除!!!"  <<endl;

   }

    system("pause"); 

}

void book::show_all()

{

    ifstream inData("pbook.txt",ios::in);

    if (!inData)

   {

        cout  <<"对不起!!!!没有找到文件!!!!!" <<endl;

        system("pause");

        return;

   }

    bool flag = true;

    string recor;

    while (getline( inData,recor))

   {

       if (flag)

      {

           cout  <<"所有联系人信息如下: "<<endl;

      }

       cout <<recor <<endl;

       flag = false;

   }

   if (flag)

   {

       cout  <<"你的通迅录中没有联系人!!!!!"  <<endl;

   }

   else

   {

      cout  <<"所有联系人已经全部显示出来!!!!!"  <<endl;

   }

   system("pause");

}

void book::alter()

{

    

     ifstream inData("pbook.txt", ios::in);

     if ( !inData)

    {

         cout <<"对不起不能打开文件!!!!!" <<endl;

         system("pause");

         return;

    }

     string sign;

     cout  <<"请输入你想要修改的联系人的姓名或电话号码 :";

     cin >>sign;

     fflush(stdin);

     string str1;

     record *H = new record;

     record *p = H;

     record *q = H;

     bool flag = true;

     while (inData >>p->object.name >>p->object.number >>p->object.qq>>p->object.post >>p->object.address)

    {

      

         p->next = new record;

         p = p->next;

         p->prior = q;

         q->next = p;

         q = p;

    }

     p->next = NULL;

     inData.close();

     p =H;

     while (p)

    {

  

        if ((p->object.name==sign) || (p->object.number==sign))

       {

           if (flag)

          {

               cout  <<"你想修改你联系人的信息如下: " <<endl;

              

               cout <<setiosflags(ios::left) <<setw(17)<<p->object.name <<" " <<setw(16) <<p->object.number

               <<" " <<setw(15) <<p->object.qq<<" " <<setw(10) <<p->object.post <<" " <<setw(20) <<p->object.address <<endl;

               flag = false;

          }

             cout  <<"请根据下面提示修改信息 : " <<endl;

             cout <<"姓名 :" ;

             cin >>p->object.name;

             fflush(stdin);

             cout <<"电话号:";

             cin >>p->object.number;

             fflush(stdin);

             cout <<"qq   :";

             cin >>p->object.qq;

             fflush(stdin);

             cout <<"邮编 :";

             cin >>p->object.post;

             fflush(stdin);

             cout <<"地址 :";

             cin >>p->object.address;

             fflush(stdin);

            

           break;

         

   }

        p = p->next;

    }

     if (flag)

    {

         cout <<"你的通迅录中没有你找的联系人!!!!"  <<endl;

         system("pause");

         return;

    }

     else

    {

         ofstream out("pbook.txt",ios::out);

         if (!out)

        {

             cout <<"对不起!!!不能打开文件!!!!" <<endl;

             system("pause");

             return;

        }

      

         p = H;

         while (p)

        {

           out <<setiosflags(ios::left) <<setw(17) <<p->object.name<<" " <<setw(16) <<p->object.number

          <<" " <<setw(15) <<p->object.qq<<" " <<setw(10) <<p->object.post<<" " <<setw(20) <<p->object.address <<endl;

          p = p->next;

        }

           

            out.close();

      

        cout <<"信息已经修改完成!!!!"  <<endl;

        system("pause");

    }

}

    

void book::select()

{

      ifstream inData("pbook.txt",ios::in);

      if (!inData)

     {

         cout  <<"对不起!!!!文件找不到!!!!" <<endl;

         system("pause");

         return;

     }

      string sign;

      cout <<"输入你想查找的联系人的姓名或电话号码: "<<endl;

      cin >>sign;

      fflush(stdin);

      string str1;

      bool flag = true;

      string str;

      while (inData >>name >>number)

     {

          getline(inData, str);

          if ((name==sign) || (number==sign))

         {

              cout <<"你要查找的联系人是: "  <<endl;

              cout <<str1 <<endl;

              cout <<setiosflags(ios::left) <<setw(17) <<name <<number <<str <<endl;

            getch();

              flag = false;

              break;

         }

        

     }

        if (flag)

        {

            cout  <<"对不起!!!联系人中没你找的人!!!!"  <<endl;

            }

              getch();

        

        }

    

  

void book::save_new()

{

     ofstream outData("pbook.txt", ios::app);

     if (!outData)

    {

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

         system("pause");

         return;

    }

     outData << setiosflags(ios::left) << setw(17) << name<<" " << setw(16) << number <<" "

      << setw(15) << qq <<" "<< setw(10) << post <<" "<< setw(20) << address <<endl;

     outData.close();

}

int main()

{

     int choose;

     book abj;

     while (choose = abj.inter_face())

    {

        switch (choose)

       {

            case 1:

                     abj.add_person();

                     break;   

            case 2:

                     abj.del_person();

                     break;

            case 3:

                      abj.show_all();

                      break;

            case 4:

                        abj.alter();

                        break;

            case 5:

                        abj.select();

                        break;

            case 6:

                    cout  <<"谢谢使用!!!!!"  <<endl;

                    exit(0);

                    break;

            default:

                    break;

       }  

    }

   return 0;

}

相关推荐