数据库课程设计报告(精选19篇)

数据库课程设计报告

       数据库课程设计报告

       一 绪论

       随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。基于 SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。基本上能满足管理员和公司的要求。

       此次数据库课程设计的主要设计如下:

       原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。

       需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。

       二 员工薪资管理系统概述

       1、现状分析

       随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。随着我国国民经济建设

       的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统对企业和员工的工作都带来许多的不便。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。

       2、系统目标

       员工薪资管理系统的主要目的是利用计算机对员工的各种工资信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:

       (1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。

       (2)对职工的工资进行计算、修改。可以对职工的工资档案进

       行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算基本工资、岗位工资及实发金额等。

       (3)查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某个部门所有的员工的工资信息。

       (4)对用户管理功能。一个系统的应用有管理员和普通用户,他们对系统的权限受到限制。

       3、系统特点

       (1) 本系统使工资管理基本实现了信息化,系统设计的各种查询要求代替了原来了人工查询,即节省了人力,又减轻了员工的工作量,最重要的是由计算机操作,可以提高数据的准确性,避免人为的错误,方便管理。

       (2) 本系统设置了系统数据备份功能,定期的系统备份可以在数据库受到意外的或有意的破坏的情况下,系统得以恢复,减少损失。

       (3) 本系统的界面设计简洁明了,采用了流行的菜单设计,对于不是计算机专业的管理人员,只需阅读操作说明书,就能方便的使用本系统。

       [数据库课程设计报告]

篇2:数据库课程设计心得体会

       数据库课程设计心得体会

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

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

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

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

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

       在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统,

       在两周的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题:由于忘记了一些java语言的规范使得在调试过程中一些错误没有发现,通过这次课程设计,我对调试掌握得更加熟练了,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如有一定量的解释,既增加了程序的可读性,也可以使自己在读程序时更容易。

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

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

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

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

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

篇3:数据库课程设计心得

       一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。

       课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。我这次设计的科目是数据结。

       数据结构,是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。作为一门独立的课程在国外是从20XX年才开始设立的。20XX年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》4:数据库课程设计心得体会

       由于平时接触的都是一些私人项目,这些项目大都是一些类库,其他人的交流相对可以忽略不计,因此也就不考虑规范化的文档。实际上从学习的经历来看,我们接触的知识体系都是属于比较老或比较传统的,与现在发展迅速的it行业相比很多情况已不再适用,尤其是当开源模式逐渐走近开发者后更是如此。

       虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。对于ooa/ood的开发模式有时不免要提出一些疑问,uml是设计阶段的工具,而它基本涵盖了软件设计的方方面面,也就是说按照这一软件工程的正常流程,在动手写5:数据库课程设计心得体会

       一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。

       课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。我这次设计的科目是数据结。

       数据结构,是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。通过这次模具设计,我在多方面都有所提高。

       在界面设置中使用函数调用while。其中文本显示颜色和背景颜色都可以任意按照自己的喜好,任意改变,但改变的时候必须采用标准英文大写,同时在制作显示菜单的窗口,大小根据菜单条数设计。最后采用printf输出程序设计界面。

       这次的程序软件基本上运行成功,可以简单的建立链式循环链表,并进行输出,及循环语句的运用和选择语句的控制。由于时间和知识上的限制,使得程序规模相对较小,即功能还不很全面,应用也不很普遍。原来C语言可是涉及很多知识,而不是枯燥无聊的简单的代码部分而已,利用C语言方面的知识,我们可以设计出更完善的软件。

       通过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更多的时间去上机实验,加强自学的能力,多编写程序,相信不久后我们的编程能力都会有很大的提高能设计出更多的更有创新的作品。

篇6:数据库课程设计心得体会

       时间真的如轮一样在飞转,一周的实训又一次即将结束,可是,感觉仿佛只过去了一天。实训结束也意味着这个学期也将结束。不管时间多么的飞快,这周短暂的VB程序设计实训同样让我们收益不少。 首先,不说我们学到了多少专业知识,也不说我们学到了多少专业技能。在这样零下1度的.天气中实训,着实是锻炼我们的意志力。人都有惰性,这是无可厚非的事实。在寒冷的天气里,赖床就更是常有的事。因为要实训,我们很多平常经常迟到的同志不得不早起。就说实训的7:数据库课程设计心得体会

       在这次课程设计中,我们小组设计的是一个仓库管理系统,通过设计这个系统,可以更方便地实现信息的浏览,查询,添加等操作和报表输出等功能,具体包括能实现产品入库管理,可以填写入库单,确认产品入库;产品出库管理,可以填写出库单,确认出库;借出管理,凭借条借出,然后能够还库;初始库存设置,设置库存的初始值,库存的上下警戒限;可以进行盘库,反映每月,年的库存情况;可以查询产品入库情况,出库情况,当前库存情况,可以按出库单,入库单,产品,时间进行查询;虽然这个系统的功能还不是很完善,还有很多功能尚未实现,但这也是我们共同努力的结果,只要有更多的时间,我相信我们能完成的更好。

       通过这次将近一个星期的课程设计实训,我对数据库在生活中的广泛应用有了更深的体会,同时也加深了对ACCESS20xx的认识,了解了相关的ACCESS的知识,尤其是对数据库的原理与开发程序的应用有了更进一步的认识和了解。由于不会vb编程,很多功能实现起来很困难,但好在access有查询、宏和窗体,特别是宏操作可以将几个操作结合在一起,可以执行多个查询,可以调用多次窗体。例如,在某个窗体中要显示设备代码表信息,所以这个窗体中建立一个子窗体用于设备代码表的显示,我们打开窗体后又对设备代码表进行了跟新,所以窗体中显示的并不是最新数据,我们往往需要及时看到设备代码表跟新后的最新数据,窗体不会自动跟新我们就不会看到最新数据,所以这时候我们就会用一个宏操作在对设备代码表跟新之后关闭窗体在打开窗体,这样窗体就相当于完成了一次跟新操作。又例如,在一个表A中刚刚追加了一条记录,我们要将每次刚刚新添加的记录跟新到另一个表B中,用一个查询是很难完成的,经过认真思考,得到了解决的办法是,需要三个步骤,8:数据库课程设计心得体会

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

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

       在本课程设计中,我明白了理论与实际应用相结合重要性,并提高了自己组织数据及编写大型程序能力。培养了基本、良好程序设计技能以及合作能力。这次课程设计同样提高了我综合运用所学知识能力。并对VC有了更深入了解。《数据结构》是一门实践性很强课程,上机实习是对学生全面综合素质进行训练一种最基本方法,是与课堂听讲、自学和练习相辅相成、必不可少一个教学环节。

       上机实习一方面能使书本上知识变“活”,起到深化理解和灵活掌握教学内容目;另一方面,上机实习是对学生软件设计综合能力训练,包括问题分析,总体结构设计,程序设计基本技能和技巧训练。此外,还有更重要一点是:机器是比任何教师更严厉检查者。因此,在“数据结构”学习过程中,必须严格按照老师要求,主动地、积极地、认真地做好每一个实验,以不断提高自己编程能力与专业素质。

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

       一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。

       课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。我这次设计的科目是数据结。

       数据结构,是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。通过这次模具设计,我在多方面都有所提高。

       在界面设置中使用函数调用while。其中文本显示颜色和背景颜色都可以任意按照自己的喜好,任意改变,但改变的时候必须采用标准英文大写,同时在制作显示菜单的窗口,大小根据菜单条数设计。最后采用printf输出程序设计界面。

       这次的程序软件基本上运行成功,可以简单的建立链式循环链表,并进行输出,及循环语句的运用和选择语句的控制。由于时间和知识上的限制,使得程序规模相对较小,即功能还不很全面,应用也不很普遍。原来C语言可是涉及很多知识,而不是枯燥无聊的简单的代码部分而已,利用C语言方面的知识,我们可以设计出更完善的软件。

       通过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更多的时间去上机实验,加强自学的能力,多编写程序,相信不久后我们的编程能力都会有很大的提高能设计出更多的更有创新的作品。

篇9:数据库VB课程设计心得体会

       vb程序设计实验心得一:数据库VB课程设计心得体会

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

       首先,让我的记忆追溯到大二暑假,在老大的指引下 ,我接触到Microsoft 公司的.NET产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c 里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.网络是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql serverXX,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。

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

       来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseUML建模工具。在此之前,我脑袋里面没有软件建模的思想,什么UML建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。

       开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了MVC架构,就是你啦。我决定用这个架构,不会,没关系,咱学。Just do it!前期工作准备好后,那么我就得把我暑假学的.网络加以实践。这个时候我更加深入的了解了利用ado.Net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.网络数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。

       与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.NET的核心技术就是XML[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!

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

       (最后,很感激学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。也感谢老师们对我们无私忘我的指导,我会以这次课程设计大赛作为对自己的激励,继续学习。毕竟学习就是一个just do it的过程!)我直接从报告上面复制过来的.....所以这段也不删去了.............呵呵。

       题目大概是用可视化编程实现一个简单的数据库管理系统我用的是BCB 题目虽然是简单 但也明白了很多以前以为懂的问题代码到没什么 这种题目用BCB的话已经不用几行代码了关键是了解了这些名词Paradox,ADO,BDE,ODBC 一开始拖控件,写几行代码 很快就完成了编译也通过了 但传到同学机器上就是显示不出数据来折腾了我1天 又是发帖子 又是问群里的达人后来明白了我用的Paradox数据库是用BDE引擎的发布软件的时候要把BDE打包于是又学着打包BDE 却发现不到1m的软件如果打包BDE的话就10+m了而且BCB6自带的那个打包软件用的我头晕目眩于是又想不用BDE 所以又折腾了我半天答案是要使用ADO控件( 以前我用的是BDE控件 )而且要用Access数据库了解了这些之后 作业也就完成了总的看来还是很有收获的 幸亏我下了决心这个作业要自己做没有去网上下载 呵呵

       vb程序设计实验心得二:vb课设心得体会(1581字)

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

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

       一.目的

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

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

       二.要求

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

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

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

       三、采取的措施

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

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

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

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

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

       四、取得的效果

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

0:数据库课程设计的心得体会

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

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

       我所负责是数据库备份和还原还有一些界面实现。还记得自己刚接触html时候,觉得很感兴趣,所以有一段时间几乎到了痴迷程度。然而Php 是我刚接触不久一种编程语言。不过觉得它功能真很强大,可以开发出很多大型系统。但是在做备份和还原时候,要考虑东西还是很多。当我遇到错误时候,感到很受打击。值得欣慰是,在同学帮助和大量参考书查阅下,我把自己模块做好了。这就是我收获最大地方。而且,我明白了遇到困难永不放弃重要性,我知道了团队合作重要性,我领悟了只有坚持不懈才会取得胜利。   知识获得是无止境,只要你想学,只要你行动,没有什么会难倒我们。回首这一个多星期课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们不懈帮助,谢谢学校给了我们这一次实践机会,也谢谢组员们关怀。这些美好回忆美好东西将永远伴随着我。

1:交通灯课程设计报告

       交通灯课程设计报告

       一.前言

       近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

       十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多,在学习了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。

       二.功能概述

       2.1设计任务:交通灯的硬件和软件设计 2.2设计目的

       1.进一步熟悉和掌握单片机的结构和工作原理。

       2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

       3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

       4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。

       三.设计思路

       交通灯的变化规律

       按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过过一段时间(25S)转换状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向

       绿灯通车,南北方向红灯。过一段时间(25S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。

       四.硬件介绍

       基础知识

       交通灯控制器实例主要使用了89C51单片机的定时器/计数器,基础知识主要包括交通灯的变化规律、定时器/计数器的概念、定时器/计数器的相关寄存器、定时器/计数器的4种工作方式、以及定时器/计数器的变成。

       4.1定时器/计数器

       定时器/计数器是单片机中最常用、最重要的功能模块之一,本节通过交通灯控制器实例来演示定时器的使用,并复习如何使用散转程序。

       首先介绍交通灯以及定时器/计数器的基础知识,接着介绍本实例的硬件电路构成,然后逐步分析定时器的变成以及程序的全貌,最后总结一下本实例的技巧与注意点。

       4.2定时器/计数器的概念

       89C51单片机内有两个可编程的定时器/计数器T0、T1。

       当定时器/计数器用作“定时器”时,每经过1个机器周期(12个时钟周期),计数器加1。

       当定时器/计数器用作“计数器”时,计数器在对应的外部输入管脚(T0为P3.4引脚,T1为P3.5引脚)上每发生一次1到0的跳变时加1。使用“计数器”功能时,外部输入每个机器周期被采样一次。当某一周期管脚状态采样为高电平而下一周期采样为低电平时,计数器加1。由于检测下降沿跳变需要两个机器周期(24个时钟周期)的时间,所以技术频率最大值只能为时钟周期的1/24。计数器对外部输入信号的占空比并无限制,但为了保证给定的电平信号在其改变之前至少被采样一次,外部输入信号必须至少保持一个完整的机器周期。

       4.3定时器/计数器的相关寄存器

       与定时器/计数器相关的寄存器有定时器/计数器工作方式寄存器(TMOD)、定时器/计数器控制寄存器(TCON)。TCON已经在2.5节受控输出实例中介绍过,

       因此,在本例中主要介绍TMOD寄存器。

       定时器/计数器工作方式寄存器(TMOD),字节地址89H,不可进行位寻址。 定时器/计数器工作方式寄存器(TMOD)的8位分为两组,高4位控制T1,低4位控制T0。TMOD每一位的功能如下。 GATE:门控位。

       GATE=0,仅由运行控制位TRX(X=0,1)=1来启动定时器/计数器运行; GATE=1,由运行控制位TRX(X=0,1)=1和外部中断引脚上的高电平共同来启动定时器/计数器运行。

       C/T:定时器模式和计数器模式选择位。 C/T=0,为定时器模式; C/T=1,为计数器模式。

       M1、M0:工作方式选择位。M1、M0的4中编码对应4种工作方式,对应关系见表2-10。

       4.5定时器/计数器的4种工作方式

       定时器/计数器的4种工作方式下的逻辑结构如表所示。

       内容需要下载文档才能查看

       (1)方式0。

       定时器/计数器的工作方式0称为13位定时器/计数器的。它由TLX的低5位和TLX的8位构成13位的计数器,此时TLX的高3位未使用。改工作方式是为了和48系列单片机兼容而设计的一种工作方式,一般情况不使用方式0进行定时/计数。方式0的控制方式与方式1完全相同,下面重点介绍方式1的控制方式 。 (2)方式

       定时器/计数器的工作方式1称为16位定时器/计数器。它由TLX和THX构成,TLX计数溢出向THX进位,THX计数溢出置位TCON中溢出标志位TFX。

2:软件工程课程设计报告

       课题名称:员工工资管理系统的设计与实践研究

       姓 名:学 号:班 级:指导教师:

       目 录

       1.概述.............................................................. 4

       1.1问题的提出................................................... 4

       1.1.1 选题背景与意义........................................ 4

       1.1.2 开发工具简介........................................... 5

       2.可行性分析........................................................ 5

       2.1社会可行性................................................... 5

       2.2技术可行性................................................... 5

       2.3经济可行性................................................... 6

       3.需求分析.......................................................... 6

       3.1系统业务流程图............................................... 7

       3.2 系统的功能划分 .............................................. 7

       3.3 系统的功能要求 .............................................. 7

       3.4 用户的功能需求: ............................................ 7

       3.4.1登陆功能 ............................................... 7

       3.4.2 员工信息维护功能....................................... 8

       3.4.3 工资信息维护功能....................................... 8

       3.4.4查询功能 ............................................... 8

       3.4.5计算功能 ............................................... 9

       3.4.6打印功能 ............................................... 9

       3.4.7退出功能 ............................................... 9

       3.5系统的数据需求.............................................. 10

       3.5.1 总结出数据信息........................................ 10

       3.5.2数据流程图如下 ........................................ 10

       3.5.3 数据流图的数据字典.................................... 12

       3.6 系统的性能需求 ............................................. 13

       4.总体设计......................................................... 13

       4.1系统结构的总体设计.......................................... 14

       4.2 各个模块的功能描述如下 ..................................... 14

       4.2.1 员工基本信息维护模块.................................. 14

       4.2.2 工资信息维护模块...................................... 15

       4.2.3 查询信息模块.......................................... 15

       4.2.4 计算工资模块.......................................... 15

       4.2.5 打印模块.............................................. 15

       4.2.6 登陆模块.............................................. 15

       4.2.7退出模块 .............................................. 16

       5.详细设计......................................................... 16

       5.1 生成报表 ................................................... 16

       5.2 查询模块的详细设计 ......................................... 17

       6.测试............................................................. 18

       6.1 黑盒测试 ................................................... 18

       6.2 白盒测试 ................................................... 18

       7. 调试............................................................ 19

       8.结 论............................................................ 19

       9.参考文献......................................................... 2

       1.概述

       1.1问题的提出

       工资管理系统是一个数据库管理系统,是针对企业的工资管理业务进行计算机处理而开发的应用软件。它提供关于公司老员工及新员工信息和工资有效管理等事务的信息,由于需要添加和修改员工的信息和工资信息、删除离职员工信息和在职员工信息修改以及修改其他一些数据,工资管理系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。企业应用本系统后,可以有效的提高工资管理水平。

       1.1.1 选题背景与意义

       现代科学的发展,使计算机进入了几乎一切领域,计算机已经是家喻户晓、无人不知了。从科学研究到工农业生产,从企业生产管理到家庭生活,各行各业都广泛地使用着计算机,可以说没有计算机,就没有现代化,计算机知识已经成为当代知识分子结构中不可缺少的一个重要组成部分。随着经济的发展,企业正面向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。

       在这种情况下,我们建立一个工资管理系统是必要的,该整个系统操作简便、界面友好、灵活、实用、安全的要求出发,完成人事、工资管理的全过程,包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人事管理工作以及新进员工工资的新增、老员工工资修改等工资管理工作。经过实际使用证明,本文所设计的人事工资管理系统可以满足本单位人事、工资管理方面的需要。

       该设计主要介绍了本课题的开发背景,需求分析和功能设计等过程。

       1.1.2 开发工具简介

       1)pd:PowerDesigner,就是一个容易画出数据流图和生成数据库的逻辑模型和物理模型。该软件很容易实现把数据流图转化成相应的数据库的逻辑模型和物理模型。

       2)SOL Server:它是一种关系数据库管理系统,能处理大量的数据和管理众多的并发用户,保证了数据的完整性,并提供许多高级管理和数据分布能力。

       3) Visual Studio .NET: 向开发人员提供了用于在操作系统之间和语言之间集成解决方案的工具。开发人员可将现有的业务逻辑方便地转换为可重复使用的 XML Web 服务、封装进程并使它们能够用于任何平台上的应用程序。

       2.可行性分析

       2.1社会可行性

       C/S模式系统以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。C/S模式具有专业化程度高、开发手段灵活、运行速度快等特点,但受到维护成本大、适应性弱等问题的影响。本系统利用了C/S模式,符合企事业单位的管理要求,为其实现较为先进的工资管理提供了有利的支持。

       2.2技术可行性

       使用PowerBuilder开发传统意义上的C/S模式结构的数据库系统,可以利用其提供的许多对于数据库访问与控制的有效机制,开发过程并不是很长且难度适中。我们曾学习了《数据库原理及应用》,掌握了数据库的基本原理及数据库的设计方法,在此基础上我们又深入学习了PowerBuilder的数据库系统开发。

       2.3经济可行性

       成本:本系统要求的计算机配置不是很高,需要设备购置费用较低,其他设备的购置成本也在承担能力之中。本系统运行费用较低,系统使用方便简洁。

       收益:应用本系统能在一定时期内产生明显的收益,此外应用本系统提高了工作效率从而提高了管理水平;节省了人力,减轻了有关人员手工处理的工作负担;即使给管理者提供相应的辅助决策信息。

       3.需求分析

       需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对 现实问题的.理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。 软件需求一般包含三个层次―业务需求、用户需求和功能需求,还包括非功能需求。业务需求:反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求:描述了用户使用产品必须要完成的任务和具备的功能,这在使用实例文档或方案脚本说明中予以说明。功能需求:定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足其业务需求。 系统目的是能够用计算机实现对各种工资进行日常管理,如添加、删除、修改员工信息,能够根据员工的等级、职位以及出勤情况、奖金、津贴情况等进行工资的计算,能够使员工、部门方便地查询和统计各种信息,最后能生成报表反馈给员工等。

       3.1系统业务流程图

       通过对企业原先手工进行员工工资管理业务的情况,可以设计出它的业务流程图,如图4-1所示。

       用户登录数据输入工资计算存储数据

       工资查询 报表汇总

       图3-

       3.2 系统的功能划分

       1. 工资信息设置部分:包括设置员工的基本工资和其他项目的金额,如奖金等。

       并且负责设置员工工资的计算公式。

       2. 工资信息管理部分:包括统计出勤、计算工资、查询工资和导出工资表。

       3. 系统部分:包括添加用户和修改密码。

       3.3 系统的功能要求

       1. 整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。

       2. 开发方法,文档规范化,便于管理,可扩充。

       3. 完善的数据输入,维护,输出。

       4. 自检性能高,用户误输、错输均有提示。

       5. 容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操

       作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。

       3.4 用户的功能需求:

       3.4.1登陆功能

       该系统要有登陆功能。管理员要进行员工信息维护或者进行计算员工工资

       时,必须首先进行登陆。同理,员工也要先进行登陆才能进行各种查询等操作。

       1. 用户权限设置,修改密码。

       2. 综合初始系统设置。

       3.4.2 员工信息维护功能

       该系统要能够添加员工信息、删除员工信息和修改员工信息等功能。 一个单位的员工不是一成不变的,总是在不断地变化,如有的员工被招聘进入公司,这时就要添加员工的基本信息;当员工辞职或者由于其它原因离开公司,这时就要删除员工的基本信息;当员工进行调动时,就要修改员工的基本信息了。

       1. 追加员工信息。

       2. 删除员工信息。

       3. 修改员工信息。

       4. 自动更新数据库。

       3.4.3 工资信息维护功能

       1. 该系统要能够输入员工基本工资:为了方便系统的计算员工的工资,系统应

       该能够输入员工基本工资、奖金、津贴等一些工资数据,以计算员工的月工资或者年工资等。

       2. 该系统要能够修改员工基本工资:员工的工资不是一成不变的,它会发生变

       化,这时就要求能够修改员工的工资等。

       3. 该系统要能够删除员工基本工资:当员工由于某种原因离开公司后,由于员

       工的基本信息已经删除了,所以也要删除员工的基本工资等信息。

       3.4.4查询功能

       一个员工或者部门要更好了解自己工资、出勤情况、奖金、津贴等情况,可以进行相关的查询,为了有更好地适应性,查询应该可以根据各种情况进行查询,能够进行单项查询或者按一定的条件范围进行查询,如能够查询单个员工的工资情况,能够查询每个部门的工资情况和月工资的统计情况。

       1. 根据员工姓名查询员工的工资情况。

       2. 根据员工编号等查询员工的工资情况。

       3. 根据员工学历等各种条件组合查询员工的工资情况。

       3.4.5计算功能

       1. 系统应该能够根据员工的基本工资、员工的出勤情况、资金和津贴情况进行

       工资的计算。

       2. 系统应该根据能够根据加班的时间、加班的类别等计算出员工所得的津贴工

       资。

       3. 系统应该能够根据各种员工在公司的工作表现、,计算出给员工的奖金。

       4. 系统应该能够计算各个部门的工资情况。

       5. 统计功能:为了更好地了解员工的人数情况、员工的工资情况、部门的工资

       情况或者发放工资,系统应该能够对各个部门的总工资进行统计。

       3.4.6打印功能

       每月发放工资时,要求能够打印本月的工资表、随工资发给每个员工的工资条以及一些统计表等,如工资统计表。

       1. 打印工资信息。

       2. 打印工资条。

       3. 打印各种图表。

       3.4.7退出功能

       员工或管理员可利用退出功能退出系统。

       3.5系统的数据需求

       3.5.1 总结出数据信息

       对上述系统功能需求,可心分析、归纳出其相应必须管理的信息包括员工基本信息、员工的等级信息、员工出勤情况信息、员工津贴信息等,其数据及其属性需求分析如下:

       1. 员工基本信息:员工号、员工姓名、性别、工资等级、职称、所在部门、住

       址、电话等;

       2. 部门信息:部门号,部门名称;

       3. 员工考勤信息:员工号、日期、上午、下午、迟到、早退等。

       4. 工资等级信息:等级号、等级名称、职位、基本工资;

       5. 员工津贴信息:员工号、加班时间、加班类别等。

       3.5.2数据流程图如下

       0层图如下所示:

       3.5.3 数据流图的数据字典

       下面介绍一下一些主要的数据流的数据词典。 一、

       系统管理数据流数据词典

       1. 数据流名称:管理员登陆信息

       说明:它的作用是将管理员的ID、密码等让工资管理系统检查,看是否允

       许登陆。

       数据流来源:管理员 数据流去向:工资管理系统 2. 数据流名称:非法登陆信息

       说明:它的作用是把用户的错误登陆信息反馈给用户。 数据流来源:工资管理系统 数据流去向:管理员 3. 数据流名称:查询请求信息

       说明:它的作用是把用户要查询的信息提交给工资管理系统,让其显示查询

       的信息。

       数据流来源:管理员 数据流去向:工资管理系统 4. 数据流名称:添加员工信息

       说明:它的作用是把要添加的员工信息提交给工资管理系统,让其处理该信

       息。

       数据流来源:管理员 数据流去向:工资管理系统 5. 数据流名称:更新员工信息

       说明:它的作用是把要更新的员工信息提交给工资管理系统,让其处理该信

       息。

       数据流来源:管理员 数据流去向:工资管理系统 6. 数据流名称:打印信息

       说明:它的作用是让工资管理系统反馈一些打印信息,如工资条、报表等,

       以便用户更好地了解相关信息。

       数据流来源:工资管理系统 数据流去向:管理员 二、

       在用户数据流数据词典

       1. 数据流名称: 业绩记录表

       说明: 每月执行一次,由各部门主管填写本部门员工的业绩;部门主管和

       公司高级管理人员则由总经理指定。

       数据流来源:工资管理系统 数据流去向:管理员 2. 数据流名称: 工资标准表

       说明:每个职工的各项工资标准,由人事部主管填写。 数据流来源:工资管理系统 数据流去向:管理员

       包含结构:员工编号、姓名、基本工资、生活补贴、岗位补贴,还有一些其它的数据词典,在此不一一列出。

       3.6 系统的性能需求

       1.硬件要求。 设备名称说明:处理器奔腾III以上,256MB。内存256MB,内存越大,速度越快。硬盘40GB以上。

       2.软件要求。(1)windows 以上操作系统,IIS服务,配置.net框架。

       (2)需要有一个数据库服务器,提供数据库的连接,这里选用

       Microsoft SQL Server2000来为数据库提供连接,当然要一台计算机来运行程序.这样就可以了。

       4.总体设计

       在系统的需求分析阶段,我们已经知道系统“做什么”的问题了,现在我们要进入软件设计的阶段,去解决“怎么做”的问题。在软件设计阶段,它分为根

       要设计和详细设计。首先做概要设计,它是将软件的需求转化为数据结构和软件的系统结构。然后是详细设计,即过程设计,通过对结构表示进行细化,得到软件的详细的数据结构和算法。

       4.1系统结构的总体设计

       根据上面对需求的分析,我们可以得到系统的模块层次结构,层次结构如下所示:

       4.2 各个模块的功能描述如下 4.2.1 员工基本信息维护模块

       本模块的功能是能够完成对员工基本信息的添加、修改、删除操作等进行维护。它包括三个子模块,添加员工信息子模块、修改员工信息子模块和删除员工

       信息子模块。

       4.2.2 工资信息维护模块

       本模块的功能是能够完成工资信息的输入、修改和删除等操作。它也包括两个子模块,输入工资信息子模块、修改工资信息子模块和删除工资信息子模块。

       4.2.3 查询信息模块

       本模块的功能是能够对单个员工工资信息、员工基本信息情况、部门工资情况、总工资情况等进行单项查询或者一定范围查询、多项查询等。

       4.2.4 计算工资模块

       本模块的功能是能够计算员工工资的奖金情况、计算员工的津贴情况、计算员工月工资、年工资及进行一些相应的统计计算等。它包括一些子模块,如计算津贴子模块、计算奖金子模块、统计工资子模块等。

       4.2.5 打印模块

       本模块的功能是能够打印工资条以及一些部门报表、工资报表等,以反馈一些信息给员工。

       4.2.6 登陆模块

       本模块的功能是:根据员工的登陆时的输入信息,看是否要让该员工登陆系统。

       主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。

       登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。

       4.2.7退出模块

       本模块的功能是可以让员工或管理员随时利用该模块退出系统。

       5.详细设计

       概要设计完成了软件系统的总体设计,规定了各个模块的功能及模块之间的联系,进一步就要考虑实现各个模块规定的功能,这就是要进行详细设计。在详细设计阶段,要决定名个模块的实现算法,并精确地表达这些算法。下面主要实现一些重点模块的算法。

       5.1 生成报表

       用Jackson系统设计方法设计报表,如下所示:

       5.2 查询模块的详细设计

       在该模块中,要查询信息,首先要进行登陆,然后输入要查询的信息,如员工号,接着系统连接数据库,在数据库中查找是否有和输入信息相应的信息,如果有,则显示相应的查找结果;如果没有,则提示找不到相应的信息或者提示出错。流程图如下所示:

       在完成了详细设计、编码之后,就要进入软件测试阶段了。软件测试是指根据软件开发各阶段的规格说明各程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用途去运行程序,以发现程序错误的过程。软件测试分为黑盒测试和白盒测试。黑盒测试主要看模块的功能是否实现;白盒测试主要对模块内部的检查。

       6.1 黑盒测试

       黑盒测试主要是为了发现以下几类错误: 1)是否有不正确或遗漏了的功能。

       2)在接口上,输入能否正确地接受,能否输出正确的结果。 3)是否有数据结构错误或外部信息访问错误 4)性能上是否能够满足要求 5)是否有初始化或终止性错误

       6.2 白盒测试

       白盒测试是对软件的过程性细节做细致的检查。 白盒测试主要想对模块进行如下的检查:

       1)对程序的模块的所有独立的执行路径至少测试一次

       2)对所有的逻辑判定,取”真”与取”假”的两种情况都能至少测试一次; 3)在循环的边界和运行界限内执行循环体; 4)测试内部数据结构的有效性,等等。

       因此在对程序进行白盒测试测试时,测试用例要有:条件组合覆盖测试用例和路径测试用例。

       在测试完成之后,还要对程序进行调试。 可用下面的几种方法进行调试。

       1)强行排错: 可以通过内存全部来排错,也可在程序特定部位设置打印语句来排错。

       2)回溯法排错。这是在小程序中常用的一种有效的排错方法。 3)归纳法排错。 它是一种从特殊推断一般的系统化思考方法。 4)演绎法排错软件工程课程设计报告等。

       8.结 论

       员工工资管理系统是一个典型的信息管理系统,通过软件工程方面的选择课题、需求分析、概要设计、详细设计、程序模块、系统测试等几个步骤来实现。开发本系统的过程中,首先熟悉员工工资发放管理的流程、步骤;其次在系统需求分析过程中,要透过现象看本质,敏锐观察到员工工资管理中存在的各种问题,并在总体设计把握好对问题的分析、理解,进而解决问题。

       在我们的共同努力下,我们基本完成了这个系统。由于时间、条件和个人水平的限制,软件相对较简单,如果要将该软件用于具体单位,还需针对单位的实际情况对软件进行进一步的完善。

       本软件的特点和优点:

       1. 本软件可以工资核算正确无误、快速输出,提高企业的管理水平和管理效率。 2. 可以对工资的各个项目随时作增加和删除。

       3. 可以分别查询单个工人每个月的工资,包括工资的各个细节项目。 4. 可以查询各部门以及全公司的员工的工资报表。

       本软件需要改进的地方有:

       1. 基本工资的设定太笼统,不能满足有些单位的需要。 2. 员工管理部分比较少需要结合人事管理软件使用。

       4. 软件的界面美观性方面需要很大的改进。 5. 帮助文档比较简单。

       课程设计对一个学生来说是一个非常的重要的学习过程。从对PowerDesigner,软件开发过程的一知半解,到完成这个系统的基本设计,虽然这个系统还存在这样那样的缺点,但是我在专业知识方面学到的东西是非常多的。而设计过程中也遇到了很多的困难,在老师和同学的帮助之下最终我还是克服了困难完成了设计。这个过程更使我学到了面对困难应该持有的积极态度。

       总的来说,这次的课程设计是非常有意义的,在我的人生学习的路上起到了一个里程碑的作用,让我有一个质的飞跃!

       衷心感谢何老师给予我们这次机会,让我们对软件的开发过程还是对程序的编写步骤都有了更加深刻的认识。

       9.参考文献

       [1] 杨文龙 《软件工程》,电子工业出版社,

       [2] 张国藩,《软件工程》。北京:清华大学出版社,

       [3] 郑人杰 殷人昆 陶永雷, 《实用软件件工程》. 清华大学出版社,2023

       [4] 萨师煊 王珊,《数据库系统概论》,高等教育出版社2023

       [5] 丁宝康,《数据库原理》,经济科学出版社,2000

       [6] 林福泉,《SQL Server 中小企业实务应用》,中国铁道出版社,2023

       [7] 杨昭,《PowerDesigner对象与控件技术详解》,中国水利水电出版社,2023

       [8] 周红芳,《PowerDesigner基础应用与系统开发》,电子工业出版社,

       [9] 刘斌 卞慧,《PowerDesigner入门与提高》,中国铁道出版社,2023

       [10] 薛华成,《管理信息系统》,清华大学出版社,2023

       [11] 汤庸 叶小平汤娜,《数据库理论及应用基础》,清华大学出版社,2023

       [12] MSDN - Microstft Developers'NetWork Microstft

       Microstft 编著

       [13] 谭桂华 魏亮,《Visual C# 高级编程范例》,清华大学出版社

       [14] 章立民,《用实例学ASP.NET》,电子工业出版社

