数据挖掘课程设计

2024-05-05

数据挖掘课程设计(精选十篇)

数据挖掘课程设计 篇1

《数据结构》是计算机科学与技术及相关专业的一门非常重要的专业基础核心课程, 其主要研究内容是数据之间的逻辑关系和物理实现, 即探索有利的数据组织形式及存取方式。有关计算机的各类软件的开发和设计, 首先要考虑数据的表示, 即使用何种类型的数据结构。因此, 如何更好地解决实际问题, 仅仅依赖几种计算机程序设计语言是不够的, 还必须学习和掌握好数据结构的有关知识。当我们使用计算机来处理一个具体问题时, 一般需要经过下列几个步骤:首先要从该具体问题抽象出一个恰当的数学模型, 然后设计出解决此类数学模型的算法, 再编写相应的程序并进行调试、测试, 运行程序并最后得到答案, 如图1所示。

早期计算机为解决问题而涉及的运算对象都是一些简单的数据类型, 如整型、实型或布尔类型数据, 所以一般把着重点放在程序设计的技巧上, 而不必重视数据结构。随着计算机的发展, 它的应用领域的不断扩大, 涉及非数值计算问题的应用所占的比例越来越大, 许多问题涉及到的处理对象不再是简单的数据类型, 其形式更加多样, 结构更为复杂, 因此, 解决这类问题的关键不再是数学分析和计算方法, 而是要设计出合适的数据结构, 以便更有效地解决问题。

二、课程说明

1. 课程的定位。

《数据结构》这门课程, 是计算机理论与技术的重要基石, 该课程一般是在大学二年级上学期开设, 具有承上启下的重要作用, 既要对前一年学习的软件技术进行总结提高, 又要为后续专业课程提供基础。它贯通始终, 是计算机科学与技术人才素质培养框架中的中坚课程, 对学生的软件开发能力培养至关重要, 也为学生今后的专业生涯打下牢固的基础。所以《数据结构》课程是计算机专业提高软件设计水平的一门关键性课程, 它在整个课程体系中具有非常重要的地位。《数据结构》课程在计算机学科中与其他课程的关系如图2所示。

2. 课程的教学目标。

温州大学瓯江学院作为独立学院, 其定位为培养“应用性”本科人才, 同时结合本课程的地位, 因此, 在本课程的教学中体现“基础性”和“应用性”。本课程的定位与目标是: (1) 注重基础性:掌握基本数据结构的特点, 了解数据结构与算法的关系;培养学生的算法设计与分析的基本理论知识和技能;培养学生设计及选择有效的算法、设计合适的数据结构的能力;增强学生发现问题、分析问题和解决问题的能力。 (2) 突出应用性:本课程强调理论和实践的统一, 突出对学生的动手能力的培养。在对学生进行基本数据结构的理论、技术和设计等的知识运用和技能培养的同时, 突出对学生进行将实际问题转化为基本数据结构和算法问题的分析能力。鼓励学生学以致用, 用学到的知识来解决实际问题。

3. 课程内容体系。

数据结构课程的内容主要是围绕着数据的逻辑结构、数据的物理结构 (数据在计算机中的存储方式) 和选用合适的算法来实现对数据的相关操作展开。数据的逻辑结构有:线性结构、树形结构、图结构;数据的物理 (存储) 结构有:顺序存储结构和链式存储结构。在教学中引入抽象数据类型 (ADT) 观点介绍数据结构技术, 采用算法时空分析来判断算法的好坏。在此基础上介绍数据结构的具体应用。数据结构课程的内容体系如图3所示。

我们把数据结构课程的内容划分为基础部分、数据结构与算法部分和应用部分。基础部分的内容有数据结构与算法的基本概念, 抽象数据类型 (Abstract Data Type, 简称ADT) 的表示, 算法时空分析 (算法复杂度) 等。数据结构与算法部分是课程的核心内容。介绍各种基本数据结构的特点、ADT、各种存储实现方法、相关的操作的实现。应用部分主要介绍排序、查找 (或检索) 、索引和散列等经典算法。

三、理论教学设计

1. 教学方法与手段。

由于独立学院的学生本身基础不够扎实, 加上《数据结构》课程理论性强, 内容抽象, 学生在学习该课程的开始阶段, 容易产生畏惧和茫然的情绪。为了提高教学质量, 我们在对教学方法和教学手段等方面进行了有益的探索和尝试。要处理好多媒体教学模式与传统教学模式之间的关系。多媒体教学模式以其形象性、生动性和信息量大等特点已成为主要的课堂教学手段, 但也存在一些不足, 一方面影响教师的即兴发挥, 而这恰是传统黑板教学的长处;另一方面, 由于多媒体教学具有信息量大、呈现快速、表现直观、操作简便的特点, 教学活动很容易出现“课件喧宾夺主”的不良倾向。笔者认为, 在讲述如算法思想、编写程序时, 采用传统的教学模式更能清晰地表达。因此, 在教学中要综合使用多媒体教学模式与传统教学模式两种教学手段, 以达到良好的教学效果。

2. 把握课程的重点和难点。

(1) 课程的重点。基础部分:数据结构的有关概念术语、算法特性、算法描述和算法分析;数据结构与算法部分:线性表、栈、队列、串、树、二叉树、图等数据结构的逻辑结构、存储结构、相应基本操作的实现, 这些基本数据结构的应用:一元多项式的运算、递归算法的设计和实现、哈夫曼算法的实现和哈夫曼编码的设计、最小生成树和最短路径的求法及实现;应用部分:顺序查找算法的设计, 二分查找算法的设计, 二叉查找树的创建、查找、插入和删除的算法的设计, 散列表的建立和查找算法的设计;直接插入排序算法、冒泡排序算法、简单选择排序算法、快速排序算法、堆排序算法和归并排序算法的实现, 这些排序算法的性能比较。 (2) 课程的难点。基础部分:抽象数据类型 (Abstract Data Type, 简称ADT) 概念的理解和描述, 算法时间复杂度和空间复杂度的估算方法;数据结构与算法部分:栈在递归函数中的应用, 模式匹配KMP算法。图的遍历方法、Dijstra、Floyd、Prim、Kruskal等典型的图应用算法;应用部分:排序算法的复杂性分析, 排序方法在各类实际问题中的应用。散列表的建立和查找算法的设计。

四、实验教学设计

1. 实验类型。

根据独立学院应用型人才培养目标, 注重培养实践动手能力, 结合教育部的“面向21世纪教学内容和改革计划, 保留少量必开的经典验证型实验, 增开综合型、设计型实验”的精神, 为了保证实验课的正常运行, 完成实验教学目标, 针对独立学院学生普遍编程能力比较弱, C程序设计语言基础较差的情况, 我们打算增开一些巩固C语言的课程预备型实验, 保留了必要的经典的验证型实验内容, 增加设计型实验, 加强综合型实验, 使得实验类型不再单一, 实验内容更显层次化, 做到既要有基本实验的训练, 又有独立思考、综合运用知识、创新等能力和素质的培养。预备型实验:主要加强学生C语言的薄弱环节, 如结构体、指针、数组、函数调用等, 掌握C语言的这些知识点是完成数据结构实验的有力保证。验证型实验:主要是为了理解和巩固数据结构的基本知识点, 用来验证典型数据结构的逻辑定义及在具体存储结构下的相关操作实现。综合型实验:实验内容涉及本课程的综合知识或本课程相关课程知识, 主要是为了培养学生的综合分析能力、实验动手能力、数据处理能力及查找参考资料的能力。

2. 实验方法。

对于验证型实验, 学生在做实验的任务基本上, 只是将课本的算法修改为在某种编程语言环境下可以运行的程序而已。但对于设计型和综合型实验, 尤其是综合型实验, 它是多个知识点的综合训练, 包括问题分析、总体结构设计、程序设计等基本技能, 需要用更科学的实验方法系统地完成。所以, 为完成《数据结构》实验, 我们引入软件工程的方法来指导实验, 以实现实验方法的规范化。需求分析:说明实验的主要任务, 如输入的形式和输入值的范围、输出的形式、程序功能和测试数据等。概要设计:说明本实验中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次调用关系。详细设计:实现概要设计中定义的所有数据类型, 对每个操作用程序设计语言编写代码;画出函数之间的调用关系图。调试分析:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;算法的时间复杂度与空间复杂度的分析;算法的改进设想。

3. 实验过程。

数据结构课程实验同其他课程不同, 在上实验课之前需要做大量的准备工作, 整个实验从开始到结束不可能在有限的实验计划课时中全部完成, 因此对整个实验过程的控制和管理显得非常重要, 要求对每一次实验课都进行精心地策划, 我们主要从课前预习阶段、实验操作阶段和实验总结阶段等三个阶段进行改革, 以实现实验过程的规范化。课前预习阶段:以往的实验教学环节, 往往是学生到了课堂上才知道实验的内容, 学生往往措手不及, 这不利于实验教学的正常开展。现在我们采用把每个实验内容提前放在网上, 要求学生课前充分预习, 详细了解实验目的和原理、实验要用到的数据结构和算法, 在实验之前必须提交实验预习报告。通过课前预习, 保证学生在实验中思路清晰, 能及时发现问题, 易于取得实验的成功。实验操作阶段:学生上机实验的过程是实验成败的关键, 我们一方面培养学生在实验过程中养成做实验记录的良好习惯, 另一方面引导学生在实验过程中积极思考, 当出现异常情况时, 教师要指导学生分析其产生问题的根源, 寻求解决问题的方法。学生在每次实验结束后, 要将实验记录交给教师检查签字。实验总结阶段:这一阶段要求学生完成高质量的实验报告, 实验报告中除了包括数据结构定义、算法思路、异常情况分析、测试数据及运行结果等必备的内容外, 更重要的还要包括实验设计实施的成败得失、经验教训和心得体会。整理和填写实验报告的过程, 即是学生对自身存在的问题进行修正和完善的过程, 通过分析整理实验报告, 学生可以更深刻地认识到自己在实验中存在的问题, 加强其设计思维的训练, 也能不断地积累解决实际问题的动手能力。

五、课程考核

1.《数据结构》课程的考核学生成绩以100分制评定,

其中, 平时成绩 (包括书面作业、课堂测试、期中测试) , 占总成绩的15%;考勤和学习态度, 占总成绩的5%;上机实习 (加实习报告) , 占学期总成绩的20%;期末考试, 占总成绩的60%。

2.“数据结构综合实验”的考核学生成绩以优、良、中、

及格和不及格五个等级评定, 其中, 学生编写的实际软件和运行结果, 占总成绩的30%;设计报告, 占总成绩50%;教师提问, 占总成绩10%;考勤和学习态度, 占总成绩10%。关于综合实验成绩的考核, 由于过去过分依赖实验报告的优劣, 导致学生不注重实验过程, 片面追求实验报告的篇幅和整洁程度, 严重制约了对学生综合素质的培养。因此, 必须注重综合能力的考评, 考虑平时的表现、实验过程的考核、严禁抄袭。

《数据结构》是计算机科学与技术专业的专业基础主干课程, 该课程整体的教学设计是以独立学院人才培养目标为依据, 结合学生的整体情况和课程在整个学科体系中的地位作出的, 已在本院2008级、2009级、2010级计算机科学与技术专业三届的学生中实施过。从实施过程中得到的反馈信息有:学生认为理论课掌握得比较好, 但要自己动手编程解决具体问题还是比较难, 实验的完成情况不理想;该课程对前导课程 (主要是C语言程序设计和离散数学) 的依赖性很强, 学生编程能力低下和数学基础的薄弱对该课程的教与学都有比较严重的影响。因此, 借着该课程院级精品课程建设的契机, 对该课程教学设计还要做较深入的探索, 比如对各种实验类型的比例设置, 实验难度的控制, 如何与前导课程的融合, 做好课程群建设等, 以不断提高课程的教学质量。

摘要:本文针对《数据结构》这门计算机专业的核心课程, 深入探讨了课程的定位、教学目标、内容体系等, 给出该课程的理论教学设计、实验教学设计及考核方式和标准, 并已在瓯江学院理工分院的计算机科学与技术专业三个不同年级的学生中实施, 取得了较理想的教学效果。

数据挖掘课程设计 篇2

数据课程设计心得体会(一)

在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。

当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是Html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。

我所负责的是数据库的备份和还原还有一些界面的实现。还记得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到了痴迷的程度。然而Php

