第一篇:Java课设工作的总结
面向对象程序设计课程设计工作的总结
历时两周的面向对象程序设计课程设计圆满完成。由于提前对课设进行了精心的准备和布置,使得学生能在短短的两周时间内取得了最大收获。
本次设计在总结了以往设计经验的基础上,对设计的任务内容进行了细化,同时明确小组内分工,强调课设的纪律和要求,强调独立设计,让学生明白学习别人和抄袭别人成果的区别,重视动手实践。
加强学生课设报告规范化的要求,认真检查,对不符合要求的报告,反复修改,讲解报告的规范化要求,锻炼学生的学习态度。
作为本次课设的指导老师,我们严格按教务处的课设流程规定进行。
1.进行课程设计的选题工作,填写备选题目登记表。
2.教研室主任对指导教师的选题进行筛选审查。
3.系部教学副主任对课程设计的选题审核签字。
4.向学生下达课程设计任务书。
5.指导教师指导、督促、检查学生设计情况,填写课程设计指导教师工作日志。
6.指导教师和评阅教师分别完成课程设计成绩的评定,上报教务处。
7.教研室对课程设计样本和有关材料收存归档。
本次课设时间短,任务重,多数同学经历后觉得收获很大。对理论课的理解更加深刻了,同时也增强了Java编程的信心。
第二篇:java课设心得与体会
完成的任务
1.2.3.4.5.登录模块 前台服务 权限管理 密码MD5加密 集成小组成员的各个模块
心得与体会
刚开始看这个项目的时候,觉得比较简单,总体的感觉是java的swing布局有些复杂,其他的都还好!由于时间比较紧,发现了项目中的一些bug,但还没有时间来得及一一修改和完善,以后有时间,再完善。做这个项目的时候,由于有几门考试,所以没有花很多时间考虑这个架构,而是参考了网上的一些代码,慢慢的理清了思路。
起初,我的思路是使用三层架构,使用典型的MVC模式,M(模型)包括一些java bean,一些实体类和基础的方法,V(视图)主要是swing搭建的界面,C(控制器)则包括一些具体的操作方法,以及调节模型和视图之间的调用关系等。
这次,整个系统并没有完全使用MVC模式编写,只使用了一小部分,小组的其他成员,对MVC模式都不是很了解,此项目,使用MVC模式,我感觉还复杂一些,有很多多余的操作。本系统连接操作数据库使用的是DBUtils,它是是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。ArrayHandler :将ResultSet中第一行的数据转化成对象数组;ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[]; BeanHandler :将ResultSet中第一行的数据转化成类对象; BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象 ;ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象; KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据 ;MapHandler :将ResultSet中第一行的数据存成Map映射;MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map ;ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object。前台服务模块,主要理解Vector的使用就可以了,Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。Vector可以扩展为二维或者三维数组,在前台服务中,菜单列表和桌子列表的表格的数据源均来自Vector,所以,需要我们动态构造Vector添加到表格中去,并且呈现出来。修改数据的办法一般是,先修改Vector里面的值,然后更新到table中,或者直接修改table里面单元格的值。获得表格指定行和列的值的方法是table.getValueAt(row,column)。菜单和桌子列表都是用的Vector的二维表现形式,其中把菜单和桌子关联起来用来了Vector的三维形式,主要是用来方便获取每一桌的点的菜。其他的部分都是一些逻辑关系。很多时间,花费在了界面上面。业务逻辑的处理,主要包括,首页是定桌,点菜,菜必须签单,才有效,结账的时候,必须没有未签单的菜。其实菜单列表和桌子列表是通过三维的Vector关联起来的,通过桌子列表的索引,可以查询到该桌子菜单列表的情况。结账这一块的时候,主要就是在结账成功后,相应的消费信息才会真正的进入数据库。
谈到登录模块,首先说密码加密。密码加密,其实就是,通过数据库,你无法看到真实的密码,看到的是经过MD5算法加密后的32位字符。虽然,大都加密,都采用二次MD5加密,防止通过逆运算,破解,但这个系统,并没有搞到这么复杂,就采用了一次MD5加密。密码加密后,登录系统和修改密码的时候,都需要做一次密码加密后的验证,添加新用户的时候,也需要把密码加密后,加入到系统数据中。登录模块,就是密码的校验,很重要的异常和用户的不规则输入的判断等。权限管理模块,本系统采用了二级权限管理,超级管理员和普通管理员,超级管理员,拥有所有的操作权限,而普通管理员,只能前台服务和日结账,以及修改自己的密码。这个模块的实现,其实也没有什么难度,只要在登录的时候,判断一下用户级别,如果是普通用户,则设置一些按钮为不可用即可。
集成小组成员的各个模块,这个工作可以说是最头疼的一个。开始,规划的蛮好,采用MVC模式编写,但后来发现,他们对这个都不知道,所以无法进行下去,考虑到后面的集成问题,就部分采用了老师给的基本的数据库采用代码,但我还是保留了MVC的框架和一些类,方便以后的扩展。
鲁蒙
第三篇:ERP课设
ERP原理与应用
课程设计报告-电器公司ERP系统应用
班级:1121808
姓名:丁贤民
学号:201120180827
指导老师:徐玮 日期:2014.6.25 一.实验时间和地点:
2014.06.25~2014.06.26 二.实验目的:
通过一周的课程设计,基本掌握ERP系统软件的业务处理流程,学习如何把企业设计、销售、采购、生产、管理过程中所涉及的各种基础资料按ERP系统的内在逻辑要求录入到电脑中,掌握在ERP系统中建立物料主文件、产品结构清单、工作中心、资源清单、工艺路线的方法,掌握在ERP系统中录入销售订单和产品预测数据,进而生成主生产计划、物料需求计划和能力需求计划的方法,掌握按主生产计划、物料需求计划实施采购业务和车间生产业务的处理流程,掌握与销售采购相关的财务处理业务。
三.设计要求:
1.实施过程全部在金蝶K3 ERP软件上完成。设计结束后,每位同学独立提交一份ERP课程设计报告,内容包括规划的数据、设计过程、软件处理内容及处理结果、运行参数设置、遇到的疑难问题及解决办法。2.界面截图里要有各自的数据。3.禁止抄袭,雷同报告成绩均为0。
四.设计内容:
具体实施如下开始: 1.新建帐套:
开始-程序-金蝶k3标准版-金蝶k3工具-帐套管理。
进行用户管理,新建了用户和用户组。如下图所见:
产品预测数据管理
录入产品预测单:计划管理→主生产计划→产品预测→产品预测—新增
对用户丁贤民进行了权限设置,如下图所示:
2.建立主营产品的物料主文件和产品结构清单。
进入金蝶k3的控制平台:
电机桌面的金蝶k/3标准版进入平台,如下图:
进入主控制界面:
建立了几个科目,如下图:
录入币别
选择公共资料→币别,如下图: 录入记量单位
选择公共资料→计量单位,打开计量单位管理界面
部门录入:
录入物料数据
选择公共资料→物料,进入物料管理界面。
单击新增按钮或双击已录入的物料,可打开物料录入或修改界面
录入BOM单:计划管理-生产数据管理-BOM维护-BOM新增。形成下列的BOM单;
BOM维护:
3.建立加工该产品所用到的资源清单和工作中心录入工作中心及资源清单
录入工作中心
选择系统设置→基础资料→公共资料→工作中心,进入工作中心管理界面
录入资源清单
计划管理→生产数据管理→基础资料→资源清单
4.录入物料工艺路线
选择计划管理→生产数据管理→工艺路线→工艺路线新增:
5.录入初始库存资料:
选择系统设置→初始化→仓存管理→初始数据录入
截图如下:
6.录入和维护销售订单和产品预测数据、编制主生产计划、进行粗能力计算:
订单录入
供应链→销售管理→销售订单—新增,则打开销售订单录入界面
编制主生产计划
选择生产管理→主生产计划→系统设置→计划展望期维护
选择生产管理→主生产计划→MPS计算
进行粗能力计算
选择生产管理→粗能力需求计划→粗能力清单→粗能力清单生成:
7.根据主生产计划生成物料需求计划、并进行细能力计算
物料需求计划:
细能力计算
选择生产管理→细能力需求计划→细能力计算→细能力计算:
8.根据主生产计划、物料需求计划生成采购计划和车间生产任务
单击[生产管理] →[生产任务管理] →[生产任务] →[生产任务单-查询],系统弹出条件过滤界面。点击[确定],进入生产任务单时序簿界面。选择一张生产任务单,点击[下达]按钮。
车间生产任务:
9.根据采购计划实施采购业务各项流程、直至外购零件入库:
10.根据车间生产任务实施车间管理各项流程,直至产品完工入库
工序计划单查询
工序领料(工序计划单查询-编辑-工序领料):
派工单:
产品入库:
11.根据采购和销售数据完成应收、应付的财务处理业务
五.实验心得:
首先感谢宁星老师,徐玮老师,王红玲老师这两天对我们的指导,让我们能够顺利地完成此次课程设计。
通过本次的课程设计,我基本掌握ERP系统软件的业务处理流程,从最开始的新建帐套,进行帐套的初始设置,建立主营产品的物料主文件和产品结构清单,到建立加工该产品所用到的资源清单和工作中心和录入和维护加工该产品各零件的工艺路线之后再录入初始库存资料,录入和维护销售订单和产品预测数据、编制主生产计划、进行粗能力计算到根据车间生产任务实施车间管项流程,直至产品完工入库,最后根据采购和销售数据完成应收、应付的财务处理业务。
这一系列的操作,让我受益匪浅。虽然平时也接触过金蝶这个软件,但是当所以得任务都是细致紧密地联系在一起的还是第一次做,真正做到了企业管理所有流程的操作,个人觉得还是很难的。在操作的过程中,虽然遇到了很多的困难,比如MPS计算需要系统启动后才能使用,BOM的录入也成了问题等等,但是在老师和同学的指导下最终也顺利地解决了,出错,纠正,不懂到懂,这才是真正的进步。
纸上得来终觉浅,绝知此事要躬行。确实是至理名言,我们课程设计之前没有收集数据,没有想象一个企业在实施的过程中需要什么物料,我们总是想当然的认为自己能够当场很容易的想出来,但是事实却是,我们面对着电脑发呆,迷茫。我们总觉得事情很简单,眼高手低却是我们的写照,所以要想真正明白一个事情的事理就要实践,实践出真知,也需要你谦虚地面对所处的境地,不能怨天尤人。在实验室也看到了不少同学因为做不来就直接不做了,然后急躁的敲着鼠标,我开始也有点焦躁,但是很快就冷静下来一步一步跟着指导书做,然后也有了不错的效果,这也是本次课程设计给我带来的除学习外的精神方面的收获。
经过本次ERP的课设,我在各个方面都有了一定的进步,也达到了此次课设所需要达到的效果,今后会以今天的收获去享受更美好的明天。
第四篇:课设心得体会
经历了编c语言课程设计后,我对这一学期c语言所学内容有了更加深刻的了解和掌握,特别是一直不懂的链表和指针,现在发现自己都能运用了,很开心自己的进步。所以,虽然写程序的过程中,遇到各种问题,调试的时候也是遇到各种令人头大的问题,但能借助课程设计提高自己对指针和链表的熟练度,提高自己对c语言编程的熟练度,也希望学校可以多开设一些这样的课程,既是让我们对自己所学知识的一个综合理解与使用,也可以提高我们的动手实践能力、对知识的运用能力,更是一个让我们学会独立思考的好机会。
刚开始准备编代码时,感觉很茫然,不知道从何写起。虽然在这之前,我们已经对c语言这门课程学习了差不多一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生的,在运用起来的时候还是感到很棘手。
我首先去构建了一个基本的框架,搭建框架就好比一栋大楼的地基。框架搭好了,一个程序就慢慢成形了。在写课设的过程中,感觉最难的的就是控件的功能实现了。刚刚把代码敲出来的时候,整个人那个兴奋啊。但是,一编译运行。像一桶冷水从头浇到底。那错误多的,看的我眼花缭乱。编程序是一个很细心的过程。因为如果你不认真去写,少写了括号,或者分号,都会导致你的程序运行不出来或者运行出来的结果有错误。这些错误都很小,但是让你从一大堆程序中去找,这也是个难题。
通过实训的这个过程中我发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。还有一点就是,通过编程让我感觉到了链表在C语言中的重要性。在我看来,学会运用链表,就等于跨过了C语言的大门。
操作是学好c语言必不可少的一步。因为不管你理论知识掌握的如何熟练,不上机实际操作的话,是没有任何效果的,许多问题都是在实际上机操作中显现出来的,在书本上是体现不出来的。书本上是永远不会出现你自己的思想成果的,正是应了那句话“实践是检验真理的唯一标准。”
总之,通过c语言的学习,使我对计算机语言有了一些初步的认识和理解,使我对计算机语言不再像以前一样一无所知,认为那是高不可攀的、十分难以理解、一般人学不会的东西了。我认为只要学习方法掌握好,再加上刻苦的练习,是完全有可能学好任何一门计算机语言的。
在本学期对c语言的粗略学习之后,我们进行的这次课程设计,无疑加深了对c语言的认识和应用。要想从书本走向实践是一个很艰难地过程,所以刚开始的时候,我遇到了各种各样的阻碍,以至于差点儿打消了我做这次设计的念头。一开始就遇到了怎样能正确创建一个链表的问题,在上课的时候就模糊不清,不知道所以然,开始翻课本,问同学,依然是朦朦胧胧,又玩命的上机操作才终于得到解决。
在过程中问我才认识到自己自己还有很多的知识没学好,基础知识没理清,而且很多东西还要去翻书,去网上搜索,而且遇到一些小错误运行不出来就会烦躁不安,逐渐克服这些问题后我发现对c语言越来越感兴趣了,以后我要克服这些,尽量保持一颗良好的心态,学好c语言。首先我必须学好c语言的基础知识,然后能在电脑上熟练的运用,上网的时候多看一些优秀的代码,看看别人怎么写,再结合自己的不足之处进行改正。总之,这次的课设是是我记忆里的一个新篇章,更是c语言编程上的一个里程碑。
接着又是各种类型的错误,很多是学艺不精的结果,一个一个解决,时而还有道查一下单词。就这样实践是检验真理的标准,在屡败屡战之后,迎来了成功的花朵。然后我抓破破脑袋的让我的程序更加合理和多功能。
我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。在我有解决不了的问题时,我会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我的程序有了突破,成功地实现了用文件来保存并查看学索赔信息。这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。在调试的过程中也遇到了困难,但经过我耐心的修改,终于功夫不负有心人,我成功了!
在这样一个过程中,我收获了许多在书本上根本学不到的东西。了解到了自己的不足之处,受益匪浅。
为期两周的课程设计快结束了,通过这次数据结构课程设计,我感受最深的就是对于循环链表的使用,可以说对循环链表有了比以前更进一步的认识,以前只是一知半解的,如果让我自己来编写程序还真懵了,不过这个程序还是被我搞懂了,也改了一些部分,通过这些改动和这几天的摸索渐渐明白了,所以这次课程设计最大的收获就在于对循环链表有了一定的理解,包括其中的一系列操作,如建立一个循环链表,删除链表中的一个结点,增加一个结点等。
在这次课程设计过程中需要我们一边设计一边探索,在这个过程当中我发现自己在数据结构方面知识掌握不够深入,对一些基本概念不能很好的理解,对一些数据结构不能够熟练的进行上机实现,这是自己比较薄弱的。学好基础知识是理论付诸实践的前提,这样理论和实践才能充分地结合起来。在以后的学习中,我还要努力改正,充分利用上机实验的机会提高自己。在程序的输入的时候,因为自己对键盘的不熟练,代码又很多很繁琐,常常会产生放弃的念头,从中我也感受到只有坚持到底,胜利才会出现。在调试程序的时候我也有所体会,虽然约瑟夫环问题不是很难,但调试的时候还是会出现很多错误,因此我们不能认为容易就不认真对待。在以后的学习中,要能不断发现问题,提出问题,解决问题,从不足之处出发,在不断学习中提高自己。
不知不觉紧张课程设计已经差不多要结束了,想想自己从刚开始的什么都不敢去做,到现在所有所做的,感觉自己的编程能力有了很大的提高,只要认真仔细的去做一件事,我们真的可以做到很多,不禁想起老师上课所传授的一句名言:心在哪里,时间就在哪里。这句话浅俗易懂,当你深有体会到的时候那种感觉简直无法言语。
这次课设我真的学到了很多,弥补了以前很大的不足,让我感觉到了我的能力,以后的学习,我要沉着,用良好的心态去对待以后所出现的各种编程知识及任务。平时要多花时间,到了大三更要努力。坚持理论与实践相结合,从中掌握每个细节,相信自己会取得很大进步,弥补以前的不足,以后会有个较好的发展!
第五篇:Matlab课设
武汉理工大学《Matlab课程设计》课程设计说明书
目录
摘要.............................................................................................2
一、Matlab运算与应用............................................................3 1.1..........................................................................................3 1.2..........................................................................................3
二、Matlab运算与应用设计题目分析....................................4 2.1..........................................................................................4 2.2..........................................................................................5 2.3..........................................................................................6 2.4..........................................................................................7 2.5........................................................................................13 2.6........................................................................................14 2.7........................................................................................15 2.8........................................................................................17 2.9........................................................................................19 2.10......................................................................................22
三、matlab课程设计心得体会..............................................23 参考文献...................................................................................23
武汉理工大学《Matlab课程设计》课程设计说明书
摘要
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
Matlab和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以经行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
本次课程设计主要通过学习了解Matlab,熟悉Matlab界面、进行简单操作,并运用此款软件完成安排的相关题目。
关键字:Matlab、课程设计、矩阵实验室
武汉理工大学《Matlab课程设计》课程设计说明书
一、Matlab运算与应用
1.1理论分析
Matlab是MathWorks公司的产品,是一个为科学和工程计算而专门设计的高级交互式放的软件包。Matlab环境集成了图示与精确的数值计算,是一个可以完成各种计算和数据处理可视化的、强有力的、易于使用和理解的工具。Matlab已被证明是为解决数学、物理、化学、工程、医药、金融和其他涉及复杂数值计算的应用领域的一个十分灵活的、便于使用的工具,也是数学、数值分析和工程等课程教学的一个优秀的教育工具。这个程序被世界各地高等学院广泛使用,在工业应用中也很流行,Matlab使用于PC到超级计算机以及大多数诸如PC、Macintosb和UNIX等平台。
Matlab中有大量的命令集和可用函数集,也通称为Matlab M文件,这是应用更加容易。因此,在Matlab中求解问题通常比传统编程快得多,由于是采用自然表示法,因而使代码清晰和自释。因为多数M文件是公开的,因此,易于修改这些函数。
Matlab中有一些命令可以用来控制Matlab语句的执行,如条件语句、循环语句和支持用户交互的命令。Matlab是一种高级的程序设计语言,能帮助用户解决矩阵户或其它问题。
1.2归纳与总结
Matlab的主要特点是:
(1)有高性能数值计算的高级算法,特别适合矩阵代数领域;(2)有大量事先定义的数学函数,并具有用户自定义函数的能力;(3)绘图和显示数据,并具有教育、科学和艺术学的图解和可视化的二维、三 维图;
(4)基于HTML的完全帮助系统;
(5)适合个人应用的强有力的面向矩阵/向量的高级程序设计语言;(6)与用其他语言编写的程序结合和输入输出格式化的能力;
武汉理工大学《Matlab课程设计》课程设计说明书
(7)有在多个应用领域解决难题的工具箱。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。
二、Matlab运算与应用设计题目分析
2.1已知t=linspace(0,2*pi,6),求t的正弦和正弦的绝对值。
2.1.1理论分析
由题目已知分析知,linspace(a,b,n)为线性分割函数,在a与b之间均匀地产生n个点值,行成n维向量。Matlab中求解正弦的函数为sin(),求取绝对值和复数模值的函数为abs()。
2.1.2程序代码
>> t=linspace(0,2*pi,6)%创建线性间隔向量t,范围从0到2pi,元素 个数为6 >> a=cos(t)%对向量t求得余弦向量a >> b=abs(a)%对余弦向量a求绝对值得绝对值向量b 2.1.3运行结果
a =
1.0000 0.3090-0.8090-0.8090 0.3090 1.0000 b =
1.0000 0.3090 0.8090 0.8090 0.3090 1.0000
武汉理工大学《Matlab课程设计》课程设计说明书
2.1.4题目总结
为了方便给大量元素赋值,Matlab提供了一些基本矩阵,Linspace()就是其中的均分向量函数命令,大部分的Matlab函数都适用于做元素群运算,只有专门的几个除外,那就是*、/、、^运算符和sqrtm、expm、logm三个函数。题目中用到的正弦函数sin()和取绝对值函数abs()均可用于元素群运算,也即其自变量都可以是任意阶的矩阵。
2.2绘制余弦曲线y=cos(x)和指数函数y=x^2曲线。
2.2.1理论分析
本题是画函数的曲线图,可以利用plot,ezplot等命令进行绘图。也可以用funtool命令直接绘制函数图象。由于plot要设置自变量的范围,而ezplot不需要设置,所以本题采用ezplot进行画图。
2.2.2程序代码:
syms x;%声明变量
y1=cos(x);%将cos(s)赋值给y1 y2=x^2;% 将x^2赋值给y2 ezplot(y1);%画函数1图 hold on
grid on %保持图形 %画方格
ezplot(y2)%画函数2图
2.2.3运行结果
武汉理工大学《Matlab课程设计》课程设计说明书
图2.2.3 2.2.4题目总结
ezplot功能简介:
EZPLOT即:Easy to use function plotter。它是一个易用的一元函数绘图函数。特别是在绘制含有符号变量的函数的图像时,ezplot要比plot更方便。因为plot绘制图形时要指定自变量的范围,而ezplot无需数据准备[2],直接绘出图形。要将两个函数绘制到同一个图上要使用hold on 命令。
2.3利用for...end循环语句,求 2+4+6…+100 的值。
2.3.1理论分析
for语句作用是按照预先设定的循环步骤重复执行某语句段, 其语法: for 循环控制变量=存储着该变量依次所取值的一个向量。
循环语句块, 本块重复执行的次数由上方向量的长度决定, 每次执行, 循
武汉理工大学《Matlab课程设计》课程设计说明书
环控制变量依次取该向量中的值.end
2.3.2程序代码
sum=0;%赋初值sum为0
for i=2:2:100 %变量i变化范围为2到100,以2步进 sum=sum + i;%累加求和 end %结束for循环
2.3.3运行结果
>> sum sum =
2550 2.3.4题目总结
matlab的for 循环语句有其独有的特点, 它使用一个向量来控制循环, 循环次数由向量的长度来决定, 而每次循环都依次从向量中取值.这使得Matlab循环更灵活多样, 其循环变量取值可以不按照特定的规律;但是另一方面, Matlab 的for循环也有独特的限制, 当次循环中改变循环变量赋值, 不会代入下次循环, 所以除非在其中用break提前退出, Matlab循环的次数是预先定好的.举个例子: for a=1:2:7 , 将循环4次, a的取值依次是1, 3, 5, 7.2.4分析下面每条指令的功能并运行,观察执行结果。
(1)X=0:0.25:3;Y=X.*exp(-X);plot(X,Y),xlabel(‘x’),武汉理工大学《Matlab课程设计》课程设计说明书
ylabel(‘y’),title(‘y=x*exp(-x)’);
(2)A=zeros(3,5)A(:)=-4:5 L=abs(A)>4 islogical(L)X=A(L)
(3)A=[1:5;6:10] pow2(A)
(4)A=zeros(3,2)A(:)=1:6 A=A*(1+i)A1=A.’;B1=A’;(5)A=ones(2,3)B=ones(2)C=eye(4)D=diag(C)E=repmat(C,1,3)2.4.1程序分析
X=0:0.25:3;%变量x的取值范围为0 ~3,以0.25增加 Y=X.*exp(-X);%函数y=xex的表达式
plot(X,Y),xlabel(‘x’), ylabel(‘y’),title(‘y=x*exp(-x)’);
%绘制y=xex的图线,横坐标为x,纵坐标为y,标题为
y=x*exp(-x) A=zeros(3,5)%创建一个3*5的零矩阵A A(:)=-4:5 %为矩阵A赋值,得到列向量范围为-4到5,步进为1 L=abs(A)>4 %判断矩阵A的绝对值是否大于4
武汉理工大学《Matlab课程设计》课程设计说明书
islogical(L)%判断L是否为逻辑值
X=A(L)%X为逻辑数组L对应为1的位置的数据为列向量 A=[1:5;6:10] %创建一个2*5的矩阵A,范围为1到10,步进为1 pow2(A)%返回数组X,依次计算A中元素以2为底的幂 A=zeros(3,2)%创建一个3*2的零矩阵 A(:)=1:6 %为矩阵A赋值,范围为1到6,步进为1 A=A*(1+i)%将矩阵A中的每一个元素乘以(1+i)A1=A.' %对A进行数组转置生成矩阵A1 B1=A' %对A进行矩阵转置生成矩阵B1 A=ones(2,3)%创建一个2*3的1矩阵A B=ones(2)%创建一个2*2的1矩阵B C=eye(4)%创建一个4*4的单位矩阵C D=diag(C)%获取单位矩阵C的对角线元素矩阵D E=repmat(C,1,3)%将矩阵C生成为1*3的新矩阵E
2.4.2运行结果
2.4.2.1程序运行结果一
图2.4.2.1
2.4.2.2程序运行结果二
A =
武汉理工大学《Matlab课程设计》课程设计说明书
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A =
-4-1 2 5 8-3 0 3 6 9-2 1 4 7 10
L =
0 0 0 1 1 0 0 0 1 1 0 0 0 1 1
ans = 1
X = 5 6
武汉理工大学《Matlab课程设计》课程设计说明书
8 9 10
2.4.2.3程序运行结果三
>> pow2(A)
ans =
64 128 256 512 1024 2.4.2.4程序运行结果四
>> A1=A.'
A1 =
0 + 2.0000i 0 + 4.0000i 0 + 6.0000i
0 + 8.0000i 0 +10.0000i 0 +12.0000i >> B1=A'
B1 =
04.0000i 08.0000i 0-10.0000i 0-12.0000i 11
武汉理工大学《Matlab课程设计》课程设计说明书
2.4.2.5程序运行结果五
>> A=ones(2,3)A =
1 1 1 1 1 >> B=ones(2)B =
1 1 1 >> C=eye(4)C =
0 0 0
0 1 0 0
0 0 1 0 0 0 0 1 >> D=diag(C)D =
1
武汉理工大学《Matlab课程设计》课程设计说明书
>> E=repmat(C,1,3)E = 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 2.4.3题目总结
对于实数矩阵,矩阵转置和数组矩阵计算结果是一样的,但是对于复数矩阵,数组转置和矩阵转置的计算结果不一致。所以,对于数组转置运算也被称为非共轭转置,矩阵转置运算则被称为共轭矩阵。数组的运算是指数组对应元素之间的运算,也称点运算。
2.5计算多项式p(x)= x3+15x2+8x在x=3和x=0:1:8时的值。
2.5.1理论分析
由题目已知的条件分析可知是运用MATLAB计算多项式。这里运用到的是polyval()命令。通过polyval()命令可以快速的计算出在相应值下的多项式的值。
2.5.2程序代码
x=3;y= x^3+15.*x^2+8.*x 式
%赋初值3给x %写出函数表达
武汉理工大学《Matlab课程设计》课程设计说明书
clear all %清除所有变量 >> syms x;%声明变量x >> y=x^3+15.*x^2+8.*x;%写出函数表达式
>> x=0:1:8;%生成一个0到8的数组,每相邻两数间间隔为1 >> p=[1 15 8];%将函数表达式的系数放在数组P中 >> polyval(p,x)%用polyval函数求得表达式的值
2.5.3运行结果
X=3时
186 X=0:1:8时 y =
2.5.4题目总结
Matlab为用户提供了解决多项式运算的和插值的函数库,ployval()就是其中的多项式求值函数。在表达多项式系数中要把缺少的自变量系数0补充到系数矩阵中。
2.6随机生成一个10000×3的矩阵,并绘制其柱状图
2.6.1理论分析
随机生成矩阵函数可以用rand(M,N),表示随机产生一个M*N的矩阵。柱状绘图函数可以用bar,此函数是在平面内绘制柱状图,如果要绘制立体的,用bar3。
武汉理工大学《Matlab课程设计》课程设计说明书
2.6.2程序代码
arry=rand(10000,3);
%随机生成一个10000*3的矩阵
bar(arry)%bar函数用于绘制柱状图 %画出柱状图
2.6.3运行结果
图2.6.3
2.7利用switch…case编写以下程序:
某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 无折扣 200price<500 5%折扣 500price<1000 10%折扣 Price1000 15%折扣 输入所售商品的价格,求其实际销售价格。
武汉理工大学《Matlab课程设计》课程设计说明书
2.7.1理论分析
MATLAB语言为解决多分支判断选择提供了switch-case语句。switch-case语句的一般表达形式为: switch〈选择判断量〉 Case 选择判断值1 选择判断语句1 case 选择判断值2 选择判断语句2 …… otherwise 判断执行语句
2.7.2程序代码
price = input();
%输入商品价格
switch fix(price/100)%价格除以100后取整 case {0,1} price=price*1;case {2,3,4} price=price*0.95;case {5,6,7,8,9} price=price*0.9;case others price=price*0.85;end 16
武汉理工大学《Matlab课程设计》课程设计说明书
2.7.3运行结果
2.7.4题目总结
与其他的程序设计语言的switch-case语句不同的是,在MATLAB语言中,当其中一个case语句后的条件为真时,switch-case语句不对其后的case语句进行判断,也就是说在MATLAB语言中,即使有多条case判断语句为真,也只执行所遇到的第一条为真的语句。这样就不必像C语言那样,在每条case语句后加上break语句以防止继续执行后面为真的case条件语句。
2.8编程将表达式
10(s3)s(s-6)(s-16)进行部分分式展开
2.8.1理论分析
计算模型
10(s3)s(s-6)(s-16)=k1sk2s6k3s16
武汉理工大学《Matlab课程设计》课程设计说明书
k110(s3)(s6)(s16)10(s3)s(s16)10(s3)s(s6),s=0;k2,s=6;k3,s=16。
2.8.2程序代码
clear,close all;syms x,x=0;syms s;
while x<20 %判断当x<20 时 switch x
case 0
%清除所以变量和关闭所有打开的图像框
k1=10*(x+3)/((x-6)*(x-16));
x=6;
case 6
k2=10*(x+3)/(x*(x-16));
x=16;
case 16
k3=10*(x+3)/(x*(x-6));
x=20;end end
y=k1/s+k2/(s-6)+k3/(s-16);
%将计算出的k1、k2、k3带入表达式
武汉理工大学《Matlab课程设计》课程设计说明书
2.8.3运行结果
2.8.4题目总结
本题主要在于数学运算模型建立和计算表达式的书写,利用while…end语句对其
进行三次循环条件判断并计算三个常数,通过switch…end语句分别给出三个常数的计算表达式,最后再将计算出的三个常数带入到
10(s3)s(s-6)(s-16)=
k1sk2s6k3s16中即可。
2.9已知ye出曲线图-1cos(t),其中t的范围是[0 10],计算y的微分和积分并给2.9.1理论分析
已知函数方程和自变量t的变化范围,对于积分,可以利用函数quad()对确定自变量变化范围进行计算,格式如quad('函数名',初值,终值)所示。对于微分,可以利用函数diff()对确定自变量变化范围进行计算。函数图象可用funtool指令得到。
2.9.2程序代码
2.9.2.1积分运算 yt='exp(-1)*cos(t)'
%写出函数表达式
Ic=quad(yt,0,10,1e-8)%用quad函数求积分 Funtool %进行画图 2.9.2.2微分运算
syms t y
武汉理工大学《Matlab课程设计》课程设计说明书
y=(exp(-1)*cos(t)dydt=diff(y,t)%用diff函数求解微分 funtool %进行画图
2.9.3运行结果
2.9.3.1积分运算
2.10.3.1.1 程序运行结果
Ic =
-0.2001
2.10.3.1.2积分图形
图 2.10.3.1.2 20
武汉理工大学《Matlab课程设计》课程设计说明书
2.9.3.2微分运算
2.10.3.2.1程序运行结果
dydt =
-(****sin(t))/***8 2.10.3.2.2微分图形
图2.10.3。2.2
2.9.4题目总结
绘制函数图像时还可以借助Matlab提供的专门绘制函数图象的指令flot(),格式如flot('函数名',[初值,终值])。
武汉理工大学《Matlab课程设计》课程设计说明书
2.10 用fminbnd求解函数f(x)x1/x5在区间(1,10)上的最小值
2.10.1理论分析
用于求某个给定函数的最小值点。使用方法是: x=fminbnd(func,x1,x2)func是函数句柄,然后x1和x2就是函数的区间,得到的结果就是使func取最小值的x值
当然也可以使用[x,fv]=fminbnd(func,x1,x2)的方式,这个时候fv就是函数 的最小值,即有:fv=f(x)2.10.2程序代码
f=@(x)x-1/x+5;%确定函数 [x,fv]=fminbnd(f,1,10)
%求区间1到10中函数的最小值
2.10.3运行结果
x =
1.0001
fv =
5.0001 2.10.4题目总结
本题主要在于fminbnd函数的使用方法,它有两种方式,一种是 x=fminbnd(func,x1,x2);另一种是[x,fv]=fminbnd(func,x1,x2)。运用时随便选哪种都可以,但是如果在某个区间上是单调的,结果就有点意思了,例如clear
>> f=@(x)x^-2*x-3;
武汉理工大学《Matlab课程设计》课程设计说明书
>> [x,fv]=fminbnd(f,2,3)
x = 2.9999
fv =-2.6667 看样子MATLAB是使用了定长小区间的方式计算的,而且结果也是错误的,这不免
让人对这个函数的可靠性产生怀疑…
三、matlab课程设计心得体会
这次Matlab课程设计使用了Matlab2010版本,虽然对它熟悉不过短短一个月左右时间,但也感受和学习到它的功能强大、可扩展性强和智能化程度高。它提供了丰富的操作指令,还有强大而又简单的作图功能。而且软件本身还提供了演示(demo)和求助(help)的命令,让用户更好的学习到软件的功能。此次课程设计学习到的不仅仅是软件运用操作的知识,还学到了更多的学习方法。为了做好这次的课程设计,我查阅了大量的资料,并上网搜索了很多Matlab程序应用的教程和详解,这个过程使我受益匪浅,发现了很多关于Matlab的论坛和学习网站,网上提供了很多关于Matlab学习的方法及其自学的方法,相信这些论坛和网站对于将来继续学习Matlab及其他方面的知识也都有很大的帮助。
虽然在规定的时间内完成了老师所布置的所有题目,但还是觉得不免有些不足,由于时间的限制,对许多Matlab所运用到的只有仅仅只是有所了解,而并没有完全掌握,甚至可以说是只知其然,而不知其所以然。这是我认识到对于Matlab的学习任务还很艰巨,还有许多知识需要去了解,去深研。
参考文献
【1】陈怀身.吴大正.高西全.Matlab及在电子信息课程中的应用[M].电子工业出版社 【2】朱习军.张宾.刘尊年.隋思连.Matlab信号与图像处理中的应用[M].电子工业出版社 【3】罗建军.Matlab教程[M].电子工业出版社.2005
武汉理工大学《Matlab课程设计》课程设计说明书
【4】陈怀琛.Matlab及其在理工课程中的应用指南.2000 【5】张威.Matlab基础与编程入门.西安电子科技大学出版社
【5】 周开立.MATLAB基础及其应用教程.北京:北京大学出版社,2007.【5】 张智星.MAYLAB程序设计及应用.北京:清华大学出版社,2002.【5】 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用.北京:电子工业出版社,2006.【5】 张琨.MATLAB 2010
从入门到精通.北京:电子工业出版社,2011.