数据结构课程设计
数据结构的课程设计

数据结构的课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点与应用场景。
2. 学会分析不同数据结构的存储方式和操作方法,并能运用到实际问题的解决中。
3. 掌握排序和查找算法的基本原理,了解其时间复杂度和空间复杂度。
技能目标:1. 能够运用所学数据结构知识,解决实际问题,提高编程能力。
2. 能够运用排序和查找算法,优化程序性能,提高解决问题的效率。
3. 能够运用数据结构知识,分析并解决复杂问题,培养逻辑思维能力和创新意识。
情感态度价值观目标:1. 培养学生对数据结构学科的兴趣,激发学习热情,形成主动探索和积极进取的学习态度。
2. 增强学生的团队协作意识,培养合作解决问题的能力,提高沟通表达能力。
3. 培养学生的抽象思维能力,使其认识到数据结构在计算机科学中的重要性,激发对计算机科学的热爱。
本课程针对高中年级学生,结合学科特点和教学要求,注重理论与实践相结合,培养学生的编程能力和逻辑思维能力。
通过本课程的学习,使学生能够掌握数据结构的基本知识,提高解决实际问题的能力,同时培养良好的学习态度和价值观。
在教学过程中,将目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 数据结构基本概念:介绍数据结构的概念、作用和分类,重点讲解线性结构(线性表、栈、队列)和非线性结构(树、图)的特点。
2. 线性表:讲解线性表的顺序存储和链式存储结构,以及相关操作(插入、删除、查找等)。
3. 栈和队列:介绍栈和队列的应用场景、存储结构及相关操作。
4. 树和二叉树:讲解树的定义、性质、存储结构,二叉树的遍历算法及线索二叉树。
5. 图:介绍图的定义、存储结构(邻接矩阵和邻接表)、图的遍历算法(深度优先搜索和广度优先搜索)。
6. 排序算法:讲解常见排序算法(冒泡排序、选择排序、插入排序、快速排序等)的原理、实现及性能分析。
7. 查找算法:介绍线性查找、二分查找等查找算法的原理及实现。
数据结构(JAVA)课程设计

数据结构(JAVA)课程设计数据结构(JAVA)课程设计一、项目背景和目的1.1 项目背景这个课程设计是为了让学生在学习数据结构的过程中,能够运用所学的知识,实际完成一个具体的项目。
通过设计和实现一个基于JAVA的数据结构,帮助学生加深对数据结构的理解。
1.2 项目目的通过完成这个项目,学生将能够:- 熟悉和理解数据结构的基本概念和原则- 掌握JAVA编程语言的基本语法和使用方法- 设计和实现一个完整的数据结构,包括各种基本操作和功能- 加深学生对数据结构的应用和解决问题的能力二、项目需求和功能2.1 项目需求本项目需要实现一个基于JAVA的数据结构,可以包括但不限于以下需求:- 实现各种基本数据结构,如栈、队列、链表、树等- 提供基本的操作和功能,如插入、删除、查找、排序等- 可以处理各种不同类型的数据,如整数、字符、字符串等- 可以实现数据结构的可视化和交互功能- 提供良好的使用界面和用户体验2.2 功能划分根据项目需求,可以将功能分为以下几个部分:- 基本数据结构的实现:栈、队列、链表、树等- 数据结构的基本操作和功能:插入、删除、查找、排序等- 数据类型的处理:整数、字符、字符串等- 可视化和交互功能的实现- 用户界面和用户体验的设计三、项目实现和设计3.1 数据结构的实现在这一部分,需要具体实现各种基本的数据结构,包括但不限于栈、队列、链表、树等。
可以根据不同的数据结构,选择合适的实现方式和算法。
3.2 基本操作和功能的实现在这一部分,需要实现数据结构的基本操作和功能,如插入、删除、查找、排序等。
可以根据具体的需求,选择合适的算法和方法。
3.3 数据类型的处理在这一部分,需要实现对不同类型数据的处理功能,如整数、字符、字符串等。
可以考虑使用面向对象的思想,设计合适的类和方法。
3.4 可视化和交互功能的实现在这一部分,需要实现数据结构的可视化和交互功能,可以考虑使用图形界面或者命令行界面,提供友好的用户界面和用户体验。
数据结构课程设计(5篇)