是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和还原的时候,要考虑的东西还是很多的。当我遇到错误的时候,感到很受打击。值得欣慰的是,在同学的帮助和大量参考书的查阅下,我把自己的模块做好了。这就是我收获最大的地方。而且,我明白了遇到困难永不放弃的重要性liuxue86.com,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。

知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。回首这一个多星期的课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,也谢谢组员们的关怀。这些美好的回忆美好的东西将永远伴随着我。

数据课程设计心得体会(二)

数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。

首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学ASP(ASP培训).net),我接触到microsoft

公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过VB(VB培训),但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var

看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql

server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。

开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just

do

it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。

与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just

do

it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊。

实际上从学习的经历来看,我们接触的知识体系都是属于比较老或比较传统的,与现在发展迅速的IT行业相比很多情况已不再适用,尤其是当开源模式逐渐走近开发者后更是如此。虽然是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。总而言之,这次数据库设计心得体会不能用语言完全表达。

数据课程设计心得体会(三)

本次课程设计,使我对《数据结构》这门课程有了更深入的理解。《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

我的课程设计题目是线索二叉树的运算。刚开始做这个程序的时候,感到完全无从下手,甚至让我觉得完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献,之后便开始着手写程序,写完运行时有很多问题。特别是实现线索二叉树的删除运算时很多情况没有考虑周全,经常运行出现错误,但通过同学间的帮助最终基本解决问题。

在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。并对VC有了更深入的了解。《数据结构》是一门实践性很强的课程,上机实习是对学生全面综合素质进行训练的一种最基本的方法,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计基本技能和技巧的训练。此外,还有更重要的一点是:机器是比任何教师更严厉的检查者。因此,在“数据结构”的学习过程中,必须严格按照老师的要求,主动地、积极地、认真地做好每一个实验,以不断提高自己的编程能力与专业素质。

通过这段时间的课程设计,我认识到数据结构是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。

数据课程设计心得体会(四)

两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。这次实习证实提供了一个很好的机会。

通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。

从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。

我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。所以以后的课程设计要特别注意这一块的设计。

按照要求,我们做的是机票预订系统。说实话,我对这个是一无所知的,没有订过机票,也不知道航空公司是怎么一个流程。盲目开始设计的下场我已经尝过了,结果就是出来一个四不像的设计方案,没有什么实际用处。没有前期的调查,仅从指导书上那几条要求着手是不够的。

在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统。在两周的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题:由于忘记了一些java语言的规范使得在调试过程中一些错误没有发现,通过这次课程设计,我对调试掌握得更加熟练了,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如有一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。

我们学习并应用了SQL语言,对数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表学会了对于表的一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。

很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。

物理结构设计基本没有碰到问题,这一块和安全性、完整性不觉就会在物理结构设计中添加一些安全设置:主键约束、check约束、default定义等。最后才做索引的部分,对一些比较经常使用搜索的列,外键上建立索引,这样可以明显加快检索的速度,最后别忘记重要的安全性设置,限制用户访问权限,新建用户并和数据库用户做相应的映射。

不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来她并没有你以前觉得的那样,自己也是可以的。如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即面临找工作,从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!

以上基本是这次实习的体会了,设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。设计,是一个任重道远的过程。

数电课程设计心得体会

数电课程设计心得体会(一)

1、通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通过这个方案包括设计了一套电路原理和PCB连接图,和芯片上的选择。这个方案总共使用了74LS248,CD4510各两个,74LS04,74LS08,74LS20,74LS74,NE555定时器各一个。

2、在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。

3、我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准(liuxue86.com)。所以这个期末测试之后的课程设计对我们的作用是非常大的。

4、经过两个星期的实习,过程曲折可谓一语难荆在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激-情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;

正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。

同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。

对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

数电课程设计心得体会(二)

本次课程设计的题目是LC正弦波振荡器的设计,主要应用了通信电子线路三点式振荡器电路内容。通过查找资料,结合书本中所学的知识,完成了课程设计的内容。把书中所学的理论知识和具体的实践相结合,有利于我们对课本中所学知识的理解,并加强了我们的动手能力。

在课程设计之前,我们通过各个渠道查找资料后分析验证,经过多次的修改和整理,作了如上的设计思路。虽然这次设计一开始是按照设计要求去完成的,但由于在实际操作中,出现了比较大的问题,导致以上的准备资料,在实际操作中都未能派上用场。在这次的课程设计过程中,我懂得了很多,课程设计不光是让我们去“设计”,更重要的是培养我们的能力!通过本次课程设计使我对通信电子线路又有了进一步的了解,增加了对所学知识的应用。

其次对这个课题的理解问题。因为高频的知识本来就不容易懂,所以查找资料和查阅基础知识,花了我们很长的时间。这些都应归咎于自己基础知识的匮乏。

在这次的课程设计中,我们通过动手实践操作,进一步学习和掌握了有关高频原理的有关知识,特别是动手操作方面,加深了对LC正弦波振荡器的认识,进一步巩固了对高频知识的理解,也对模块的基本工作原理和调试仪器有了一定的了解。在设计时我们根据课题要求,复习了相关的知识,还查阅了相当多的资料,这也在一定程度上拓宽了我们的视野,丰富了我们的知识。这次的高频课程设计重点是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力。在接触课程设计之前,因为这门课程的难度很深度,我对高频是敬而远之的心态,所以基础知识以及逻辑推理思维方面都是相当欠缺。在对高频的实验模块操作方法所知甚少和对调试知识几乎一无所知的程度,最后通过不懈努力终于圆满完成了课程设计的要求。

数电课程设计心得体会(三)

数电课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在短短的两个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次数电课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做数电课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次数电课程设计终于顺利完成了,在设计中遇到了很多问题,最后在王老师的辛勤指导下,终于游逆而解。同时,在王老师的身上我学得到很多实用的知识。总体来说,这次实习我受益匪浅.在摸索该如何设计程序使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力.在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐.这次数电课程设计,虽然短暂但是让我得到多方面的提高:1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的分频器的设计,开始并不理解分频器的原理,但是和其他的专业同学讨论后,理解了分频器的基本原理后,很快的设计了电路原理图。

vb课程设计心得体会

vb课程设计心得体会(一)

数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。

首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学.net),我接触到microsoft

公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var

看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍(liuxue86.com)。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql

server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。

通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。

来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。

其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just

do

it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。

开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just

do

it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。

与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just

do

it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!

我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。

vb课程设计心得体会(二)

经过近一个月的设计与制作,我们组的《2015世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。

这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。

1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题

2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。

3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。

4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。

vb课程设计心得体会(三)

VB课程是计算机科学与技术本科专业的专业骨干课。本课程主要通过VB论述了面向对象程序设计和组建编程的机理,涉及到控制台界面程序、Windows窗体程序、图形界面编程、数据库、网络应用系统等多方面的内容。内容量大,程序设计复杂、同时VB程序调试是在VS环境下进行,在编程过程中环境会自动为用户生成一些必要代码,以降低编程难度,降低学生的编程负担,但这也带来了一些问题,如:学生对VB的程序结构把握和了解不全面,对编程机理了解不透彻,学生容易盲目照搬书上代码,不求甚解,似是而非。为了解决这个问题,我们采取了课程设计的方法来加深学生对知识的理解,将书本知识迁移到新的问题解决中,提高学生分析问题和解决问题的能力。

要求学生在学习该课程中,应用每个相对独立的、完整的单元知识解决一个实际项目,设计编写一个小作品;学完整个课程后,完成一个综合性比较强的编程项目,使学生对整个课程内容进行全面的总结、梳理,以项目完成为手段,全面锻炼学生分析问题和解决问题的能力。

一.目的1.为使学生掌握VB编程、面向对象程序设计思想和组建编程的知识实际技能,除了系统地讲授必要的VB知识,上机练习,做作业外,还应该对学生作较全面的编程技能和分析问题解决问题的能力训练,即作课程设计,以达到如下目的:具体应用和巩固本课程及有关先修课的基础理论和专业知识,了解面向对象程序设计思想,掌握应用VB.NET编程和组建编程程序设计方法,培养学生初步的项目设计能力。

2.独立地根据一定的项目要求,查阅资料,写出项目开发目标,分析开发过程中所用到的课程知识,提出解决方案,编码并上机调试完成系统,培养学生分析问题和解决问题的能力。课程设计是教学过程中的一个重要环节,必须认真对待。

二.要求

在课程设计中要求学生注意培养认真负责,踏实细致的工作作风和保质保量,按时完成任务的习惯。在设计过程中必须做到:

1.在某个教学单元结束后,完成一个教师布置的、或学生自己拟定的、知识覆盖整个章节的,有一定综合性和难度的项目,要求学生描述出要达到的目标、围绕目标,收集资料和素材,复习所需的课程知识,描述问题解决方案、编写程序上机调试,直到项目的完成。最后的成果要有完成的作品和相应的文档。

2.在课程结束后,完成一个大的编程项目,其要求与课程单元的项目差不多,只是综合性更强、难度更大、知识覆盖面更广,工作量更大,以全面促进学生复习和梳理学科教学内容,提升学生分析问题、解决问题和文档的书写和编制。

三、采取的措施

为了保证课程设计能够按照预定的目标和计划进行,我们还采取了以下措施来加强对学生监督和管理。

1.首先讲清楚课程设计的意义,让学生能够自觉积极主动地进行课程设计,发挥学生的主观能动性;

2.在课程设计过程中,教师随时巡视和监督,了解把握和控制课程设计的进展;

3.将学生的作品集中展示、评价、打分,可以让学生在展示的过程中获得成就感、自豪感,学生之间可以相互学习、取长补短,同时在此过程中可以明确标准,自觉地按照标准来调整自己地学习;

4.将课程设计作为学期成绩的一部分记载,大约占10%,必须完成课程设计后才能参加考试,课程设计不过关,即使考得再好,也不能过。

四、取得的效果

通过以上措施,学生全部都完成了自己的项目、将所有的作品通过超链接网页的方式集成在一个作品集中,所有的学生都完成了4~6个小作品,每个作品都反映了学生应用课程的某部分知识解决某个问题的结果,通过完成这些作品,学生巩固、加深了对相关知识的理解,加强了知识之间的联系,促进了知识的迁移和应用。同时学生看到凝聚着自己的心血、汗水、思维和创新的作品,就像一个母亲看到自己呱呱坠地孩子那样充满了喜悦,激发了学生的创造欲望。通过同学之间作品的对比,提供了一个相互学习交流的平台,激发了学生的竞争意识。总之通过课程设计受到了良好的多方面的效果,从考试成绩来看,2004级本科全部都及格了。

vb课程设计心得体会(四)

这些东西虽然在书本里经常看到,但是不亲身体会,是不会有深刻印象的。

1、一定要先设计后编程,否则会很费力,调试也会没有头绪;

2、不要等程序编好后再补写文档,这样写文档会很郁闷的;

3、注释很重要,否则今天写的函数,明天就看不懂了;

4、编程风格要尽量一致,这样自己看起来方便,别人看起来也方便;

5、程序一修改,注释一定要修改,否则注释不但没有起到应有的作用,反而会起反作用。

vb课程设计心得体会(五)

在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想办法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。

刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。

第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比如说开始的时候打开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改过来之后,程序终于可以打开运行了。然后,检查的时候,又发现“查找”运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码对比一下,发现了错误所在之地,然后更正了过来。

经过一番努力,程序终于做完了。

