重庆大学信息科学与工程学院。
实验报告。课程名称:数据结构。
实验名称:宿舍管理查询软件。
专业: 计算机科学与技术。
班级: 姓名:
时间:2023年7月1日。
1、实验内容。
1) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:
a. 采用交互工作方式。
b. 建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
2) 查询菜单: (用二分查找实现以下操作)
a. 按姓名查询
b. 按学号查询
c. 按房号查询。
3) 输出任一查询结果(可以连续操作)
2、预备知识和参考资料。
1、 二分查找法(折半搜索法)
2、 数据排序方法(冒泡、选择、插入等任何一种)
3、流程图。
4、算法分析。
1)二分查找法算法:
若设有n个元素存放在一个有序的顺序表中,采用折半搜索时。先求出位于搜索区间正中的元素的下标mid,用其关键码element[mid].key与给定值x进行比较,比较结果有3 种可能:
1、 若element[mid].key=x,搜索成功,报告成功信息并返回其下标;
2、 若x3、 若x>element[mid].key,说明如果表中存在要找的元素,该元素一定在mid右侧, 可把搜索区间缩小到表的后半部分,再继续进行二分查找。
每比较一次,搜索区间缩小一半。因此在最坏的情况下搜索到要求元素所需的关键码比较次数约为o(log2n)。对于较大的n,显然比顺序搜索快得多。
如果搜索区间已经缩小到一个元素,经过与给定值比较仍未找到想要搜索元素,则搜索失败。
2)选择法排序(把数组中n个数按自小到大排列)
排序需解决两个问题:一是如何选择值最小的数据;二是如何交换两个数据值。
从第i个元素到第n-1个元素中选择最小元素可以采取如下做法:先假定第i个元素值最小,用k标示它;然后顺序检查第i+1,第i+2,……第n-1个,若检测到还有比刚才最小的还要小的元素,用k标示它。在检查结束后k标示的就是值最小的数据。
交换两个数据中的值时需要一个暂存变量,如用temp作为中介,以进行交换:
temp=a[i];a[i]=a[k];a[k]=temp;
5、设计心得。
这次的课程设计,加强了我们的动手、思考和解决问题的能力。巩固和加深了对数据结构的理解,提高了综合应用本课程所学知识的能力。培养了我选用参考书,查阅手册及相关文献资料的能力。
培养了独立思考,深入研究,分析问题,解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握了应用软件的分析方法和过程设计方法。做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有些问题不是很理解,做完课程设计,那些问题就迎刃而解了。
二姐还可以记住很多东西。认识**于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。
这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在整个设计过程中,构思是最花费时间的。调试是经常会遇到这样那样的错误,有的是因为粗心造成的语法错误。
当然,很多也是用错了方法,总是实现不了。同时在设计过程中发现了自己的不足之处,对以前学过的知识理解的不够深刻,掌握的不够牢固。
根据我在课程设计中遇到的问题,我将在以后的学习过程中注意一下几点:
1、 认真上好专业实验课,多在实践中锻炼自己。
2、 写程序的过程中要考虑周到、严密。
3、 认真学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
4、 在课余时间里多写程序,熟练掌握在调试程序过程中所遇到的常见错误,以便能节省调试程序的时间。
这次课程设计最终顺利完成,在设计中遇到很多专业知识问题,最后在查找相关资料及和别的同学的交流下,完成了本次设计。
6、参考资料。
数据结构(用面象对象方法与c++语言描述)》
7、附录。课程设计**:
1)选择法排序。
选择排序是这样实现的:
设数组内存放了n个待排数字,数组下标从1开始,到n结束。
i=1从数组的第i个元素开始到第n个元素,寻找最小的元素。
将上一步找到的最小元素和第i位元素交换。
如果i=n-1算法结束,否则回到第3步。
选择排序的平均时间复杂度也是o(n²)的。
举个例子:要排序的数字有564
比如说这个,我想让它从小到大排序,怎么做呢?
第一步:从第一位开始找最小的元素,564中4最小,与第一位交换。结果为465
第二步:从第二位开始找最小的元素,465中5最小,与第二位交换。结果为456
第三步:i=2,n=3,此时i=n-1,算法结束。
选择法排序简单**如下:
void select(int a,int n)
for (i=1;i
数据结构c语言课程设计报告
数据结构。课程设计报告。设计题目 迷宫求解。专业机电一体化 班级 08专接本 学生。学号 1 指导教师高在村。完成时间 2011.5 一。实验内容 3 二。需求分析 3 三 总体设计 3 四 详细设计 5 五 9 六。测试 14 七。总结 16 参考文献 17 任务 可以输入一个任意大小的迷宫数据,...
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...