文档库 最新最全的文档下载
当前位置:文档库 › 设计散列表实现通讯录查找系统

设计散列表实现通讯录查找系统

设计散列表实现通讯录查找系统
设计散列表实现通讯录查找系统

长春理工大学

学生实习报告

2010 —2011 学年第一学期

实习类别:课程设计

学院:软件学院

专业:软件开发与测试

班级:

姓名:

建通讯录

【问题描述】

设计散列表实现通讯录查找系统。

【基本要求】

(1) 设每个记录有下列数据项:电话号码、用户名、地址;

(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;

(3) 采用二次探测再散列法解决冲突;

(4) 查找并显示给定电话号码的记录;

(5) 通讯录信息文件保存;

(6) 要求人机界面友好,使用图形化界面;

【实现提示】

主函数:根据选单的选项调用各函数,并完成相应的功能。

Menu()的功能:显示英文提示选单。

Quit()的功能:退出选单。

Create()的功能:创建新的通讯录。

Append()的功能:在通讯录的末尾写入新的信息。

Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息。

Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息。Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息。

List()的功能:显示通讯录中的所有记录。

Save()的功能:保存通讯录中的所有记录到指定文件中。

Load()的功能:从指定文件中读取通讯录中的记录。

(一).需求分析:

(1) 设每个记录有下列数据项:电话号码、用户名、地址;

(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表

(3) 采用二次探测再散列法解决冲突

(4) 查找并显示给定电话号码的记录

(5) 通讯录信息文件保存

(6) 要求人机界面友好,使用图形化界面

(二)概要设计:(流程图)

总流程图:

1.Append()的功能:在通讯录的末尾写入新的信息,并返回选单.

2.Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息.

3.Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息.

4.Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息.

5.Menu()的功能:显示英文提示选单。

6.Quit()的功能:退出选单。

7.Create()的功能:创建新的通讯录。

8.List()的功能:显示通讯录中的所有记录。

9.Save()的功能:保存通讯录中的所有记录到指定文件中。

10.Load()的功能:从指定文件中读取通讯录中的记录。

(三)详细设计(重要函数、存储结构、类型定义):

//--------通讯录数据类型定义-------------------

typedefstruct Information

{

char Name[20];

char PhoneNO[12]; //以电话号码为关键字建立散列表

char Address[30];

}Inform;

//--------电话本结构设计----------------

typedefstruct Record

{

Inform *base;

intnum; //记录记录的个数

}Record;

//---------哈希表结构定义-------------------

typedefstruct Hash

{

char key[12];

int address;

}Hash;

Record record; //将记录设置为全局变量

Hash *f; //将哈希表设置为全局变量

//-----------二次探测再散列数组定义---

int research[MOD/2];

//-----------二次探测数组初始化-------

void ArrayIni() //±12,±22,±32,±42……±(MOD/2)2.

{

inti,j;

for (i=0,j=-1;i

{

research[i]=(i+1)*(i+1);

if(i+1

research[i+1]=j*(i+1)*(i+1);

}

}

//---------------菜单数据定义---------------------

typedefenum{Create,Append,Find,Alter,Delete,List,Save,Load,Quit}DO;

四)调试分析:

1,遇到的问题:

问题1: 将电话号作为关键字在哈希表中存储时,需要将字符串转换为整形,而直接将11位字符串转换为整形将超出int型的最大范围,故不可直接将字符串直接转换为int,要先截取一定长度的字符串,然后转换为整形,再用:Hi=(H(key)%MOD)m 换算在该记录哈希表中的位置。

key=change(phoneNum);

addr=key%MOD;

while((EQ(f[addr].key,phoneNum)!=1)&&i

{

addr=(key+research[i++])%MOD;

}

问题2: 电话号的前几位一般是相同的,故用于转换为关键字的串需要是电话号的后几位,而现有的strncpy()功能是截取字符串的前几位,故需要自己定义一个转换函数.为此可以先将字符串反转,去前几位,然后将取得的字符串再反转,即得到原来电话号的后几位字符串。

//----------电话号码到关键字的转换---------------

intchange(char phoneNum[])

{

charstr[4];

int key;

strrev(phoneNum);

strncpy(str,phoneNum,3);

str[3]='\0';

strrev(str);

key=atoi(str);

return key;

}

问题3: 图形界面的实现.

因知识水平的限制,MFC中的图形界面用的不熟练,故选择擅长的c来做此通讯录,但c中找不到实用的图形界面头文件.所以就需要自己绘制图形界面。

cout<<" !*********迷你电话本************!"<

cout<<" |------------------( ^* _ *^ )----------------------|"<

cout<<" |**【新建电话】请输入: 0 ***|"<

cout<<" |**【添加记录】请输入: 1 ***|"<

cout<<" |**【查找记录】请输入: 2 ***|"<

cout<<" |**【修改记录】请输入: 3 ***|"<

cout<<" |**【删除记录】请输入: 4 ***|"<

cout<<" |**【浏览记录】请输入: 5 ***|"<

cout<<" |**【保存电话本】请输入: 6 ***|"<

cout<<" |**【打开电话本】请输入: 7 ***|"<

cout<<" |**【退出】请输入: 8 ***|"<

cout<<" !---------------------------------------------------!"<

cout<<" 使用说明:其他操作之前请先新建电话本"<

cout<<" --------请选择操作的序列号!----------------"<

2.课程设计过程的收获

通过课程设计让我学习到一个程序正确运行需要各个子程序正确结合,以及严密的语法结构,还要有清晰的流程图。

3.在课程设计过程中对《数据结构》课程的认识

数据结构锻炼的是我们的逻辑思维能力,能增加我们编程过程中的思维的严密性与可行性。数据结构考察的是程序的时间复杂度,与空间复杂度。它们直接反映了算法的优劣程度。故在将算法实现为程序的时候就需要注意实现语言,循环结构的选择,以及变量的类型等。

通讯录管理系统的设计与实现

课程设计报告 通讯录管理系的设计与实现 姓名:钟婷英 班级:计122 学号:1213023039 时间:2014年1月10日 1,问题描述 通讯录是用来记载和查询联系人通讯信息的工具,电子通讯录已经为手机,电子词典等设备中不可缺少的工具软件,请设计一个能够满足这种需求的软件,基本功能模块如下图所示。 输入:记录的录入。 显示:通讯录的显示。 查找:按指定方式,输入关键字,查找指定记录。 插入:实现记录的添加或在指定位置插入记录。 保存:将内存中正在被操作的通讯录以文件形式保存到磁盘。 读入:保存的逆操作,讲存在磁盘中的通讯录文件读到内存中。 排序:按指定关键字对通讯录数据进行排序。 修改:提供修改某条记录的功能。 移动:移动记录在通讯录中的存储位子,使其被查找或显示时的位序前移或后移。 退出:结束程序运行。 2,设计要求 (1)设计通讯录数据的逻辑结构和物理结构。 (2)通讯录至少包括下列数据信息:姓名,电话,单位等。 (3)完成图示基本功能。 (4)软件易用,操作简单。 (5)根据自己使用通讯录体会扩充其他功能,如按姓名查找,按号码查找,按序号删除等。 (6)设计足够多的测试用例 主程序 输 入 显示 查找 插入 删除 保存 读入 排序 修改 移动 退出

(7)数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。(8)提供分组管理的相关功能,如:分组显示,加入组,组创建,组查询等。(9)可视化的界面设计。 3,概要设计 1,使用struct data struct addressList定义结构体类型,struct data结构体中包括年月日的定义,strcut addressList中包括联系人ID账号,名字,性别,名族,生日,手机号码,QQ号码和家庭地址等。 struct date { int year; int month; int day; }; struct addressList { char ID[10]; char name[10]; char gender[4]; char minzu[2]; date birthday; char shoujihao[14]; char QQ[11]; char address[40]; }; 2,程序设计过程中用到的函数有: int zhujiemian( ); void tianjia(fstream & ); void xiugai(fstream & ); void shanchu(fstream & ); void chazhao(fstream & ); void liulan(fstream & ); int findRecord(fstream &, const char *); int getAmount(fstream & ); 3,整个程序用的是面向对象的方法,在主函数中调用各种函数,来实现通讯录的功能。在主函数中,使用的是c++语言中的开关语句(switch)用来选择通讯录的各种功能。

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现 问题描述: 纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其它一些需要使用的通讯录的人员进行管理和应用的一种应用程序。 需求分析: 1)输入数据建立通讯录。 2)查询通讯录中满足要求的信息。 3)插入新的通讯录信息。 4)删除不需要的通讯录信息。 5)查看所有的通讯录信息。 主界面设计要求: 1)通讯录的建立 2)插入通讯录记录 3)查询通讯录记录 4)删除通讯录记录 5)显示通讯录记录 6)退出系统 设计要求: A.建立通讯录时,每个学生的信息包括:学号,姓名,电话。