3:数据库课程设计理论及实践论文

       数据库课程设计理论及实践论文

       数据库课程是计算机科学及信息技术相关专业方向的核心课程,主要研究数据库系统的基本概念、原理、方法及其应用,包括数据库系统、数据模型、数据库查询语言、关系数据库设计、事务处理等核心内容.通过数据库系统课程的学习,使学生能够正确理解数据库的基本原理,熟练掌握数据库设计方法和应用技术,掌握科学研究的方法和软件开发的基础规律,增强学生实际动手能力和创新能力.

       1数据库理论是数据库课程设计的前提

       目前,数据库产品市场95%以上都是关系数据库产品.关系数据库理论是数据库设计的基础,掌握关系数据库课程理论是数据库课程设计的前提.数据库课程是研究数据处理技术的一门综合性学科,它是与离散数学、操作系统、数据结构、软件工程、计算机原理等学科及其他应用领域的知识和方法相结合的学科.数据库理论研究的核心内容是数据建模、数据规范化理论、数据库系统、数据库的安全性、完整性、数据恢复技术、模式分解理论和方法.只有掌握了数据库理论才能做好数据库设计[1]22-49.全国大部分院校都将数据库理论和应用作为两门课程开设,一门是数据库系统概论(主讲数据原理),另一门是数据库应用(主讲程序设计).对于绝大多数学习者来讲,学习数据库的最终目的是掌握数据库应用方法和技术,在现有DBMS的基础上二次开发数据库产品,而不是开发新的DBMS,所以大多数高校往往在数据理论之前先开设数据应用课程,如VisualFoxpro6.0、Delphi、Oracle、SQLServer、Access等程序设计课程是关系数据库的产品,它们属于原理的具体应用部分.学习数据库应用课程后,便于掌握和应用数据库理论;反之,也只有学习了数据库理论才能更好地掌握和应用数据库技术.

       2数据库设计理论是数据库理论的应用和延伸

       2.1数据库理论在数据库设计中的指导应用

       按照规范设计的方法,将数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库运行和维护.在数据库设计的每一个阶段,都不同程度地用到了数据库理论与方法,同时对数据库理论进行了丰富的扩充.在概念结构设计中,核心内容是数据建模,即根据实体类型设计E-R(实体-联系)图.在E-R图中要搞清楚哪些是实体,哪些是属性.从理论的角度来说,实体是客观存在的,并可以相互区别的事物,属性是对实体特征的描述,但是它们之间既有必然区别,也有一定联系.实体和属性不是绝对的,如果需要对属性进一步描述,则属性就作为实体,反之,如果不需要对实体进一步描述,则实体也可以作为另一实体的属性.例如,在设计职工档案管理数据库时,实体类型“职工”的属性:档案号,姓名,性别,出生日期,参加工作时间,学历,职称,职务,工资.如果只考虑现在的工资,则工资就是职工实体的属性,但是如果考虑职工的工资历史,则工资就是一个实体.在逻辑结构设计时,用到规范化理论、求极小集和码的方法、模式分解理论和方法.

       2.2数据库设计理论是对数据库理论的延伸

       数据库设计理论对数据库理论在很多方面进行了延伸和扩展,使得数据库理论更加简捷、方便和直观.在逻辑结构设计中,将概念模型的产品基本E-R图转换为逻辑结构的关系模型,是模式分解理论的直接应用,是在数据库理论基础上的抽象和延伸,实体内和实体间的转换,实体间的每一个实体转换为一个关系,实体内的属性是关系的属性,实体内属性的码就是关系的码.按照关系理论的函数依赖,每一个实体中,码决定每一个属性,而模式分解中,码相同的合并,左右两端的属性合并作为一个分解,从操作方面减少了复杂性,所以设计理论与数据理论完全吻合;数据库实体之间的联系分为一对一、一对多、多对多和多实体之间的联系4种情况,这些转换在逻辑结构设计中都给出了转换规则,也完全满足模式分解理论,在模型优化时,用到极小集方法与设计理论的结合.

       3注重数据库设计理论与实践的结合

       3.1处理好数据库设计经验和数据库设计理论的关系

       数据库设计理论尽管比较完善,按照规范化理论,在函数依赖领域,如果关系满足BCNF,不会存在数据冗余、插入异常、删除异常和更新异常,实际上关系规范化不一定要达到BCNF;如果达到BCNF,不会出现冗余和各种异常,但会出现查询效率降低.这就要根据实际情况综合权衡.下面以规范化后的学生成绩管理系统为例说明.学生成绩管理系统包含下列3个关系:学生(学号,姓名,性别,出生年月);课程(课号,课名,学时,学分);成绩(学号,课号,成绩).我们经常查询“某同学学习某课程的成绩”,这就需要3个关系的连接,如果学生人数较多(数据库较大),可能需要较长时间,但如果是一:数据库实习报告

       通过这次在清华it的实习,学到了很多东西。也了解到了软件开发的真正价值。这次的实践让我真切体会到了我们前面所学知识的用处所在。以前总认为所学的知识只是理论上的知识,根本就没有任何作用,但通过这次实习,让我学有所用。而且学到了很多在学校学不到的东西,受益匪浅。

       在这个信息时代,信息都是电子化。很多方面根本不在是一些手把手的管理,而是在电脑面前操作一下即可,让我们真正享受到高科技的待遇。在软件开发领域,做一个项目的出发点是提高办事效率。而在项目制作的过程中我们要使一个软件简洁实用,人性化,快捷方便。

       这次实习的主要任务是图书管理系统的开发。项目运行的平台是windowsxp,运用系统主要是microsoft visual studioxx,microsoft sql server xx,运用的知识主要有我们学习过的知识数据库技术,以及实习过程中所提及的知识。在软件开发果过程中首先要了解三层结构的的含义及其设计模式思想部署企业级数据库业务系统开发。

       三层结构是一种成熟、简单并得到普遍应用的应用程序架构,它将应用程序结构划分三层独立的包,包括用户表示层、业务逻辑层、数据访问层。其中将实现人机界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组件中,将所有和数据库的交互封装在数据访问组件中。

       三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。

       下面介绍图书管理系统开发技术

       一 系统的功能设计

       首先对系统进行需求分析,我们必须要知道要做一个系统“用来干什么”,这需要在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、接口等方面的需求,可以使用uml建模作为需求分析和系统设计的有效方法。图(1)给出了本图书管理系统的功能结构图,其工作流程为:普通用户直接登录主页面,只能浏览、快速查询图书、注册新用户、修改自己的密码以及查看图书的详情,管理员用户除了可以完成普通用户的操作外,还可以进入图书管理模块进行图书添加、修改和删除的操作。

       1、系统的功能特点

       (1)操作简单、界面友好:插入表格的页面布局,使得图书的录入工作更简便;许多选项包括图书类别、来源等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。

       (2)即时可见:对图书的处理(包括图书添加、修改、删除)将立即在主页的对应栏目显示出来,达到“即时处理、即时见效”的功能。

       (3)功能完善:包括常见网站的图书管理的各个方面:图书新增、浏览、删除、修改、检索等各个方面,完整地实现了网站对即时图书的管理要求。

       (4)方便移植:针对不同的图书馆,只需要稍作修改就可以开发出适合本企业特点的网站图书管理系统。

       2、系统的详细设计

       系统的主要功能是通过几个功能模块来实现的。具体的设计过程

       ⑴ 系统登录:该模块负责将用户分为普通用户和管理员用户来实现用户权限的管理。

       ⑵图书类别管理:该模块只有管理员才有的权限,管理员可以对图书的大、小类进行添加、更新、删除等操作。

       ⑶库存图书浏览:该模块负责分页列出图书馆中所有图书的信息,包括图书名称、、出版社,图书状态,每条记录后面都有一个,被做成一个超,点击它们就能跳转页面可以查看的详情如图书封面、图书数量、图书出版年份。

       ⑷库存图书添加:该模块是图书管理员进行图书的添加,权限仅限管理员,在此页面中的大小类实现了联动作用,点击其大类,小类的下拉列表中就会显示与之对应的小类,从中选择即可。

       ⑷ 图书快速查询:该模块提供了图书快速查询功能,输入待查找的图书名称可以快速地找到符合条件的图书,并输出查询结果,点击产看详情字样就可以查看图书的详细信息。

       ⑸编辑系统用户:该模块负责分页罗列注册用户的具体信息,普通用户本人或管理员可以对用户进行删除、修改。非普通用户或系统管理员外不具有对该用户的处理权限,所以不同普通用户进入此页面将显示不同的内容。

       ⑹修改用户密码:普通用户本人用户录入所需要的内容,包含用户名、真实姓名、权限类型、旧密码及新密密码,点击更改即可修改密码,并写入数据库中保存。

       ⑺系统名称设置:该模块为管理员权限,管理员可以更改图书系统的名称。普通用户为不可见状态。

       ⑻系统使用说明:主要是供普通用户和管理员阅读,使之更好地了解本系统的权限以及用法。

       [数据库实习报告]