后来,室友看了我的程序,她说运行不了的,就是出现了错误,出现了错误,就应该改过啊,这时的我才恍然大。“是错误,那么就要改正的!”于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,编辑代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习.第二,克服畏难情绪,树立学好程序设计的信心(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多.要真正能进行程序设计,就要深入理解这些概念.应该重视概念的学习.(3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法.因此我们得多动手编写程序,逐渐提高写程序的能力.自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,做起来才比较从容.等你在编写大量程序之后(4)上机调试程序应注意多问问同学,多问问老师、,把不懂的地方标出来。(5)养成良好的编程习惯,第一,程序构思要有说明;第二,学会如何调试程序;第三,对运行结果要做正确与否的分析。

但是,如果以前上课的时候不认真的听讲的话,做这个程序设计就会有点点困难,所以,同时也在提醒我们,学习,任何时候都要认真!

总之,在此次的VB程序设计中,如果没有足够的耐心,就不可能完成的很好。所以此次VB程序设计,让我做事情更加有耐心,更加细心,学习更加认真仔细。

vb课程设计心得体会(六)

在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。

当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是Html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。

数据挖掘课程设计 篇3

关键词:网络数据库 课程设计 教学方法

一、引言

数据库技术是计算机技术领域中发展最快的技术之一,也是应用最为广泛的技术之一,它已经成为计算机信息系统的核心技术和重要基础。根据对广州、深圳等对计算机专业人才需求量较高的省市和地区的就业要求分析,对数据库技术的熟悉和掌握,排在众多计算机专业技能要求的前列。因此,我们根据我院计算机信息类专业人才培养的方案和对广州、深圳和本地对计算机信息类专业的需求分析,选择了微软公司的SQL Server软件作为数据库课程的主要学习软件。该软件兼具大型数据库技术要求和易于实现等特点,非常适合高职高专学生要求应用性强的特点。

二、“网络数据库”课程教学设计

通过对国内各大出版社出版的高职高专《网络数据库》或者“SQL Server”软件的相关教材的分析和了解,可以看出很多教材对网络数据库软件的教学内容主要是设计为对数据库的分析和对SQL Server软件的基本操作上。前者主要涉及数据库的基本定义和概念、数据库的设计方法,E-R图的绘画、数据库设计步骤;后者主要是对SQL Server软件的基本操作,包括对SQL Server的基本操作、T-SQL语句的使用、数据库的安全与管理上。这些内容基本是该门课程教材的主要内容。

然而,在实际的教学中,不少学生提出这样的疑问:“数据库到底是用来做什么的”,由此证明,按教材编排的章节学习,会让很多同学无法了解数据库技术的作用,只能肤浅简单地学会对SQL Server软件的基本使用方法。因此,我个人认为对“网络数据库”课程和SQL Server软件的学习的重点,应该着重放在对数据库技术的应用上,。而要做到这一点,在教学过程中,可能需要突破课程本身的限制,而引入其他课程的学习。

(一)“网络数据库”课程教学设计基本原则。

确定了以上的方向,在课程教学设计时,设定了以下几个原则:

1、“理论指导实践”原则。

在涉及数据库相关理论之初,会发觉数据库理论是比较抽象的,在这一阶段,对学生提出适当的引导是非常必要的,要让他们明白:对数据库理论的掌握是左右今后对数据库实践的基础。但是过于抽象和难以理解的理论往往会成为学生培养学习兴趣的绊脚石,因此,这一阶段的理论的学习,可以先挑几个与实践最密切相关的知识点作为把握重点,如:数据库定义、数据库和数据库系统的关系、E-R图的绘画等,对范式的概念和数据库设计六阶段的内容也可以先做引导,让学生在今后的实践中发觉问题,从而回过头来继续学习数据库理论知识。

2、“实践提高理论”原则。

结束前期的数据库理论学习,就会进入到对数据库软件SQL Server的学习使用阶段,而往往很多学生会觉得这两个阶段此时连接不上,从而导致学习完成后对数据库技术不明就里的情况,因此,这一阶段要先让学生动手操作,让他们在操作过程中遇到问题从而促使他们回头联系理论。

例如:对“三范式”的学习,很多学生在理论学习阶段都无法真正理解这一概念,如果能在实践阶段让他们自己体会到如果数据库中数据表设计时没有满足“三范式”要求,他们的操作就会造成数据冗余、删除异常等情况,就会自己想到自己设计的数据表有问题,要解决这个问题,就必须回头再学习“三范式”的理论。此时,才能更明白“三范式”的概念和在实际操作中的作用。这样的效果比慢慢解释理论的效果要好很多。

3、“尽量白话”原则。

计算机信息类专业相关课程是有很多专业术语的,而这些术语往往又十分抽象,因此在讲解理论或实际操作过程中,采取“尽量白话,联系实际”的原则,可以帮助学生尽快理解抽象复杂的理论。

比如,范式的概念向来是数据库理论中最为抽象和难以理解的理论之一,很多学生在学习这一知识点时都表现出不能理解。但是,通过对网络资源的查询,对于这一理论找到非常“白话”的解释:

说白了,三范式的描述虽然不尽相同,但特点都非常相似。就好比在说不要为了把你哪天(A)和哪个女孩(B)的约会记下来,就把的女孩姓名(B)、胸围(C)都放在同一张表里,即不要用ABC一张表,而应该用AB,BC两张表,以尽量避免浪费数据存储空间。因为和同一个女孩可能会约会好几次,但没必要每次都记录她的胸围。

在上课时候引用,很多同学都能在笑声中明白了其中的道理。对我们的教学也有很大的启发:如果能在教学中尽量引用“白话”,联系实际,把复杂的概念理论简化为非常简单的例子,学生很容易就能接受。

4、“综合开发”原则

众所周知,数据库技术往往要与开发工具结合才能发挥更大的作用,而学生在学习过程中也要遵循这一规律,才能明白数据库技术的意义和数据库设计的整个流程。因此,在教学中,遵循“综合开发“的原则,让学生体会一个完整数据库系统的开发流程,才能达到“网络数据库”课程的教学目的。

(二)课程教学实践

遵循了以上指定的教学原则,在教学过程中,大体把“网络数据库”学习分为两个部分:第一部分:SQL Server软件学习阶段;第二部分:网络数据库开发实训阶段。这两个阶段学习的侧重点不同,第一阶段着重于对数据库基本概念和SQL Server软件基本学习,第二阶段则着重于数据库系统的开发过程。在两个阶段的教学过程中,采用的教学方法也不尽相同。总的来说,采取的教学方法主要有:

1、设计案例联系实际的方法

网络数据库教材通常都会采取使用同一个数据库贯穿始终的方法,但是有些教材选取的数据库虽然设计比较完善,能体现管理的流程,却与学生差距较大,因此,在学习阶段我们采用“学生管理数据库”作为数据库案例,在数据库理论学习阶段,通过上课讲解,设计出E-R图及二维表等方法,并且引用真实的学生情况、课程设置和分数等数据。让学生体会到离自己距离最近的数据库管理方法,以增加学习的兴趣。由于采用的数据库与学生的关系很密切,资料都源于实际,因此,在第一阶段中设计的课堂作业也可以尽量联系学生的实际,例如:使用T-SQL语句检索出自己的基本信息,查询自己的课程成绩等等。这些问题的设计使得学生很有兴趣从众多记录中找到属于自己的信息,从而掌握的基本的T-SQL语句的使用方法。

2、分组开发的方法

在数据库系统开发的第二阶段,基本要求是使用开发工具由头到尾由学生完成一个数据库系统的开发。在这一阶段,最好的方法就是分组进行开发,一来可以促进彼此之间的学习,二来也可以培养团队合作的精神。但是要达到这一阶段的教学目的就必须结合另一课程进行综合开发,这就要求教授网络数据库的老师至少对两门课程都有一个基本的了解。

在这一阶段,采用提供备选数据库系统,由学生选择自己最感兴趣的数据库按数据库设计的六个阶段进行开发,再结合软件开发形成综合性的数据库系统。这一阶段,许多学生因为要自己设计数据库,这促使他们又回头去查阅“网络数据库”课程初期学习的理论知识,按数据库设计的六个阶段来进行数据库系统的设计,使学生对理论知识有更深入的理解。

4、结合实际需求,提出开发要求

为了让课堂内容与企业真实的开发情况联系起来,我们特地到广州、深圳等地进行实地考察。确实了解企业对项目开发的流程和标准,通过调研,使我们的思路更清晰,在教学过程中,严格按企业的标准和流程去要求学习,大到项目开发的步骤,小到数据库对象的命名规则、设计文档的书写,力求让学生提前适应企业要求,不进让每个同学都感受到数据库系统规范和严谨的开发过程,更缩短毕业后与单位之间的磨合期。

5、鼓励联系其他科目,最大限度发挥个性。

现在的学生喜欢个性化,在学习过程中,绝对不能抹杀了这一点。开发过程中,我们鼓励学生联系其他科目,例如photoshop图形图像设计、flash动画制作、网页制作技术等等,主张鲁迅先生的“拿来主义”,只要是学生认为有用的技术,就能运用到自己的系统之中。通过这样的方法,很多学生不仅提高了自己的兴趣,更明白了计算机相关学科之间的关系。

三、教学实践中的总结

经过一个学年的“网络数据库”课程的教学,在教学过程不断总结经验,可以明白要上好“网络数据库”这门课程,需要加强以下几点认识:

1、课程设置要以提高学生实际动手能为为最重要目标。

我国技能型人才较为短缺,而技能型人才的培养核心就是实际动手能力,对于高职高专的学生来说,这一点尤为重要。数据库是计算机信息系统的核心技术和重要基础,在教学过程中,一定要以提高学生实际动手能力为最重要的目标,以帮助他们能在毕业以后尽快走向计算机信息类的工作敢为。

2、任课教师要不断总结课程规律,引导学生适当分配学习精力,把握数据库课程学习的规律。

数据库相关课程的概念相对比较抽象,前后学习容易让人产生“脱节”的误区,这就要求任课教师在教学中不断总结数据库课程的规律,帮助学生度过学习中的“疑惑期”,把对数据库理论的学习和操作的学习结合起来。

3、在教学过程中,要突破课程的界限,引导学生综合运用所学知识。

计算机信息类所有课程的学习其实是一个整体,而有些学生却错误地把中学学习的偏科习惯带入到专业学习中,由于学生没有真正地与社会接触,无法分清计算机课程安排中各科目的实际应用情况,只是以个人的喜好去判断,往往浪费的大学学习的时间,造成毕业生不符合用人单位需求的情况屡见不鲜,因此,在教学过程中,老师应该给学生适当的引导,即要考虑到学生的具体情况,又要结合用人单位的实际需求,提倡学生学习中满足个性需求的同时,又要符合计算机学习的规律。这点就要求每一位老师对所有计算机信息类课程有一个综合性的认识,才能给学生以提出专业性的指导。而在教学过程中,应当适当融入一些其他科目的介绍,例如,在数据库教学过程中,可以适当引入一些开发工具软件的介绍等。在实际的教学中,这样的方法,获得很多同学的认可。

四、结束语

总而言之,只有在教学过程中不断开动脑筋、扩宽思路才能总结出适合高职高专发展的教学经验。如果只是千篇一律用单一的方法对待每一个学期的教学工作,不仅不符合计算机信息类课程的教学规律,也必将被学生淘汰。

参考文献

【1】李岩、张瑞雪主编 【M】.北京:清华大学出版社,2008,1-2

【2】马永涛、程劲 【C】全国高等院校计算机基础教育研究会,北京:中国铁道出版社,2008,21-27。

【3】网络资源,白话数据库设计范式【EB/OL】,2004-04-04,http://blog.csdn.net/hle/archive/2004/04/07/8111.aspx

《数据库开发》课程的设计 篇4

《数据库开发》是计算机专业的一门核心课程, 通过本课程的学习, 学生将能够进行初步的需求分析, 根据分析结果设计数据库的概念结构模型和逻辑结构模型, 并能够根据物理结构模型进行数据库实施和简单数据库应用系统的开发。本课程实践性非常强, 注重培养学生的动手能力。所以, 设计课程过程中, 应该更加注重课程本身的实用性, 更加注重课程内容本身与企业岗位的相结合。

《数据库开发》课程设计主要经历了企业调研、课程标准开发、课程方案设计等几个阶段。下面就分别说明一下课程设计的每个阶段。

1《数据库开发》课程企业调研

进行企业调研是课程建设要进行的第一步, 只有进行了充分的企业调研才能培养出满足社会和企业需求的合格人才。才能根据需求进行课程的设计, 这样才能使学校的课程更加适合企业, 更加适合社会。为此, 我们的项目团队到企业进行了实地调研, 我们获取到了企业对于学生的需求和对于课程设置方面的建议。

本门课程在进行企业调研之前已经根据之前的教学经验设置了本门课程的任务, 具体任务设置如下:

任务1数据库分析与设计

任务2系统前台页面设计

任务3数据库实现

任务4系统后台实现任务5数据库维护

通过与企业专家进行研讨, 最终获取来自企业关于《数据库开发》课程设计的建议。具体建议如下:

任务1教学要求及建议:

(1) 数据库基本概念和知识简单带过, 达到了解的程度即可。

(2) 需求分析难度较高, 不建议让学生进行整个系统的需求分析, 可以编写需求规格说明书的部分内容。

(3) 进行数据库概念结构设计时, 可以先画出系统的各个部分的E_R图, 最后在将整个系统的E_R图画出来。

(4) 可以使用PowerDesigner软件进行数据库的概念结构设计和物理结构设计。

(5) 这部分内容比较难, 需要多练习, 可以适当多加一些课时。

任务2教学要求及建议:

(1) 本部分内容是对于之前所学网页设计和JSP的内容进行熟悉, 可以以学生做为主。

(2) 进行分小组教学, 小组内进行角色划分, 充分发挥团队的力量。

(3) 因为是之前的知识可以适当减少课时。

任务3教学要求及建议:

(1) 对于数据库管理软件可以选择相对比较容易上手的, 如SQL Server、MySQL等。

(2) 数据库管理软件图形界面操作时, 应该注意多做练习培养学生的动手能力, 选择是实例可以由浅入深, 逐步较大难度和工作量。

(3) 应该重点讲解SQL语句, 因为SQL语句的大部分语法都是可以在不同数据库通用的。

(4) 实现所用项目的数据库时, 也应该将尽量让学生自己进行SQL语言的编写, 这样可以更好的使掌握SQL语句的应用。

任务4教学要求及建议:

(1) 讲解Spring的基本原理和用法时, 应通过简单的实例学习Spring的应用。

(2) 学生应该进行分小组不同模块的开发练习, 小组规模不要太大, 3个人为一组比较适宜。

(3) 不应占用太多课时。

任务5教学要求及建议:

(1) 数据库维护的内容应该以视图和索引为主, 进行重点讲解。

(2) 数据库的用户和权限的应该多做实例。

(3) 触发器的使用可以简单讲解。

课程总体建议:

(1) 课程讲解内容较多, 且内容难度较高, 需要课时较多。

(2) 应重点讲解任务一和任务三的内容, 其次是任务四和任务五的内容。

(3) 学生多做练习, 注意培养他们的团队合作能力和沟通能力, 注意锻炼学生的自学能力。

有了企业调研结果作为课程设计的依据, 就可以进行课程标准的制定。

2《数据库开发》课程标准的设计

课程标准是一门课程进行教学的根本依据, 在课程标准中要包含课程的设计思路、能力目标和课程内容框架等内容。制定课程标准一定要详细描述课程各方面的内容, 制定完整准确的课程标准是进行课程设计重要环节。

2.1 课程设计思路本课程主要以企业实际项目为主

线, 通过五个典型的工作任务, 使学生掌握数据库开发的相关知识和技能;学生在学习本课程过程中, 主要学习的内容包括:数据库需求分析、数据库模型设计方法、使用数据库管理软件对数据库模型进行实施、使用数据库管理软件管理数据库, 对已有的数据库开发数据库应用系统对数据进行增删改查的基本操作。将该课程的整个教学任务按照项目分为5个典型的工作任务, 具体描述如下:

(1) 数据库需求分析:对所选用的项目的需求使用需求分析方法进行分析, 并编写需求规格说明书。

(2) 数据库模型设计:根据上一个任务中编写的需求规格说明书, 进行数据库的概念结构设计、逻辑结构设计和物理结构设计。

(3) 数据库模型实施:选择数据库管理软件对上一个任务中设计的数据库模型进行实施, 并介绍SQL语句的基本应用。

(4) 数据库查询操作及视图、索引等数据库对象应用:对于已有数据库使用SQL语句进行查询的操作, 并介绍视图、索引等主要数据库对象的应用。

(5) 数据库应用系统开发:开发一个基于Web的数据库应用系统, 对已有数据库实现数据的增删改查的功能。

以上的典型工作任务, 与企业调研之前的工作任务对比情况, 如下表所示:

2.2 能力目标

(1) 能够进行初步的需求分析

(2) 能够根据需求分析的结果设计数据库的概念模型

(3) 能够将数据库概念模型转换为逻辑模型, 并生成物理模型

(4) 能够使用SQL语句实施数据库模型

(5) 能够使用SQL语句进行简单数据查询

(6) 能够使用Spring+Hibernate开发基于Web数据库应用系统

在课程标准中, 还包含其他的一些内容, 比如课程内容、课程的考核方式等内容, 这里不再赘述。制定完课程标准后, 就要依据课程标准进行课程方案设计。

3《数据库开发》课程方案设计

根据课程标准, 进行课程方案的设计, 课程方案设计一般包含课程总体方案设计、课程任务方案设计和课程活动方案设计。

3.1 课程总体方案设计

课程总体方案设计是对于本课程的总体的介绍, 其中包含课程的课时、适用专业、学习内容、能力目标、学习成果和考核方案等内容。

3.2 课程任务方案设计

课程任务设计方案是对于课程中涉及的典型工作任务的描述, 它具体说明了课程中每个任务的学习内容、能力目标、学习环境、教学方法、学习成果和评价标准等内容。

3.3 课程活动方案设计

课程活动方案设计是对于每个典型工作任务中具体活动的描述, 它具体说明了在典型工作任务中每个学习活动, 介绍学习活动的内容、目标、活动具体设计、课程用到的参考资料等内容。

在完成课程的方案设计后, 就可以根据方案进行数据库的实施了, 在实施过程中还会遇到各种问题, 实施完成后, 要根据实施的情况, 对课程的课程标准、课程设计方案等内容进行修订, 从而使得课程的设计方案更加完善。

4 结论

由上面的内容不难看出, 《数据库开发》课程的设计或者是其他技术类课程的设计, 都应该注重实践, 减少课程理论知识的讲解, 将课程的理论知识融入到学生完成的典型工作任务中, 真正要做到“做中学”, 要重视课程本身与企业的关联, 要做到课程为企业服务, 另外, 课程本身中的内容还要与时俱进, 跟得上社会发展。

摘要:本文主要介绍了《数据库开发》课程的设计过程, 重点介绍了企业调研阶段、课程标准制定阶段和课程方案设计阶段的内容, 通过对于《数据库开发》课程设计的总结, 阐述了课程设计过程中的应该注重的一些问题。最后得出结论, 课程设计应该充分考虑企业的需求, 要与时俱进跟得上社会的发展。

关键词:企业调研,课程标准,方案设计

参考文献

[1]马丹.《数据库课程设计》中常见问题及解决措施.2012.5.

数据结构课程设计报告 篇5

数据结构课程设计报告

课程设计题目 迷宫 航班信息查询系统 学 号 姓 名 班 级

专 业 网络工程 完 成 时 间 2013-1-4 指 导 教 师

数据结构课程设计

迷宫

题目一

1.设计内容 1.1问题描述

求迷宫从入口到出口的所有路径。1.2设计要求

1.迷宫中不能使用递归算法查找路径。2.试探方向限定为上、下、左、右四个方向。3.迷宫采用随机生成和手工生成两种方式。4.生成从迷宫入口到出口的最短和最长路径。5.迷宫的入口和出口由键盘输入。

1.3开发环境

Visual C++6.0的集成化环境 1.4研究思路

对这样的矩形迷宫,可以用N*M的矩阵来描述,N和M分别代表迷宫的行数和列数。这样,迷宫中的每一个位置都可以用行号和列号来指定。从入口到出口的路径则是由一个位置构成的,每个位置上都没有障碍,且每个位置(第一个除外)都是前一个位置的东、南、西或北的邻居。为了描述迷宫中位置(i,j)处有无障碍,规定:当位置(i,j)处有一个障碍时,其值为1,否则为0。

经分析,一个简单的求解方法是:从入口出发,沿某一方向进行探索,若能走通,则继续向前走;否则沿原路返回,换一方向再进行搜索,直到所有可能的通路都探索到为止。即所谓的回溯法。

2.设计步骤

2.1 需求分析

(1)题目:迷宫的生成与路由。生成一个N*M(N行M列)的迷宫,0和

1-1数据结构课程设计

迷宫

在该程序中,首先进入的是菜单选择,在菜单中有3种选择,选1是手动输入迷宫函数;选2是随机自动生成迷宫;选3是退出程序。在手动生成迷宫时,有两种输出方式,一是矩阵输出,二是图形输出。在矩阵输出时,直接将数组中的数进行输出,在图形输出时,则要判断该点的情况,然后输入迷宫的出入口,再调用mgpath()函数进行判断是否存在路径,如果存在则将路径经过的点进行输出,并且将经过的点进入到辅助数组中(辅助数组是辅助图形界面的输出),并且将辅助数组初始为1,辅助数组中点为路径的重新赋值为0,然后根据情况输出图形界面。在自动生成迷宫时,用到了c语言随机函数,对于其它问题,和手动情况基本相同。

2.3 详细设计(1)主菜单伪代码:

while(flag1){

}

{shuru();//输入行列数

printf(“手动建立迷宫矩阵(0表示可通1表示障碍):n”);for(i=1;i<=m;i++)

for(j=1;j<=n;j++)scanf(“%d”,&mg[i][j]);showplay(mg);// 迷宫输出 churukou();//迷宫出入口的输入 x=Mazepath(mg);// 判断路径函数

数据结构课程设计

迷宫

和“class ‘maze’has an illegal zero-sized array”两行错误。双击错误信息,找到出错的程序段,经过查阅资料发现,在利用顺序栈时,没有定义顺序栈的向量空间大小,导致程序出错。但不要对向量空间定义过大,否则会浪费空间。

(2)算法的时空分析:

由于链栈实际上是运算受限制的单链表。所以取栈顶元素运算的算法、置空栈运算的算法执行时间与问题的规模无关,则该算法的时间复杂度为O(1);而其入栈运算的算法与出栈运算的算法相当于在链表的表尾进行插入和删除操作,不需要移动元素,时间复杂度也为O(1)。建立迷宫矩阵的时间复杂度为O(x*y)。在查找路径的过程中,最坏的情况下可能要考察每一个非障碍的位置。因此,查找路径的时间复杂度应为O(unblocked)。

链栈的入栈算法、出栈算法、取栈顶元素算法、置空栈算法执行时所需要的空间都是用于存储算法本身所用的指令、常数、变量,各个算法的空间性能均较好。只是对于存放顺序栈的向量空间大小的定义很难把握好,如果定义过大,会造成不必要的空间浪费。所以在定义时要慎重考虑。

3.用户使用说明

运行该程序,运行的界面的会出现菜单界面,然后用户可根据界面的提示进行相应的操作,生成迷宫的方式有两种方式,手动生成和自动生成,手动生成时、,用户可根据自己的要求输入迷宫的格式,还需输入相应的入出口,确认程序就会生成相应的路径图形;自动生成只需输入所需的行数和列数,就会生成迷宫,接下来的操作和手动操作相同了。

图数据结构课程设计

迷宫

图1-2

图1-3 退出

5.总结与心得体会

本次课程设计过程中由于掌握的知识不牢固,在编程序的过程中得到了同学的帮助和指导,在此表示感谢。课程设计的过程中,遇到了一些问题,大部分是课本中的知识掌握的不牢固,还有就是在以前学习C++的过程中相关的知识掌握的不够全面。在以后的学习过程中,自己一定要把各种知识掌握牢固。

{ }

mg[i][j]=1;//初始化

矩阵,将最外围置为1

printf(“n输入迷宫入口:n”);scanf(“%d%d”,&x1,&y1);printf(“输入迷宫出口:n”);scanf(“%d%d”,&x2,&y2);

}mlink;mlink *stack;//定义一个栈 int m,n,x1,x2,y1,y2;//定义全局变量

}

void showplay(int mg[][M+2])//迷宫输出

{

n“);

for(i=1;i<=m;i++){

printf(”n“);for(j=1;j<=n;j++)

printf(”%d “,mg[i][j]);

int i,j;

printf(”迷宫矩阵如下(0可通):printf(“输入行数:n”);scanf(“%d”,&m);printf(“输入列数:n”);scanf(“%d”,&n);数据结构课程设计

迷宫

} } printf(“n迷宫图形如下(白色for(i=1;i<=m;i++){

}

printf(”n“);for(j=1;j<=n;j++){

} if(mg[i][j]==0)printf(”

if(mg[i][j]==1)printf(“

if(mg[stack->row][stack->col+1]==

p->next=stack;

stack=p;{

p=(mlink 可通):n”);0)//下面位置可通

*)malloc(sizeof(mlink));

p->row=stack->row;p->col=stack->col+1;□“);//为0的输出□ ■”);//为1的输出■

//入栈

mg[stack->row][stack->col]=1;//将

} else

访问过的标记为1 int Mazepath(int mg[][N+2]){

mlink *p;if(mg[x1][y1]==0){ p=(mlink p->row=x1;p->col=y1;p->next=NULL;stack=p;

//将入口

mg[stack->row][stack->col]=1;/while((!(stack->row==NULL&

if(mg[stack->row][stack->col-1]==0)//上面可通

//入栈

stack=p;

p->next=stack;

{

p=(mlink *)malloc(sizeof(mlink));

*)malloc(sizeof(mlink));

p->row=stack->row;p->col=stack->col-1;放入堆栈 /标志入口已访问

&stack->col==NULL))&&(!(stack->row==x2&&stack->col==y2)))//循环条件直到找到输入的出口

{

mg[stack->row][stack->col]=1;//将

访问过的标记为1

数据结构课程设计

迷宫

void tonglu()//将坐标的顶点输出 {

始化

printf(“(%d%3d)n”,q->row,q->col);

情况

else printf(“□”);//0的 } q=stack;{

} for(i=0;i

for(j=0;jrow-1][q->col-1] q=q->next;

=

while(q!=NULL)//循环条件 q=q->next;for(j=0;j

情况

}

void create(int mg[][N+2])//创建和菜单

{

int i,j,x,choice,flag1=1;chushi();while(flag1){ }

printf(“n”);printf(“所有通道为(由下而q=stack;{ 上):n”);while(q!=NULL)//循环条件

printf(“

##

printf(”#

n“);

*********选择菜单**********

#n”);

printf(“

##

printf(”输入选项:“);scanf(”%d“,&choice);switch(choice){ case 1://手动建立迷宫

{

shuru();

printf(”手动建立for(i=1;i<=m;i++)

n“);

printf(”# 1-手动生成迷

2-自动生成迷宫

3-退出

#n“);0;//将路径中的点赋给辅助数组a 形的界面输出

迷宫矩阵(0表示可通1表示障碍):n”);

for(j=1;j<=n;j++)scanf(“%d”,&mg[i][j]);

数据结构课程设计

航班信息查询与检索系统

题目二

1.设计内容 1.1问题描述

设计一个航班信息查询系统,提供信息的管理和使用功能,管理包括更新、添加、删除功能。

1.2设计要求

(1)原始信息存储在文件中,记录不少于50条。(2)用户界面至少包括以下功能:  创建

 修改(插入、添加、删除、更新) 查询  浏览  退出管理系统(3)航班信息包括:

 航班号:字符序列,具体字符表达的意思上网查询  起点站和终点站:字符串  班期:指一周中哪些天有航班

 起飞时间:可将时间定义成一个时、分组成的序列  到达时间:可将时间定义成一个时、分组成的序列  机型:字符序列,具体字符表达的意思上网查询  票价:整型数,具体值可上网查询

(4)创建是指从文件中读取数据,并存入所定义的顺序表中。

(5)可按航班号、起点站、终点站、起飞时间、到达时间等进行查询。查询时要用到顺序查找、二分查找方法。输出查询结果时必须排序。

(6)可按航班号、起点站、起飞时间、票价进行删除和更新操作,删除的记录存入另外的文件中,作为日志文件保存。

(7)作插入操作前,先对信息按起点站进行排序。新记录插入为起点站相同的最后一条记录。

数据结构课程设计

航班信息查询与检索系统

typedef struct node { Time rh;Time lv;}Pnode;(2)飞机结构体: struct Plane {

};(3)静态链表: typedef struct Sqlist { int length;struct Plane *plane;char key[10],sted[20],sche[10];Time rh,lv;int price;}Sqlist;2.3 详细设计(1)主函数:

do{printf(“* * * * * * * * * * * * * 航班查询系统* * * * * * * * * * * * *n”);

printf(“*

1.创建

2.修改

3.查询

4.浏览

5.表长

6.文件

0.退出

*n”);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n”);

scanf(“%d”,&opt);switch(opt){

case 1:Initlist(L);break;

case 2:handle(L);break;

case 3:search(L);break;

case 4:print(L);break;case 5:Get_Sq(L);break;case 6:File(L);break;

数据结构课程设计

航班信息查询与检索系统

} }while(opt!=0);}

(4)文件操作: void File(Sqlist &L){

int ch;do{ printf(“* * * * * * * * * * * * * * * * * * * * * * * * *n”);

printf(“*

*n”);

printf(“* 1.保存信息到文件

2.从文件读取信息

0 退出 *n”);

printf(“*

*n”);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * *n”);

printf(“请输入选项n”);

scanf(“%d”,&ch);

switch(ch)

{

case 1:SaveList(L);break;

} }while(ch!=0);case 2:ReadList(L);break;

case 0:printf(“退出!n”);break;}

(5)浏览信息:就是循环使用输出函数,在此就不必多说了

2.4 调试分析

(1)在课设过程中,遇到问题时,通过与同学、老师交流,在图书馆查阅资料,使问题得以解决。

(2)算法中有许多不是很优化的地方。3.用户使用说明

程序运行后用户根据提示输入要进行的操作选项(应先选择创建选项,这样可以直接读取保存好的文件),然后选择要进行的操作选项。由于主菜单中有修改、查询和浏览项目,每个项目又有各自的子菜单,所以在进行管理和使用时要注意输入的元素是否正确,需按照提示输入。输入操作元素时,元素之间以空格隔开。程序将按输入的操作元素找到相应的算法,然后进行处理,然后将结果打

数据结构课程设计

航班信息查询与检索系统

图2-2 查询信息

图2-3插入

图2-4删除

数据结构课程设计

航班信息查询与检索系统

时就需要重新写出一个子函数,哪怕这个子函数就是在原有的一个子函数的基础上改那么一丁点的地方,例如航班信息查询系统中的查询函数,其实每个子函数只是改了一下关键码而已。

6.附录

#include #include #include typedef struct time { int hour;int min;

{ }

void search_key(Sqlist L)//按航班号查找

{ 号:“);

Time rh;Time lv;

scanf(”%s“,n);int i;

printf(”此航班的航班号,起点char n[20];

printf(“请输入要查找的航班

printf(”%dn“,L.length);//表长

}Time;typedef struct node {

}Pnode;struct Plane {

};typedef struct Sqlist { int length;struct Plane *plane;char key[10],sted[20],sche[10];Time rh,lv;int price;

终点,班期,起飞时间,到达时间,票价:n”);

if(strcmp(L.plane[i].key,n)==0)

ted,L.plane[i].sche,L.plane[i].lv.hour,L.{

for(i=L.length-1;i>=0;i--){

printf(“%s %s %s %d:%d %

d:%d %dn”,L.plane[i].key,L.plane[i].s}Sqlist;int get_Sq(Sqlist &L){ } void Get_Sq(Sqlist &L)return L.length;

plane[i].lv.min,L.plane

[i].rh.hour,L.plane[i].rh.min,L.plane

[i].price);

0数据结构课程设计

航班信息查询与检索系统

printf(“此航班的航班号,起点

ted,{ 终点,班期,起飞时间,到达时间,票价:n”);

if(L.plane[i].lv.hour<=hour)

ted,L.plane[i].sche,L.plane[i].lv.hour,L.{

for(i=L.length-1;i>=0;i--){

printf(“%s %s %s %d:%d %

d:%d %dn”,L.plane[i].key,L.plane[i].s

L.plane[i].sche,L.plane[i].lv.hour,L.plane[i].lv.min,L.plane

[i].rh.hour,L.plane[i].rh.min,L.plane

}

void search(Sqlist L){

int i;do {

printf(“* * * * * * * * * * * }

} printf(”%s %s %s %d:%d %d:%d %dn“,L.plane[i].key,L.plane[i].s[i].price);plane[i].lv.min,L.plane [i].rh.hour,L.plane[i].rh.min,L.plane

} void search_rh(Sqlist L){

int hour;printf(”请输入你所要求的最scanf(“%d”,&hour);printf(“此航班的航班号,起点 } } [i].price);

* * * * * * * * * * * * * ** * * * * * * * * * * * * * * *n”);

printf(“* 1.航班号查询

2.起点终点查询

3.班期查询 4.起飞时间查询

5.到达时间查询

0.退出

*n”);

printf(“* * * * * * * * * *

* * * * * * * * * * * * * * ** * * * * * * * * * * * * * * *n”);

scanf(“%d”,&i);

switch(i)

{

case 晚时间:“);终点,班期,起飞时间,到达时间,票价:n”);

if(L.plane[i].rh.hour<=hour)for(int i=L.length-1;i>=0;i--){

1:search_key(L);break;

2数据结构课程设计

航班信息查询与检索系统

n“);

} else { } printf(”查找不成功。

i--;if(i==0)

{

char c[20];

printf(“输入修改后的scanf(”%s“,c);

内容:”);

strcpy(L.plane[i].sche,c);

printf(“修改成功!n”);}break;{

int a,b;

printf(“输入修改后的int opt;printf(”选择修改对象:“);scanf(”%d“,&opt);switch(opt){ case 1:

printf(”修改成功!n“);printf(”修改成功!n“);{

char a[10];printf(”输入修改后的scanf(“%s”,a);

case 4:

内容:“);

char b[20];printf(”请输入修改后scanf(“%s”,b);

scanf(“%d:%d”,&a,&b);

L.plane[i].lv.hour=a;L.plane[i].lv.min=b;printf(“修改成功!n”);航班号:“);

}break;{

int a,b;

printf(”输入修改后的strcpy(L.plane[i].key,a);}break;{

case 5: case 2:

内容:“);

scanf(”%d:%d“,&a,&b);

L.plane[i].rh.hour=a;L.plane[i].rh.min=b;printf(”修改成功!n“);的内容:”);strcpy(L.plane[i].sted,b);}break;

}break;{

int a;

case 6: case 3:

4数据结构课程设计

航班信息查询与检索系统

*n“);

printf(”* * * * * * * * * * * * * * * * * * * * * * * * *n“);

printf(”请输入选项n“);

scanf(”%d“,&ch);

switch(ch)

{

case 1:SaveList(L);break;case 2:ReadList(L);break;

L.plane[i].sche,&L.plane[i].lv.hour,&L.plane[i].lv.min,&L.plane

[i].rh.hour,&L.plane[i].rh.min,&L.pl

}

void delet_Sq1(Sqlist &L){

char n[10];int i,j;

printf(”请输入您要删除的航scanf(“%s”,n);if(L.length==0){

printf(“没有选项!n”);for(i=0;i

L.length++;

ane[i].price);

case 0:printf(“退出!n”);break;

}

void Initlist(Sqlist &L)//插入存储 {

“);

容:”);价n“);

scanf(”%s%s%s%d:%d%d:%d%d“,L.plane[i].key,L.plane[i].sted, for(i=0;i

班期

起飞时间

到达时间

票scanf(”%d“,&n);L.length=0;L.plane=(Plane if(!L.plane)exit(0);printf(”请输入顺序表中的内

int i,n;printf(“输入表中航班的数量:

} }while(ch!=0);

班号:”);

if(strcmp(L.plane[i].key,n)==0)

{

printf(“所删除的班机*)malloc((n+10000)*sizeof(Plane));的信息:n”);

printf(“n航班号

起点终点

printf(”%s %s %s %d:%d %d:%

d %dn“,L.plane[i].key,L.plane[i].sted,L.plane[i].sche,L.plane[i].lv.hour,L.plane[i].lv.min,L.plane

[i].rh.hour,L.plane[i].rh.min,L.plane

[i].price);

6数据结构课程设计

航班信息查询与检索系统

n”);} printf(“无法打开文件!}

}while(opt!=0);

void insert_Sq(Sqlist &L){ 数量

价n”);

for(i=0;i

printf(“* * * * * * * * * * *

scanf(”%s%s%s%d:%d%d:%d%d“,&L.plane[L.length].key,&L.plane[L.length].sted,&L.plane[L.length].sche,&L.plane[

{

int a=get_Sq(L);

printf(”请输入要添加班机的scanf(“%d”,&n);

printf(“请输入要添加的班机printf(”n航班号

起点终点

int i,n;

//n表示添加的fprintf(fp,“航班号:%sn起点站:%s

终点站:%sn班期:%dn起飞时间:%d:%d

到达时间:%d:%dn价格:%dnn”, p.key,p.sted,p.sche,p.lv.hour,p.lv.mi

n“);} void delet_Sq(Sqlist &L){

int opt;do { fclose(fp);printf(”保存删除的信息成功。n,p.rh.hour,p.rh.min,p.price);

数量:“);

信息:n”);

班期

起飞时间

到达时间

票* * * * * * * * * *n“);

printf(”* 1.航班号删除

printf(“* * * * * * * * * * printf(”输入你的选择:“);2.路线删除

0.退出

*n”);* * * * * * * * * * *n“);

scanf(”%d“,&opt);

switch(opt){

case 1:delet_Sq1(L);break;

case 2:delet_Sq2(L);break;

case 0:printf(”退出。}

L.length].lv.hour,&L.plane[L.length].lv.min,&L.plane[L.length].rh.hour,&L.plan

e[L.length].rh.min,&L.plane[L.length].price);

}

void handle(Sqlist &L){

}

L.length++;

数据挖掘课程设计 篇6

【关键词】教学模式;行动导向;五位一体

【中图分类号】G640

【文献标识码】A

【文章编号】1672—5158(2012)10-0034-01

一、课程定位

《SQL Server 2005数据库设计》是软件技术专业的一门核心课程。是软件技术专业培养方向中,JAVA程序员、NET程序员、数据库管理员、信息系统管理员、软件测试员等所必须掌握的数据库知识学习,重在培养学生对SQL Server2005数据库的操纵与设计的能力。开设于新生入学第一学期,后续课程有C#程序设计、ASENET程序设计、JAVA程序设计、J2EE程序设计、ORACLE数据库设计等。它对后续两线课程都起着重要的支撑作用。是一门处于重要地位的职业基础课程。

二、课程设计的整体思路

课程以企业用人为依据、以提升职业能力为目标,针对岗位群所需解决的工作任务为导向进行基于工作过程的课程开发。按照由简单到复杂分划分为7个学习情境,数据库基础、安装与配置、基本操作入门、数据库编程、数据库高级操作、前台语言访问后台数据库、数据库综合设计。每个学习情境又根据工作任务的独立和先后连贯性分解为子情境,每个学习情境或子情境下对应一个或多作实训任务。即全程共有18实训任务,3个综合实训任务。而且随着课程的深入将会出现新的项目载体如(图书馆管理系统),以培养学生对非教学过程中的数据库进行操作和设计的能力,直至数据库综合设计阶段,将会出现更多个实际项目载体,通过组建项目开发团队,要求学生通过分工配合,完成对项目的需求分析,系统功能的确定,并能根据功能和业务规则对所选项目的数据库进行分析与设计。培养学生的职业能力、职业意识,从而为实现与就业岗位“零距离”奠定良好的基础。

三、课程教学的组织与实施

1、教学模式的探索

在教学中尽可能本着突出职业导向,以学生为主体,突出能力训练为原则,在教学、教改中慢慢摸索、不断实验,总结出了该门课程的教学组织模式:基于行动导向的教、学、做、训、评合一的一体化教学模式。实现了课上有考核,课下有任务训练的新的高职教育评价要求。在实际运作中教学环节分为五大步骤:即预习与探究——做与导——查与训——考与评——巩固与拓展。

单元课程中,由于在网络机房授课,一人一机,借助凌波多媒体教学软件,不但可以充分实现在做中学,在学中教,增加了训(查与训)、评(考与评)环节,即实现了在做中训、在训中考,在考中评。不但实现了“教学做合一”,而且能达“教、学、做、训、评五位一体”。

2、教学方法和手段的运用

示范法、分组法、鼓励法、讨论法、对比法,典型案例法、设问法将贯穿整个课程单元教学之中。但是对于不同的学习情境的学习,为能够突出重点,突破难点,培养学生各方面能力可恰当选用行动导向的教学方法,除了学习情境1-6,采用了任务驱动、项目引领教学法外,学习情境7综合数据库设计主要采用情境模拟法。

在软件行业,一个项目的开发,是由一个软件开发团队共同配合完成的。在该门课最后一个情境一一数据库综合设计中模拟实际职业工作进行教学,在学生中构建多个项目开发团队,进行角色分配。如项目经理,项目助理,程序员(即对应组长、副组长,成员)组织教学和实施,在项目总监(教师)的调控、监督指导下,各项目组成员分工配合,共完成一个管理信息系统的需求分析任务,并进行数据库分析与设计工作。在这个过程中,不但让学生对课程的教学内容有一个全面的复习、巩固和提高,同时会培养学生进行数据库的分析与设计能力,初步体会软件开发工作中的最重要的一部分(需求分析所做的工作),也能让学生在学校的环境氛围中对自己未来的职业岗位有一个比较具体的、综合性的理解,有利于学生全面职业素质的提高。为了保障这一环节顺利实施,效果有保证,教改组制定了多项规章,并形成文件,如《项目小组划分原则》文件、《各岗位职责》文件、《项目验收与答辩要求》文件和一系列的过程监控文件和激励办法等,使学生在团结协作中收获了知识、积累了经验、提高了动手能力、增强了就业力。但学生模拟实际工作中也难免会暴露一些个人弱点,如胆小,协调能力较差、团队意识较弱等。但最终在老师和同学的帮助下能够意识到不足,并加以改正,最后同样收获了成功和喜悦。

四、实践教学效果

课程组的授课教师,经验丰富、技能娴熟、加之以德高身正,教学方法得当,深受学生爱戴和好评。在院、系举行的《sQLSever2005数据库设计》公开教学中曾多次得到学院督导处、教务处领导及系部老师的一致肯定,曾获“一创新、二特色、三突出”好课的评价;学生项目小组在此门课的学习后结合一门开发语言,开发设计了多项小型的应用管理系统软件,和网站。本课程的精品课程申报网站和网络课堂,就是项目小组同学第三学期的一项作品。课题组老师曾带领学生多次参加各类省级职业技能大赛荣获一、二等奖。

五、课程特色

1、教学模式有特色

《SQL Server 2005数据库设计》采用了基于行动导向的教学模式,且实现了教、学、做、训、评五位合一。形成师生之间的良性互动,增强了教学效果,学生活学活用的能力充分展示出来,培养了学生的创新能力。

2、教学方法有特色

课堂教学使用的教学方法中,任务驱动法、情境模拟法、项目引领法都是属于行动导向教学法。其中情境模拟法,轻松实现了企业工作环境与课堂教学环境的高度融合,实现与就业零对接。如今黑龙江农垦职业学院软件技术专业其他课程也正借鉴此教改成果,在教学中逐步推广和使用。

3、教学手段有特色

课程的教学课件均使用思维导图软件(Mind Manager)制作,结构清晰,动感性强。使学生的思维紧密跟随着教师,同又有思维的发散,开发锻炼了学生的右脑机能。在线考试系统和网络课堂的开发实现了教学同步,提高了效率,也为学生业余自学提供了保障。

4、考核评价方式有特色

数据库课程设计的探究 篇7

1、明确课程的重点和难点

数据库技术的应用是三分技术, 七分设计, 关键的工作是设计合理、好用、效率高的数据库。为达此目的, 在开发数据库应用系统时, 一定要做好前期的需求分析、概念结构设计和逻辑结构设计, 以在数据库实施后减少修改的工作量, 避免大量的数据丢失。然而, 数据库理论只是一些原则和指导思想, 在千变万化的实际应用中, 数据库应用系统的设计者必须灵活地运用数据库理论, 根据实际情况决定创建什么样的数据库, 库中包括什么信息, 信息之间如何联系, 以及数据库模式应该达到哪个级别的范式等。课程重点培养学生具有这样的能力:在事务用户和计算机之间架起桥梁, 开发出满足用户使用的、操作简便、功能齐全、运行效率高的应用系统。为达此目的, 学生必须深刻领会数据库原理的本质, 还要善于从管理的对象中, 抽取出有用信息, 并建立数据模型。而此能力不是靠知识的记忆, 应该是知识的综合利用。

2、合理设计教学

2.1 题目选择

数据库课程设计是对学生综合利用知识的能力的考查, 设计题目应考虑如下几点:

(1) 在充分注意满足教学要求和对学生技能训练的前提下, 尽可能结合实际应用选题。

(2) 选择一些应用性较强、难度适中的题目。

(3) 在内容的深度和广度符合教学要求的前提下, 应积极选做从实际应用中提出的应用题目。

我们选用了贴近生活且具有实际应用价值的题目, 如学生信息管理系统、学校教务管理系统、图书馆管理系统、书店管理系统等等。

2.2 分组协作

大多数面向应用的计算机专业本科生未来的工作是软件开发, 软件开发并不是一件简单的工作, 不是一个人可以完成的, 一般都是多人或多个团队合作来完成, 其中每个成员的分工都是明确的, 整个项目是在所有成员的互相配合、互相协作下完成的。因此, 在本科学习阶段对学生的团队合作训练是非常必要的。本着这个想法, 在数据库课程设计中我们采用了分组协作方式, 要求学生自由组成课程设计小组, 建议每组最多不超过5个学生。由组长进行规划和任务分工, 小组成员分工协作完成课题。要求每个成员有自己相对独立的模块, 同时要了解其他组员的完成的内容。

2.3 时间安排

我院以前的教学是在《数据库原理》和《数据库应用技术》两部分内容讲授完毕后进行两个星期的设计, 学生用2天做系统总体设计, 余下的大部分时间都花在系统实现上, 在设计中往往出现系统功能不明确, 数据库逻辑结构设计不规范、不合理等毛病。然而, 只有好的数据库设计, 才会有好的数据库应用系统。为解决这一问题, 有必要把教学过程分为两个阶段:

(1) 数据库设计阶段 (一个星期) 。通过调查研究、查阅技术文献、资料、手册, 按照数据库规范化设计方法, 完成系统的需求分析、概念结构设计和逻辑结构设计。这是设计的关键和难点, 直接关系到整个系统成败, 也是对学生综合利用知识能力的重要训练过程。

(2) 应用系统开发阶段 (一个星期) 。选择合适的数据库管理系统, 如Oracle, SQL Server等, 进行数据库的物理设计并实施, 应用选择的开发语言实现应用系统, 调试并完善系统。在一个星期内, 既要完成数据库的物理设计, 又要编写程序、调试程序, 显然时间是不够的。如何解决这个问题呢?《数据库应用技术》是《数据库原理》的后续课程, 在讲授《数据库应用技术》前, 先用2学时讲授数据库应用开发的整个过程, 然后就进入课程设计的第二个阶段, 这时数据库理论知识在学生头脑中清晰可见, 有利于完成数据库的设计, 在接下来的《数据库应用技术》课堂教学过程中, 随着讲授内容的进展, 完成设计中的相应内容, 如当进行到SQL server数据库对象的创建时, 就要求学生同时完成课程设计中的数据库的物理设计, 这样, 随着讲授内容的不断深入, 学生就可以逐步完成整个设计内容, 在课堂讲授完成后的一个星期的设计时间内, 学生只须调试完善整个设计, 书写设计报告即可。

3、教学要点

在设计教学时, 突出以下几点:

(1) 学生主导教学。由于学生已经在课堂上学习过设计的方法步骤, 因此完全可以在设计教学中采用学生主导方法, 即放手让学生自行设计, 当学生无法继续时, 再向学生进行讲解。在设计中, 学生是“设计师”, 教师则充当配角, 是“用户”。教师以“用户”身份提出种种合理的、不合理的、正确的、不正确的要求和建议, 让学生去判断、去思考, 进而作出决定。

(2) 阶段抽查。一定要督促好学生随着课堂教学进度完成设计相应的内容, 在教学段落中进行抽查。

(3) 教师自由监控。在学生上机过程中, 教师可以随时提取学生的设计过程与结果, 来了解学生的进度和常见或重要的问题, 对全体学生进行教学。部分难点问题可以对学生进行一对一的教学。

4、加强指导, 严格考核

由于设计教学中, 师生比例很小, 而且每个学生的设计均不相同, 由于精力和时间的限制, 要求教师针对每一个学生进行一对一的教学, 是不可能做到的, 而且教师很难及时发现每个学生在设计过程中的每个错误。因此, 设计期间严格考核, 要求每个学生独立完成, 杜绝学生抄袭现象。验收时不仅要看设计完成的质量, 还要对学生在设计中所用的关键技术、知识点及设计思路等以提问的形式进行考核。

5、结束语

采用以上方案实施数据库课程设计后, 取得了可喜的成效。多数学生有了主动学习的意识, 激发了他们软件开发的兴趣, 特别是原来对软件开发有所畏惧的学生, 通过此课程设计的训练有了成就感。成效也反映在后来的毕业设计中, 毕业设计的质量有了很大的提高。总之, 搞好数据库课程设计的教学工作, 提高人才的培养质量, 还需要我们在教学实践中不断探究、发现和总结, 以培养出更多适应社会需求的应用型人才。

摘要:针对数据库课程的重要实践环节, 本文探讨了数据库课程设计的教学方案, 明确了课程的重点和难点, 给出了行之有效的教学实施方案, 并针对实际教学过程中普遍存在的问题提出了解决方法, 为应用型本科生的数据库实践教学提供了可借鉴的经验和建议。

数据库课程中案例数据库的优化设计 篇8

国内主流数据库课程教材在组织内容时,虽然有的侧重数据库实现原理的介绍,有的以某一数据库管理系统(如Oracle、 My SQL等)为平台介绍数据库技术的应用,有的兼顾理论和技术,但无一例外都引入了一个或多个数据库教学项目作为贯穿全书各章节、演示数据库关键概念和技术的案例。许多在教学中广泛使用的案例数据库较为简单,与实际工程项目相差较大,不能很好地覆盖数据库课程所有知识点,导致学生在未来工作中遇到实际项目时无法快速上手。如何设计合理的教学案例数据库已成为数据库课程教学亟待解决的重要课题。

1主流数据库课程教材使用的案例数据库分析

下面从本专科两个教学层次,选取两本主流数据库课程教材中引入的案例数据库加以分析各自的优点和不足。

1.1图书管理系统数据库

由南京师范大学郑阿奇教授主编的数据库课程系列教材被列为普通高等学校国家级规划教材,在职业院校和应用型本科院校的数据库课程教学中广泛使用。该教材以图书管理系统数据库作为教学案例[3]。

1.1.1图书管理系统数据库逻辑结构

图书管理系统数据库的逻辑结构[3]如下:

1)管理员表:Administrator(角色名,密码,备注)

2)读者表:TReader(借书证号,密码,姓名,性别,出生时间,专业,借书量,照片,备注,联系方式)

3)图书表:TBook(ISBN,书名,作译者,出版社,出版年月,价格,复本量,库存量,分类号,内容提要,封面照片)

4)借阅表:TLend(借书证号,ISBN,图书ID,借书时间,应还时间)

5)还书表:HLend(编号,借书证号,ISBN,图书ID,借书时间,还书时间)

6)借出表:TBLend(图书ID,ISBN,是否借出)

1.1.2图书管理系统数据库设计分析

优点:图书管理系统数据库设计较为完整,学习者不难结合其他程序设计语言(如C#、JSP、ASP.NET等)构造出一个实用的数据库应用系统作为课程设计。另外,该案例数据库的属性较为丰富,可涵盖SQL语言的主要数据类型。

不足:第一,可能是为了方便数据查询,图书管理系统数据库设计上存在不规范问题:部分表没有达到3NF的规范化要求。例如在借阅表TLend中,存在非主属性ISBN对码(借书证号, 图书ID , 借书时间)的部分函数依赖[4]。还书表HLend也存在类似问题。改进的方法是从借阅表TLend和还书表HLend中去除属性ISBN,同时在TLend中加入“编号”属性作为该表的主码。第二,图书管理系统数据库的设计存在冗余问题,部分属性属于冗余属性,可以从相关表中去除[4]。例如图书表TBook中每本书的“复本量”和“库存量”可通过对借出表TBLend中相关记录进行聚集函数查询(使用函数count)得到,所以这两个属性应该从图书表Tbook中去除(如果存在,为了维护数据完整性系统将付出很大的性能代价)。第三,和企业实际工程项目相比,图书管理系统数据库略显简单。

1.2学生选课数据库

由中国人民大学王珊和萨师煊两位教授编著的《数据库系统概论》一书引入的案例数据库——学生选课数据库在国内多数本科院校授课时广泛采用[5]。《数据库系统概论》也是国内第一部介绍数据库的教材,一直被国内大多数本科院校作为课程教材和主要教学参考书。

1.2.1学生选课数据库逻辑结构

学生选课数据库的逻辑结构[5]如下:

1) 学生表:Student(Sno,Sname,Ssex,Sage,Sdept),其中属性Sno表示学号,Sname表示学生姓名,Ssex表示学生性别,Sage表示学生年龄,Sdept表示学生所在系。

2)课程表:课程表Course(Cno,Cname,Cpno,Ccredit),其中属性Cno表示课程号,Cname表示课程名,Cpno表示先修课程的课程号,Ccredit表示课程学分。

3)选课表:选课表SC(Sno,Cno,Grade),其中属性Grade表示选课成绩。

1.2.2学生选课数据库设计分析

优点:学生选课数据库由学生表Student,课程表Course和选课表SC构成。该案例数据库设计相当简洁且符合关系规范化要求,因而在国内数据库课程教学中广泛采用。

不足:第一,由于组成数据库的表的数量较少,属性定义不能完全涵盖SQL语言的主要数据类型(如在定义学生选课数据库的表时无法使用日期时间类型)。第二,学生表Student的属性Sage是派生属性,应改为Sbirthdate(学生出生日期)较为合理,且可在定义时使用日期时间类型。第三,相比企业实际工程项目,学生选课数据库过于简单。教师在讲授复杂查询技术、存储过程、触发器等内容时,设计例题会比较勉强,无法设计出实用性强的例题(有时仅仅为了说明相关理论或技术而举例,无法让学生理解该理论或技术的实际价值)。

2案例数据库的优化设计

2.1设计良好的案例数据库应满足的条件

基于前面对主流数据库课程教材中引入的案例数据库的分析,我们认为一个设计合理、实用、新颖,具有较高教学价值的案例数据库应该满足:

1) 案例数据库应来源于真实工程项目或对实际项目进行简化,具有一定的实用性、启发性和创新性,能完整贯穿数据库课程主要知识点,对学生进行数据库知识学习和技能训练起到良好的辅助效果[6]。

2) 案例数据库的所有数据表应符合关系规范化要求,所有数据表均应达到3NF甚至BCNF。

3) 案例数据库的数据表数量应当在5~6个最为适宜。实践教学表明,如果案例数据库中表的数量太多,对于初学者而言,在学习多表连接查询或嵌套查询时会有一定的干扰;表的数量太少,在讲授存储过程、触发器等内容时,教师不易设计例题。

4) 构成案例数据库的数据表中应包含较多的属性,这样才能涵盖SQL语言的主要数据类型,以便让学生接触和理解各种数据类型的使用方法。毕竟对于任何程序设计语言而言,数据类型始终是最基础、最重要的教学内容之一。

5) 案例数据库的记录数量要达到一定规模,以便能更好地满足教学和实验的需求。

2.2论坛数据库“simpleforumdb”

论坛模块是各类网站中必备的模块之一[7],也是学习各种程序设计语言最理想的入门项目。我们在对“嘉兴人网”、“天涯”等典型论坛结构分析的基础上,设计出论坛数据库“simple-forumdb”项目作为课程的案例数据库。该案例数据库具有很好的工程项目背景且符合前文提到的设计良好的案例数据库应满足的条件,可用于实际项目(或对其稍加改造)[8]。论坛数据库“simpleforumdb”的逻辑结构如下:

1) 用户等级表:rank(rankno, rankname, minimumintegral),其中属性rankno表示等级编号,属性rankname表示等级名称,属性minimumintegral表示达到某级别的最低积分。

