《数据结构与算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法》课程设计指导书
一.目的
通过本课程设计,使同学更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C或C++语言实现所设计的算法,能够利用所学的基本知识和技能,分析和解决简单的程序设计问题,为后续其它专业课程的学习和应用打下良好基础。
二.题目
根据指导教师的具体要求,从下面题目中选择1个来完成
1.学生成绩管理系统
2.简易客房管理系统
3.人事档案管理系统
4.进销存货物管理系统
5.图书管理系统
6.运动会分数统计
7.民航订票系统
8.校园导游咨询
9.长整数的加减法
10.表达式的求值
11.钱币的转换
12.二叉树的应用——哈夫曼树
13.银行排队系统模拟
14.文章编辑器
15.车票管理系统
16.连连看
17.扫雷
18.消消看
19.贪吃蛇
20.俄罗斯方块
21.飞行棋
22.其他题目(需老师同意)
注意
(1)在实现相关管理系统题目时,需要设计良好的数据结构,代码编写时不允许运用现有的数据库管理系统,具体功能应通过对文件的读写操作实现。
(2)其中题目1、2、3、4、5、6、7、14、15必需使用文件进行读写操作,文件读写操作有单独文档给大家做为编程参考。
(3)验收分数跟做的质量挂钩
(4)游戏类实现可以采用别的编程语言,但是因为是数据结构课程设计,所以程序中必需是要正确使用了数据结构的。
三.任务完成形式
1.完整的软件系统
最终必须向指导老师提交完整的程序源代码(.c和.cpp以及.h为后缀的文件)、数据文件以及使用说明文件等。源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。
2.课程设计报告(详细要求请参考附录二)
课程设计报告总体上主要包括以下几个部分:
1)封面
2)目录
3)课程设计报告正文
4)使用说明
5)参考文献
四.总体要求
1.每道题目的程序代码总量不少于600行(其中不包括自动生成代码),有合理注释。
2.课程设计报告正文字数不少于8000字,概念清楚、叙述正确、内容完整、书写规范。
3.独立完成课程设计,不得抄袭他人。
4.功能正确、有一定实用性。
5.尽可能大量使用各种C或者C++语言程序设计技术,尤其在以下几个方面:
指针及其运算、结构、指针数组、数组指针、字符数组与字符串、内存空间动态申请与释放、文件访问与操作、合理的常量与全局变量及函数接口变量定义、数据输入与数据格式检查、数据类型转换、错误处理、工程设计技术(整个系统由一个工程文件、若干个程序文件、若干头文件、甚至库文件等组成)。
程序界面不做较高要求,但要考虑到用户使用的方便,有较好的交互界面。
6.可以使用VC编译环境开发程序,但不允许使用现成的数据库如access,SQL Server等完成上面的课程设计题目,否则成绩评定为不及格。
7.设计时适当考虑程序的可维护性与可扩充性。
8.提倡积极交流与讨论(同学间、bbs站点)、善于查阅资料、分析与借鉴他人编写的软件。
9.认真自觉以个人为单位完成自己的任务,代码和课设报告均严禁雷同,否则成绩为不及格。验收时查看代码,并提出若干个跟程序代码有关的问题,并把问题回答情况计入总评成绩。
10、根据不同的数据结构,要求有一种数据结构算法(冒泡排序算法不包括)。
五.工作阶段与考核方法
大体上可分成五个阶段:
1.资料查阅准备阶段(15%)
2.分析设计阶段(35%)
3.编程调试阶段(40%)
4.课程设计报告书写阶段(10%)
5.验收阶段
考核方法:
只有程序验收通过后,才能按以下方法核定本次课程设计的总成绩,因未能独立完成设计(尤其是抄袭)或概念不清的同学,总成绩将核定为不及格。总成绩由以下几个部分决定:
1.考勤、纪律、实验室卫生
2.工作量(代码量、功能多少、难度)
3.关键技术
4.实用性、创新
5.代码书写规范性
6.程序界面、新技术引用
7.课程设计报告(叙述、书写规范、字数)
8.动手能力、分析问题解决问题能力
六.任务具体要求
1、学生成绩管理系统
问题描述:该系统实现对若干个大学生的学习成绩进行管理。至少包括以下信息:
学号、姓名、科目、成绩,学期。学期取值范围可为1-8。
功能要求:
1.使用中文菜单,界面设计和用户输入输出要人性化些;
2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文
档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。
3.具有数据输入功能,输入的数据能最终保存在文件中;
4.具有数据删除功能,能最终从文件中删除;
5.排序功能,根据自己设计的数据结构,设计排序算法
6.具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;
7.其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)
8.学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩)
说明:
(1)功能各方面越完善越好
(2)自定义的数据结构可以使用数组,链表,树等,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。
(3)若用数组,必须动态分配空间(文本文件中最好有一行表示学生人数)
算法要点:把问题看成是对线性表的操作。将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查找、插入和删除操作。