设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
散列表实现通讯录查找系统
长春理工大学
学生实习报告
2010 — 2011 学年第一学期
实习类别:课程设计 学院:软件学院 专业:软件开发与测试 班级: 姓名:
17-18周 2 起止周 周数
软件学院专业实验室(研1213) 实习地点
一、课程设计的目的
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:
, 了解并掌握数据结构与算法的设计
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,具备初步的独立分析和设计能力; , 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和
技能;
, 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; , 训练用系统的观点和软件开发一般
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
进行软件开发,培养软件工作者所应具
备的科学的工作方法和作风。
二、课程设计的基本要求
1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求
b)概要设计
在此说明每个部分的算法设计说明(可以是描述算法的
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些,问题如何解决,),算法的改进设想。
课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;
4、每组实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号姓名”,如“200413498 高魁”。该文件夹下至少包括:“源代码”、“课程设计报告”、“可执行文件”。由学习委员收集刻盘按规定时间统一上交)。
5、课程设计报告不要附原代码,可以对重点函数及结构进行说明。报告格式见要求。 6、报告提交
时间:第18周最后一次课检查,第19周星期一上午11:30之前由学习委员收集上交,迟交无成绩。
形式:课程设计报告纸质和电子文档(按班级统一刻盘)。
三、课程设计内容:
成绩:
指导教师/带队教师(签字)
年月日
建通讯录
【问题描述】
设计散列表实现通讯录查找系统。
【基本要求】
(1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表; (3) 采用二次探测再散列法解决冲突;
(4) 查找并显示给定电话号码的记录;
(5) 通讯录信息文件保存;
(6) 要求人机界面友好,使用图形化界面;
【实现提示】
主函数:根据选单的选项调用各函数,并完成相应的功能。 Menu()的功能:显示英文提示选单。
Quit()的功能:退出选单。
Create()的功能:创建新的通讯录。
Append()的功能:在通讯录的末尾写入新的信息。 Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有
此人的信息。
Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息。
Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信
息。
List()的功能:显示通讯录中的所有记录。
Save()的功能:保存通讯录中的所有记录到指定文件中。 Load()的功能:从指定文件中读取通讯录中的记录。
(一).需求分析:
(1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表 (3) 采用二次探测再散列法解决冲突
(4) 查找并显示给定电话号码的记录
(5) 通讯录信息文件保存
(6) 要求人机界面友好,使用图形化界面
(二)概要设计:(流程图)
总流程图:
开始
输出提示界面
接受操作数
创建新的通讯录Create?yesRcreate()No
Append?yes填充记录Rappend()no
Find?yes查找记录Rfind()no
Alter?yes修改记录Ralter()no
Deleteyes删除记录Rdelete()no
List?yes浏览记录Rlist()
no
Save?yes保存记录Rsave()no
Load?yes打开记录Rload()no
Quit?yes结束
no
提示输入有误,请重
新输入.
1.Append()的功能:在通讯录的末尾写入新的信息,并返回选单.
开始
定义局部变量和标志位,接收通讯录数据
记录通讯录记录的NoFlg==’y’?个数
yes
输出提示语结束句
接收输入的数据
将数据存入通讯录
将电话号转换为关键字
哈希表探测未完毕并且无可yes二次探测再散列用位置?
no
在哈希表中找将电话号和在电话到可用位置了本中的位置存入哈Yes吗?希表
no
提示哈希表中已无可用位置
提示是否继续添加记录
接收选择
2.Find():查询某人的信息,如果找到了,则显示该人的信息,
如果没有则提示通讯录中没有此人的信息.
开始
Char phoneNum[12],int i=0,key,addr;
提示输入电
话号
用phoneNum接收输入的
电话号
Key=chenge(phoneNum),将电话号转
换为关键字
没找到并且哈Yes二次探测希表未探测完?
no
输出查找到yes找到了吗的信息
No
提示无此人
记录
结束并返回查找结
果
3.Alter()的功能:修改某人的信息,如果未找到要修改的人,
则提示通讯录中没有此人的信息.
开始
查找要修改的记录在电话本中的位置
提示无此记NoAddr>=0?录
yes
询问是否修改姓名
接收选择
提示输入姓yesFlag==’y’接收输入覆盖原来姓名名
no
询问是否修改通讯地址
接收选择
提示输入姓yesFlag==’y’接收输入覆盖原来姓名名
No
结束
4.Delete()的功能:删除某人的信息,如果未找到要删除的人,
则提示通讯录中没有此人的信息.
开始
在电话本中查找要
删除的记录
提示是否删
除
接收选择
提示操作已noFlag==’y’取消
Yes
删除此记录在哈希
表中的记录
将该记录后面的记
录前移
计数器减一
提示记录已
删除
结束
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];
//-----------二次探测数组初始化-------
22222void ArrayIni() //?1,?2,?3,?4……?(MOD/2). {
inti,j;
for (i=0,j=-1;i
本文档为【设计散列表实现通讯录查找系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。