10秋数据结构与算法课程设计题目要求_徐红梅
101数据结构(第二版)课后习题答案(王红梅主编)
第 1 章绪论课后习题讲解1. 填空⑴(数据元素)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素⑵(数据项)是数据的最小单位,(数据元素)是讨论数据结构时涉及的最小数据单位。
【解答】,【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶从逻辑关系上讲,数据结构主要分为(集合)、(线性结构)、(树结构)和(图结构)。
【解答】,,,⑷数据的存储结构主要有(顺序存储结构)和(链接存储结构)两种基本方法,不论哪种存储结构,都要存储两方面的内容:(数据元素)和(数据元素之间的关系)。
【解答】,,,⑸算法具有五个特性,分别是(有零个或多个输入)、(有一个或多个输出)、(有穷性)、(确定性)、(可行性)。
【解答】,,,,⑹算法的描述方法通常有(自然语言)、(程序设计语言)、(流程图)和(伪代码)四种,其中,(伪代码)被称为算法语言。
【解答】,,,,⑺在一般情况下,一个算法的时间复杂度是(问题规模)的函数。
【解答】⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(Ο(1) ),若为n*log25n,则表示成数量级的形式为(Ο(nlog2n))。
【解答】,【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
10秋数据结构与算法课程设计题目要求_徐红梅
一、学生成绩管理1.问题描述要求以学生成绩管理业务为背景,设计一个“学生成绩管理系统”程序。
对于学校来讲,学生成绩管理系统是不可缺少的组成部分,主要是对学生成绩资料的录入、浏览、插入和删除等基本功能的实现。
2.设计要求编制一个学生成绩管理程序。
设学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有学号和各门功课的成绩。
设每位学生学习数学、英语、语文、物理和化学5门课程。
3.数据结构本课程设计使用单链表作为实现该问题的数据结构。
4.问题分析程序设计一般由算法和数据结构两部分组成。
管理学生的成绩适合用单链表,方便随时插入和删除学生记录,实现动态管理。
一个学生作为一个结点,该结点类型为结构体,结构体中的域表示学生的属性。
每个结点除了存放属性外,还存放指向后继结点的指针。
二、马踏棋盘1.问题描述设计一个国际象棋的马踏遍棋盘的演示程序。
2.设计要求(1)程序的输入:设计程序按要求输入马的初始位置(相应的坐标)。
(2)程序的输出:程序的设计完成后应给出马从初始位置走遍棋盘的过程,并按照求出的行走路线的顺序,将数字1,2,…,64依次填入一个8*8的方阵并输出。
3.数据结构本课程设计使用的数据结构是栈,利用顺序栈来实现。
4.问题分析所谓马踏棋盘问题,是指将马随机放在国际象棋的8*8棋盘的某个方格中,马按走棋规则(马走日子)进行移动。
要求每个方格只进入一次,走遍棋盘上全部64个方格。
由用户自行指定一个马的初始位置,求出马的行走路线,并按照求出的行走路线的顺序,将数字1,2,…,64依次填入一个8*8的方阵并输出。
从用户给出的初始位置开始判断,按照顺时针顺序,每次产生一个新的路点,并验证此路点的可用性,需要考虑的是当前路点是否超出棋盘范围和此路点是否已经走过,如果新路点可用,则入栈,并执行下一步,重复进行如上步骤,每次按照已走路点的位置生成新路点。
如果一个新路点的可扩展路点数为0,进行回溯,直到找到一个马能踏遍棋盘的行走路线并输出。
数据结构课程设计题目及要求样本
《数据结构》课程设计目录一、课程设计要求 (2)1.分组设计 (2)2.题目选择 (2)3.考核标准 (2)4.提交材料 (2)5.考核等级 (3)二、课程设计报告(见附件2) (3)三、课程设计题目: (3)(一)课程设计1 (3)1. joseph环 (3)2. 文章编辑 (4)3. 学生成绩管理系统 (5)4. 一元稀疏多项式计算器 (6)5. 表达式求值 (6)6.运动会分数统计 (7)7.宿舍管理查询软件 (9)8.校园导游咨询 (9)9.哈夫曼编/译码器 (10)10.建立通信网络 (12)11. 考试报名管理 (12)12. 停车场管理 (13)项目简介 (13)13.图书管理信息系统的设计与实现。
(13)附件1:分组登记表 (15)附件2:实训报告一、课程设计要求1.分组设计按小组方式进行组织设计, 小组成员为3~4人, 班级内自由组合, 并确定小组组长, 分组名单汇总到曹钿鹏和韩滨龙, 最后交给老师。
2.题目选择每个小组选择1个题目设计完成, 组与组之间题目能够相同可是方法不同, 并完成实训报告。
3.考核标准总的要求: 组内每位同学, 一起协商承担的任务, 每人都要参与设计和编程工作。
评分组成:1) 组长对组内成员学习态度和承担设计任务的评价;2) 课程设计完成的效果, 必要时会采用现场演示和答辩的方式;3) 课程设计实训报告的撰写质量;4.提交材料每位同学依据所在小组选择的课程设计题, 独立撰写课程设计实训报告, 不允许相互间抄袭, 否则均以零分计算。
提交材料: 课程设计报告, 程序代码: ( 建议按如下形式打包)文件夹以”组号.rar”提交, 里面每位同学包含两个文件夹: ”实训报告”和”源代码”。
”实训报告”文件夹中是本组成员的实训报告。
备注: 小组长将本组得设计报告收齐, 以组为单位打包交给曹钿鹏和韩滨龙, 两人最后汇总提交到邮箱: 。
5.考核等级评分标准: 等级制( 优秀、良好、中等、及格、不及格)二、课程设计报告( 见附件2)三、课程设计题目:( 一) 课程设计11.joseph环【问题描述】编号是1, 2, ……,n的n个人按照顺时针方向围坐一圈, 每个人只有一个密码( 正整数) 。
《数据结构》课程设计题目及要求
《数据结构》课程设计题目及要求一、数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要两周时间完成,两周中每天至少要上2小时的上机来调试C或C++语言设计的程序。
学院安排上机时间学生不得缺席。
二、上交相关内容要求上交的成果的内容必须由以下四个部分组成,缺一不可1.上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2.上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;3.课程设计报告:(保存在word 文档中,文件名要求按照"姓名-学号-课程设计报告题目"起名,如文件名为"张三-001-二叉树动态演示".doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求。
b)概要设计在此说明每个部分的算法设计说明(可以是描述每一个算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
e) 总结:总结可以包括: 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。
数据结构课程设计题目及要求
数据结构课程设计题目及要求一、要求本次课程设计可以从以下的题目中任选其一,每个题目基本实现的要求是:有菜单功能有读写数据存盘功能成品应包括以下内容:程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
3、答辩时使用的ppt。
二、设计题目题目一:仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构:typedef struct dnode /*定义双向链表结构体*/{int number; /*货物编号*/char name[max]; /*货物名称*/int counter; /*货物数量*/struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/}dlnode;题目二:单位员工通讯录管理系统(线性表应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定义*/char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/char call[15]; /*手机号码*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;题目三: 哈夫曼编码/译码系统(树应用)[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
《数据结构》课程设计题目及要求
一、关于本次课程设计1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过4人(一个班之内)。
2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、不及格(1分)。
3、题目有难易和工作量大小之分(具体见题目后的“星级”),为体现公平,请参见下表,请同学们结合自身情况选择题目。
4、课程设计报告和源代码严禁抄袭,报告要严格遵照“课程设计任务书”的要求来撰写,大致包含以下内容:①需求分析:叙述每个模块的功能性要求;②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结构(如果指定存储结构请写出该存储结构的struct或typedef定义);③详细设计:各个算法的实现源代码(注意只写算法的源代码,完整的源代码放在附录里面)。
源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;④调试分析:需要测试数据的至少给出3组测试数据,记录每一组数据输出的结果;并用文字描述调试过程中遇到的问题(问题是哪些?问题如何得以解决?);⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考等内容(严禁套话);⑥附录:完整的源代码(必须正确缩进)。
5、程序运行时,要有友好的说明界面和操作提示菜单(以英文文字显示即可),严禁出现“一运行屏幕一片黑”的情形;程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。
6、提交课程设计报告之前,将程序(EXE文件)和源代码(.C文件及其有关的数据文件)用Winrar打包成单一文件发至auts_hp@(不方便上网的同学可拷贝至U盘与报告一并提交),邮件标题(及其附件的文件名)如:计算机061—刘德华—马踏棋盘7、课程设计报告撰写完毕后,按要求装订,于09年1月5日晚7:00~9:00(如时间有变化则另行通知),交至B座4楼信息与计算科学教研室,逾期不候。
数据结构课程设计题目及要求
实验一~实验四任选一题;实验五~实验九任选一题。
实验一运动会分数统计一、实验目的:(1)熟练掌握线性表的两种存储方式(2)掌握链表的操作和应用。
(3)掌握指针、结构体的应用(4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。
二、实验内容:【问题描述】参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
【基本要求】产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
【测试数据】对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。
【实现提示】可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。
每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。
【选作内容】允许用户指定某些项目可采取其他名次取法。
实验二停车场管理一、实验目的:(1)熟练掌握栈顺存和链存两种存储方式。
(2)掌握栈的基本操作及应用。
(3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
二、实验内容:【问题描述】设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
数据结构课程设计指导书( 第二版)
《数据结构与算法课程设计指导书》第2版计算机科学与信息工程学院2011-05总体说明《数据结构与算法》课程设计为期两周,按2010版本科教学计划,安排在每学期的17、18周进行。
课程设计进度安排如下:1、第一周的第一天:小组布置设计题目;说明进度安排。
2、第一周的第二天:小组审题,查阅资料,进行设计前的必要资料准备。
3、第一周的第三天、第四天、第五天:程序编写、上机调试4、第二周的第一天至第三天:上机调试程序、结果分析。
5、第二周的第四天:撰写设计报告。
6、第二周的第五天:设计答辩及成绩评定。
课程设计中,每个学生必须选择参加一个题目组,共同完成课程设计任务书说明的任务,题目组人数不得超过课程设计任务书中的限定人数。
每组自行推选一个小组长,负责整个题目组的协调和合作。
课程设计中,每个学生必须负责完成题目的一个部分,并和其他组员讨论协作,共同完成任务书规定的任务的设计、实现和调试。
每个学生必须独立完成自己的课程设计说明书,说明书中除把整个项目作为背景,描述整体设计思想外,要重点介绍自己负责设计实现的部分,介绍自己的设计思路、实现过程、问题处理和收获新得。
考核办法如下:考勤20% ;课程设计说明书50%;答辩30% 。
课程设计结束后,每个学生必须提交书面的课程设计说明书和电子版。
每个小组以小组为单位提交课程设计说明书(书面版和电子版)、最终的可执行程序的全部代码(包括测试数据)。
版本:第二版制定人:孙高飞制定时间:2011-3-15计算机科学与信息工程学院制计算机科学与信息工程学院制《数据结构》课程设计任务书计算机科学与信息工程学院制《数据结构》课程设计任务书计算机科学与信息工程学院制计算机科学与信息工程学院制。
数据结构课设题目及要求
《数据结构》课程设计题目题目—:一、课题名称:哈夫曼编码算法的实现二、课题来源:课程组自拟三、课题类型:综合型四、目的意义:1.了解哈夫曼算法的思路核心,掌握哈夫曼算法在压缩算法中的基本应用2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:用户输入任意的字符串,系统自动给出每个字符的哈夫曼编码和对应的哈夫曼树2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.题目二:一、课题名称:排序算法的比较二、题目来源:课程组自拟三、课题类型:综合型四、目的意义:1.掌握各种排序算法(直接插入排序、冒泡排序、快速排序、简单选择排序)的思路核心,比较它们之间的优劣2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:系统首先生成1000个随机整数,然后分别用不同的排序方法对其进行升序排序,给出每种方法的比较次数或所用时间2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.题目三:一、课题名称:最小生成树的构建二、课题来源:课程组自拟三、课题类型:综合型四、目的意义:1.了解最小生成树的构建算法,掌握高级语言的编程方法2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:用户任意给出—个网,系统画出该图,并给出对应的最小生成树2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.七、评分标准:程序的正确性:40%程序的可读性:15%界面的友好性:15%课程设计报告:20%工作态度:10%八、课程设计报告的基本格式设计报告的基本内容至少包括封面、正文、参考文献三部分。
2019秋季学期《数据结构与算法》课程设计题目及要求--1217
长春理工大学计算机科学技术学院2019秋季学期数据结构课程设计一、目的:巩固数据结构与算法课内知识,锻炼团队协作能力,提高对数据结构整体的理解和综合运用能力。
二、要求:(1)完成题目方式题目任选,组队或独立完成,组队原则上每组不超过3人,队内分工明确。
每组上交一个程序代码压缩包,以班号+学号命名;每人独立撰写一份设计报告,详细叙述自己负责的部分工作(利用了什么数据结构知识,报告中不要出现长篇代码),流程图等图表需规范;程序设计语言任意。
(2)考核方式成绩由报告+程序构成。
在最后一次课上主动答辩的组,将给与加分考虑;完成加*的题目,将给与加分考虑。
三、时间:第17周(数据科学与大数据技术专业);第18周(计算机科学与技术专业)四、地点:实训大楼实验室五、指导教师:李华、武岩、张婧、权巍六、题目:(1)建通讯录设计内容:设计散列表实现通讯录查找系统,使得平均查找长度不超过2,完成相应的建表和查表程序。
设计要求:(1)设每个记录有下列数据项:用户名、电话号码、地址;(2)从键盘输入各记录,分别以姓名为关键字建立散列表;(3)假设人名为中国人姓名的汉语拼音形式。
待填入哈希表的人名共有30个,取平均查找长度的上限为2;(4)构造哈希函数,可采用除留余数法,采用二次探测再散列法解决冲突;(5)查找并显示给定电话号码的记录;(6)通讯录信息保存。
(2)哈夫曼编码与译码设计内容:(1) 输入一个文本,统计各字符出现的频度,输出结果。
(2) 使用字符出现的频度构造哈夫曼树。
(3 ) 确定和输出各字符的哈夫曼码。
(4) 输入一个由0和1组成的代码序列,翻译并输出与之对应的文体,若最后的代码子序列不能译为文本,则输出相关信息。
(3)乡卫生所选址设计内容:某乡有A,B,C,D,E 5个村庄,如下图所示,图中边上的权值表示两村之间的距离。
现要在5个村庄中选某个村庄建立卫生所。
其选址应使得距离卫生所最远的村庄到卫生所最近。
数据结构课程设计题目要求2010-12-22
数据结构课程设计题目要求2010-12-22第一篇:数据结构课程设计题目要求2010-12-221.二叉树的遍历和应用问题描述:以二叉链表表示二叉树,在此基础上实现对二叉树的遍历和应用。
要求:创建二叉树输出二叉树二叉树的先序、中序、后序遍历二叉树的按层遍历统计二叉树的叶子结点、计算二叉树的深度设计主函数测试该类。
2.猴子选大王(约瑟夫环)问题描述:一堆猴子都有编号,编号是1,2,3….m,这群猴子(m 个)按照1-m的顺序围坐一圈,从1开始数,没数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
输入数据:输入m,n。
(m,n为整数,且n 问题描述:设计一个利用赫夫曼算法的编码和译码系统。
要求:从键盘给出字符及频度,建立赫夫曼树并输出; 4.图的建立及输出问题描述:建立图的存储结构(图的类型可以是有向图,无向图;有向网,无向网,任选一组或以上),能够输入图的顶点和边的信息,并存储到相应的存储结构中,而后输出图的邻接矩阵。
5.常用排序算法的实现问题描述:对10000个随机整数,利用插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序,归并排序等方法进行排序,并统计每一种排序上机所花费时间并列出统计表。
数据的输入:整数数据的输出:递增6.顺序结构、动态链表结构下的一元多项式的加法,减法的实现问题描述:先建立一元多项式Am(x)和Bn(x)要求:完成两个多项式的加法,减法;按照降幂排列显示。
7.二叉平衡树问题描述:从一颗空树开始创建,保证数的有序性,同时要针对数的平衡性做些微调。
最终要把创建的二叉排序树转换成二叉平衡树。
基本要求:创建(插入,调整),输出。
参考资料:1.《数据结构(C语言版)》严蔚敏、吴伟民主编清华大学出版社2004.11 2.《数据结构课程设计案例精编(用C/C++描述)》,李建学等编著,清华大学出版社2007.2 3.《数据结构:用面向对象方法与C++语言描述》,殷人昆主编,清华大学出版社2007.6 课程设计报告的规范要求: 1.需求分析进行需求分析,确定每个模块的功能要求。
《数据结构与算法设计》实验大纲及实验内容详细要求
《数据结构与算法设计》实验大纲及实验内容详细要求一、课程编号:040039二、课程类型:必修适用专业:通信工程实验学时:32学时三、本课程的地位、作用与任务数据结构课程的目标是使学生掌握数据的基本的逻辑结构和存储结构、一些典型的数据结构算法及程序设计方法,要求学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法,要求具备算法分析的基本技术和能力,并培养良好的程序设计风格,掌握开发复杂、高效程序的技能。
在实验前要预习或者自行补充部分学时,同时进行部分代码准备,实验后要认真完成实验报告。
四、课程基本要求1.学生应根据每个实验的任务和教师所提的要求,带C语言教材和课程教材。
2.完成指定的实验任务,保存源代码并输出、记录实验结果。
3.实验结束后按时提交实验报告,对于未完成部分,应该利用课余时间补充完成。
五、实验安排本实验课程共32学时,五个实验(单元),分16次实验,每次2学时。
实验一:C程序编程、调试实验1、实验学时:4学时(学生堂下自行加4学时)2、实验目的:1)巩固复习前期所学C语言的基本数据类型和自定义数据类型等知识点,强化学习数据结构语言和编程基础。
2)巩固复习前期所学C语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。
3)能够较熟练调试程序3、实验内容:1)学生信息的显示。
具体要求如下:●定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址);●设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结构体类型;●设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不少于5人)。
2)输入若干个整数存储到数组元素值,然后按输入顺序进行逆置存储,最后打印出逆置后的元素值。
要求用指针和动态内存分配方法实现。
例如输入:1023045,逆置后显示为:5430210。
3)编写扑克牌发牌程序。
在VC++的调试环境下观察数据存储位置、存储数据的变化、数据之间的逻辑次序、物理存储位置次序。
数据结构与算法课程设计报告要求
四、课程设计评分标准:
1.程序设计质量(占40%)
2.课程设计报告质量(占40%)
3.平时(占20%)
附:课程设计报告格式。
1、需求分析说明(说明为何做该题目,程序最终需要完成的功能,从其需求上说明。
)
2、总体设计(从总体上说明该题目的框架,用文字和图表说明)
3、详细设计(对数据结构进行详细的描述,设计好相应数据结构以及其操作功能,要求用
C++设计成类;用文字详细描述每个功能实现的算法及思路。
)
4、实现部分(主要描述程序调试过程,报告中只要贴入核心代码)
5、程序测试(给出各测试数据及其对应的测试结果,和程序运行图贴于此处。
并能对程序运
行结果分析之,且需提出改进算法。
)
6、总结
7、自需要提交电子文档:学号_报告.doc 学号_源代码.rar或者学号_源代码.zip
****课程设计报告题目:
学生姓名:
学号:
班级:
指导教师:
201 年月日。
数据结构课与算法课程课程设计_高校社团管理设计,二叉树的应用(附全代码)
目录引言 (6)1 需求分析 (6)任务与分析 (6)测试数据 (7)2 概要设计 (7)ADT描述 (7)程序模块结构 (8)各功能模块 (8)3 详细设计 (9)结构体概念 (9)初始化 (9)插入操作 (9)插入社团: (9)创建 (11)数据结构课与算法课程设计任务书学院名称:课程代码:__ _____专业:年级:一、设计题目高校社团管理二、主要内容在高校中,为了丰硕学生的业余生活,在学校的帮忙下,会成立许多社团,少则几个,多则几十个。
为了有效管理这些社团,要求编写程序实现以下功能:具体操作:1.画出社团结构的二叉树2.给出数据结构应考考虑树中结点如何表示社团和成员3.实现下列操作(1)初始化存储社团和会员的二叉树;(2)成立以二叉链存储的社团;(3)查询:输入社团名称或社团中团员姓名,在二叉树中进行查找,若找到则显示相应信息;不然显示未找到信息;(4)修改:输入社团名称或社团中团员姓名,修改找到的社团或会员的相关信息;(5)插入:输入新的社团名称,在二叉树中增加一个社团;(6)会员插入:输入新的会员姓名,在指定的社哮中增加一个会员;(7)统计:统计每一个社团中的成员数,并显示结果;(8)删除:输入会员,删除相关社团中指定的会员;(9)社团删除:输入社团名称,删除指定的社团。
三、具体要求及应提交的材料用C/C++语言编程实现上述内容,并按数学与运算机学院对课程设计说明书规范化要求,写出课程设计说明书,并提交下列材料:1)课程设计说明书打印稿一份2)课程设计说明书电子稿一份;3)源程序电子文档一份。
四、主要技术线路提示社团管理部门、社团和社团成员组成了完整的二叉树,二叉树选用二叉链表作为存储结构。
五、进度安排按教学计划规定,数据结构与算法课程设计为2周,其进度及时刻大致分派六、推荐参考资料[1] 严蔚敏,吴伟民.数据结构.清华大学出版社出版。
[2] 严蔚敏,吴伟民. 数据结构题集(C语言版) .清华大学出版社.2003年5月。
数据结构课程设计题目要求
一、课程设计要求:1.每人一题,同学之间可以协商更换,但是不允许两人或两人以上的同学完成同一题目。
2.分析设计要求,给出解决方案,建立必要的数据结构,然后设计总体流程(包括界面)、详细设计必要的算法,并最终显示结果。
3.提交设计报告,包括设计思想流程、主要数据结构、程序清单、运行结果、设计心得、参考资料等(报告格式见附件)。
4.严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
5.所提交源程序应是能够运行通过的完整程序。
6. 成绩标准:优秀,100-90;良好,89-80;中等,79-70;及格,69-60;不及格,60以下。
7. 请借助互联网检索所需相关技术,尤其是要积极借鉴开源代码,但一定要调试到可以运行演示,否则按复制论处。
二、设计题目1、运动会分数统计问题描述:参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
哪些项目取前五名或前三名由学生自己设定。
写一个统计程序产生各种成绩单和得分报表。
基本要求:(1)各项目结束时,输入前三名或前五名的项目编号、运动员姓名、校名和名次(成绩);(2)产生各学校的成绩单,内容包括每个学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分,并统计各学校总分;(3)可以按学校编号、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;(5)可以按项目编号查询取得前三或前五名的学校。
2、集合的并、交和差运算的程序问题描述:编制一个能演示执行集合的并、交和差运算的程序。
基本要求:⑴集合的元素限定为小写字母符[′a′….′z ′],集合的大小n<27。
⑵集合输入的形式为一个以"回车符"为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。
1秋数据结构与算法课程设计题目要求_
1.高校社团管理在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。
为了有效管理这些社团,要求编写程序实现以下功能:1. 社团招收新成员;2 .修改社团相应信息3.老成员离开社团4.查询社团情况;5.统计社团成员数;2. 简单文本编辑器设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中<这个缓冲区将作为一个类的内嵌对象实现。
缓冲区中的每行文本是一个字符申,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符申操作的编辑命令。
基本要求:包含如下命令列。
可用大写或小写字母输入。
R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行;W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。
I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。
D:删除当前行并移到下一行;F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标申的第一行;C:将用户请求的字符申修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。
Q:退出编辑器,立即结束;z n I 11 11 I 11H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。
N:当前行移到下一行,也就是移到缓冲区的下一行;P:当前行移到上一行,也就是移到缓冲区的上一行;B:当前行移到开始处,也就是移到缓冲区的第一行;E:当前行移到结束处,也就是移到缓冲区的最后一行;G:当前行移到缓冲区中用户指定的行;V:查看缓冲区的全部内容,打印到终端上。
3. 电话客户服务模拟一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的自增1(分钟)直到达到指定时间为止。
在时钟的每个”时刻”,就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模拟服务将从队列中取出下一个电话(如果有的话)继续开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、学生成绩管理1.问题描述要求以学生成绩管理业务为背景,设计一个“学生成绩管理系统”程序。
对于学校来讲,学生成绩管理系统是不可缺少的组成部分,主要是对学生成绩资料的录入、浏览、插入和删除等基本功能的实现。
2.设计要求编制一个学生成绩管理程序。
设学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有学号和各门功课的成绩。
设每位学生学习数学、英语、语文、物理和化学5门课程。
3.数据结构本课程设计使用单链表作为实现该问题的数据结构。
4.问题分析程序设计一般由算法和数据结构两部分组成。
管理学生的成绩适合用单链表,方便随时插入和删除学生记录,实现动态管理。
一个学生作为一个结点,该结点类型为结构体,结构体中的域表示学生的属性。
每个结点除了存放属性外,还存放指向后继结点的指针。
二、马踏棋盘1.问题描述设计一个国际象棋的马踏遍棋盘的演示程序。
2.设计要求(1)程序的输入:设计程序按要求输入马的初始位置(相应的坐标)。
(2)程序的输出:程序的设计完成后应给出马从初始位置走遍棋盘的过程,并按照求出的行走路线的顺序,将数字1,2,…,64依次填入一个8*8的方阵并输出。
3.数据结构本课程设计使用的数据结构是栈,利用顺序栈来实现。
4.问题分析所谓马踏棋盘问题,是指将马随机放在国际象棋的8*8棋盘的某个方格中,马按走棋规则(马走日子)进行移动。
要求每个方格只进入一次,走遍棋盘上全部64个方格。
由用户自行指定一个马的初始位置,求出马的行走路线,并按照求出的行走路线的顺序,将数字1,2,…,64依次填入一个8*8的方阵并输出。
从用户给出的初始位置开始判断,按照顺时针顺序,每次产生一个新的路点,并验证此路点的可用性,需要考虑的是当前路点是否超出棋盘范围和此路点是否已经走过,如果新路点可用,则入栈,并执行下一步,重复进行如上步骤,每次按照已走路点的位置生成新路点。
如果一个新路点的可扩展路点数为0,进行回溯,直到找到一个马能踏遍棋盘的行走路线并输出。
三、停车场管理1.问题描述设停车场内是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在其之后开入的车辆必须先退出车场让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在其离开停车场时必须按其停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
2.设计要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。
输入1,表示车辆到达;输入2,表示车辆离开;输入3,表示显示出停车场内及便道上的停车情况;输入4,表示退出系统。
车辆到达操作,需输入汽车汽车牌照号码及到达的时刻;车辆离开操作,需输入汽车在停车场的位置及离开的时刻,且应输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。
3.数据结构本课程设计使用的数据结构是顺序栈和链式队列。
4.问题分析模拟停车场车辆进出时需要输入车辆的信息,包括车牌号码及进入与离开的时刻,因此可以定义一个时间结点类型和一个车辆信息结点类型,在顺序栈及链式队列中定义结点类型为车辆信息结点类型。
四、大整数计数器1.问题描述实现大整数(200位以内的整数)的加、减、乘、除运算。
2.设计要求设计程序实现两个大整数的四则运算,输出这两个大整数的和、差、积、商及余数。
3.数据结构本课程设计采用顺序串来实现。
4.问题分析由于整数数据存储位数有限,因此引入串的概念,将整型数据用字符串进行存储,利用字符串的一个字符存储大整数的一位数值,然后根据四则运算规则,对相应位依次进行相应运算,同时保存进位,从而实现大整数精确的运算。
具体设计思路如下:(1)计算大整数加法时,采用数学中列竖式的方法,从个位(即字符串的最后一个字符)开始逐位相加,超过或达到10则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。
(2)计算大整数减法时,首先调用库函数strcmp判断这两个大整数是否相等,如果相等则结果为0,否则用compare函数判断被减数和减数的大小关系,进而确定结果为正数还是负数,然后对齐位依次进行减法,不够减则向前借位,直至求出每一位减法之后的结果。
(3)计算大整数乘法时,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
(4)计算大整数除法时,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。
五、魔方阵1.问题描述魔方阵是一个古老的智力问题,它要求在一个m*m的矩阵中填入1~m2的数字(m为奇数),使得每一行、每一列、每条对角线的累加和都相等。
2.设计要求(1)输入魔方阵的行数m,要求m为奇数,程序对所输入的m作简单的判断,如m 有错,能给出适当的提示信息。
(2)实现魔方阵。
(3)输出魔方阵。
3.数据结构本课程设计使用的数据结构是数组。
4.问题分析解魔方阵问题的方法很多,这里采用如下规则生成魔方阵。
(1)由1开始填数,将1放在第0行的中间位置;(2)将魔方阵想象成上下、左右相接,每次往左上角走一步,会有下列情况:1)左上角超出上方边界,则在最下边相对应的位置填入下一个数字;2)左上角超出左边边界,则在最右边相对应的位置填入下一个数字;3)如果按上述方法找到的位置已填入数据,则在同一列下一行填入下一个数字。
六、电文的编码和译码1.问题描述从键盘接收一串电文字符,输出对应的Huffman编码。
同时,能翻译由Huffman编码生成的代码串,输出对应的电文字符串。
2.设计要求(1)构造一棵Huffman树。
(2)实现Huffman编码,并用Huffman编码生成的代码串进行译码。
(3)程序中字符和权值是可变的,实现程序的灵活性。
3.数据结构本课程设计使用结构体数组作为数据结构来存储哈弗曼树及其编码。
4.问题分析在电报通信中,电文是以二进制代码传送的。
在发送时,需要将电文中的字符转换成二进制代码串,即编码;在接收时,要将收到的二进制代码串转化为对应的字符序列,即译码。
我们知道,字符集中的字符被使用的频率是非均匀的。
因此,若对某字符集进行不等长编码的设计,则要求任意一个字符的编码都不是其他字符编码的前缀,这种编码称做前缀编码。
由Huffman树求得的编码是最优前缀码,也叫Huffman编码。
给出字符集和各个字符的概率分布,构造Huffman树,将Huffman树中每个分支节点的左分支标0,右分支标1,将根到每个叶子路径上的标号连起来,就是该叶子所代表字符的编码。
七、家族关系查询系统1.问题描述建立家族关系数据库,实现对家族成员关系的相关查询。
2.设计要求(1)建立家族关系并能存储到文件中。
(2)实现家族成员的添加。
(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。
3.数据结构本课程设计使用的数据结构有树状结构和队列。
树状结构采用三叉链表实现,队列采用链式队列实现。
4.问题分析(1)结点基本数据结构的定义和链队列的基本操作;(2)建立家族关系并存入文件;(3)建立家族关系树;(4)打开一个家族关系;(5)在家族关系树中查找一个成员是否存在;(6)向家族中添加一个新成员;(7)查找一个家族的鼻祖;(8)查找一个成员的所有祖先路径;(9)查找一个成员的双亲;(10)确定一个成员是第几代;(11)查找一个成员的兄弟;(12)查找一个成员的堂兄弟;(13)查找一个成员的所有孩子;(14)查找一个成员的子孙后代。
八、地铁建设问题1.问题描述某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线,使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。
2.设计要求(1)从包含各辖区的地图文件中读入辖区名称和各辖区间的直接距离。
(2)根据读入的各辖区的距离信息,计算出应该建设哪些辖区间的地铁路线。
(3)输出应该建设的地铁路线及所需建设的总里程信息。
3.数据结构本课程设计使用的数据结构是无向图,无向图采用邻接矩阵作为存储结构。
4.问题分析根据问题的描述,需要求无向图的最小生成树。
九、安排教学计划1.问题描述学校每个学期开设的课程是有先后顺序的,如计算机专业:开设《数据结构》课程之前,必须先开设《C语言程序设计》,这种课程开设的先后顺序关系称为先行、后继课程关系。
现在需要根据给定的课程信息及课程之间的先行、后继关系,合理安排出开设各门课程的先后顺序。
2.设计要求(1)对输入的课程先行、后继关系如果存在回路关系时应提示出现错误。
(2)根据读入的课程信息及其先行、后继关系,计算出安排教学计划的序列。
(3)输出教学计划的安排顺序或给出错误提示信息。
3.数据结构本课程设计使用的数据结构是有向图和栈。
采用邻接表作为有向图的存储结构来实现,栈选用顺序栈。
4.问题分析根据问题的描述,需要对输入的有向图进行拓扑排序。
十、校园导航1.问题描述当我们参观某校园时,就会遇到这样一个问题:从当前所处的位置出发去校园另外某个位置,要走什么样的路线距离最近(或最省时)?本课程设计的实例在给出校园各主要建筑的名称信息及有路线连通的建筑之间的距离(或行进时间)的基础上,利用校园导航系统计算出给定的起点到终点之间距离最近(或行进时间最短)的行进路线。
2.设计要求(1)从地图文件中读取校园主要建筑信息及建筑间的距离(或行进时间)信息。
(2)计算出给定的起点到终点之间的距离最近(或行进时间最短)的行进路线。
(3)输出该路线(包含路过哪些建筑)及其总距离(或总行进时间)。
(4)若输入错误,则给出提示信息。
3.数据结构本课程设计使用的数据结构是有向图,采用邻接矩阵作为有向图的存储结构。
4.问题分析根据问题的描述,需要求出有向图中给定顶点偶对之间的最短路径,可以利用迪杰斯特拉算法来求解实现。