2) 用户表:user(username,emailaddress, password, register-date, integral, userrank, status, lastactivetime, lastenunciabletime), 其中属性username表示用户名,属性emailaddress表示电子邮箱地址,属性password表示密码,属性registerdate表示注册日期,属性integral表示用户积分,属性userrank表示用户等级,属性status表示状态(是否在线),属性lastactivetime表示上次活跃时间,属性lastenunciabletime表示上次发表时间。

3) 版块表:column(columnid, columnname, moderator,columndescription, parentcolumnid),其中属性columnid表示版块编号,属性columnname表示版块名称,属性moderator表示版主的用户名,属性columndescription表示版块说明,属性parent-columnid表示父版块编号。

4) 主帖表:mainpost(mainpostid, belongedcolumnid, poster, ti-tle, content, posttime, clickrate),属性mainpostid表示主帖编号, 属性belongedcolumnid表示主帖所属版块编号,属性poster表示发表主帖用户的用户名,属性title表示主帖标题,属性content表示主帖内容,属性posttime表示发帖时间,属性clickrate表示点击率。

5) 跟帖表:replypost(replypostid, belongedmainpostid, reply-er, replycontent, replytime),属性replypostid表示跟帖编号,属性belongedmainpostid表示跟帖所回复的主帖编号,属性replyer表示回复用户的用户名,属性replycontent表示回复内容,属性re-plytime表示回复时间。