B.查找时,学号、姓名、电话均能够作为查询字段。 C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。 D.存储结构:要求使用顺序存储结构。 E.数据使用:使用本班级的具体信息。 需求分析: 本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都能够根据这四个基本信息检索到一个学生并删除其数据。输入形式:student.txt,以文件形式进行输入。 输出形式:根据不同的输入进行不同的操作。 达到功能:能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。 测试数据:班上70个同学的基本数据。 概要设计: 数据类型:顺序链表 ArrayList类 学生数据结构:StuData类包含name、id、phone、email四个String基本类型。 所有操作写在Structure中,包含insert、remove、query、printAll。 Main函数用Java标准输入,循环输入,用switch判断输入进行

设计散列表实现通讯录查找系统

设计散列表实现通讯录查找系统 #include #include #include #include #define MAXSIZE 20 //电话薄记录数量 #define MAX_SIZE 20 //人名的最大长度 #define HASHSIZE 53 //定义表长 #define SUCCESS 1 #define UNSUCCESS -1 #define LEN sizeof(HashTable) typedef int Status; typedef char NA[MAX_SIZE]; typedef struct{//记录 NA name; NA tel; NA add; }Record; typedef struct{//哈希表 Record *elem[HASHSIZE]; //数据元素存储基址 int count; //当前数据元素个数 int size; //当前容量 }HashTable; Status eq(NA x,NA y){//关键字比较,相等返回SUCCESS;否则返回UNSUCCESS if(strcmp(x,y)==0) return SUCCESS; else return UNSUCCESS; } Status NUM_BER; //记录的个数 void getin(Record* a){//键盘输入各人的信息 printf("输入要添加的个数:\n"); scanf("%d",&NUM_BER);

