21xrx.com
2024-06-03 01:45:25 Monday
登录
文章检索 我的文章 写文章
C++编写通讯录程序
2023-07-07 01:03:18 深夜i     --     --
C++ 编写 通讯录程序 对象 数据结构

通讯录程序是一类非常常见的软件工具,可以用来记录联系人信息、联系方式等,对于个人和企业而言都是非常重要的工具。而C++是一种高效、灵活、易于学习的编程语言,在开发这样的工具时非常适用。

通讯录程序的基本功能是添加、删除、修改、查询联系人信息。我们可以使用C++的面向对象特性,将联系人信息封装在一个类中,通过类的对象来操作联系人信息。下面是一个基本的通讯录程序的实现:


#include<iostream>

#include<fstream>

#include<cstring>

using namespace std;

class Contact{

private:

  char name[100];

  char phone[20];

  char email[50];

public:

  Contact(){}

  Contact(char* nm,char* ph,char* em){

    strcpy(name, nm);

    strcpy(phone, ph);

    strcpy(email, em);

  }

  void setName(char* nm){strcpy(name, nm);}

  void setPhone(char* ph){strcpy(phone, ph);}

  void setEmail(char* em){strcpy(email, em);}

  char* getName(){return name;}

  char* getPhone(){return phone;}

  char* getEmail(){return email;}

};

int main(){

  int choice=0;

  Contact cont;

  char name[100],phone[20],email[50];

  fstream file("contact.txt",ios::in | ios::out | ios::app);

  while(choice!=5){

    cout<<"######### 通讯录程序 #########"<<endl;

    cout<<"请选择你要进行的操作:"<<endl;

    cout<<"1.添加新联系人"<<endl;

    cout<<"2.查询联系人信息"<<endl;

    cout<<"3.修改联系人信息"<<endl;

    cout<<"4.删除联系人"<<endl;

    cout<<"5.退出程序"<<endl;

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

    cin>>choice;

    switch(choice){

      case 1:

        cin.ignore();

        cout<<"请输入联系人姓名:";

        cin.getline(name,100);

        cout<<"请输入联系人电话:";

        cin.getline(phone,20);

        cout<<"请输入联系人邮箱:";

        cin.getline(email,50);

        cont = Contact(name,phone,email);

        file<<cont.getName()<<" "<<cont.getPhone()<<" "<<cont.getEmail()<<endl;

        break;

      case 2:

        cin.ignore();

        cout<<"请输入联系人姓名:";

        cin.getline(name,100);

        while(file>>cont.getName()>>cont.getPhone()>>cont.getEmail()){

          if(strcmp(name,cont.getName())==0){

            cout<<"联系人电话:"<<cont.getPhone()<<endl;

            cout<<"联系人邮箱:"<<cont.getEmail()<<endl;

            break;

          }

        }

        break;

      case 3:

        cin.ignore();

        cout<<"请输入联系人姓名:";

        cin.getline(name,100);

        while(file>>cont.getName()>>cont.getPhone()>>cont.getEmail()){

          if(strcmp(name,cont.getName())==0){

            cout<<"请输入新的联系人电话:";

            cin.getline(phone,20);

            cout<<"请输入新的联系人邮箱:";

            cin.getline(email,50);

            cont.setPhone(phone);

            cont.setEmail(email);

            file.seekp(-1*(strlen(cont.getName())+strlen(cont.getPhone())+strlen(cont.getEmail())),ios::cur);

            file<<cont.getName()<<" "<<cont.getPhone()<<" "<<cont.getEmail()<<endl;

            break;

          }

        }

        break;

      case 4:

        cin.ignore();

        cout<<"请输入联系人姓名:";

        cin.getline(name,100);

        while(file>>cont.getName()>>cont.getPhone()>>cont.getEmail()){

          if(strcmp(name,cont.getName())==0){

            file.seekp(-1*(strlen(cont.getName())+strlen(cont.getPhone())+strlen(cont.getEmail())),ios::cur);

            file<<"";

            break;

          }

        }

        break;

      case 5:

        break;

      default:

        cout<<"错误的选择,请重新输入!"<<endl;

    }

  }

  file.close();

  cout<<"程序已经退出,欢迎下次再来!"<<endl;

  return 0;

}

在这个程序中,我们定义了一个Contact类,将联系人信息封装在类中。我们可以使用类的公共函数来操作联系人信息,例如setName()、setPhone()、setEmail()、getName()、getPhone()和getEmail()。这些函数使我们可以轻松地添加、修改和查询联系人信息。

程序将联系人信息保存在一个文本文件中(contact.txt),这个文件是在程序开始时打开的。添加、查询、修改和删除联系人信息都将影响这个文件。

在程序中,我们使用了一个主循环,通过选择菜单项来执行不同的操作。在每个菜单项中,我们可以通过cin来获取用户的输入,并根据输入选择要执行的操作。添加联系人时,我们使用cin.getline()来获取字符串输入,并将联系人信息写入文件中。查询联系人时,我们使用了文件流的重载运算符,将文件中的相应联系人信息读取出来并输出到控制台。修改联系人和删除联系人的操作都与查询联系人类似,区别仅在于对联系人信息的修改或删除。

总的来说,编写通讯录程序可以使我们更好地应对现实生活中遇到的问题,而使用C++作为编写工具,可以使我们更加高效和快速地实现这一目标。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复