6:c 课程设计实践报告

       班级:8312

       姓名:张弛

       学号:100049

       题目一、题目描述: 已知银行整存整取存款不同期限的月息利率(采用复利 方式,即利滚利)分别为 0.63% 期限一年 0.66% 期限二年 月息利率= 0.69% 期限三年

       0.75% 期限五年 0.85% 期限八年 要求输入存钱的本金和期限(以整数年为单位) ,求到期时能从银行 得到的利息与本金的合计。 提示:可以用嵌套的 if-else 结构或 switch 结构实现,核心函数 pow(1 月利率,月份)。 请思考年份是四、六、七或八年以上的情况。

       设计思路: (一)使用 switch 选择语句 对应年份

       (二)明确核心函数 pow 是计算复利的(例如:x 的 n 次方 ) ;由于 是以年为计算期限的,而所给的利率是月利率,所以计算时 应该在年的基础上乘以 12; (三)复利计算就是一种幂运算,I=p*(1 i)^n,本金和利率都是变

       动的 (四)在除了 1、2、3、5 和 8 年之外的其他年份中,要注意“就低 不就高”的原则,尤其是在 8 年之后,也是套用期限八年的利率。

       附源程序如下: #include #include void main { int years; float capital,sum;

       scanf(“%f %d”,&capital,&years); switch(years) { case 1:sum=capital*pow(1 0.63*0.01,12);break; case 2:sum=capital*pow(1 0.66*0.01,24);break; case 3:sum=capital*pow(1 0.69*0.01,36);break;

       case 4:sum=capital*pow(1 0.69*0.01,48);break;

       case 5:sum=capital*pow(1 0.75*0.01,60);break; case 6:sum=capital*pow(1 0.75*0.01,72);break; case 7:sum=capital*pow(1 0.75*0.01,84);break; case 8:sum=capital*pow(1 0.85*0.01,96);break; default:sum=capital*pow(1 0.85*0.01,12*years); } printf(“%f”,sum); }

       题目二、题目描述: 简单计算器。用 switch 语句编写一个程序计算表达式: data1 op data2 的值。其中 op 为运算符 、-、*、/。

       设计思路: (一)明确计算器是怎样进行计算的; (二) 细节, 比如很多地方需要分号, 在遇到字符时, 我们应该用 ‘’ , 而不是“” ; (三 Switch 语句主要用于多分支选择,此题有 、-、*、/,这就是 选择。使用 switch 每个 case 对应 - * /符号 程序涉及到至

       少三个量,运算符 op 和两个数字;先让用户输入两个数字和运算符, 两个数字的计算在后面的程序中用 swith 结构运行。 运 行 效 果 截 图 :

       附源程序如下:#include int main() { float data1,data2,c;

       char op; printf(“请输入表达式中两个数字 data1 和 data2 ”); //打印 scanf(“%f%c%f”,&data1,&op,&data2); //输入

       printf(“请输入运算符 、-、*、/ ”);// 打印 switch(op) //switch (){case stick:break;} 这个是个选择结构

       如果 OP = stick 则执行这一句 如果没有 则执行 default 后面 的语句 { case ' ':c=data1 data2;break; case '-':c=data1-data2;break; case '*':c=data1*data2;break; case '/':c=data1/data2;break; default:printf(“输入错误”);break; } printf(“%f”,c); return 0; } 题目三 题目描述:编写程序,用二分法求方程 2x3-4x2 3x-6=0 在(-10,10) 之间的根。 提示: ① 用 do-while 语句实现。

       ② 二分法的计算步骤: (1) 准备 计算 f(x)在有根区间[a,b]端点处的值 f(a),f(b) (2) 二分 计算 f(x)在区间中点(a b)/2 处的值 f[(a b)/2] (3) 判断若 f[(a b)/2]=0,则即是根,计算过程结束。 否则,检测: A. 若 f[(a b)/2]与 f(a)异号, 则根位于区间[a,(a b)/2]内, 这时以(a b)/2 代替 b; B. 若 f[(a b)/2]与 f(a)同号, 则根位于区间[(a b)/2,b]内, 这时以(a b)/2 代替 a; 反复执行步骤 2 和 3,直到区间[a,b]长度缩小到允许的误差范围之 内,此时中点(a b)/2 即为所求的根 设计思路: (一)二分法是指在整个算法中,让计算值无限趋近于根的值,利用 数学知识可知,当了两个点的结果异号时,函数的根就在这两个数之 间,利用二分法可以无限的把根的范围缩小,直到可以确定为止; (二)do-while 是循环语句,先执行一次指定的循环体语句,然后 判别表达式, 当表达式的值为非零 (真) 时, 返回重新执行循环语句, 如此反复,直到表达式的值等于 0(假)为止才结束。 (三)Void main()是声明函数,并且是对主函数的声明。题目所 给的范围是(-10,10) ,因此在声明函数中定义一个 a 和 b 来代替区 间的范围,而用 c 来代指中间指也是最后的结果,在这个程序中 a、b、c 都是随着范围不断变化的变量。如果(-10,10)的范围过大,

       就需要循环语句来缩小区间范围, 即 a=c 或 b=c。 当函数值在 (-10,10) 中任意一点取得 0 时,就正是我们所要的结果。循环条件是当区间 a 和 b 的函数值小于精度 0.01。 运行效果截图:

       附源程序如下: #include “stdio.h” float f(float x) { float y; y=2*x*x*x-4*x*x 3*x-6; return y; } void main() { float a=-10,b=10,c;

       do{c=f((a b)/2); if(c==0) break; if(c*f(a)>0) a=c; else b=c; } while(f(b)*f(a)<0.01); /*解的精度为 0.01*/ printf(“方程的解是:%f”,c); }

       题目四 题目描述:编写程序,给定一个整数 i,请求出另一个整数 j,使 i 和 j 在用 8 位二进制表示时互为逆序。例如:给定 i=3 时,应得到 j=192(3 的二进制为:00000011,192 的二进制为 11000000) 。 提示: ① 十进制整数转换为二进制整数用“除 2 求余”法。 ② 二进制整数转换为十进制整数用“按权相加”法。

       设计思路: (一)二进制整数转化为十进制整数用“按权相加”法 (二)二十进制整数转化为二进制整数用“除 2 求余” ,用&转化。

       (三)运算符:<<是指左移一位,>>是指右移一位,<<=结合时从右 到左运算, 其中 aa 是指 b 向右移 a 位, 左移一位相当于乘 2 右移 1 位相当于除 2 (四)在交换时,用的是中间法

       运行效果截图: 附源程序如下:#include “stdio.h” void main() { int i,j,s=1,a[8]; printf(“请输入一个整数 i: ”); scanf(“%d”,&i); for(j=0;j<8;j ,s<<=1) { a[j]=i & s; } printf(“所得到的 j 为: ”);

       printf(“%d ”,(a[0]<<7) | (a[1]<<5) | (a[2]<<3) | (a[3]<<1) | (a[4]>>1) | (a[5]>>3) | (a[6]>>5) | (a[7]>>7)); }

       题目五 题目描述:编写程序,抓交通肇事犯。 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没 有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相 同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位 数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索求 出车号。 提示: ① 按照题目的要求,造出一个前两位数相同、后两位数相同且相互 间又不同的整数,然后判断该整数是否是另一个整数的平方。 ② 用穷举法解此题。穷举法是最简单、最常见的一种程序设计方法, 它充分利用了计算机处理的高速特征。穷举法的关键是要确定穷 举的范围,既不能过分扩大穷举的范围,也不能过分缩小穷举的 范围,否则程序的运行效率会很低,或有可能遗漏正确的结果而 产生错误。

       设计思路:

       (一)11 1

       到 1

       99

       在

       99 11 这样 穷举

       判断是否一个

       数的平方 则是 将这个数开方

       取整 再取平方 是否还是原来的数

       (二)此题需要满足三个条件:①前两个数相同,后两个数相同;② 前后两数分别不相同;③这个数是一个整数的平方。需要每个条件都 满足,if 才为真。 (三)主要思路是穷举。穷举是指在适当的范围内举出一个数。 运 行 效 果 截 图 :

       附源程序如下: #include void main() { int a,b; for(a=32;a<=99;a )

       { b=a*a; if(b/1000==b00/100 b0!=(b/1000)*10 b00/100) printf(“The license plate is:%d ”,b); } } && b0/10==b &&

       题目六 题 目 描 述 : 从 终 端 输 入 实 数 ex=1 x x2/2! x3/3! ? xn/n!的值。 设计思路: 先输入一个 x 的值; 再设计一个子函数, 计算 1! , 2! , 3! ?n! 的值;之后用 sum 函数,和 pow 函数处理分子,用累加的方式进行分 子计算,并形成等式;最后输出结果。 x , 用 递 推 法 求

       附源程序如下:#include “stdio.h” int f(int x,int n) { int i,m=0; for(i=0;i

       for(i=0,s=0;f(x,i)<0.001;i ) s =f(x,i); printf(“其结果为:%d ”,s); }

       题目七 题目描述:打印出以下的杨辉三角形(要求打印出 10 行) 。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ?? ?? ??

       设计思路: (一)二维数组主要用于处理多行的问题,而且第一行在数组之中是 第 0 行。 (二)杨辉三角有一个明显的特点:每一行的最后一个数字与第一个 数是相同的,此外,下 (三)一行的第二个数是由上一行的第一个数和第二个数相加之和, 以此类推。

       定义指针是为了让整个程序不那么复杂。 运行效果截图:

       附源程序如下: #include int main(void) { int a[10][10],(*p)[10]=a,i,j; for(i=0;i<10;i ) {

       *(*(p i) 0)=1; *(*(p i) i)=1; } for(i=2;i<10;i ) for(j=1;j

       题目八 题目描述:找出一个二维数组的“鞍点” ,即该位置上的元素在该行 上最大,在该列上最小。 提示: ① 一个二维数组可能有鞍点也可能没有鞍点,若有鞍点,则只有一 个。

       ② 准备两组测试数据: (1) 二维数组有鞍点: 9 80 205 90 -60 210 40

       96 1 89

       -3 10

       (2) 二维数组没有鞍点: 9 80 205 90 -60 210 40 1 89

       196

       -3 101 7

       45 54 156

       ③用 scanf 函数从键盘输入数组各元素的值,检查结果是否正确。如 果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而 不必用 scanf 函数。请同学们修改程序以实现之。

       设计思路: (一) 先找出一行中值最大的元素,然后看它是不是该列中的最小值,由于 一个二维数组最多有一个鞍点,所以如果是则鞍点存在且它就是鞍 点,输出该鞍点;如果不是,则再找下一行的最 大数,以此类推。如果每一行的最大数都不是鞍点,则此数组无鞍点 (二) 在程序中,先令 a[i][0]最大赋值给 maxi,在 for 循环的比较中,把

       符合条件的行的最大值赋给 maxi,将每一次比较后的最大的列数赋 值给 maxj,从而找出 i 行最大的那个。 再假设那个数就是鞍点,将最大数和同列的数值相比,如果 maxj 不 是最小的,则不是鞍点,继续找。 (三)引入一个参数 flag=1,若不存在鞍点则 flag 为 0,若存在鞍 点则 flag 依旧为

       运行效果截图:

       附源程序如下:#include “stdio.h” #define S 80 #define T 80 void main() { int m,n,i,j,t,maxh,maxl,flag,a[S][T]; printf(“请输入二维数组的行数 m 和列数 n: ”); scanf(“%d %d”,&m,&n); printf(“请输入二维数组的各个元素: ”);

       for(i=0;ia[i][0]) t=a[i][j];maxh=i;maxl=j; } for(i=0;i

       a[%d][%d]=%d “,maxh,maxl,a[maxh][maxl]); }

       题目九 题目描述:某班期终考试科目为高数 MT、英语 EN 和物理 PH,有 30

       个人参加考试。为评定奖学金,要求统计并输出一个表格,表格内容 包括学好、各科分属、总分和平均分,并标出 3 门课均在 90 分以上 者(该栏标志输出为 Y,否则为 N) ,表格形式如下: NO MT EN PH SUM V >90 1 2 3 97 87 92 276 92 92 91 90 273 91 90 81 82 253 84 ...... N Y N

       #include ”stdio.h“ void main()

       设计思路:由于是对 30 个学生的数据进行输入与统计,所以建立二 维数组, 根据各位置的条件来定义其内容, 第 8 个数据是字符型数据, 所以另设一数组进行存储,最后在将数据整合输出。

       附源程序如下:#include ”stdio.h“ void main() { int i,j,sum,flag,a[30][7]; printf(”请输入 30 个考生的三科成绩: “);

       for(i=0;i<30;i ) { a[i][0]=i 1; for(sum=0,j=1;j<4;j ) {scanf(”%d“,&a[i][j]); sum =a[i][j]; if(a[i][j]>90) flag=1; else flag=0; } a[i][4]=sum; a[i][5]=sum/3; if(flag=1) a[i][6]='Y'; else a[i][6]='N';

       } printf(”NO MT EN PH SUM V >90 “); for(i=0;i<30;i ) for(j=0;j<6;j ) { printf(”]“,a[i][j]); printf(” %c “,a[i][6]); }

       }

       题目十 题目描述下面是一个 5*5 阶的螺旋方阵,试编程打印出此形式的 n*n (n<10)阶的方阵(顺时针旋进) 。 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 提示:用二维数组实现。

       设计思路:定义一个 n*n 维数组存放该方阵,m 为该方阵的圈数,一个大循环中嵌套了

       四个小循环,每一圈为一个大循环,第一个小循环按顺序写出第一行的数,第二个小循环按 顺序写出最后一列的数, 第三个小循环按顺序写出最后一行的数, 第四个小循环按顺序写出 第一列的数,再进行第二次大循环,循环完毕后再进行循环输出数组中的 n*n 个数,该螺旋 方阵就出来了。

       附源程序如下: #include ”stdio.h“ void main() { int i, j, k = 0, m, n,a[10][10]; printf(”请输入方阵行列数 n(n<10): “); scanf(”%d“,&n); if(n%2==0) m = n / 2; else m = n / 2 1; for(i=0;i

       k ; a[i][j]=k; } for (j=i 1;j=i;j--) { k ; a[n-i-1][j] =k; } for (j=n-i-2;j>=i 1;j--) { k ; a[j][i]=k; } } for (i=0;i

       printf(”]“, a[i][j]); printf(” “); } } 附:

       实习总结与心得体会

       经过 C 语言实习,让我加深了对 C 语言的了解,而不只是单单 的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编 写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理 论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。 不过,通过几天的实习,逐渐积攒了一些经验,有些错误可以很快就 看出来。 这次实习有很大的收获,让我对 C 语言有了更深的认识,平时 在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技 能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣 就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技 能,让我对 C 语言有了浓厚的兴趣和更深层的认识。 C 语言是一个有序的学习, 学了最基本的替换, 然后扩展到循环, 嵌套, 条理很清楚, 不是一个零散的知识, 实际上所有的课程都如此, 不过通过实习我也知道了自己的不足,存在的很多问题。比如自己写 的写的小程序出了问题,不会解决了就叫老师帮忙,但是会养成一种 依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以

       以后要多多锻炼自己的信心和增加自己的能力, 争取做到老师不在身 边的时候也可以完成一些简单的程序编写与错误排除。 还有自己的基础知识不扎实, 遇到的问题, 没有很好的逻辑思维, 亲自编写一个陌生的程序的时候会有种无法下手的感觉, 找不到突破 口。通过实习,逐渐理清了顺序,对于简单的程序和一些相对比较繁 琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基 础知识掌握了,然后有条不紊的分析,一步一步理解,C 语言还是很 有意思的课程。 自己亲自动手编写程序让我增加了对 C 语言程序开发环境的了 解,在上课的时候老师就讲,学习C 语言最重要的是学习C 语言的 逻辑思维,不管以后从事什么行业,学习C 语言都对自己的职业很 有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的 编程工作可能不用 C 语言,但是拥有扎实的 C 语言基础是对工作很 有用的。 当初在初步接触 C 语言的时候,看着一堆“奇形怪状”的符号, 觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态! 感谢学校安排这次实习和老师的耐心讲解,让我学到了很多知 识,在实习过程中,同学之间的相互探讨,老师的循循善诱,最终让 我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之 间的感情。希望以后还会有更多类似的实习课程,在有限的大学时间 内学到更多的实用技能,为以后的生活和工作打下一个良好的基础。

       [c 课程设计实践报告]

