数据结构与算法课程设计计划书-2013-2014-2(12级)-终版_第1页
数据结构与算法课程设计计划书-2013-2014-2(12级)-终版_第2页
数据结构与算法课程设计计划书-2013-2014-2(12级)-终版_第3页
数据结构与算法课程设计计划书-2013-2014-2(12级)-终版_第4页
数据结构与算法课程设计计划书-2013-2014-2(12级)-终版_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机科学与工程学院集中性实践教学计划书( 2013-2014 学年第 二 学期)课程名称: 数据结构与算法课程设计 专 业:计算机科学与技术 软件工程、网络工程班 级:计算机科学与技术121-6软件工程121-4网络工程121-4课程负责人: 李锡祚 指导教师分配情况:专业指导教师计算机科学与技术李威 孟佳娜 张恒博 李笑牛 刘爽 郑海旭 王巍软件工程王玲芬 魏巍 王存睿 赵戈网络工程李锡祚 郭海 于艳丽 王波教学起止周:第 1 至 3 教学周一、 教学目的:使学生能够根据数据对象的特性,合理的组织数据并能综合运用数据结构与算法基本知识和程序设计基本知识解决实际问题,培养基本的、良好的程序设

2、计技能。二、 主要阶段、内容、时间及地点安排(以天为单位计):.1、阶段与内容第1阶段:指导教师布置设计任务并解析有关题目的设计指标和任务的具体内容,学生选择题目,明确问题描述和要求,查阅资料(要求:各班长或学习委员将本班的选题表交给辅导教师,一人一题,每道题的选择人数原则上不能超过3人,第一天课程设计结束后,每名学生都要确定题目)(1天)。第2阶段:明确题目要求、确定数据结构、设计算法,编写程序、调试程序、测试程序(11天)(要求:准备足够的测试数据,对软件进行测试与调试。)。第3阶段:完成设计任务,准备验收、答辩(1天);第4阶段:答辩(上机演示,回答教师提问)(1天);第5阶段:撰写课程

3、设计报告(2天)。2、地点与时间 地点:金石滩校区计算机科学与工程学院实验中心计科121-2班: F401、计科123-4班F405、计科125-6班F409软件工程121-2班: F205、软件工程123-4班: F209网络工程121-2班: F303、网络工程123-4班: F307时间:上午8:3011:20 下午1:304:20计算机科学与技术:课 程 设 计 上 机 时 间 表周一周二周三周四周五周六第一周下午上午上午、下午上午第二周下午上午上午、下午上午第三周下午上午上午、下午上午(验收)软件工程: 课 程 设 计 上 机 时 间 表周一周二周三周四周五第一周上午、下午上午下午上

4、午3-4班、下午1-2班第二周上午、下午上午下午上午3-4班、下午1-2班第三周上午、下午上午下午上午3-4班、下午1-2班(验收)网络工程: 课 程 设 计 上 机 时 间 表周一周二周三周四周五第一周上午上午、下午下午上午第二周上午上午、下午下午上午第三周上午上午、下午下午上午(验收)三、课程设计题目及具体要求:1. 舞伴问题问题描述:一班有m个女生、n个男生(m不等于n), 举办一场舞会。男女生分别编号坐在舞池两边的椅子上,每曲开始时, 依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。基本要求:输入男、女学生的姓名、性别,由程序自

5、动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。原始数据和结果数据要保存到文件中。测试数据:分别选择男生多于女生、女生多于男生、男女生相等的三组测试数据。提高要求:计算出任意一位男生(编号为X)和任意一位女生(编号为Y), 在第K曲配对跳舞的情况。考核要求:(1) 用队列表示男、女学生,能够从文件中读取数据,文件中至少包括三组测试数据,分别为男生多于女生、女生多于男生、男女生人数相等。顺序输入舞曲的编号,对于每支舞曲,输入配对跳舞的男、女学生信息,并把本支舞曲的配对情况保存到文件中。完成上述任务,成绩为及格。(2) 在完成考核要求(1)的基础上

