通讯录管理设计.docx

上传人:b****7 文档编号:10248215 上传时间:2023-02-09 格式:DOCX 页数:30 大小:20.36KB
下载 相关 举报
通讯录管理设计.docx_第1页
第1页 / 共30页
通讯录管理设计.docx_第2页
第2页 / 共30页
通讯录管理设计.docx_第3页
第3页 / 共30页
通讯录管理设计.docx_第4页
第4页 / 共30页
通讯录管理设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

通讯录管理设计.docx

《通讯录管理设计.docx》由会员分享,可在线阅读,更多相关《通讯录管理设计.docx(30页珍藏版)》请在冰豆网上搜索。

通讯录管理设计.docx

通讯录管理设计

 

 

 

通讯录管理系统

 

 

 

 

 

 

 

 

 

 

 

 

需求分析

  具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。

(1)             数据包括:

人名、工作单位、电话号码和E-MAIL地址。

(2)             可对记录中的姓名和电话号码进行修改。

(3)             可增加和删除记录。

(4)             可显示所有的保存记录。

(5)             可按人名或电话号码进行查询。

[提示]

  建议采用结构体数组和文件系统实现。

结构体成员包括人名、工作单位、电话号码和E-MAIL地址。

根据题目的要求程序应该采用结构体数组和文件系统实现。

应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。

 

 

详细设计

根据上面的分析,可以将程序系统的设计分为如下几个模块:

插入、显示、删除、查询、修改、保存和退出。

 

1、      主函数;

主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

                  

【程序】

intmain()   //主函数

