| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:各位大佬,求一段代码,课程设计用c++实现通讯录的设计。
取消只看楼主 加入收藏
航崽爱吃汤圆
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-3-20
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
各位大佬,求一段代码,课程设计用c++实现通讯录的设计。
自己写了很多,但是运行出来总有bug,跪求一段源代码借鉴,万分感谢。(要求:1.实现通讯录的添加,删除。2.按不同的项进行查找。3.对已存在的通讯录按不同的项排序。4.将通讯录写入文件。5.从文件读入通讯录。数据包含:姓名,地址,电话,邮编,email。)
搜索更多相关主题的帖子: 通讯录 代码 c++ 课程 设计 
2022-06-12 23:30
航崽爱吃汤圆
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-3-20
收藏
得分:0 
回复 2楼 apull
程序代码:
#include<iostream>
#include<string>
#define max 1000
using namespace std;
//设计联系人的结构体
struct person{
    string m_Name;
    string m_Sex;
    int m_Age;
    string m_Phone;
    string m_Addr;
};
//设计通讯录的结构体
struct Addressbooks
{
    //通讯录中保存的联系人数组
    person personarry[max];
    //通讯录中当前记录联系人个数
    int m_Size; 

 };

 void addperson(Addressbooks*abs)

 {
     if(abs->m_Size==max)
     {
         cout<<"通讯录已满,无法添加!"<<end|; 
     }
     else{
         //添加具体的联系人
        //添加姓名
        string name;
        cout<<"请输入姓名:"<<end;
        cin>>name;
        abs->personarry[abs->m_Size].m_Name=name;
        cout<<"您添加的用户姓名为:" <<abs->personarry[abs->m_Size].m_Name<<end|;
        cout<<"添加成功!"<<end|;
        while(true){
            //添加年龄
            int age;
            cout<<"请输入年龄:"<<end|;
            cin>>age;
            if(age>=0&&age<=110){
                abs->personarry[abs->m_Size].m_Age=age;
                cout<<"您添加的用户年龄为:"<<abs->personarry[abs->m_Size].m_Age<<end|;
                cout<<"添加成功!"<<end|;
                break;
            }
            else{
                cout<<"您输入的年龄超出范围,请重新输入!"<<end|;
            }
            } 
            while(true){
                //添加性别
                int sex;
                cout<<"请输入性别(1:男-2:女)" <<end|;
                cin>>sex;
                if(sex==1){
                    abs->personarry[abs->m_Size].m_Sex="";
                    break;
                }
                else if(sex==0){
                    abs->personarry[abs->m_Size].m_Sex="";
                    cout<<"您添加的用户性别为:"<<abs->personarry[abs->m_Size].m_Sex<<end|;
                    cout<<"添加成功"<<end|;
                    break;
                }
                else{
                    cout<<"您输入的信息有误,请重新输入"<<end|;
                    
                }
            }
            //添加电话;
            cout<<"请输入电话号码:"<<end|;
            string number;
            cin >> number; 
            abs->personarry[abs->m_Size].m_Phone=number;
            cout<<"您添加的用户号码为:"<<abs->personarry[abs->m_Size].m_Phone<<end|;
            string addr;
            cout<<"请输入用户地址:"<<end|;
            cin>>addr;
            abs->personarry[abs->m_Size].m_Addr=addr;
            cout<<"您添加的用户地址为:"<<abs->personarry[abs->m_Size].m_Addr<<end|;
            cout<<abs->m_Size+1<<"号联系人添加成功!"<<end|;
            abs->m_Size++;
            system("pause");
            system("cls");
             
        }
     }
     void showperson(Addressbooks*abs){
         //判断通讯录中人数是否为0,如果为0提示记录为空
         //如果不为0,显示记录的联系人信息
         if(abs->m_Size==0)
         {
             cout<<"当前记录为空"<<end|;
             
          } 
          else{
              for(int i=0;i<abs->m_Size;i++)
              {
                  cout<<"姓名:"<<abs->personarry[i].m_Name<<"\t";
                  cout<<"性别:"<<abs->personarry[i].m_Sex<<"\t";
                  cout<<"年龄:"<<abs->personarry[i].m_Age<<"\t";
                  cout<<"电话:"<<abs->personarry[i].m_Phone<<"\t"; 
                  cout<<"住址:"<<abs->personarry[i].m_Addr<<end|;
              }
          }
          system("pause");
          system("cls");
     }
     //检查联系人是否存在,如果存在,返回联系人的数组具体位置,不存在返回-1
     int isexist(Addressbooks*abs,string name){
         for(int i=0;i<abs->m_Size;i++)
         {
             if(abs->personarry[i].m_Name==name){
                 return i;//找到了,返回这个人在数组中的下标编号 
             }
             else{
                 return -1;
             }
         }
     } 
     void deleteperson(Addressbooks*abs){
         cout<<"请输入你需要删除的联系人:"<<end|;
         string name;
         cin>>name;
         int ret=isexist(abs,name);
         if(ret!=-1){
             //查找到进行删除的联系人
             for(int i=ret;i<abs->m_Size;i++){
                 //数据前移
                 abs->personarry[i]=abs->personarry[i+1]; 
             } 
             abs->m_Size--;
             cout<<"删除成功"<<end|;
         }
         else{
             cout<<"查无此人"<<end|;
             
         }
         system("pause");
         system("cls");
     }
     //4.查找指定的联系人
     void findperson(Assressbooks*abs){
     cout<<"请输入您要查找的联系人:"<<end|;
     string name;
     cin>>name;
     int ret=isexist(abs,name);
     if(ret!=-1) {
         cout<<"姓名:"<<abs->personarry[ret].m_Name<<"\t"
         <<"性别:"<<abs->personarry[ret].m_Sex<<"\t"
         <<"年龄:"<<abs->personarry[ret].m_Age<<"\t"
         <<"电话:"<<abs->personarry[ret].m_Phone<<"\t"
         <<"住址:"<<abs->personarry[ret].m_Addr<<"\t"<<end;
          
     }
     else{
         
         
         
     } 
     system("pause");
     system("cls");
     

 }

 void modifyperson(Addressbooks*abs)

 {
     cout<<"请输入您要修改的联系人姓名:"<<end|;
     string name;
     cin>>name;
     int ret=isexist(abs,name);
     if(ret!=-1){
         string name;
         cout<<"请输入修改后的姓名:"<<end|;
         cin>>name;
         abs->personarry[ret].m_Name=name;
         while(true){
             int sex;
             cout<<"请输入修改后的性别:"<<end;
             cin>>sex;
             if(seex==1)
             {
                 abs->personarry[ret].m_Sex="";
                 break;
                 
             }
             else if(sex==0){
                 abs->personarry[ret].m_Sex="";
                 break;
             }
             else{
                 cout<<"您输入的信息有误,请重新输入:"<<end|;
             }
         }
         cout<<"请输入修改后的电话号码:"<<end|;
         int number;
         cin>>number;
         abs->personarry[ret].m_Phone=number;
         cout<<"请输入修改后的联系人地址:"<<end|;
         string adress;
         cin>>adress;
         abs->personarry[ret].m_Addr=adress;
         cout<<"修改成功"<<end|; 
     }
     else{
         cout<<"查无此人"<<end|;
     }
     system("pause");
     system("cls");

 }

 void clearperson(Addressbooks*abs){
     char goal;
     cout<<"是否需要清除所有联系人"<<end|;
     cin>>goal;
     while(true){
         if(goal=='y'){
             abs->m_Size=0;
             cout<<"删除成功,已清除所有联系人!"
             <<end|;
             break;
         }
         else if(goal=='n'){
             cout<<"取消删除1"<<end|;
             break;
         }
         else{
             cout<<"您的输入有误,请重新输入"<<end|;
             
         }
     } 
     system("pause");
     system("cls");

 }

 //菜单界面
 void showmenu()

 {
     cout<<"***************************"<<end|;
     cout<<"***1.添加联系人************"<<end|;
    cout<<"***2.显示所有联系人********"<<end|;
    cout<<"***3.删除联系人************"<<end|;
    cout<<"***4.查找联系人************"<<end|;
    cout<<"***5.修改联系人************"<<end|;
    cout<<"***6.清空联系人************"<<end|;
    cout<<"***0.退出通讯录************"<<end|;
    cout<<"***************************"<<end|; 
  } 
  int main()
  {
      //创建通讯录结构体变量
      Addressbooks abs;
      abs.m _Size=0;
      int select=0;
      while(true){
          showmenu();
          cin>>select;
          switch(select)
          {
              case 1://添加联系人
              addperson(&abs);//利用地址传递可以修饰实参
              break;
              case 2;
              showperson(&abs);
              break;
              case 3;
              deleteperson(&abs);
              break;
              case 5;
              modifyperson(&abs);
              break;
              case 6;
              clearperson(&abs);
              break;
              case 0;
              cout<<"是否退出系统:"<<end|;
              char goal;
              cin>>goal;
              if(goal=='y'){
                  cout<<"欢迎下次使用"<<end|;
                  system("pause");
                  return 0;
                  break;
              }
              default:
                  cout<<"您输入有误,请重新输入!"<<end|;
                  break;
          }
      }
      showmenu();
      system("pause");
      return 0;
  }

 

 
2022-06-13 20:25
航崽爱吃汤圆
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-3-20
收藏
得分:0 
回复 4楼 apull
噢噢噢,没注意没注意,那个,再帮忙看看呗。。谢谢谢
2022-06-13 21:20
快速回复:各位大佬,求一段代码,课程设计用c++实现通讯录的设计。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033152 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved