最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

哈希表实现电话号码查询系统

来源:动视网 责编:小OO 时间:2025-10-01 21:01:06
文档

哈希表实现电话号码查询系统

哈希表实现电话号码查询系统一目的利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。二需求分析1、程序的功能1)读取数据1读取原电话本存储的电话信息。2读取系统随机新建电话本存储的电话信息。2)
推荐度:
导读哈希表实现电话号码查询系统一目的利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。二需求分析1、程序的功能1)读取数据1读取原电话本存储的电话信息。2读取系统随机新建电话本存储的电话信息。2)
哈希表实现电话号码查询系统

一目的

利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。

二需求分析

1、程序的功能

1)读取数据

1读取原电话本存储的电话信息。

2读取系统随机新建电话本存储的电话信息。

2)查找信息

1根据电话号码查询用户信息。

2根据姓名查询用户信息。

3)存储信息

查询无记录的结果存入记录文档。

2、输出形式

1)数据文件“”存放原始电话号码数据。

2)数据文件“”存放有系统随机生成的电话号码文件。

3)数据文件“”存放未查找到的电话信息。

4)查找到相关信息时显示姓名、地址、电话号码。

3、初步测试计划

1)从数据文件“”中读入各项记录,或由系统随机产生各记录,并且把记录保存到“”中 。

2)分别采用伪随机探测再散列法和再哈希法解决冲突。

3)根据姓名查找时显示给定姓名用户的记录。

4)根据电话号码查找时显示给定电话号码的用户记录。

5)将没有查找的结果保存到结果文件中。

6)系统以菜单界面工作,运行界面友好,演示程序以用户和计算机的对话方式进行。

三概要设计

1、子函数功能

int Collision_Random(int key,int i) 

ame=name;ddress=address;

    intermediate_data[key].phone=phone;

    sign[key]='1';ame=name;

    intermediate_data[key].address=address;

    intermediate_data[key].phone=phone;

    sign[key]='1';

}

void Outfile(string name,int key)ame[0]));i++)

         cout<     for(i=0;i<8;i++)

         cout<<" ";

     cout<     for(i=0;i<8;i++)

         cout<<" ";

     cout<    }

}

void Rafile()ame!=name))

    {

        key=Collision_Random(key,i+1);

        j++;

        if(j=count)

            return -1;

    }

    return key;

}

int Search_by_phone(string phone)hone!=phone))

    {

        key=Collision_Rehash(key,phone);

        j++;

        if(j=count)

            return-1;

    }

    return key;

}

void main()

{

    count=0;

    sizeindex=50;

    int i,k;

    int ch;

    char *Fname;

    sign=new char[sizeindex];

    intermediate_data=new Data[sizeindex];

for(i=0;i        sign[i]='0';

    sign[i]='\\0';

for(i=0;i    {

        intermediate_data[i].name="";

        intermediate_data[i].phone="";

        intermediate_data[i].address="";

    }

cout<<"§**********************************************************§"<     cout<<"§* *§"<     cout<<"§* 请选择用于查找的数据来源 *§"<     cout<<"§* *§"<     cout<<"§* 1 . *§"<     cout<<"§* 2 . 随 机 生 成 *§"<     cout<<"§* 0 . 退 出 程 序 *§"< cout<<"§**********************************************************§"<     do

    {

     cout<<"\\n"<< " 请输入选择 : \\n";

     cin>>k;

        switch(k)

        {

            case 0:

                return;

            case 1:

                Fname="";

                break;

            case 2:

                Rafile();

                Fname="";

                break;

            default:

             cout<<"输入序号有误,请重新输入!!!\\n"<        }

    }

    while((k!=1)&&(k!=2)&&(k!=0));

     根 据 姓 名 查 找 *§"<         cout<<"§* 2 . 根 据 电 话 号 查 找 *§"<         cout<<"§* *§"< cout<<"§**********************************************************§"<        do

        {

         cout<<"\\n"<< " 请输入选择 : \\n";

            

         cin>>ch;

            if(ch!=1&&ch!=2)

            {

             cout<<" 输入序号有误,请重新输入!!!\\n"<            }

        }

        

        while((ch!=1)&&(ch!=2));

         输 入 姓 名 查 找 数 据 *§"<         cout<<"§* 2 . 显 示 哈 希 表 *§"<         cout<<"§* 0 . 退 出 程 序!!! *§"<         cout<<"§* *§"< cout<<"§**********************************************************§"<            

            

            do

            {

             cout<<"\\n"<< " 请输入选择 : \\n";

                

             cin>>choice;

              switch(choice)

              {

                case 1:

                {

                    int key1;

                    string name;

                 cout<<"\\n"<<" 请输入姓名: \\n";

                    

                 cin>>name;

                    key1=Search_by_name(name);

                    Outfile(name,key1);

cout<<"\\n"<<"查找结果:\\n"<                    Outhash(key1);

                }

                    break;

                case 2:

                {

cout<<"\\n"<<" 哈希表: \\n"<                 for(i=0;i                    {

                        if(sign[i]!='0')

                        {

                         cout<<"* ";

                            Outhash(i);

                        }

                    }

             cout<<"* *"<                            

                }

                    break;

                case 0:

                    return;

                default:

                     cout<<" 输入序号有误,请重新输入!!!\\n"<              }

            }

            while((choice!=1)&&(choice!=2)&&(choice!=0));

        }

            

        while(ch==2)

        {

            int choice;

            

     cout<<"§**********************************************************§"<     cout<<"§* *§"<     cout<<"§* 请 选 择 功 能 *§"<     cout<<"§* 1 . 输 入 电 话 查 找 数 据 *§"<     cout<<"§* 2 . 显 示 哈 希 表 *§"<     cout<<"§* 0 . 退 出 *§"<     cout<<"§* *§"< cout<<"§**********************************************************§"<            do

            {

         cout<<"\\n"<< " 请输入选择 : \\n";

                

         cin>>choice;

                 switch(choice)

                 {

                    case 1:

                        {

                            int key2;

                            string phone;

                            

                    do

                            {

                             cout<<"* 请输入11位的电话号码: ";

                     cin>>phone;

                                 if(strlen(&phone[0])!=11)

                                 {

                                 cout<<"\\n"<<"电话号码输入不正确!请重新输入!!!\\n"<                                 }

                            }

                            while(strlen(&phone[0])!=11);

                

                            key2=Search_by_phone(phone);

                    Outfile(phone,key2);

cout<<"\\n"<<"查找结果:\\n"<                     cout<<"* ";

                    Outhash(key2);

                        }

                          break;

                  case 2:

                      { 

cout<<"\\n"<<"哈希表:\\n"<                 for(i=0;i                          {

                              if(sign[i]!='0')

                              {

                             cout<<"* ";

                                  Outhash(i);

                              }

                          }

                     cout<<"* *"<                        

                      }

                    break;

                 case 0:

                    return;

                default:

                     cout<<" 输入序号有误,请重新输入!!!\\n"<              }

            }

            while((choice!=1)&&(choice!=2)&&(choice!=0));

        }

        

 }

文档

哈希表实现电话号码查询系统

哈希表实现电话号码查询系统一目的利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。二需求分析1、程序的功能1)读取数据1读取原电话本存储的电话信息。2读取系统随机新建电话本存储的电话信息。2)
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top