3结束语

通过对现有的国内主流数据库教材中引入的案例数据库进行比较分析,我们设计了具有较强工程背景和较高教学价值的案例数据库——论坛数据库“simpleforumdb”,以取代传统的图书管理系统数据库和学生选课数据库,用于数据库课程教学和实验教学。实践表明,教学案例数据库的优化设计对于改善教学效果,提高学生实践能力,培养学生的创新精神起到重要作用,最大限度地满足了教师教学和学生实验的需求。

摘要:针对目前数据库课程中教学案例选取存在的问题,分析和研究了国内主流数据库课程教材中所设计的案例数据库,提出以论坛数据库“simpleforumdb”作为课程的教学和实验案例数据库,并给出该案例数据库的详细设计。

关键词:数据库,课程教学,案例数据库设计

参考文献

[1]朱敏.SQL Server课程教学方法探究[J].新课程·中旬,2014,(1):96-97.

[2]教育部高等学校非计算机专业计算机基础课程教学指导分委员会.关于进一步加强高校计算机基础教学的基点意见[M].北京:高等教育出版社,2004.

[3]郑阿奇.SQL Server 2008应用实践教程[M].北京:电子工业出版社,2010:14-21.

[4]西尔伯沙茨(Silberschatz A.)等著,数据库系统概论(原书第6版)[M].杨冬青,等,译.北京:机械工业出版社,2012:184-189.