6、,直接输出第K支舞曲的配对情况,能够处理异常,如文件空、只有男生或只有女生等,成绩为中等。2. 成绩管理问题描述:给出n个学生的考试成绩表,成绩表包括学生的学号、姓名、考试成绩(高等数学、英语、物理),设计一个简单的成绩管理程序。基本要求:(1)建立成绩表,能够插入、删除、修改学生的成绩记录;(2)按任一单科成绩排序;(3) 计算每名学生的平均成绩;(4) 统计任一单科成绩不及格的学生人数, 输出不及格人数及不及格的学生名单(5) 根据平均成绩将成绩表按由高到低的次序排列,统计每名学生在考试中获得的名次,分数相同的为同一名次,按名次输出成绩表。(6) 成绩表保存在文件中, 可以从文件读取数据。

7、测试数据:学生可以根据自己班级的考试成绩单,任意截取一部分做为测试数据。提高要求:成绩表用链式结构表示,实现上述全部要求。考核要求:(1) 用顺序结构表示成绩单,完成任务(1)(6),成绩为及格;(2) 用链表表示成绩单,完成任务(1)(6),且软件容错能力强,成绩为中等。3. 文学研究助手(*)问题描述:文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统,称为“文学研究助手”。基本要求:英文小说存于一个文本文件中,待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。文本文件名和待统计的词汇从键盘输入,程序的输出结果是每个

8、词的出现次数和出现位置所在行的行号,格式自行设计, 结果保存到文件中。提高要求:包含是否区别大、小写两种匹配模式,且让用户选择。测试数据:以某个C/C+/JAVA源程序模拟英文小说,相应语言的保留字集作为待统计的词汇集。考核要求:(1) 用线性结构表示文本文件和待统计的单词,动态分配内存,完成基本要求的功能,成绩为中等。(2) 在完成基本要求的基础上,完成提高要求,且用户界面友好,能够处理异常,成绩为良好。4. 哈希表的设计与实现(*)问题描述:针对某个单位电话号码簿,设计一个哈希表,并完成相应的建表和查表程序。基本要求:设每个记录有下列数据项:电话号码、用户名、住址。从键盘输入各记录,以用户

9、名为关键字建立哈希表,哈希函数用除留取余数法构造,采用线性探测法解决冲突。可以插入、查找、删除并显示给定用户名的记录,并计算查找长度, 哈希表保存到文件中,并能从文件中读取数据。 测试数据:取某个单位电话号码簿中的100个以上记录。提高要求:(1) 将电话号码薄以文件形式保存到盘上,能够按用户名和电话号码两种形式建立哈希表并实现插入、查找、删除表中元素的功能。(2) 对于相同的哈希函数,采用两种或两种以上的处理冲突的方法,如线性探测法和拉链法,比较不同的处理冲突的方法平均查找长度的变化。测试时,采用同一组测试数据,分别用不同的方法处理冲突,记录并输出各自的平均查找长度。(3) 设计图

10、形用户界面考核要求:(1) 能够从键盘和文件输入原始数据,能够把变化的哈希表重新写回到文件中,同时完成其它的基本要求,成绩为中等。(2) 达到提高要求中的(1)或(2),成绩为良好。(3) 用C+或MFC实现图形用户界面,成绩为良好。5. 安排教学计划(*)问题描述:大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两个学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排上必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课程恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。基本要求:输入

11、参数包括学期总数,一学期的学分上限,每门课程的课程号、学分和直接先修课的课程号;允许两种策略,一是使学生在各学期的学习负担尽量均匀,二是使课程尽量集中在前几个学期;若根据给定的条件问题无解,则报告适当的信息,否则输出教学计划表(如每个学期所开设的课程的课程号及学分),同时将教学计划输出到用户指定的文件中。教学计划的表格格式自行设定, 可以从键盘读取数据也可以从文件读取数据, 结果保存到文件中。测试数据:学期总数为6,学分上限为10,该专业共开设12门课。以12级某专业必修课与选修课为例,选择12门课程及相应学分,制定一个表明各门课程先后约束关系的有向图。提高要求:产生多种不同的方案,并使方案之

