软件算法综合设计任务书.docx
- 文档编号:57198
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:15
- 大小:21.14KB
软件算法综合设计任务书.docx
《软件算法综合设计任务书.docx》由会员分享,可在线阅读,更多相关《软件算法综合设计任务书.docx(15页珍藏版)》请在冰豆网上搜索。
软件算法综合设计任务书
软件算法综合设计任务书
一、软件算法综合设计基本信息
1、 课程设计编号:
2、 课程设计名称:
软件算法综合设计
3、 课程设计周数(学时):
1周(40学时)
4、 课程设计授课单位:
计算机科学与技术系
5、 指导方式:
集体辅导和个别辅导相结合
6、 适用专业:
计算机科学与技术
7、 课程设计教材及主要参考资料:
[1]严蔚敏,吴伟民编著.数据结构(C语言版).清华大学出版社,1997.4
[2]严蔚敏,吴伟民编著.数据结构习题集.清华大学出版社,1997.4
二、教学目的和基本要求
1、了解并掌握数据结构和算法设计的方法,具备初步的独立分析和设计能力。
2、 初步掌握软件开发过程的问题分析分析、系统设计、程序编码和测试等基本方法和技能。
3、 提高综合运用所学的理论只是和方法,独立分析和解决问题的能力。
4、 训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作着所具备的科学工作方法和作风。
三、软件算法综合设计的内容和安排
1、问题分和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,限制的条件是什么。
2、 逻辑设计:
对问题中涉及到的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序和各抽象数据类型,逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。
3、 物理设计:
定义相应的存储结构并写出个函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作做出进一步的求精,写出数据结构存储结构的类型定义,写出函数形式的算法框架。
4、 程序编码:
把详细设计的结果进一步求精为程序设计语言。
同时加入一些注解和断言,使程序中逻辑概;念清晰。
5、 程序调试和测试:
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序和注释,形成格式和风格良好的源程序清单和结果。
6、 结果分析:
程序运行结果包括正确的输入及其输出结果、含有错误的输入和输出结果、算法时间复杂度和空间复杂度分析。
7、 撰写课程设计报告:
总结和提升上述过程和步骤,写出结构严谨、表述清楚、符合设计规范的报告。
四、软件算法综合设计的题目
本课程设计题目共34个,每个同学可以根据自身实际情况进行选择。
最后需要对所做系统书写实验报告一份,格式见附页。
五、考核的方法和成绩的评定
考核成绩分为两个部分:
(1)验收程序部分:
占50%。
按照以下几个指标进行验收:
①程序的正确性;
②程序的运行和存储效率;
③程序代码编写规范程度,代码的可读性高;
④界面是否友好;
⑤程序设计的创新性;
(2)实验报告(50%)
①实验报告结构是否清晰,问题叙述是否具有逻辑性;
②关键代码设计是否正确无误;
③程序设计的时间、空间复杂性分析是否正确。
六、时间的安排
共1周,5天。
题目共10个,每个同学可以根据自身实际情况掌握进度,最后一天验收程序,也可以分部分验收。
七、软件算法综合设计报告的格式
(1) 问题的概述、分析和研究意义;
(2) 数据结构的逻辑设计和物理存储设计;
(3) 重要算法的设计、流程描述和代码描述;
(4) 数据结构的时间、空间复杂性分析和重要算法的复杂度分析;
(5) 程序的最终实现结果(包括重点界面的抓取,能说明问题的重要实验结果数据的打印或其可视化结果);
(6) 参考文献;
(7) 附录:
关键数据结构的定义及关键算法的源代码。
八、软件算法综合设计结果的提交
(1) 课程设计报告(一份、A4纸打印,同时包括一份电子文档)。
(2) 完整的程序系统(电子方式提交),能够对输入产生相应的输出,同时尽量完成可视化演示。
(3) 源程序文档(电子方式提交),源程序代码要求适当缩进编排、结构清晰、可读性好,对源程序的类说明(如采用面向对象方法设 计)、函数说明、接口说明、关键变量说明等要进行注释。
(4) 答辩报告(制作PPT报告,电子方式提交),要求重点突出,思路清晰,同时就此报告准备答辩。
所有电子方式提交的文件全部存放在一个目录中,并对其进行压缩,压缩后的文件按规定格式进行命名,命名格式为:
班级号+学号+姓名。
九、软件算法综合设计题目说明
1.运动会分数统计(限3人完成)
任务:
参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:
7、5、3、2、1,前三名的积分分别为:
5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)
功能要求:
1)可以输入各个项目的前三名或前五名的成绩;
2)能统计各学校总分;
3)可以按学校编号或名称、学校总分、男女团体总分排序输出;
4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;
5)数据存入文件并能随时查询;
6)规定:
输入数据形式和范围:
可以输入学校的名称,运动项目的名称。
输出形式:
有合理的提示,各学校分数为整形。
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明。
2.飞机订票系统(限3人完成)
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号;
修改航班信息:
当航班信息改变可以修改航班数据文件。
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
3.文章编辑(限3人完成)
功能:
输入一页文字,程序可以统计出文字、数字、空格的个数;静态存储一页文章,每行最多不超过80个字符,共N行。
要求:
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能。
输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。
4.宿舍管理查询软件(限3人完成)
为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:
A.采用交互工作方式;
B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)。
查询菜单:
(用二分查找实现以下操作)
A.按姓名查询;
B.按学号查询;
C.按房号查询。
打印任一查询结果(可以连续操作)
5.校园导航问题(限3人完成)
设计要求:
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
6.教学计划编制问题(限3人完成)
设计要求:
针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。
7.散列法的实验研究(限3人完成)
散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。
两者是影响查询算法性能的关键因素。
对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。
8.图书借阅管理系统(限3人完成)
主要分为两大功能:
1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
2)会员管理(增加会员、查询会员、删除会员、借书信息)。
9.学生成绩管理(限3人完成)
实现功能:
输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。
10.二叉排序树的实现(限3人完成)
用顺序和二叉链表作存储结构
1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排 序树T;
2)对二叉排序树T作中序遍历,输出结果;
3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”。
11.最小生成树问题(限3人完成)
设计要求:
在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
存储结构采用多种。
求解算法多种。
12.通讯录的制作(限3人完成)
设计目的:
用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。
编写一个通讯录管理系统。
以把所学数据结构知识应用到实际软件开发中去。
设计内容:
本系统应完成一下几方面的功能:
1)输入信息——enter();
2)显示信息———display();
3)查找以姓名作为关键字———search();
4)删除信息———delete();
5)存盘———save();
6)装入———load()。
设计要求:
1)每条信息至包含:
姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项;
2)作为一个完整的系统,应具有友好的界面和较强的容错能力;
3)上机能正常运行,并写出课程设计报告。
13.哈夫曼编码/译码器(限3人完成)
【问题描述】
设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。
【基本要求】
1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中);
2)分别采用动态和静态存储结构;
3)初始化:
键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;
4)编码:
利用建好的哈夫曼树生成哈夫曼编码;
5)输出编码;
6)设字符集及频度如下表:
字符空格ABCDEFGHIJKLM
频度1866413223210321154757153220
字符NOPQRSTUVWXYZ
频度5763151485180238181161
【进一步完成内容】
1)译码功能;
2)显示哈夫曼
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 算法 综合 设计 任务书