[5]萨师煊,王珊.数据库系统概论[M].4版.北京:高等教育出版社,2006:28-33.

[6]张欢枝.案例教学法在SQL Server数据库教学中的运用研究[J].计算机光盘软件与应用,2013,2:270.

[7]付逍遥.基于SSH架构的论坛系统设计与实现[J].福建电脑,2015,7:107.

数据结构课程设计教学改革探讨 篇9

数据结构是理论与实践并重的课程。在理论教学中探讨的数据及数据间的关系往往是从各类实际应用问题中抽象而成, 脱离问题背景, 只关注其基本概念和本质特征[1]。而在解决具体问题时, 又需要回归问题背景, 灵活应用所学知识, 选择合适的数据组织形式, 设计高效率的算法。所以这门课程给人的感觉往往是理论知识复杂抽象, 程序设计困难重重。

实践教学是对课堂理论教学的有效补充和延伸。数据结构课的实践教学环节一般分为单元实验、综合型设计性实验以及课程设计三个不同层次。其中课程设计无疑是综合性最强、难度最大的部分。加强课程设计环节的教学组织, 将其真正落到实处, 必将提升数据结构课程的教学效果与教学质量, 培养学生程序设计能力, 以及分析问题、解决问题的能力。

本文针对数据结构课程设计教学中存在的问题, 对该环节的教学目的, 教学安排, 过程组织以及课程设计题目的选择、课程设计报告规范等问题作出探讨。