7:财务管理课程设计报告心得体会

       期待了很久的课程设计终于来了,却远远没有想象中的那般轻松。

       6000千字的课程设计报告对于我们来说是第一次接触,老师说其实很简单,但真正轮到了我们自己动手,还是有很多困难接踵而至。

       从选公司的大海捞针到看着一堆资料的无从着手,再到面对着每章琳琅满目的方法无从选择,慢慢地摸索,互相帮忙着想办法,也是收获颇丰。

       经过激烈的讨论,我们最终选择。。。。。。。做我们研究的主要对象。大家开始分工搜索有关的信息,不仅仅是从老师提供的案例找到论文的格式,当然这是最重要的一部分,还要仔细研究。。。。的各种资料。。。。。。真的很感谢我们有一个这样的团队,是大家齐心协力我们才能够成功完成课程设计,谢谢我们组员对我的照顾。

       一个星期的时间一眨眼就过去了。说实话,我是感谢这一个星期的课程设计的。尽管很忙碌,但是很充实,充分了解到自身知识的不足和实践的重要性,也学到了很多技巧,增加了小组成员之间的感情,学到了很多课本所无法交给我们的知识。在不知道路在何方的时候,手牵手探索;在迷茫挣扎的时候,会有老师伸出援手、指点迷津;在疲惫痛苦的时候,有成员们相互安慰相互鼓舞。 也许,我们做的财务报告并不是最好的,但是,实实在在的,都是我们每一个人每一字一句辛辛苦苦分析的成果。有了这一个星期的课程设计,让我了解了自己的很多不足,在以后的学习过程中,会针对自己的不足之处,更加努力地提升自己。