12、间的差异尽可能地大。考核要求:(1) 达到基本要求,成绩为良好。但是,如果不能把结果保存到文件中,成绩为不及格。(2) 在达到基本要求的基础上,产生3种以上的解决方案,且用户界面友好,成绩为优秀。附:一个课程先后约束关系的有向图C1C2C3C4C5C6C7C8C9C10C11C12课程号 课程名 学分 考核方式 学时 C1 计算机组织与结构 4 S(考试) 64C2 高等数学 6 S 96C3 程学设计基础 3 S 48C4 面向对象方法 4 S 64C5 数据结构与算法 4.5 S 72C6 动漫与数码娱乐基础 3 C(考查) 48C7 windows 编程 3 S 48C8 游戏技术基础

13、3 C 48C9 图形程序设计 3 S 48C10 操作系统 4 S 64C11 计算机网络 3 S 48C12 企业级软件开发 4 C 646. 计算表达式的值(*)问题描述:对于给定的一个表达式,表达式中可以包括常数、算术运行符(“+”、“-”、“*”、“/”)和括号,编写程序计算表达式的值。基本要求:从键盘输入一个正确的中缀表达式,将中缀表达式转换为对应的后缀表达式,并计算后缀表达式的值。测试数据:任意选取一个符合题目要求的表达式。提高要求:(1)对于表达式中的简单错误,能够给出提示。(2)不仅提示错误,也能给出错误信息。(3)表达式中可以包括单个字母表示的变量。(4)能够处理多种操作符

14、。(5)实现包含简单运算的计算器。(6)实现一个包含简单运算和函数运算的计算器。考核要求:(1) 表达式中的数据可以是整数或小数,达到基本要求,成绩为良好。但是,如果仅能处理个位数,成绩为及格;如果仅能处理整数,成绩为中等。(2) 在达到基本要求的基础之上,如果达到提高要求的2项或以上,成绩可以为优秀。鼓励设计图形用户界面。7. 设计Huffman 编码器与解码器(*)问题描述:利用哈夫曼编码进行信息通讯可以大大提高信道的利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码;在接受端将传来的数据进行译码。对于双工信道(即可以双向传输信息的信道),每端

15、都需要一个完整的编/译码系统。试为这样的信息收发站编写一个哈夫曼码编码/译码系统。基本要求:根据某字符文件统计字符出现频度,构造Huffman 树,编制Huffman编码,并将给定字符文件编码,生成编码文件;再将给定编码文件解码,生成字符文件(要求按二进制位表示编码)。提高要求:改进Huffman编码,产生两种以上的编码方案,对同一组测试数据,用不同的编码方案编码,从文件长度、算法复杂度等方面进行比较。测试数据:找一个英文文档文件或中文文档文件。考核要求:(1) 对原文件编码后,保存到新建文件中,将原文件与新文件比较,如果新文件长度大于原文件,则编码失败,成绩不及格。如果达到题目的基本要求,成

16、绩为良好。(2) 达到提高要求,成绩可以为优秀。8. 银行业务模拟(*)问题描述:设银行有四个服务窗口,一个等待队列, 每个窗口均可以办理存款、取款、挂失、还贷等业务,每种业务所需的服务时间不同,客户到达银行后,先到打号机上打号,号票上包括到达时间、编号和需要办理的业务,然后在银行内等候, 当任一服务窗口空闲时,处理等候客户中排在最前面的客户的业务。写一个上述银行业务的模拟系统,通过模拟方法求出客户在银行内逗留的平均时间和每个窗口办理的客户数及办理的每种业务数。基本要求:每个客户到达银行的时间和需要办理的业务随机产生,输出一天客户在银行的平均逗留时间和每个窗口每天办理的客户数和每种业务数。提高