数据结构课程设计(5篇)第一篇:数据结构课程设计课程设计说明书设计名称:数据结构课程设计题目:设计五:二叉树的相关操作学生姓名:专业:计算机科学与技术班级:学号:指导教师:日期: 2012 年 3 月 5 日课程设计任务书计算机科学与技术专业年级班一、设计题目设计五二叉树的相关操作二、主要内容建立二叉树,并对树进行相关操作。
三、具体要求1)利用完全二叉树的性质建立一棵二叉树。
(层数不小于4层)2)统计树叶子结点的个数。
3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排依照教学计划,课程设计时间为:2周。
本设计要求按照软件工程的基本过程完成设计。
建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35: 45: 20。
五、完成后应上交的材料本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。
其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有:1、课程设计的基本思想,系统的总功能和各子模块的功能说明;2、课程设计有关算法的描述,并画出有关算法流程图;3、源程序中核心代码的说明。
4、本课程设计的个人总结,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。
5、源代码要求在关键的位置有注释,增加程序的可读性。
程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
大学数据结构课程设计

大学数据结构课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点及其应用场景。
2. 学会分析不同数据结构在解决具体问题时的性能差异,能够选择合适的数据结构优化程序性能。
3. 掌握各类数据结构的存储表示方法,以及基本操作算法的实现。
技能目标:1. 培养学生运用数据结构解决实际问题的能力,能够设计和实现小型算法程序。
2. 培养学生运用递归思想解决问题的能力,掌握递归算法的设计与实现。
3. 提高学生的编程实践能力,通过实验和项目练习,熟练运用所学数据结构进行程序设计。
情感态度价值观目标:1. 培养学生积极探究数据结构相关知识的学习兴趣,激发学生的学习热情和主动性。
2. 培养学生的团队协作精神,通过小组讨论和实践项目,提高沟通与协作能力。
3. 培养学生具备良好的程序设计素养,遵循编程规范,注重代码质量和性能优化。
课程性质:本课程为计算机专业核心课程,旨在使学生掌握数据结构的基本理论、方法和技能,为后续算法分析、软件工程等课程打下坚实基础。
学生特点:大学二年级学生,已具备一定的编程基础和算法知识,具备独立思考和学习的能力。
教学要求:结合课程特点和学生实际,注重理论与实践相结合,强调学生动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够具备扎实的理论基础和较强的实践能力,为未来从事计算机相关领域工作打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 数据结构基本概念:介绍数据结构的基本概念、分类及其应用场景,分析不同数据结构的特点。
- 教材章节:第1章 数据结构绪论- 内容列举:线性结构、非线性结构、抽象数据类型等。
2. 线性表:讲解线性表的定义、存储表示(顺序存储、链式存储),以及基本操作(插入、删除、查找等)。
- 教材章节:第2章 线性表- 内容列举:顺序表、链表、栈、队列等。
数据结构课程设计目录及正文

数据结构课程设计目录及正文一、课程设计目的数据结构是计算机科学中的一门重要基础课程,通过课程设计,旨在让学生更深入地理解和掌握数据结构的基本概念、原理和算法,并能够将其应用到实际问题的解决中。
培养学生的问题分析能力、算法设计能力、程序编写能力和调试能力,提高学生的综合素质和创新能力。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计应具有清晰的结构和良好的可读性,代码规范,注释详细。
3、选择合适的数据结构和算法解决给定的问题,并对算法的时间复杂度和空间复杂度进行分析。
4、完成课程设计报告,包括问题描述、算法设计、程序实现、测试结果和总结等内容。
三、课程设计题目1、图书管理系统实现图书的添加、删除、查询、修改等功能。
按照图书的分类、作者、书名等进行排序和查找。
2、学生成绩管理系统录入学生的成绩信息,包括学号、姓名、课程名称、成绩等。
计算学生的平均成绩、总成绩,并按照成绩进行排序。
3、公交线路查询系统建立公交线路的网络模型。
实现站点之间的最短路径查询和换乘方案查询。
4、停车场管理系统模拟停车场的车辆进出管理。
计算停车费用,显示停车场的当前状态。
四、课程设计目录1、引言2、需求分析问题描述功能需求数据需求性能需求3、总体设计系统架构模块划分数据结构设计4、详细设计模块功能描述算法设计界面设计5、编码实现代码框架关键代码实现6、测试与调试测试用例测试结果调试过程7、总结课程设计的收获遇到的问题及解决方法对数据结构课程的进一步理解8、参考文献9、附录源程序代码五、正文内容(一)引言随着信息技术的不断发展,计算机在各个领域的应用越来越广泛。
数据结构作为计算机科学的重要基础,对于提高程序的效率和质量起着至关重要的作用。
本次课程设计旨在通过实际项目的开发,让学生将所学的数据结构知识运用到实践中,提高解决实际问题的能力。
(二)需求分析1、问题描述以图书管理系统为例,系统需要对图书馆中的图书进行有效的管理,包括图书的基本信息(书名、作者、出版社、出版日期、ISBN 号等)、图书的库存数量、借阅状态等。
《数据结构》课程设计

