《软件开发新技术》课程设计指导书。
一、 目的要求。
数据结构》课程设计是计算机及相关专业集中实践性环节之一,是学生已经具备c/c++编程基础,学习完《数据结构》课程后进行的一次全面的综合练习,涉及的知识更深更广,并更加接近实用。《数据结构》课程设计要求学生利用所学知识分析、设计并实现一个基于数据结构算法的较简单系统。通过课程设计,使学生综合使用所学过的系统分析与设计知识,掌握系统分析与设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,通过一个实例,进一步认识和熟悉程序设计中的语句的应用和用途,增强学生利用自己所学知识解决实际问题的能力,为学生学习后续计算机相关课程打下坚实基础。
具体而言可以实现以下目的:
1. 通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的数据结构算法知识,比如,线性表、栈、队列、串、数组与广义表、树、图以及各种排序算法、查找算法等。
2. 为学生适应计算机专业后续多门课程知识,例如面向对象程序设计、操作系统、数据库、软件开发新技术等。
3. 使学生通过参加小组团队的开发实践,了解计算机软件开发、项目管理、团队合作、文档编写、口头与书面表达的重要性。
4.使每个学生重点深入掌握软件开发中算法的实践与使用。
5. 通过富有挑战性的软件实验项目开发实践,为学生提供主动学习、深入实践的机会,并且通过课程设计实践中,提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力,提高学生今后参与实际软件项目和探索未知领域的能力和自信心。
二、 设计对象。
适用专业:数学应用、软件工程、计算机科学与技术、网络工程。
学生可以选择做老师布置的题目,也可以自选项目开发。对于以下各个系统具体功能参数,选择课题的学生可以依据实际需求调整,但总体难度不低于指导书要求。同时考虑到数据结构课程的性质,系统数据可以不使用数据库,仅采用内存实现即可。
以下是学生的参考选题及其说明:
1 题目一:“航空客运订票系统”
系统简介:通过此系统可以实现如下功能:
1) 录入:可以录入航班情况(数据可以存储在内存中,也可以存入数据文件或数据库中)
2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市, 航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
4) 退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5) 修改航班信息:当航班信息改变可以修改航班数据文件
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
2 题目二:“简易通讯录系统”
设计一个简单的通讯录系统,能够用来管理学生的通讯信息。要求的功能包括:
1)建立学生信息结构体,通过内存建立成一个线性表,以便用户进行操作学生信息。(数据可以存储在内存中,也可以存入数据文件中)
2)创建通讯录输入函数,该函数能简单判断输入的数据的有效性。
3)能在通讯录中增加成员。
4)能删除要删除的成员的所有信息。
5)能通过输入id的方式来修改要修改的元素信息。
6)能通过多种手段查询通讯信息。
3 题目三 “图书管理系统”
图书管理系统中图书管理模块包括图书类型定义:包括书号、现库存量、总库存量,书名、作者名;读者类型定义:包括借书号、姓名、时间;b树(2-3树)类型定义:
关键字个数和关键字数组为整型、另外还有指向双亲的指针、指向子树的指针、记录单元指针;b树查找结果类型定义: 节点指针、关键字序号和查找标志变量为整型。图书管理系统实现功能:
1)采编入库:新书购入,将书的编码、书名、作者姓名、存入本数添加入图书账目中去,如果这种书在帐中已有,则只将总库存量增加,每新增一个书号则以凹入表的形式显示b树现状。
2)清除库存: 实现某本书的全部信息删除操作 ,每清除一个书号则已以凹入表的形式显示b树现状。
3)图书借阅: 如果书的库存量大于零时则执行出借,登记借阅者的借书号和姓名,显示借阅成功。如果某书库存为零,则记录预约者姓名和证号。
4)图书归还:输入借阅者的借书号,注销借阅者信息,并改变该书的现存量。
5)列出著者著作:输入作者名字,系统将查找相应作者全部著作并显示出来。
6)查看图书状态:可以根据书号查阅此书基本信息、借阅信息亦可以查找全部图书基本信息。
7)遍历书库:可以查看图书馆所有书本的基本信息。
4 题目四 “哈夫曼树及其哈夫曼编码的实现” (建议数据结构:二叉链表)
哈夫曼编码(huffman coding)是一种编码方式,以哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这种方法是由 huffman发展起来的。
例如,在英文中,e的出现概率很高,而z的出现概率则最低。当利用哈夫曼编码对一篇英文进行压缩时,e极有可能用一个位(bit)来表示,而z则可能花去25个位(不是26)。用普通的表示方法时,每个英文字母均占用一个字节(byte),即8个位。
二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。
一个完整的系统应具有以下功能:
1)i:初始化(initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmtree中。输出哈夫曼树,及各字符对应的编码。
2)w:输入(input)。从终端读入需要编码的字符串s,将字符串s存入文件中。
3)e:编码(encoding)与译码(decoding)。
编码(encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmtree中读入),对文件tobetran中的正文进行编码,然后将结果存入文件codefile中。
译码(decoding)。利用已建好的哈夫曼树将文件codefile中的**进行译码,结果存入文件textfile中。
印**文件(print)。将文件codefile以紧凑格式显示在终端上,每行50个**。同时将此字符形式的编码写入文件codeprint中。
4)t:印哈夫曼树(tree printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件treeprint中。
5)q:退出程序。返回windows界面。
5 题目五 “学生成绩管理系统”
通过模拟目前教学管理系统中的学生信息管理子系统,了解学生信息管理子系统的业务流程;通过分析比较,结合用户对学生信息管理子系统的改进意见与实现情况,运用c/c++语言,设计和实现一个满足功能和性能,成绩管理子系统。
本系统从功能上划分可分为以下几大模块:学生信息管理,课程信息管理,学生成绩管理,学生信息查询,学生成绩统计等几大模块。以下将对各子模块进行说明。
学生信息管理模块:输入学生基本信息,并可以对学生信息进行添加、查询、修改、删除。还可以关键字查询并从数据库里调出的学生基本信息。
输出学生基本信息,学号、专业号、姓名查询的信息结果。
课程信息管理:设置课程号,课程名,开设学期、学时、学分等课程信息。
成绩信息管理模块:输入成绩信息,并可以对成绩信息进行添加、查询、修改、删除。还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。输出查询的学生成绩信息。
学生信息查询:本模块是可对学生成绩进行查询,可按学号,姓名,年龄,所在院系,入学年份等不同条件独立查询或进行模糊查询。
学生成绩统计:对学生成绩总分,平均分等进行统计。
6 题目6 “文本编辑器的制作”
编辑器应具备对文本文件的查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示,查找功能用字符串匹配算法实现。设计用户接口命令,实现对文本的编辑。
本系统建议采用mfc完成,对于刚接触同学难度较大。
学生也可以自主申请新的课程设计题目,学生申请题目难度不得低于课程设计大纲和指导书所列题目难度,并在征得指导老师同意后,才能允许学生使用自主题目完成课程设计。
三、 设计步骤与设计说明书的撰写要求。
1. 学习课程设计指导书和分组
学习研究课程设计指导书,原则上一人一组,最多2人一小组。在多人一组情况下,需明确每个学生在开发小组中扮演的角色及承担的职责(包括选出组长)。
2. 确定目标、初步方案,准备、试用开发环境与工具
每个小组确定开发**目标及初步方案;选择、准备、试用开发平台、开发工具及其他有关开发工具。
3. 课堂与课下结合开发项目
因为需要自学和探索的内容较多,每个学生要特别发挥积极主动精神投入课程设计和开发活动。除了实验室正式安排的课程设计时间之外,学生需要充分利用好课余时间,自己有计算机的学生更要充分利用有利条件以取得尽可能好的开发成果,力争获得最大收益。
4. 各阶段的开发工作
1) 选题、系统内容及开发方案研讨;小组成员分工;开发计划拟定。
2) 同类系统浏览、分析;系统需求分析;系统原型及成员分工确认。
3) 原型系统设计及系统组织研讨。
4) 开发技术或其他专门开发技术或开发工具使用的研讨。
5) 系统原型集成测试、原型功能改进与扩充;开发文档整理、汇总。
5. 做好小组与个人的开发记录、总结,做好小组内外的交流与互助
四、 时间进度安排。
总时间:1周。
完成项目计划文档:1天。
可行性分析、用户需求分析以及总体及详细设计:1天。
原型系统实现与测试:3天。
答辩,确定等级,交文档材料(含电子文档)、源程序:1天。
五、 考核要求。
1 评分办法:由指导教师根据学生完成任务的情况、课程设计说明书的质量和课程设计过程中的工作态度、课程设计报告的完成情况等综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。
优秀者人数一般不得超过总人数的20%。不及格者不能得到相应的学分,需重新做课程设计,经指导教师考核及格后,方可取得相应学分。有关的考查材料(文字材料、磁盘或光盘)统一妥善保管,由主管老师对结果进行抽检。
数据结构课程设计指导书
数据结构。课。程。设。计。指。导。书。目录。一 课程设计的基本任务3 二 课程设计的基本要求3 三 课程设计的基本步骤和方法4 四 课程设计说明书 含报告的书写规范5 五 附录 课程设计大纲等内容13 一 课程设计的基本任务。数据结构是一门涉及多门课程的课程,难度较大,需要较好的c语言的程序设计和调...
数据结构课程设计指导书
数据结构。课。程。设。计。指。导。书。一 课程设计的基本任务3 二 课程设计的基本要求3 三 课程设计的基本步骤和方法4 四 课程设计说明书 含报告的书写规范5 五 附录 课程设计大纲等内容13 一 课程设计的基本任务。数据结构是一门涉及多门课程的课程,难度较大,需要较好的c语言的程序设计和调试能力...
数据结构课程设计指导书
指导书。信息工程学院计算机科学与技术专业。2013年12月。数据结构课程设计 指导书。一 课程设计题目与要求。根据课程设计题目规模,要求每个题目3人一组。分组规则如下 按照学号顺序每3人编为一组 或者自由组合 一经确定不得随意调换,题目由各组选派代表抽签确定,设计题目不得更换。选题一 教学计划编制问...