17、要求:设计图形用户界面,模拟中国银行真实的打号机操作界面,当用户选择一种业务后,要提示用户排在前面的人数。测试数据:营业时间为8小时,其它模拟量自行设定。考核要求:(1) 用队列实现。(2) 数据结构选择合理,达到题目的基本要求,成绩为良好。(3) 达到提高要求,用户界面友好,能够处理异常,成绩可以为优秀。9. 航空订票系统(*)问题描述: 航空客运订票的业务活动包括:查询航线、客票预订、办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。基本要求: 每条航线涉及的信息包括:航班号、起飞城市、终到城市、中转城市(可选项)、起飞时间、到达时间、机型、飞行班期(星期

18、几)、乘员定额、余票量,已订票的客户名单(包括姓名、订票量、舱位等级)、乘客信息(身份证号、姓名等)、票价等。系统实现的功能:() 查询功能: 航班查询:根据出发地、终到地、出发时间查询,或航班号查询等。输出信息包括:航班号、出发地、终到地、星期几飞行,最近一天航班的日期和余票额;按航班号查询时,要求采用二分查找法,航班号是字母、数字混编的,因此需要首先采用基数排序进行排序。 订票人查询:输入订票人身份证号码或姓名,查询订票人详细信息并输出。 乘客查询:输入乘客的身份证号码或姓名,查询乘客的详细信息并输出。 ()录入功能航班信息录入:录入航班的相关信息。订票人信息录入:录入订票人姓名、身份证号

19、、联系电话、email等信息。订票:首先选择航班,然后验证订票人身份,最后输入详细的乘客信息并进行保存。取消订票:取消订票信息。()修改功能 修改乘客信息:将查找到的乘客信息,进行修改,然后进行保存。 修改订票人信息:将查找到的订票人的信息进行修改然后进行保存。 修改航班信息:将查找到的航班信息进行修改后保存。() 删除功能 删除乘客信息:将查找到的乘客信息,进行删除。 删除订票人信息:将查找到的订票人的信息进行删除。 删除航班信息:将查找到的航班信息进行删除。()航班推荐功能:要求按最省钱和最省时间两种方式对顾客进行推荐,要求如果有中转站要给出详细的出发到终点的路线,中转时需包括候机的时间。

20、 提高要求:() 设计图形用户界面。() 增加会员管理功能,包括保存常旅客、积分管理、优惠信息通知等,也可自行设计其它功能。测试数据:至少选择50组数据(测试数据保存在文件中),包括航班号、起飞地、目的地、起飞时间、到达时间、最大乘客数、票价、飞行时间、经停等信息,其他信息自行设定。考核要求:() 数据结构选择合理,达到题目的基本要求,成绩为良好。() 达到提高要求,用户界面友好,能够处理异常,成绩可以为优秀。10. 最小满覆盖问题(*)问题描述:在8×8的国际象棋棋盘上,如果在放置若干个马以后,使得整个棋盘的任意空位置上所放置的棋子均能被这些马吃掉,则称这组放置为棋盘的一个满覆盖。

21、若去掉满覆盖中的任意一个棋子都会使这组放置不再是满覆盖,则称这一满覆盖为极小满覆盖。设计程序完成如下功能。 基本要求:求解一个极小满覆盖,按照矩阵形式给出,用特殊符号表示马,并验证你的方法满足极小满覆盖。提高要求:(1) 得到最优满覆盖问题,并能证明。能画出棋盘的图形形式,或在其上动态演示试探过程。(2) 程序能方便地移植到其他规格的棋盘上,如16×16等。 提示:国际象棋中马吃其他棋子的方式为马走3×2格的对角线,有点像中国象棋中的马走日,没有“蹩马腿”的规定。可以用这个方法判定走棋是否正确:如果马在白格,走一步后一定落在黑格。测试数据:8*8的矩阵。考核要求:达到基本要

