课程名称:软件设计课程设计课程类别:实践课程。
适用专业(方向):计算机应用总学时数:2周学分:2.0编制部门:计算机应用编制/修订日期:2009.7
一、课程的性质、任务与目的。
教学目的:1.使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
2.使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。3.使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
二、本课程涉及的基本理论。
数据结构中关于“线性表、栈和队列、树和二叉树、图、查找和排序”等基本理论。
三、课程基本要求。
基本要求:1.巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。2.培养学生自学参考书籍,查阅手册、图表和文献资料的能力。
3.通过训练,使学生初步掌握简单软件的分析方法和设计方法。4.了解与课程有关的工程技术规范,能正确解释和分析实验结果。5.题目具有足够的工作量。
6.课程中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。7.
做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
8.按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求。
b)概要设计。
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设。
计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计。
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析。
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;
9.每组实现的结果必须进行检查和演示;程序源**和程序的说明文件必须上交,作为考核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号姓名”,如“200413498高魁”。
该文件夹下至少包括:“源**”、“课程设计报告”、“可执行文件”。由学习委员收集刻盘按规定时间统一上交)。
10.课程设计报告可以附原**,也可以只对对重点函数及结构进行说明。报告格式参照数据结构习题集。
11.报告提交。
时间:第2周星期五检查,第3周星期二下午4点之前由学习委员收集上交,迟交无成绩。形式:
课程报告(要求打印)和电子文档全班(统一刻盘)。四、训练内容:(每人完成3类题目中的各一道题即可)两类题目:
第一类:趣味问题(如汉诺塔、约瑟夫环、八皇后问题、串的模式匹配等问题);第二类如下:
1.内部排序演示【问题描述】
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数。【基本要求】
1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;
2)待排序的元素的关键字为整数。其中的数据要用伪随机产生程序产生(如10000个),至少用5组不同的输入数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。(3)演示程序以人机对话的形式进行。
4)界面友好,易与操作。采用菜单方式进行选择。【选做内容】
1)对不同表长进行比较;(2)验证各算法的稳定性;
2.校园导游咨询。
问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。
基本要求】1)设计本校的校园平面图,所含景点不少于6个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
3.建通讯录【问题描述】
设计散列表实现通讯录查找系统。【基本要求】
1)设每个记录有下列数据项:**号码、用户名、地址;(2)从键盘输入各记录,分别以**号码为关键字建立散列表;(3)采用线性探测再散列法解决冲突;(4)查找并显示给定**号码的记录;(5)通讯录信息文件保存;
6)要求人机界面友好,使用菜单方式进行选择。【实现提示】
主函数:根据选单的选项调用各函数,并完成相应的功能。menu()的功能:显示英文提示选单。quit()的功能:退出选单。
create()的功能:创建新的通讯录。
append()的功能:在通讯录的末尾写入新的信息,并返回选单。
find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
list()的功能:显示通讯录中的所有记录。
s**e()的功能:保存通讯录中的所有记录到指定文件中。load()的功能:从指定文件中读取通讯录中的记录。
4.哈夫曼编码/译码器【问题描述】
设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(压缩文件,后缀名。cod);反过来,可将一个压缩文件译码还原为一个文本文件(.txt)。【基本要求】
1)输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树;(2)将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),3)输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;(4)显示指定的压缩文件和文本文件;
5)界面友好,易与操作。采用菜单方式进行选择。
5.计算器【问题描述】
利用栈设计一个简单的计算器,可以做加、减、乘、除等基本运算。
第三类如下:
1.学生成绩管理系统【基本要求】
1)按学期、按班级完成对学生成绩的录入、修改;(2)按班级统计学生的成绩;(3)求学生的总分及平均分;
4)根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;(5)按班级输出学生的成绩单。2.影碟出租管理系统。
基本要求】1)影碟信息包括如下内容:影碟编号、电影名称和在架情况(出租或在架)。(2)增加、删除、修改影碟条目的功能。
3)程序启动时从文件中读取所有影碟条目,程序退出时保存所有条目。3.餐饮管理系统的菜谱管理子系统【基本要求】
1)实现菜谱(文字)的录入(菜谱有分类)(2)能够进行菜谱的浏览。
3)能够进行菜谱排序(按照**)(4)查询菜谱功能(5)按类别输出菜谱4.人事档案管理系统【基本要求】
1)实现员工信息的录入、修改;(2)统计各科室的员工的人数;
3)能按员工的姓名、所在科室查询员工的档案信息。
五、选题方式、上交作业及成绩评定要求每人完成3类题目中的各一题。
1.选题方式。
可以独立选题完成所有任务;也可以分组完成,其中分组成员要求完成题目中不同的功能模块。(分组方式建议如下:每组5人,每小组之间不得雷同,否则成绩最多及格。)
2.上交要求。
上交设计报告和相关光盘。其中设计报告要以打印文稿的形式上交。光盘内容包括程序源码设计报告的电子文档。整个班级的设计均刻在一张光盘上,可按姓名或分组建立相关文件夹进行存储。
3.评分标准。
根据完成任务的情况(必须进行系统演示)、课程设计报告书的质量和课程设计过程中的工作态度等按照%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。上机程序检查未通过者、无设计报告者以及严重抄袭他人设计者,成绩为不及格。
缺席次数最终成绩。
1次中及以下。
2次及以上。
不及格。六、教学参考书。
1严蔚敏,吴伟民。数据结构(c语言版).北京:清华大学出版社,2002.
2李春葆,李三铁。数据结构考点精要与解题指导。北京:
人民邮电出版社,20023刘黄生主编。数据结构(c语言版).合肥:
中国科技大学出版社,20024赵坚,葁梅,数据结构(c语言版),中国水利水电出版社,2005.8。
课程设计大纲
采矿工程专业。主干课程 采矿学 开采设计 能源学院采矿系。采矿工程专业。课程设计大纲。一 课程设计的目的和任务。采矿工程专业课程设计是在 采矿学 课程学习和生产实习结束后进行的一个实践教学环节。其目的在于巩固和深化所学的专业理论,培养学生解决实际问题的初步能力,对学生进行一次独立工作的基本功训练。采...
课程设计大纲
一 课程设计的目的和任务。采矿工程专业课程设计是在 采矿学 课程学习和生产实习结束后进行的一个实践教学环节。其目的在于巩固和深化所学的专业理论,培养学生解决实际问题的初步能力,对学生进行一次独立工作的基本功训练。采矿工程专业课程设计的重点是矿井的采区部分,因此也称作 采区设计 其主要任务包括采区巷道...
课程设计大纲
微机原理与接口 课程设计大纲。一 课程设计的目的和意义。微机原理与接 术 是计算机 电子类专业的专业基础课。在课程体系种占有重要的位置。课程设计的目的是配合平时的教学和实验,以达到巩固和消化课堂教学内容,进一步加强综合应用能力,启发创新思维的目的。是培养学生综合素质,提高动手能力,提高发现问题和解决...