8:课程设计报告的心得体会

       在我看来,通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。

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

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

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

9:课程设计报告的心得体会

       新的课程理念强调课程设计必须从学生的角度出发,要与学生的经历和经验相联系,所倡导的是以人为本,以学生为主体,关注学生终身可持续发展,注重各种能力和创新意识的培养。在本书中,编者能从理论上向读者阐述数学课堂教学中教育观,引领读者课堂教学设计方案,能从数学课堂中概念教学,命题教学,复习课等教学各环节使读者从中受益非浅,在我十几年的教学生涯中,深深体会到一堂课的成败与课前的教学设计密不可分,如若你课前能做大量的准备工作,对课的重点,难点进行充分的研究,了解课的地位,对教学目标的制定,课堂中的板书,课堂语言严谨性准确性能作准备,大量公开课的成功应归功于课的设计。

       数学课堂要生活化,新课程倡导用具体的,有趣的,富有挑战性的素材,引导学生投入数学活动,使课堂教学内容不再空洞,枯燥,拉近数学与现实的距离,让学生感受到数学来源于生活,产生乐于接受的心理。比如:在引入分数时,新课程利用比身高的例子,利用名人姚明的身高作比较,让学生体会到数学的实用性;在讲角的比较大小时,利用学生熟悉的足球射门,来比较谁的进球机会大;在学圆的周长时,教学一开始设计了这样一个问题:两个遥控模型机器人分别沿两种不同形状的赛道进行比赛,一种是边长为4.7米的正方形,另一种是直径为6米的圆形,如果它们同时,同速从一点出发,那么谁先到达原出发点呢 函数的引入时,每个人与他的生日的对应关系,衣服上的纽扣与纽门的对应关系。通过引入生活中的例子,可丰富学生的感性认识,激发学生的学习兴趣。

       在数学教学设计中,我们总是在教导学生,学习科学知识的重要性,而形成科学态度,科学精神更重要。所谓科学态度,就是实事求是的态度,所谓科学精神,就是怀疑的,批判的,探索的,创造的精神。可是这种态度和精神不可能离开学科教学,离开学科发展的实际过程单独进行说教。它必须渗透在学科教学的过程之中。教学模式具有多样性,具体如何选择,要根据学生的知识水平,学习动机,学习能力,学习风格和学习态度来选择,也可根据教师的自身的不同的特长,数学素养和教学风格来选择。

       对数学教学内容有透彻的理解,又善于用生动的语言表达自己的思想,这样的教师运用讲练结合教学模式往往效果较好,而有的教师洞悉数学思想发展的脉络,又善于启发学生的思维,这样的教师运用引导发现模式就比较适当。如数学概念的教学中,有的用数学的式子来定义,如正比例函数,反比例函数,一次函数,二次函数等;有的通过例举一些式子归纳它们的共性用文字来下定义,如方程等;

       数学课堂设计要发挥学生的主体性,在我认为,教师在课堂中,应该更多扮演一种引导者和激发者的角色。激发了学生求知欲望后,教师就应及时地将新课的内容有计划,有层次,由浅入深地展示给学生,并让学生参与新知识建立的过程,促使学生对新知识加以理解和掌握。同时,在教学过程中要有意识地结合教学内容向学生显示”怎样思考"的信息,提高思维能力。

       课堂教学结构虽有其比较稳定的活动程序,但决不是固定的,要根据不同的教学任务,教学内容和本班学生的实际情况加以调整,并有机地结合起来。优化教学过程,就要全面考虑教学过程的各因素,使每节课安排的程序成为一个科学有序的组合,每一个环节都成为这个整体的有机组成部分。这些问题是新,旧知识的结合点,教师应帮助学生理解新知,根据学生已有的知识,提出最近发展区之间的问题,以实现知识迁移。

       教师要调动学生学习积极性,引导学生打开思路去想问题。本阶段,如在几何直观教学中应引导学生通过动手,动口,动脑加以分析解答,调动多种感官同时参与学习过程,参与探索知识的过程。根据学生的质疑,教师可以把握大量的反馈信息,从而有针对性地进行疏导,释疑,解惑,提高课堂教学的效率。教师尤其要鼓励低差学生质疑,耐心地给予解答。

       《数学教学设计》能从数学教学的各个环节,使我们体会到数学设计中应考虑各要素,根据课的内容,学生做好课前设计,为课堂教学提供充分素材,达到课堂教学的目的。