《数据结构》课程设计一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中基础的数据组织、管理和处理方法,培养其运用数据结构解决实际问题的能力。
课程目标如下:1. 知识目标:(1)理解基本数据结构的概念、原理和应用,如线性表、栈、队列、树、图等;(2)掌握常见算法的设计和分析方法,如排序、查找、递归、贪心、分治等;(3)了解数据结构在实际应用中的使用,如操作系统、数据库、编译器等。
2. 技能目标:(1)能够运用所学数据结构解决实际问题,具备良好的编程实践能力;(2)掌握算法分析方法,能够评价算法优劣,进行算法优化;(3)能够运用数据结构进行问题建模,提高问题解决效率。
3. 情感态度价值观目标:(1)激发学生对计算机科学的兴趣,培养其探索精神和创新意识;(2)培养学生团队合作意识,学会与他人共同解决问题;(3)增强学生的责任感和使命感,使其认识到数据结构在信息技术发展中的重要性。
本课程针对高中年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果,为后续教学设计和评估提供依据。
课程注重理论与实践相结合,旨在提高学生的知识水平、技能素养和情感态度价值观。
二、教学内容《数据结构》教学内容依据课程目标进行选择和组织,确保科学性和系统性。
主要包括以下部分:1. 线性表:- 线性表的定义、特点和基本操作;- 顺序存储结构、链式存储结构及其应用;- 线性表的相关算法,如插入、删除、查找等。
2. 栈和队列:- 栈和队列的定义、特点及基本操作;- 栈和队列的存储结构及其应用;- 栈和队列相关算法,如进制转换、括号匹配等。
3. 树和二叉树:- 树的定义、基本术语和性质;- 二叉树的定义、性质、存储结构及遍历算法;- 线索二叉树、哈夫曼树及其应用。
4. 图:- 图的定义、基本术语和存储结构;- 图的遍历算法,如深度优先搜索、广度优先搜索;- 最短路径、最小生成树等算法。
5. 排序和查找:- 常见排序算法,如冒泡、选择、插入、快速等;- 常见查找算法,如顺序、二分、哈希等。
《数据结构》课程设计报告

《数据结构》课程设计报告一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中数据结构的基本概念、原理及实现方法,培养其运用数据结构解决实际问题的能力。
本课程目标如下:1. 知识目标:(1)理解数据结构的基本概念,包括线性表、栈、队列、串、数组、树、图等;(2)掌握各类数据结构的存储表示和实现方法;(3)了解常见算法的时间复杂度和空间复杂度分析;(4)掌握排序和查找算法的基本原理和实现。
2. 技能目标:(1)能够运用所学数据结构解决实际问题,如实现字符串匹配、图的遍历等;(2)具备分析算法性能的能力,能够根据实际问题选择合适的算法和数据结构;(3)具备一定的编程能力,能够用编程语言实现各类数据结构和算法。
3. 情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发其探索精神;(2)培养学生团队合作意识,提高沟通与协作能力;(3)培养学生面对问题勇于挑战、善于分析、解决问题的能力;(4)引导学生认识到数据结构在计算机科学中的重要地位,激发其学习后续课程的兴趣。
本课程针对高年级学生,课程性质为专业核心课。
结合学生特点,课程目标注重理论与实践相结合,强调培养学生的实际操作能力和解决问题的能力。
在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。
通过本课程的学习,学生将具备扎实的数据结构基础,为后续相关课程学习和职业发展奠定基础。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 数据结构基本概念:线性表、栈、队列、串、数组、树、图等;教学大纲:第1章 数据结构概述,第2章 线性表,第3章 栈和队列,第4章 串。
2. 数据结构的存储表示和实现方法:教学大纲:第5章 数组和广义表,第6章 树和二叉树,第7章 图。
3. 常见算法的时间复杂度和空间复杂度分析:教学大纲:第8章 算法分析基础。
4. 排序和查找算法:教学大纲:第9章 排序,第10章 查找。
教学内容安排和进度如下:1. 第1-4章,共计12课时,了解基本概念,学会使用线性表、栈、队列等解决简单问题;2. 第5-7章,共计18课时,学习数据结构的存储表示和实现方法,掌握树、图等复杂结构;3. 第8章,共计6课时,学习算法分析基础,能对常见算法进行时间复杂度和空间复杂度分析;4. 第9-10章,共计12课时,学习排序和查找算法,掌握各类算法的实现和应用。
数据结构课程设计