for(i=0;i

通讯录系统设计说明书

通讯录系统设计说明书(不少于2500字) 一、设计思想 通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系 统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应 该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。 作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理 所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 开发这一系统的好处大约有以下几点: 第一、可以存储大量的通讯录信息,安全、高效; 第二、只需一档案录入员即可操作系统,节省人力; 第三、可以迅速查到所需通讯录信息。 二、系统架构及运行环境 系统架构: 运行环境: 1、操作系统:Microsoft Windows Server 2008,Windows XP,Windows 7,Windows 8,Windows 10 2、技术平台:.Net Framework 3.5 三、系统数据库介绍 用户:用户名,密码 联系人:联系电话,姓名,工作单位,电子邮件,头像 用户登录

联系人 数据库表结构:登录表

联系人表 四、系统功能模块介绍 本系统由1个功能模块(主界面)和5个表单(新增联系人,删除联系人,修改联系人信息,视图,搜索联系人)组成。 主要功能: (1)录入所有通讯人员的相关信息,当单击新增按钮时,就会弹出

增加信息的窗体。 (2)修改当前记录:当选择功能菜单时,会出现一个新用户界面对话框用户根据对话框提示进行当前记录的数据的修改直到修改完所有的信息 (3)删除记录:当用户选择要删除人员的姓名即可删除 (4)查询记录:本程序可以通过姓名、电话进行查询。 五、系统主要功能模块详细设计及实现 登录窗体

通讯录管理系统的设计与实现

数据结构实验报告 实验名称:通讯录管理系统的设计与实现 试验时间:2011.1.13 班级:姓名 学号: 指导老师:1.问题描述: 通讯录是用来记录,查询联系人通讯信息的工具。电子通讯录已成为手机,电子词典等电子设备中不可缺少的工具软件。设计一个能够,满足这种需求的软件。 基本功能模块:输入,显示,查找,插入,删除,保存,读入,排序,修改,移动,退出。 2.设计要求: (1)基本要求 1.设计通讯录数据的逻辑结构和物理结构。 2.通讯录至少包含下列数据信息:姓名,电话,地址等。 3.完成图示基本功能。 4.软件易用,操作简单。 5.根据自己使用通讯录的体会,扩充其他功能,如按姓名查找,按学 号查找,按序号查找等。 (2)较高要求 1.数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。 2.提供分组管理的相关功能,如:分组显示,加入组,组创建,组查 询等。 3.可视化的界面设计。 3.测试案例:

请输入您的选择(0--6): 1 分别输入编号,姓名,性别,电话,地址(输入0 结束通信录的建立): 编号:01 姓名:张三 电话:152****1919 地址:2-222 编号:0 请输入您的选择(0--6): 2 编号:01 姓名:张三 电话:152****1919 地址:2-222

是否继续添加?(Y/N):N 请输入您的选择(0--6): 3 请选择查询的方式(1 编号,2 姓名):1 请输入编号:01 编号:01 姓名:张三 电话:152****1919 地址:2-222 请问是否继续查询?(Y/N):N

请输入您的选择(0--6): 4 输入删除编号:01 删除学生信息如下: 编号:01 姓名:张三 电话:152****1919 地址:2-222 请输入您的选择(0--6): 5 通讯录的全部信息如下: *****编号*****姓名*****性别*****电话*****地址*****

数据结构课设-通讯录系统的设计与实现——哈希表

课程设计(论文)任务书 软件学院学院软件工程专业班 一、课程设计(论文)题目:通讯录管理系统的设计与实现——哈希表 二、课程设计(论文)工作自2016 年 1 月 4 日起至 2016 年 1 月 10 日止 三、课程设计(论文) 地点: 软件测试中心(北区测试二室) 四、课程设计(论文)内容要求: 1.本课程设计的目的 ⑴训练学生灵活应用所学数据结构知识,独立完成问题分析,结合课程的理论知识,编写程序求解指定问题; ⑵初步掌握软件开发过程的问题分析、系统设计、编码、测试等基本方法和技能; ⑶提高综合运用所学的理论知识和方法独立分析和解决问题的能力,巩固、深化学生的理论知识,提升编程水平。 2.课程设计的任务及要求 1)基本要求: ⑴要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编写上机程序和上机调试等若干步骤完成题目,最终写出完整的报告; ⑵在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率; ⑶程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释; ⑷每位同学需提交可独立运行的程序和规范的课程设计报告。 2)课程设计论文编写要求 ⑴理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订; ⑵课程设计报告包括中文目录、设计任务、需求分析、概要设计、详细设计、编码实现、调试分析、课设总结、谢辞、参考文献、附录等; ⑶设计部分应包含系统功能模块图,调试分析应包括运行截图等。 3)课程设计评分标准: ⑴学习态度:10分; ⑵系统设计:20分; ⑶编程调试:20分; ⑷回答问题:20分; ⑸论文撰写:30分。

