长春理工大学
学生实习报告
2010 — 2011 学年第一学期
实习类别:课程设计 学院:软件学院 专业:软件开发与测试 班级: 姓名:
起止周 实习地点 17-18周 软件学院专业实验室(研1213) 周数 2 一、课程设计的目的 数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。 学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的: ? 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; ? 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; ? 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; ? 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 二、课程设计的基本要求 1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。 2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。 3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成; 其中包括: a)需求分析: 在该部分中叙述,每个模块的功能要求 b)概要设计 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。 c)详细设计 各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现) 源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 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?yes创建新的通讯录Rcreate()NoAppend?yes填充记录Rappend()noFind?yes查找记录Rfind()noAlter?yes修改记录Ralter()noDeleteyes删除记录Rdelete()noList?yes浏览记录Rlist()noSave?yes保存记录Rsave()noLoad?yes打开记录Rload()noQuit?yes结束no提示输入有误,请重新输入.