数据结构课程设计引言:数据结构是计算机科学中非常重要的一门课程,它涉及到如何组织和存储数据以及如何有效地操作和管理数据。
课程设计是学生在学习数据结构课程时的一项重要任务,通过设计和实现具体的数据结构,可以匡助学生更好地理解和掌握数据结构的概念和应用。
本文将详细介绍一个数据结构课程设计的步骤和要求,匡助学生顺利完成这一任务。
一、任务描述:本次数据结构课程设计的任务是设计和实现一个简单的图书管理系统。
该系统需要具备以下功能:1. 添加图书:能够添加新的图书信息,包括书名、作者、出版社、出版日期等;2. 删除图书:能够根据书名或者其他关键字删除指定的图书信息;3. 修改图书信息:能够根据书名或者其他关键字修改指定的图书信息;4. 查询图书:能够根据书名、作者、出版社等关键字查询图书信息,并能够按照指定的排序方式展示查询结果;5. 显示图书列表:能够以列表的形式展示当前系统中的所有图书信息;6. 存储和读取数据:能够将图书信息存储到文件中,并能够从文件中读取已保存的图书信息。
二、设计步骤:1. 确定数据结构:首先需要确定合适的数据结构来存储图书信息。
在这个任务中,可以使用链表或者数组来存储图书信息,每一个节点或者元素代表一本图书,包含书名、作者、出版社等属性。
此外,还需要考虑如何存储和读取数据,可以使用文件来进行持久化存储。
2. 实现基本功能:根据任务描述中的要求,逐步实现添加图书、删除图书、修改图书信息、查询图书等基本功能。
可以使用适当的算法和数据结构来实现这些功能,例如使用遍历来查询和删除图书。
3. 实现高级功能:在基本功能实现的基础上,可以考虑实现一些高级功能,例如按照指定的排序方式展示查询结果、显示图书列表等。
这些功能可以通过排序算法和适当的数据结构来实现,例如使用快速排序来对查询结果进行排序。
4. 进行测试和调试:在完成系统的设计和实现后,需要进行充分的测试和调试,确保系统能够正常运行并满足任务描述中的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、高校社团管理
在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。
为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员;
2.修改社团相应信息
3.老成员离开社团
4.查询社团情况;
5.统计社团成员数;
二、简单文本编辑器
设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。
这个缓冲区将作为一个类的内嵌对象实现。
缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。
基本要求:
包含如下命令列。
可用大写或小写字母输入。
R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行;
W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。
I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。
D:删除当前行并移到下一行;
F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行;
C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。
Q:退出编辑器,立即结束;
H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。
N:当前行移到下一行,也就是移到缓冲区的下一行;
P:当前行移到上一行,也就是移到缓冲区的上一行;
B:当前行移到开始处,也就是移到缓冲区的第一行;
E:当前行移到结束处,也就是移到缓冲区的最后一行;
G:当前行移到缓冲区中用户指定的行;
V:查看缓冲区的全部内容,打印到终端上。
三、电话客户服务模拟
一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的
自增1(分钟)直到达到指定时间为止。
在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模
拟服务将从队列中取出下一个电话(如果有的话)继续开始。
同时还需要执行一个检查来判断是否有一个新的电话到达。
如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。
当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。
基本要求:
(1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间
(2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间
四、停车场管理
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。
在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。
若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。
每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。
在这里假设汽车从便道上开走时不收取任何费用
基本要求:
(1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)
(2)对于不合理的输入信息应提供适当的提示信息,要求离开的汽车没在停车场或便道时可显示“此车未在停车场或便道上”。
五、算术表达式求值
从键盘上输入中缀算术表达式,包括括号,计算机出表达式的值
要求:
1.程序对所输入的表达式作简单的判断,如表达式有错,能报错。
2.能处理单目运算符;+和-
六、加密软件
用哈夫曼编码设计一个压缩软件,能对输入的任何类型的文件进行哈夫曼编码,产生编码的文件—压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件—解压文件
七、排课软件
大学的每个专业都要进行排课。
假设任何专业都有固定的学习年限,每学年含两学期,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的。
每门课恰好占一个学期,假定每天上午与下午各有5节课。
试在这样的前提下设计一个教学计划编制程序。
要求:
1.输入数据包括:各学期所开的课程数(必须使每学期所开的课程数之和与课程总数相等),课程编号、课程名称、周学时数、指定开课学期、先决条件。
如指定开课学期为0,表示由电脑自行指定开课学期。
2.如输入数据不合格,应显示适当的提示信息。
3.用文本文件存储输入数据
4.由文本文件存储产生的各学期的课表
八、学生成绩管理系统
该系统实现对若干个大学生的学习成绩进行管理。
至少包括以下信息:
学号、姓名、科目、成绩,学期。
学期取值范围可为1-8。
功能要求:
1.使用中文菜单;
2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在链表中,然后再对链表进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。
3.具有数据输入功能;
4.具有数据删除功能;
5.具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;
6.其它功能(如各种统计)
九、文件目录管理与显示
给出树形文件目录和文件信息,要求编程实现将其排列成一棵有一定缩进的树形目录。
基本要求:
(1)设计文件和目录信息树的存储结构。
(2)从文件或键盘输入目录和文件信息,输入格式采用绝对路径法。
(3)设计有层次带缩进的树形目录和文件输出格式。
(4)设计从目录树中查找指定目录或文件的算法。
(5)设计在目录树中添加新目录或新文件的算法。
(6)设计在目录树中删除指定目录或文件的算法,子目录能够被删除的前提是其为空,即不包含任何子目录和文件;根目录不能删除。
(7)设计足够多的测试用例。
(8)扩充目录或文件信息,如创建时间、读写权限、文件长度或子目录包含的子目录和文件数等。
(9)对同一层次下的子目录或文件按创建时间有序输出。
较高要求
(1)如何实现相对路径表示法。
(2)为了增加目录或文件的查找速度,最好的存储方式是散列存储。
如何实现?当采用散列存储时,如何实现上述格式的输出?
(3)对输入数据的后校验,在创建、查找、删除需要输入路径时,若输入不合格,给出提示“不能接受”。
(4)通配符的使用。
如用“?”代表任意一个字符,用“*”代表任意多个任意字符。
十、教学计划编制问题
在学的每个专业都要制定教学计划。
假设任何专业都有固定的学习班年限,每学期含两个学期,每学期的时间长度和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有,每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
(设学期总数不超过8,课程总数不超过100。
)
基本要求
(1)输入参数包括:学期总期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)课程名等信息均以文件方式存放在磁盘中;
(2)安排教学计划时以使学生在各学期中的学习负担尽量均匀;
(3)输出的计划存入文件中。
十一、通讯录管理系统的设计与实现
电子通讯录已成为手机、电子词典等电子设备中不可缺少的工具软件。
请设计一个能够满足这种需求的软件。
基本功能包括:输入、显示、查找、插入、删除、保存、读入、排序、修改、移动、退出。
基本要求:
设计通讯录数据的逻辑结构和物理结构。
通讯录至少包括下列数据信息:姓名、电话、单位等。
完成上述基本功能,软件易用、操作简单。
根据自己使用通讯录的体会,扩充其他功能,如按姓名查找、按号码查找、按序号删除等。
设计足够多的测试用例。
较高要求
数据输入有效性检验:如姓名不能为空、号码中不能有非法字符等。
提供分组管理的相关功能,如:分组显示、加入组、组创建、组查询等。
可视化的界面设计。
实现提示
如果提供多种有序显示,如按姓名、按关系、按号码,可以通过建立索引表来实现,而不是把整个通讯录以不同的序存储多个。
这样可以有效避免数据存储的冗余和错误。
但当原数据表数据发送改变(如修改、插入、删除、移动)时,要及时更新索引表。
建索引表,设计对原始数据记录按关键字排序。
可以对原记录按关键字建立二叉排序树,二叉排序树的中序序列即为有序序列。
当然也可采用其他排序方法。