22、求,成绩为良好;达到提高要求(1)和(2)成绩为优秀。11. 迷宫游戏(*)问题描述:程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向健操纵老鼠在规定的时间内走到粮仓处。基本要求:(1) 老鼠形象可以辨认,可用键盘操纵老鼠上下左右移动;(2) 迷宫的墙足够结实,老鼠不能穿墙而过;(3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,并给出一条路径,否则提示失败。提高要求:(1) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;(2) 增加闯关和计分功能;(3) 找出走出迷宫的所有路径,以及最短路径。测试数据:要求用10

23、*10及以上的方阵或长方阵。考核要求:达到基本要求(1)(3),成绩为良好;达到提高要求(1)(3)成绩为优秀。12. 程序源代码的相似性(*)问题描述:对于两个C+语言的源程序代码,用哈希表的方法分别统计两个程序中使用C+语言关键字的情况,并最终按定量的计算结果,得出两个程序的相似性。     基本要求:建立C+语言关键字的哈希表,统计在每个源程序中C+关键字出现的频度, 得到两个向量X1和X2,通过计算向量X1和X2的相对距离来判断两个源程序的相似性。例如:     关键字: Void Int For Char if else while do br

24、eak class程序1关键字频度: 4 3 0 4 3 0 7 0 0 2程序2关键字频度: 4 2 0 5 4 0 5 2 0 1 X1=4,3,0,4,3,0,7,0,0,2X2=4,2,0,5,4,0,5,2,0,1  设s是向量X1和X2的相对距离,s=sqrt( (xi1-xi2) 2 ),当X1=X2时,s=0, 反映出可能是同一个程序;s值越大,则两个程序的差别可能也越大,分析计算结果,得出两个程序的相似性。测试数据: 选择若干组编译和运行都无误的C+程序,程序之间有相近的和差别大的,用上述方法求s, 对比两个程序的相似性。     提高要求:建立

25、源代码用户标识符表,比较两个源代码用户标识符出现的频度,综合关键字频度和用户标识符频度判断两个程序的相似性。考核要求:从源代码中分解单词,判断是否为关键字要采用效率高的方法,设计的哈希函数尽量产生较少的冲突,任选处理冲突的方法,选择的测试数据要尽量包含多种情况,能够处理异常,达到这些要求成绩为优秀,否则成绩向下浮动。鼓励按关键字和用户标识符判断程序商务相似性,并鼓励设计图形用户界面。13. 小型文本编辑器(*)问题描述:设计一个行编辑程序,使其具有通常行编辑器(如Vi、Edlin)应具备的基本功能。基本要求:编辑器应具备对文本文件的查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,

26、对于超过一屏的长文件,应能够分页显示,查找功能用字符串匹配算法实现。设计用户接口命令,实现对文本的编辑。具体的编辑命令,可参考数据结构算法网络教学平台上提供的edlin、Vi的命令集。测试数据:任一文本文件。提高要求:(1)可以支持“* ”、“? ”等通配符; (2)支持复制、粘贴等功能; (3)支持多文档同时编辑。考核要求:(1) 界面可以是菜单形式,完成基本要求,成绩可为优秀,如果只实现了基本要求的部分功能,成绩向下浮动。(2) 可以用MFC设计界面,但其中的功能实现不能用类库中的类。提示:可以考虑用双向链表实现,每一结点表示一行字符,注意每行字符不能超过255。14. 小型英汉词典(*)问题描述:设计一个英汉词典,支持Member的查找、插入、删除操作。基本要求:实现字典常用的数据结构包括有序表、AVL树、Patricia Tree(简称PAT tree,它是一棵压缩存储的二叉树结构)、散列表等,任选一种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论