C#课程设计 通讯录管理系统

郑州科技学院 C#课程设计设计(论文) 课题:通讯录管理系统 姓名:刘闯 学号:201015056 班级:10计科2班 导师:王玉萍 课程设计日期:2013年5月31日

目录 摘要 (3) 一.整体设计 (4) 1.1设计构思 (4) 1.2系统数据流图: (5) 1.3开发及运行环境: (5) 2.1 数据库需求分析 (6) 2.2 E-R图 (7) 2.3 数据表设计 (7) 2.4 管理员信息表(db.Admin): (7) 2.5 用户信息表(https://www.wendangku.net/doc/2011530808.html,er): (8) 2.6 资料信息表(db.Records): (8) 三.通讯录管理系统的实现 (9)

3.1 类的编写 (9) 3.2 系统用户功能模块设计: (9) 3.3 系统管理员功能模块设计: (11) 3.4 系统设计运行过程中所遇到的问题: (16) 3.4.1 数据库的连接问题 (16) 3.4.2 登录模块出现角色选择问题 (17) 3.4.3 用户信息添加模块问题 (20) 四. C#课程设计总结 (26) 五.主要参考书及手册 (28) 六.致谢 (29)

摘要 日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。 通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

数据结构通讯录管理系统的设计与实现

课程设计报告 课程设计名称:数据结构课程设计 系:三系 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2011-2012学年一学期 宿迁学院 课程设计任务书 课程名称:数据结构 指导教师: 专业班级: 学生姓名: 起止日期: 设计题目一:通讯录管理系统的设计与实现

1 概述 现状分析 课程设计是实践教学中的重要环节,它以某一门课程为基础,涉及和课程相关的各方面知识,是一门独立于课程外的特殊课程。课程设计就是让所有同学对课程更全面的应用。本次实验项目“通讯录管理”就是针对数据结构的一门应用较为广泛的系统管理方法。 实现意义 本次实验应用性能很好,结构清楚,能随时添加、删除、查找、修改、输出联系人;并且可以用姓名、编号两种方式;而且其中增加了排序功能,使得插入之后排序为接下来的操作提供便利,操作更精确,以人性化的方式展现出来,效果十分突出。 2 系统分析 编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含编号、姓名、性别、电话号码、住址个人基本信息。用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。本程序相对简单,使用方便,几乎不用特殊的命令,只需按提示输入即可。对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,尤其在算法方面,链表及结点的联系,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。 3 概要设计 算法的设计 本实验从整体上分为七大模块:(1)通讯录链表的建立;(2)通讯者结点的插入;(3)通讯者结点的查询;(4)通讯者结点的删除;(5)通讯者结点的修改;(6)通讯录链表的输出;(7)退出通讯录管理通讯者结点的删除系统。 通讯录系统图 系统功能模块图如图所示:

C 通讯录管理系统的设计与实现..

目录 摘要 (1) 关键词 (1) 第一章绪论 (2) 1.1课题背景 (2) 1.2 目的和意义 (2) 第二章需求分析 (3) 2.1 范围 (3) (1) 标识 (3) (2) 系统概述 (3) 2.2 需求概述 (3) (1) 系统目标 (3) (2) 运行环境 (3) ①设备 (3) ②支持程序 (3) ③用户的特点 (3) 2.3功能需求 (4) (1)功能介绍 (4) (2) 系统用例图 (4) 2.4实体关系图 (5) 第三章概要设计 (6) 3.1 范围 (6) (1) 标识 (6) (2) 系统概述 (6) 3.2 系统结构 (6) 3.3 通讯录界面设计 (7) 第四章系统详细设计 (8) 4.1 范围 (8) (1) 标识 (8)

(2) 系统概述 (8) 4.2 详细设计说明 (8) 第五章测试说明 (16) 5.1 范围 (16) (1) 标识 (16) (2) 系统概述 (16) 5.2 测试计划及预期结果 (16) 5.3 具体测试情况 (16) 第六章总结 (19) 参考文献 (20)

通讯录的设计与实现 摘要 随着互联网的不断发展,互联网对我们生活产生的影响越来越大。在日常的生活中,我们需要接触很多不同的人,如何运用互联网技术实现朋友圈通讯录的管理呢?这是我们日常生活中经常要面临的问题。本次毕业设计中设计的通讯录管理系统既可以实现对通讯录进行管理,在本地进行通讯录的增加、修改、删除、更新等操作。本次设计的通讯录管理系统主要是了解通讯录管理系统的业务逻辑,熟悉通讯录管理系统的实现方式,模拟了真实的通讯录管理软件,为后续相关内容的学习打下了坚实的基础。 通讯录管理系统是一个专门针对少用户的实用系统,它方便了大家对众多信息的储存和快速查询的功能,大大减少了查找过程的时间,是一个比较实用的通讯录管理系统,。对我们后续学习移动端的通讯录管理也会有很大的帮助。 本设计使用的计算机语言是C++,C++语言是在C语言的基础上作了进一步的强化。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力。作为C语言家族的一种,C++也具备了C 语言所具有的优点,并对其进行了优化封装,是开发者更容易操作运用,所以本次课程设计采用了C++作为系统的开发语言。本通讯录管理系统的主要功能有:建立通讯录的链表、插入通讯录信息、查询通讯录信息、删除通讯录信息,输出通讯录信息,保存到通讯录信息。采用的是面向过程的方法,封装函数功能,调用各个功能函数来实现系统的各个功能。 关键词 通讯录;链表;类;

哈希表实现通讯录-数据结构与算法课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2009~2010学年第二学期 课程数据结构与算法 课程设计名称哈希表实现通讯录

题目:(哈希表的设计与实现的问题) 设计哈希表实现电话号码查询系统。设计程序完成以下要求:(1)设每个记录有下列数据项:电话号码、用户名、地址;(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;(3)采用再哈希法解决冲突;(4)查找并显示给定电话号码的记录;(5)查找并显示给定用户的记录。 一、问题分析和任务定义 此程序需要完成如下要求:设计哈希表实现电话号码查询系统。 实现本程序需要解决以下几个问题: (1)设计结点使该结点包括电话号码、用户名、地址。 (2)利用再哈希法解决冲突。 (3)分别以电话号码和用户名为关键字建立哈希表。 (4)实现查找并显示给定电话号码的记录。 (5)查找并显示给定用户的记录。 本问题的关键和难点在于如何解决散列的问题。由于结点的个数无法的知,并且如果采用线性探测法散列算法,删除结点会引起“信息丢失”的问题。所以采用链地址法散列算法。采用拉链法,当出现同义词冲突时,使用链表结构把同义词链接在一起,即同义词的存储地址不是散列表中其他的空地址。 首先,解决的是定义链表结点,在拉链法中,每个结点对应一个链表结点,它由三个域组成,而由于该程序需要分别用电话号码和用户名为关键字建立哈希表,所以该链表结点它是由四个域组成.name[8] 、num[11]和address[20]都是char浮点型,输入输出都只能是浮点型的。 采用拉链法,其中的所有同义词构成一个单链表,再由一个表头结点指向这个单链表的第一个结点。这些表头结点组成一个一维数组,即哈希表。数组元素的下标对应由散列函数求出的散列地址。 其次,设计散列函数,本程序需要设计两个散列函数才能解决问题,程序需要分别为以电话号码和用户名为关键字建立哈希表。所以要分别以用户名、号码为关键字建立两个散列函数, 对于以号码为关键字的散列函数,是将十一个数字全部相加,然后对20求余。得到的数作为地址。对于以用户名为关键字的散列函数,是将所有字母的ASCLL码值相加,然后对20求余。 再次,需要实现添加结点的功能,则其中必须包括一个输入结点信息、添加结点的函数;需要实现查找函数,则必须包括一个查找结点的函数;需要对文件进行保存,则必需要包括保存文件函数。还需要包括一个主菜单和一个主函数。 最后,当程序设计出来后的测试数据为:

Java课程设计--个人通讯录管理系统

《JAVA程序设计》课程设计说明书

目录 1 引言 (1) 1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 3.3数据库设计 (5) 4 详细设计与实现 (7) 4.1 登录模块 (7) 4.2 注册新用户模块 (8) 4.3 查询模块 (9) 4.4 添加模块 (11) 4.5 修改模块 (13) 4.6删除模块 (16) 4.7备份模块 (18) 4.8退出模块 (19) 5 小结和展望 (20) 参考文献 (22) 附录 (22) 使用说明书 (22)

1引言 1.1课程设计选题 《个人通讯录管理系统》 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 2.1 功能需求 2.1.1个人通讯录功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

数据结构课程设计通讯录的制作

数据结构课程设计通讯录 的制作 Modified by JEEP on December 26th, 2020.

软件学院 课程设计报告书 课程名称数据结构课程设计 设计题目通讯录的制作 专业班级软件工程XXXX 学号 XXXXXXXX 姓名 X X X 指导教师X X X 2012 年 01 月 目录 1、设计时间 (3) 2、设计目的 (3) 3、设计任务 (3) 4、设计内容 (3) 需求分析 (3) 总体设计 (4) 4.2.1本程序中用到的所有抽象数据类型的定义 (4) 4.2.2主程序的流程 (4) 详细设计 (6) 4.3.1定义的所有数据类型 (6) 4.3.2主函数 (11)

4.3.3函数的调用关系图 (12) 测试与分析 (13) 4.4.1测试 (13) 4.4.2分析 (19) 附录 (19) 5、总结与展望 (28) 参考文献 (29)

”4.4.2 m=n%HASHSIZE; ame); pp=p; while(H->elem[pp]!=NULL) { pp=collision(p,c); if(pp<0) { printf("createHash1第%d记录无法解决冲突",i+1); n",HASHSIZE,H->count); } void SearchHash1(HashTable* H,int c) { el); pp=p; while(H->elem[pp]!=NULL) { pp=collision(p,c); if(pp<0) { printf("第%d记录无法解决冲突",i+1); n",HASHSIZE,H->count); } void SearchHash2(HashTable* H,int c) { ame); printf("请输入第%d个记录的电话号码:\n",i+1); scanf("%s",a[i].tel); printf("请输入第%d个记录的地址:\n",i+1); scanf("%s",a[i].add); ame); for(i=0;i

通讯录管理系统的设计与实现

大连民族大学 计算机科学与工程学院实验报告 实验题目: 1. 学生信息管理系统的设计与实现 2. 暴力算法在旅行商问题中的应用 课程名称:信息系统开发案例 实验类型:□演示性□验证性□操作性□设计性 综合性 专业:软件工程班级:144 学生姓名:赵耀学号:2014082430 实验日期:2017年3月6日—4月27日 实验地点:金石滩校区I303机房 实验学时:24学时实验成绩: 指导教师:赵戈

通讯录管理系统的设计与实现 摘要 本项目用C++语言开发了一个简单的通讯录管理系统,该系统能对联系人信 息进行“增删改查”。系统的UI设计基于Windows系统自带的控制台。测试结 果表明该通讯录管理系统可以稳定正确运行,具有较高的可靠性。 关键词:通讯录管理系统;C++语言;Windows 控制台 目录 1.选题的背景和意义 (3) 2.需求分析 (3) 2.1 用例图 (3) 2.2 用例文本 (4) 3.总体设计 (5) 3.1 通讯录管理系统功能模块图 (5) 3.2 主控main函数执行流程图 (6) 3.3 执行流程图的解释说明 (6) 3.4 存储结构设计 (7) 4.详细设计 (8) 5程序运行结果 (9) 6总结和展望 (9) 7附录 (10) 程序源代码: (10)

1.选题的背景和意义 当今时代,计算机已经成为人们生活中不可或缺的一部分,它打破了地域时间限制,改变了人们的工作和生活方式。人们之间的联系越来越便捷,这就使得要经常与很多人保持着联系,而单纯依靠人脑已经很难记住所有人的联系方式还有其各做附加信息。通讯录系统能方便用户的需求,满足用户迅速、准确的查找修改或者删除联系人信息,把各个联系人信息以文件保存。本文介绍了c++编写简易通讯录管理:系统的分析,功能模块的设计,系统的流程图及运行界面。此系统的主要管理的信息由:联系人的姓名、性别、电话号码,加深对c++语言程序设计的理解,提高算法设计的能力,锻炼编程的能力。用c语言编程一个通讯录管理系统软件,要求能实现通讯录管理系统中的增加信息,删除信息,显示通讯里的所有信息,按名字查询信息,保存通讯录,退出系统。。 2.需求分析 2.1 用例图 通讯录管理系统的用例图如下图所示: 图2.1 用例图

通讯录管理系统实现与设计

武汉理工大学 毕业设计(论文) 通讯录管理系统实现与设计 学院(系): 专业班级: 学生姓名: 指导教师:

目录 第一章绪论 (2) 1.1课题简介 (2) 1.2开发的意义 (2) 1.3团队构成 (3) 第二章开发环境及实现技术 (4) 2.1开发环境 (4) 2.2开发工具简介 (4) 第三章系统设计 (6) 3.1概要设计 (6) 3.2详细设计 (7) 第四章数据库设计 (9) 4.1数据库A CCESS简介 (9) 4.2数据库需求分析 (10) 4.3数据库需求分析 (10) 第五章详细设计 (12) 5.1系统登录模块的设计与实现 (12) 5.2主界面的设计与实现 (16) 5.3单人资料模块的设计与实现 (19) 5.4模糊查询模块的设计与实现 (22) 5.5全体资料模块的设计与实现 (25) 5.6用户注册模块的设计与实现 (26) 5.7用户维护模块的设计与实现 (28) 5.8备忘提醒模块的设计与实现 (29) 第六章系统使用说明 (33) 6.1使用说明 (33) 6.2运行环境 (33) 第七章设计心得 (34) 参考文献 (35)

第一章绪论 1.1课题简介 通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。 随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。 1.2开发的意义 计算机已经成为我们学习和工作的得力助手,使用其可方便的管理通讯录 今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域。 现在我国的通讯录管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。 我作为一个计算机应用专业的毕业生,希望可以在这方面有所贡献。改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我所学的知识编制出一个实用的程序来帮助用户进行财务管理。 开发这一系统的好处大约有以下几点: 第一、可以存储大量的通讯录信息,安全、高效;

设计散列表实现通讯录查找系统

长春理工大学 学生实习报告 2010 —2011 学年第一学期 实习类别:课程设计 学院:软件学院 专业:软件开发与测试 班级: 姓名:

建通讯录 【问题描述】 设计散列表实现通讯录查找系统。 【基本要求】 (1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表; (3) 采用二次探测再散列法解决冲突; (4) 查找并显示给定电话号码的记录; (5) 通讯录信息文件保存; (6) 要求人机界面友好,使用图形化界面; 【实现提示】 主函数:根据选单的选项调用各函数,并完成相应的功能。 Menu()的功能:显示英文提示选单。 Quit()的功能:退出选单。 Create()的功能:创建新的通讯录。 Append()的功能:在通讯录的末尾写入新的信息。 Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息。 Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息。Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息。 List()的功能:显示通讯录中的所有记录。 Save()的功能:保存通讯录中的所有记录到指定文件中。 Load()的功能:从指定文件中读取通讯录中的记录。 (一).需求分析: (1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表 (3) 采用二次探测再散列法解决冲突 (4) 查找并显示给定电话号码的记录 (5) 通讯录信息文件保存 (6) 要求人机界面友好,使用图形化界面 (二)概要设计:(流程图) 总流程图:

基于c语言的通讯录管理系统设计与实现

基于c语言的通讯录管 理系统设计与实现 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

《高级语言程序设计》 ——基于c语言的通讯录管理系统的 设计与实现 姓名:王炳旭 学号: 1216F0610119 指导老师:孟芸 系别:信息工程系 专业班级:计科F1201班

《高级语言程序设计》课程设计任务书 设计内容及要求: 1.设计内容 输入功能:记录信息并保存文件中。 显示功能:输出文件中所有信息。 查找功能:查询所需通讯信息。 删除功能:删除无用信息。 2.设计要求 建立通讯录信息,信息包含姓名、性别、班级、电话,保存在文件中; 能够输出文件中所有通讯录信息。 能够提供按姓名、班级或性别查询信息; 能够提供按姓名删除通讯录信息的功能; 时间安排: 九月:选择自己所要设计的程序,查阅书籍、网上查询,收集所需资料解决疑惑。 十月:开始编写程序,不断分析。 十一月:代码实现,程序能够运行。 十二月:写报告,完成课程设计。 《高级语言程序设计》课程设计教师评阅成绩表

《高级语言程序设计》课程设计承诺书

目录 1.引言----------------------------------------------------------------------- 2 1.1设计内容------------------------------------------------------------- 2 1.2设计任务及具体要求--------------------------------------------------- 2 1.3系统环境------------------------------------------------------------- 3 2.总体设计------------------------------------------------------------------- 3 2.1系统功能简介--------------------------------------------------------- 3 2.2总体程序框图--------------------------------------------------------- 3 2.3各个模块之间的主要关系----------------------------------------------- 4 3.详细设计------------------------------------------------------------------- 4 3.1各个模块的程序流程图及运行界面--------------------------------------- 4 3.2关键代码分析说明----------------------------------------------------- 8 3.3程序使用说明--------------------------------------------------------- 9 4.总结----------------------------------------------------------------------- 9 致谢------------------------------------------------------------------------- 9 参考文献--------------------------------------------------------------------- 9 附录------------------------------------------------------------------------ 10 1.引言 当今时代,计算机已经成为人们生活中不可或缺的一部分,它打破了地域时间限制,改变了人们的工作和生活方式。通讯录系统能方便用户的需求,满足用户迅速、准确的查找修改或者删除联系人信息,把各个联系人信息以文档保存。本文介绍了简易通讯录管理系统在VC++6.0环境下的实现过程:系统的分析,功能模块的设计,系统的流程图及运行界面。此系统的主要管理的信息

通讯录系统的设计说明书

通讯录系统的设计说明书 R—日11级1班11号 金伯胤

1概述 (3) 1.1系统简述 (3) 1.2软件设计目标 (3) 1.3参考资料 (3) 1.4版本记录 (3) 2术语表 (3) 3用例 (4) 3.1系统用例图 (4) 3.2用例描述 (4) 3.2.1添加联系人 (4) 3.2.2删除联系人 (5) 3.2.3查找联系人 (5) 3.2.4修改联系人 (6) 4设计概述 (7) 4.1简述 (7) 5静态模型 (7) 5.1系统类图 (7) 6动态模型 (8) 6.1场景 (8) 6.1.1场景1:用户浏览通讯录 (8) 6.1.2场景2:生成授权码 (9) 6.1.3场景3 : 使用授权码 (10) 6.2状态图 (11) 6.2.1系统登录状态图 (11) 6.2.2联系人状态图 (12) 6.2.3用户状态图 (13) (13) 7非功能性需求 (13) 7.1.系统未来的方向 (13)

1概述 1.1系统简述 本系统是市面上常见的也被广为人用使用的通讯录系统。但是它与其他通讯录不同的一点的特点就是通过网络“分享”自己的联系人。想象一个场景,添加联系人时往往会遇到对方名字打不出来的尴尬,或是开会时,大家分享一位联系人时要记录姓名、电话、宅电、公司、地址等等。。。很不效率。通过本系统用户只要输入一段特的数字或扫一下二维码就可以将一位或多位特定的联系人同步到自己的通讯录中,是不是很方便。通过网络,将自己本地的通讯录上传到“云端”,用户可以在更换设备时就不必再次手动录入通讯录了,只要一键同步到本地即可。还有更多功能等待你去探索。科技本该让生活跟简单。 1.2软件设计目标 由于通讯录系统已经非常成熟了,本次设计希望突出“分享”这个功能,并且使用交互式设计更加人性化,其他通讯录的基本功能就不赘述。 1.3参考资料 2014年暑季课程设计《普通通讯录系统的设计》 1.4版本记录 本文档于15.01.13完成 文档中的参考绘图与15.01.10完成 2术语表 联系人被此系统使用查找、添加、删除、修改等功能的信息。 用户通过此系统使用查找、添加、删除、修改等功能的人。 系统联系人通讯录系统。 J2EE规范 J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定义的一个开发分布式企业级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范。 DBMS 数据库管理系统(DataBase Management System)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护作。

通讯录管理系统数据库设计

通讯录管理系统数据库设计与实现 1 需求简介(赵河南) 1.1功能概述 1.2数据要求 功能中涉及的数据项说明。 1.用分组基本信息(Admin):包括分组号、分组名; 2.用户基本信息(Dormitory):包括账号、密码、昵称、个性签名,这样可以 方便分清用户记录的联系人;

3.联系人基本信息(linkman):包括姓名、性别、关系、手机号、座机号、QQ、 E-mail、生日、工作单位、地址、所属用户、所属分组; 1.3数据字典 数据项列表 数据项编号数据项名数据项含义与其它数据项的关系存储结构别名TXL-1G_number分组号CHAR(10) TXL-2G_name分组名CHAR(20) TXL-3ID所属用户等同于账号ID CHAR(10) TXL-4ID账号CHAR(10) TXL-5Nickname昵称CHAR(20) TXL-6Password密码CHAR(20) TXL-7Qianming签名CHAR(50) TXL-8L_number联系人号CHAR(100) TXL-9Name姓名CHAR(20) TXL-10Sex性别CHAR(2) TXL-11Concern关系CHAR(10) TXL-12Phone手机号CHAR(11) TXL-13Landline座机号CHAR(10) TXL-14QQ QQ号CHAR(10) TXL-15Email E-mail CHAR(20) TXL-16Work工作单位CHAR(30) TXL-17Address地址CHAR(30) TXL-18Birthday生日Date 数据结构列表 数据结构编号数据结构名 数据结构 含义 组成 DS-1Grouping 分组G_number,G_name,ID, DS-2Worker用户ID,Nickname,Password,Qianming DS-3Linkman联系人L_number,Name,Sex,Concern,Phone,Landline,QQ,Email,Work,Address,Birthday,ID,G_number

相关文档
相关文档 最新文档