{

      Manman[500],*pman=man;;

      charcontrol;

      intsize;

      printf("\t\t**********************************************\n");  //窗口初始化

   printf("\t\t**********欢迎使用通讯录管理系统!

***********\n");

   printf("\t\t*--------------------------------------------*\n");

   printf("\t\t*            请按回车键继续!

               *\n");

   printf("\t\t**********************************************\n");

   scanf("%c",&control);

      if(control)

      {

            size=Scan(pman);                              //判断文件是否存在

            printf("\t\t\t请输入相应操作数操作\n");

            for(;;)                                                      //菜单生成

            {

                  printf("\t\t**********************************************\n");

           printf("\t\t*              1--插入信息                 *\n");

           printf("\t\t*              2--按姓名查找               *\n");

           printf("\t\t*              3--按电话查找               *\n");

           printf("\t\t*              4--删除信息                 *\n");

           printf("\t\t*              5--显示信息                 *\n");

           printf("\t\t*              6--修改信息                 *\n");

           printf("\t\t*              0--退出系统                 *\n");

           printf("\t\t**********************************************\n");

                  scanf("%s",&control);

                  switch(control)

                  {

                        case'1':

   size=Insert(pman,size);break;    //插入新的通讯录

               case'2':

   S_asname(pman,size);break;       //按姓名查找

               case'3':

   S_astel(pman,size);break;        //按电话查找

               case'4':

   Delete(pman,size);break;         //删除信息

               case'5':

   Display(pman,size);break;        //显示所有信息

               case'6':

   Modify(pman,size);break;         //修改信息

               case'0':

   printf("**************谢谢使用!

再见!

**************\n");  //退出系统

                              return0;

                              default:

    printf("**********输入数字有误,请重新输入**********\n");break;

                  }

            }

      }

      return0;

}

2、       插入模块

  此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。

                      流程图

 

 

                                    

【程序】

intInsert(Man*pMan,intSize)   //插入模块

{

      inti,n;

      printf("\t\t***********请输入要插入数据的个数.************\n");

     printf("\t\t**********************************************\n");

      scanf("%d",&n);

      for(i=0;i

      {  printf("您将要录入第%d条记录(共有%d条)\n",i+1,n);

            printf("请输入姓名:

\n");

            scanf("%s",&pMan[Size+i].Name);

            printf("请输入工作单位:

\n");

            scanf("%s",&pMan[Size+i].Depart);

            printf("请输入电话号码:

\n");

         scanf("%s",&pMan[Size+i].TEL);

         printf("请输入Email地址:

\n");

         scanf("%s",&pMan[Size+i].Email);

      }

      if(Save(pMan,Size+n))

      {

            printf("\t\t***********  恭喜!

数据插入成功!

  ***********\n");

      }

      else

      {

            printf("\t\t*********** 操作失败,请稍后再试!

***********\n");

      }

      returnSize+n;

}

3、        显示模块

程序

 

voidDisplay(Man*pMan,intSize) //显示所有记录

{

      inti;

      printf("\t人名\t   工作单位\t  电话号码\t   E-mail地址\n");

      printf("\t************************************************************\n");

      for(i=0;i<=Size;i++,pMan++)//依次输出文件中的信息

      {

            printf("\t%s\t\t%s\t%s\t%s\n",pMan->Name,pMan->Depart,pMan->TEL,pMan->Email);

       printf("\t-----------------------------------------------------------\n");

      }

}

 

 

4、        查找模块

本模块分为按姓名查找和按电话查找两个子模块。

4.1按姓名查找模块

【程序】

voidS_asname(Man*pMan,intSize)    //查找信息

{

      inti=0;

      charname[8];

      printf("\t\t***********请输入要查询信息的姓名:

***********\n");

   printf("\t\t**********************************************\n");

      scanf("%s",name);

      while(iName,name))//查找

      {

            pMan++;

       i++;

      }

      if(!

strcmp(pMan->Name,name))//找到后输出

      {

            printf("\t\t***************查到的信息为:

 ***************\n");

         printf("\t*************************************************************\n");

       printf("\t人名\t   工作单位\t  电话号码\t    E-mail地址\n");

       printf("\t*************************************************************\n");

       printf("\t%s\t\t%s\t%s\t%s\n",pMan->Name,pMan->Depart,pMan->TEL,pMan->Email);

       printf("\t*************************************************************\n");

      }

      else

      {

            printf("\t\t***********抱歉,没有找到相关数据 ************\n");

       printf("\t\t**********************************************\n");

      }

}

4.2按电话查找模块,此模块与按姓名查找模块相似,流程图略。

程序

 

voidS_astel(Man*pMan,intSize)            //按电话查找模块

{

      inti=0;

      chartel[12];

      printf("\t\t***********请输入要查询信息的电话:

************\n");

   printf("\t\t**********************************************\n");

      scanf("%s",tel);

      while(iTEL,tel))         //查找信息

      {

            pMan++;

       i++;

      }

      if(!

strcmp(pMan->TEL,tel))                        //输出找到的信息

      {

            printf("\t\t****************查到的信息为:

****************\n");

       printf("\t*******************************************************\n");

       printf("\t人名\t   工作单位\t  电话号码\t    E-mail地址\n");

       printf("\t*******************************************************\n");

       printf("\t%s\t\t%s\t%s\t%s\n",pMan->Name,pMan->Depart,pMan->TEL,pMan->Email);

       printf("\t*******************************************************\n");

      }

      else

      {

            printf("\t\t************抱歉,没有找到相关数据************\n");

         printf("\t\t**********************************************\n");

      }

}

5、       删除模块

此模块先利用查找模块找到所要删除的信息,然后根据用户的选择来确定是否删除信息,此种调用到Save函数。

其流程图如下:

程序

voidDelete(Man*pMan,intSize)//删除信息

{

      charname[8],control;

      inti=0;

      printf("\t\t***********请输入要删除信息的姓名:

***********\n");

      printf("\t\t**********************************************\n");

      scanf("%s",name);

      while(iName,name))//同查找,找到后跳出

      {

            pMan++;

       i++;

      }

      if(!

strcmp(pMan->Name,name))//找到了,删除信息!

做出判断.

      {

            printf("您要删除的信息为:

\n");

         printf("%s\t\t%s\t%s\t%s\n",pMan->Name,pMan->Depart,pMan->TEL,pMan->Email);

         printf("是否确认删除?

(Y/N)\n");

         scanf("%s",&control);

            switch(control)

            {

             case'y':

             pMan->Name[0]='\0';

             pMan->Depart[0]='\0';

             pMan->TEL[0]='\0';

             pMan->Email[0]='\0';

             if(Save(pMan,Size))//将新信息写入文件

                  {

                        printf("\t\t**************恭喜!

信息删除成功!

**************\n");;

                          printf("\t\t**********************************************\n");break;

                  }

                 else

                        {

                              printf("\t\t************操作失败,请稍后再试!

*************\n");

                              printf("\t\t**********************************************\n");break;

                        }

                        case'n':

printf("信息未删除!

\n");break;

                        default:

printf("选择有误!

\n");break;

            }

      }

      else

      {

            printf("\t\t*********抱歉,没有找到相关信息!

*********\n");

            printf("\t\t******************************************\n");

      }

}

6、        修改模块

此模块先调用查找函数查找到所要修改的信息,然后用户根据需要来修改信息。

流程图如下:

程序

voidModify(Man*pMan,intSize)  //修改模块

{

      voidDisplay();

      inti=0;

      charname[8];

   chardepart[20];

   chartel[12];

   charemail[30];

      printf("\t\t************输入要修改信息的姓名:

************\n");

      printf("\t\t**********************************************\n");

      scanf("%s",name);

      while(iName,name))//遍历数组,查找数据,若查到跳出循环

      {

            pMan++;

            i++;

      }

      if(!

strcmp(pMan->Name,name))//如果找到,则开始修改

      {

            printf("请输入修改后的姓名:

\n");

            scanf("%s",name);

       strcpy(pMan->Name,name);

       printf("请输入修改后的工作单位:

\n");

       scanf("%s",depart);

       strcpy(pMan->Depart,depart);

       printf("请输入修改后的电话号码:

\n");

       scanf("%s",tel);

       strcpy(pMan->TEL,tel);

       printf("请输入修改后的E-mail地址:

\n");

       scanf("%s",email);

            strcpy(pMan->Email,email);

            if(Save(pMan,Size))  //将修改信息写入文件,并判断是否写入成功

            {

                  printf("\t\t**************恭喜!

信息修改成功!

**************\n");;

               printf("\t\t**********************************************\n");

            }

            else

            {

                  printf("\t\t*************操作失败,请稍后再试!

*************\n");

               printf("\t\t**********************************************\n");

            }

      }

      else

      {

            printf("\t\t************抱歉,没有找到相关信息!

************\n");

         printf("\t\t***********************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1