一、课程设计的教学目标及定位

数据结构的三大实践环节, 即单元实验、综合型设计性实验及课程设计在教学组织上各有侧重。其中单元实验主要是对课堂上所学的各类结构的基本算法的编程实现及验证, 帮助学生理解、巩固书本上的基础理论;综合型设计性实验要求学生能够利用特定单元所学的一个或几个知识点解决具有实际背景的具体应用问题[2], 工作量接近于课程设计中的一个或几个模块, 重点考察学生在数据的逻辑结构确定的情况下能否选择合适的存储结构, 将基本运算组合升级以解决相对复杂的运算, 并能对自己设计的算法进行分析评价;相对而言, 课程设计环节则更具综合性, 更加复杂, 涉及到的课程内容的深度与广度有较大幅度的提高。课程设计要求学生能够综合利用整门课程所学的知识、原理、技能去解决更具实用价值的程序设计问题, 学生应从问题的需求入手, 整理数据, 分析数据间的关系, 抽象出问题的数学模型, 选择合适的数据组织形式, 根据程序应实现的功能、性能确定合适的存储结构, 综合应用课程所学的程序设计方法与技巧, 设计出高效率的算法。课程设计环节的教学目标包括: (1) 使学生深入理解课本所学的基础知识和基本理论, 掌握各类数据结构的特性、在计算机中的表示、基本运算的实现, 以及利用基本运算的组合去实现相对复杂的运算。掌握算法分析评价技术。 (2) 培养学生具备一定的数据抽象能力, 能从复杂的实际应用问题中抽象出正确的数学模型。 (3) 通过强化代码编写训练, 提升学生的程序设计能力, 不但能正确编写程序, 还要编写高质量的程序。 (4) 通过分析、设计、编码、调试等环节的训练, 培养学生具备软件人才所必需的实践动手能力, 以及分析问题、解决问题的能力。 (5) 通过需求分析、概要设计、详细设计、编码实现、测试维护等过程的经历, 使学生初步接受软件工作规范的训练和科学工作作风的培养。 (6) 培养学生团队协作精神及规范文档的编写能力。

二、课程设计教学过程中存在的问题

高校在计算机专业本科生培养方案中一般为数据结构课安排有18个学时左右的课程设计环节, 其重要性也得到了普遍的认可, 但是教学效果往往不太理想, 存在的问题有: (1) 上课时间安排不尽合理。数据结构课程设计的时间一般安排在本课程开课学期期末的1至2周内集中完成设计任务, 彼时各门课程的期末复习及考试工作陆续展开, 学生疲于应付, 能够用在课程设计上的时间和精力相对有限, 不得不敷衍对待, 应付了事, 不求最好, 但求过关。 (2) 教师在课程设计过程中的指导作用相对有限。课程设计环节多采用开放式管理, 教师公布选题, 学生确定选题后多在课外完成设计工作, 很少与教师交流沟通。 (3) 课程设计选题缺乏统一标准。选题难度与综合性设计性实验难度区别不大, 界限不明, 未形成应有的梯度。部分选题能轻易从网上或参考资料上获得解答甚至完整源代码, 导致学生中抄袭现象、不劳而获现象明显, 未能达到预期教学效果。 (4) 考核机制不够完善。教师多根据学生提交的课程设计报告给出最终成绩, 未能直接考察学生的实践操作能力, 从某种程度上讲, 可以说是舍本逐末了。 (5) 课程设计报告缺乏统一规范。

三、课程设计教学改革探讨与实施

近年来, 我校数据结构课程组各位教师一直致力于课程设计环节的教学改革探索, 不断改进教学实践过程, 力争将本环节在学生程序设计能力的培养中所起到的作用发挥到最大程度。具体做法有:

3.1调整培养方案, 合理安排课程设计时间。数据结构一般在第三学期 (二年级上学期) 开课, 以往会将课程设计安排在同学期的期末, 效果不甚理想。我们将课程设计改在第四学期即下一个学期初开课, 此时各门课程的学习刚刚开始, 学生的学习任务相对轻松, 能够抽出更多的时间和精力完成课程设计的任务。数据结构的课堂教学刚刚结束, 此时展开课程设计正好是对上学期所学知识的一个重温和巩固, 将数据结构课的学习有效地延伸至下一个学期, 此举和我院本科培养方案中“程序设计课程不断线”的思想不谋而合。如此改动之后, 我们明显地感觉学生对课程设计投入了更多的精力, 学习的热情与主动性增强, 提交的程序及报告的质量有很大的提高。

3.2加强教师在课程设计过程中的指导作用, 将各环节落到实处。我院在培养方案中将本课程设计的学时数由原来的18学时调整为32学时, 相对充裕, 保证了教师参与指导的时间。开课之初, 教师会利用2学时做课程设计动员, 集中回顾本课程的主要理论知识, 宣讲课程设计的目的、要求、时间安排、考核方式、作品提交标准, 公布课程设计选题以及各选题应达到的功能、性能要求, 对部分难度较大的选题做简单提示。待学生确定选题后公布分组情况, 宣布课程设计开始。然后有三分之一的时间, 大约12学时左右采用开放式管理, 由学生在课外自行查阅资料, 分析、设计, 部分能力强的学生可以开始代码的编写。之后同样利用三分之一的时间, 大约12学时左右, 要求学生必须到指定实验室继续完成设计工作, 这期间教师必须到课, 与学生充分的交流沟通, 答疑, 辅导, 并进行课程设计中期检查。

最后, 在课程设计收尾阶段, 主要完成三方面的工作:1.集中答辩。由各小组委派一名代表展示本组设计成果, 阐述设计思想, 回答教师及全班同学的提问;2.逐个验收。教师到实验室, 由每名同学亲自操作电脑, 向教师展示自己设计的部分, 教师现场给出实践成绩, 以70%的比例计入课程设计最终成绩;3.学生提交课程设计报告, 教师给出理论成绩, 以30%的比例计入最终成绩。

3.3建立课程设计选题库, 科学选题, 逐年更新, 保证选题的难度及实用性。课程设计选题是决定本环节教学质量的关键因素。选题应有别于综合型设计性实验, 侧重于考察学生对整门课程知识点的灵活应用, 规模大, 更加复杂, 更具综合性、实用性, 初步体现工程化、过程化, 代码量接近千行。我院数据结构课程组的老师结合多年的教学经验, 精心挑选了大量的课程设计选题, 建立了选题库, 并逐年更新。每学期课程设计开课之初会根据学生人数及理论学习的程度, 挑选近20道题予以公布, 供学生选择。

为避免学生在选题时出现“扎堆”现象, 我们别出心裁地为每道题确定了起评分, 即学生在实现了题目的基本要求后可以获得的实践成绩, 并明确告知学生做到怎样的程度, 有怎样的创新可以获得加分因素。例如, 某选题要求采用不同的图的存储方式实现拓扑排序和关键路径的求解[3], 此题起评分为85分, 如果给定的图中存在两条以上关键路径, 能完整输出不同路径, 可获得5分的加分。又如停车场管理系统的起评分为80分, 教师会在验收时根据学生展示的作品的界面友好性、容错性、功能完整性等因素给以5至10分的加分。

事实证明, 此举获得了学生的广泛欢迎, 极大地调动了学生从事课程设计的热情与主动性, 提交的作品中, 创新点、闪光点比比皆是。在教师逐个验收时, 学生会迫不及待地展示自己的独特设计之处, 常有惊人之举。笔者就曾经验收到某学生完成的“校园导游系统”足以与专业人士的作品媲美, 学生告诉老师, 为了完成设计, 曾广泛查阅文献, 通宵钻研数学的相关知识, 甚至到学校相关部门、设计院收集校园设计平面图。教师对其作品给予了充分的肯定。

3.4制定统一的课程设计报告规范。通过撰写课程设计报告锻炼学生的文档编排制作能力, 体会软件工程工作规范, 培养严谨的工作作风。课程设计报告的成绩将以30%的比例计入最终成绩。报告要求有统一的封面, 在封面上注明题目、院系、班级、学号、姓名及完成时间等。报告的正文部分主要包括四个方面的内容[4]: (1) 问题的描述。简述学生选择的题目及题目要求。 (2) 系统分析及设计。包括需求分析:明确程序所应达到的功能, 输入、输出数据的形式及范围;概要设计:说明程序中用到的抽象数据类型, 各子程序 (函数或过程) 的设计说明, 使用的存储结构的设计说明, 选择该存储结构的理由等, 画出函数的调用关系图;详细设计:采用高级程序设计语言描述概要设计中定义的数据类型以及子程序。 (3) 系统实现。包括:完整的源代码;调试分析:测试数据, 测试输出的结果, 时间复杂度分析, 和每个模块设计和调试时存在问题的思考 (问题是哪些?问题如何解决?) , 算法的改进设想;输出界面。 (4) 设计总结。包括:课程设计过程的收获, 遇到问题时解决问题过程的思考, 程序调试时的思考, 对数据结构这门课程的思考, 在课程设计过程中对《数据结构》课程的认识等内容。

四、总结

课程设计是数据结构实践教学中的重要环节, 教学过程切实有效地执行, 对培养学生的程序设计能力、分析问题解决问题的能力, 甚至实践创新能力起着至关重要的作用。我们一直致力于课程设计的教学改革活动, 取得了一定的效果, 学生在课程设计报告中用诗样的语言写道:“我迎来了程序设计的黎明”, “我体会到了程序设计思想的美丽”……这一切将促使我们不断探索, 把本环节的教学改革活动进一步推向深处。H

参考文献

[1]赵越, 章小莉.数据结构实践教学模式的设计与探索[J].计算机教育, 2009 (13) :194-196.

[2]徐慧, 郭荣祥, 周建美.多维一体的“数据结构”实践教学系统的构建[J].计算机教育, 2011 (10) :66-70.

[3]秦锋, 袁志祥.数据结构 (C语言版) 例题详解与课程设计指导[M].北京:清华大学出版社, 2011:280.

数据挖掘课程设计 篇10

关键词:网络课程,数据库,资源存储

1 网络课程结构设计

基于数据库技术的网络课程的优势在于可以通过对数据库的设计进行数据的管理, 使得数据可以重复使用, 提高了教学信息的利用率, 实现了课程从以加工教学内容制作网页为中心向围绕共享数据库中教学资源为中心的转变。同时数据库还大大提高了网络课程应用数据维护的方便性。

2 网络课程数据库的设计

2.1 需求分析

需求分析就是准确地了解和分析用户需求, 通过各种调查方法以及户用的积极配合来了解用户对数据库的要求。网络课程一个显著的特点就是教学信息量大, 从基础概念到前沿理论, 知识点覆盖面广, 且信息又呈网状分布, 同一教学内容、图片或概念可能出现在不同的知识点中, 因此信息具有较高的共享性。

2.2 数据库产品选择

数据库产品的家族虽然庞大, 就本次设计的网络课程笔者选择的是文件型数据库Access数据库。选择Access数据库的原因是配置简单, 容易上手, 它的所有的文件都被整合在一个.mdb文件中, 这样就避免了数据库变大之后管理上带来的麻烦。

2.3 数据完整性分析

数据完整性是衡量数据库优劣的一种标志, 是确保数据库中数据一致、正确、有效的一种思想, 是使无序的数据条理化, 确保正确的数据存放在正确的位置的一种手段, 是网络课程的各项功能能否得到正常执行的重要保证。

(1) 实体完整性。实体完整性是标识数据库中存放的每一个实体, 从而保证每一个实体在表中的唯一性。 (2) 值域完整性。值域完整性的基本思想是如何限制向表中输入值的范围, 从而保证数据的有效性。 (3) 引用完整性。引用完整性是在插入或删除数据时, 维护表间数据一致性的手段, 从而保证数据间具有正确的关联性。 (4) 用户定义的完整性。在进行网络课程的数据库表的设计时, 可以通过设置主键与外键约束来保证实体完整性合引用完整性;通过Check约束来检查输入表列的数据的值以维护值域的完整性。在上述的Webuser表中, 我们将用户名Username设为主键。

2.4 表的设计

表是数据库中具体组织和存储数据的对象, 是数据库设计的一项主要工作。通过对网络课程所提供的功能, 笔者设计了8个数据表。

(1) Webuser用户信息表。笔者设计的webuser表包括这样一些字段:用户id号, 用户名useremail用户E-mail, 用户密码, 密码自设问题, 自设问题答案, 注册时间, 登陆次数, 最后一次登陆时间, 用户电话, 用户真实姓名, 用户性别等。Webuser的作用:记录用户的登陆名、密码、真实姓名、联系方式等。

(2) Catalogy栏目分类表。Catalogy栏目分类表作用:在此表中将Cataid栏目编号设为主键, 用它来唯一标识一类素材。

(3) news素材资源表。

(4) link友情链接表。在友情链接表中设有这样的字段, linkname链接名称, linkurl链接地址, picur1链接图片的标志, flag链接标志的类型链接的图片的标志。link友情链接表作用:存储友情链接的链接的名称、链接的地址、链接的图片的标志、链接标志的类型等。

(5) config广播表。config广播表的作用:记录教师向网站发布的广播。在网络课程中发布的广播是“欢迎光临网络学习资源站”。教师可以根据自己的要求随时在数据库中更新广播的内容。

(6) vote站内调查表。vote站内调查表作用:存储网络课程站内调查的有关信息。

(7) fk留言表。fk留言表作用:记录留言的主题、留言内容、留言发表的时间、留言人的E-mail等信息。教师通过学生的反馈留言获得有价值的反馈信息, 及时了解学生的学习状况。不需要真实姓名, 这样学生在留言的时候不需要有任何顾虑, 可以畅所欲言, 这样更有利于学生积极参与反馈留言, 从而使老师获得更多的反馈信息。

(8) admin管理员信息。admin管理员信息表作用:记录管理员的用户名、密码、级别等。

参考文献

[1]贺利坚, 李茹, 谭瑛, 魏怀明.《数据库技术与应用》.北京.宇航出版社.2002年7月.

上一篇:创业型教育下一篇:静脉留置针的管理