キーちゃん
前言 珍贵的大学生活已接近尾声,感觉非常有必要总结一下大学三年的得失,从中继承做得好的方面改进不足的地方,使自己回顾走过的路,也更是为了看清将来要走的路。通过三年的大专生活,我成长了很多。在即将毕业之时,我对自己这三年来的收获和感受作一个小结,并以此为我今后行动的指南。三年的大专生活似弹指一挥间,从刚跨入大专时的失落和迷茫,到现在走上工作岗位的从容、坦然。我知道,这又是我们人生中的一大挑战,角色的转换。这除了有较强的适应力和乐观的生活态度外,更重要的是得益于大专三年的学习积累和技能的培养。我自认为无愧于大专三年,刚入学时,我曾为身为大专生而懊丧过。但很快,我选择了坦然面对。因为我深信,是金子在任何地方都会发光。所以我确信,大专生的前途也会有光明、辉煌的一天,不会比任何本科生的成就差。。。 通过这三年的学习使我懂得了很多,从那天真幼稚的我,经过那人生的挫折和坎坷,到现在成熟、稳重的我。使我明白了一个道理,人生不可能存在一帆风顺的事,只有自己勇敢地面对人生中的每一个驿站。当然,三年中的我,曾也悲伤过、失落过、苦恼过,这缘由于我的不足和缺陷。但我反省了,这只是上天给予的一种考验,是不能跌倒的。大专生的我们应该善用于扬长避短的方法来促进自己,提高自己的综合水平能力。 这三年的锻炼,给我仅是初步的经验积累,对于迈向社会远远不够的。因此,面对过去,我无怨无悔,来到这里是一种明智的选择;面对现在,我努力拼搏;面对将来,我期待更多的挑战。战胜困难,抓住每一个机遇,相信自己一定会演绎出精彩的一幕。大专校园就是一个大家庭。在这个大家庭中,我们扮演着被培养对象的角色。老师是我们的长辈,所以我对他们尊敬有加。同学们就像兄弟姐妹,我们一起学习,一起娱乐,互帮互助,和睦的相处。集体生活使我懂得了要主动去体谅别人和关心别人,也使我变得更加坚强和独立。我觉得自己的事情就应该由自己负责,别人最多只能给你一些建议。遇到事情要冷静地思考,不要急躁。不轻易的承诺,承诺了就要努力去兑现。生活需要自己来勾画,不一样的方式就有不一样的人生。三年的大专生活是我人生中美好的回忆,我迈步向前的时候不会忘记回首凝望曾经的岁月。。。 [实习目的] 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,并为自己能顺利与社会环境接轨做准备。 [实习任务] 对计算机在人事管理方面的应用进行归纳总结, [实习内容] 计算机在人事管理中的应用 随着社会的发展,科技的进步,作为信息载体的计算机日益显露出其举足轻重的地位。当今社会已步入了信息社会,知识经济将成为新世纪的主导产业。伴随计算机的逐步推广和使用,计算机已在科研、生产、商业、服务等许多方面创造了提高效率的途径,与此同时,单位技术成本也逐年有了明显的下降,然而办公室里的人事费用却不断增加。在国外,花费在专业、管理和行政人员上的成本占了办公室总成本的2/3—4/5,这一现象使人们对办公室自动化的要求与日俱增。我们必须在进行机构改革的同时,尽快使用现代化管理设备、管理手段、管理方法。 计算机在人事部门的广泛使用,改进了统计手段,改革了统计方法,提高了统计工计算机在人事部门的广泛应用,将为我国的人事管理工作,提供现代化的管理手段和科学的管理方法,并将为开创人事管理工作的新局面创造条件。 目前,计算机在我国的人事管理工作中,主要可用来进行报表处理,档案管理,文书编辑,信息查询,综合分析。干部统计作为人事管理的一个重要组成部分,是通过对干部情况的调查,整理和分析,了解干部队伍的发展趋势,为各级领导机关制定干部工作的方针,政策,加强干部管理,改革干部制度提供准确数字的依据。其工作除涉及到干部的基本情况统计之外,还包括干部的工资统计,干部编制情况统计,干部奖惩情况统计,军转干部安置情况统计,老干部情况统计等方面,其涉及的面之广,数据量之大可想而知,若利用手工进行干部的统计工作,大致要经过干部统计调查,干部统计资料的整理,干部统计分析三个过程,但这种手工统计过程,存在着几个明显的问题,比如说统计资料缺乏准确性,及时性,需要花费大量的人力,物力,财力等。 手工方法所表现出来的种种劣势,使人们慢慢意识到管理现代化已成为当代社会发展的一股不可抗拒的洪流。在管理现代化的浪潮中,人事管理现代化也势在必行。实现人事管理现代化是一个复杂的系统工程,需要采取科学的管理方法和先进的科技手段。科学的管理方法在管理中一般是指数学方法、系统方法、信息方法、控制论方法、社会学方法、心理学方法等科学方法,而先进的科技手段主要是运用当代最新科学技术之一的电子计算机来为人事管理现代化服务。 电子计算机作为数据处理系统,已逐渐成为人事管理现代化的重要工具,在人事管理中正在发挥着重要的作用。在我国,已经开始运用电子计算机进行人员工资管理、人事统计和查询、干部考评和人事档案管理以及人才预测和规划等。 管理现代化是汉代社会发展的一股不可抗拒的洪流。近几十年来社会化大生产的发展规模越来越大,综合性越来越强,生产专业化分工越来越细,行业有部门之间的相互联系、相互依存和相互作用更不密切。组织管理日趋复杂;而现代化科学技术也正以史无前例的速度不断分化,不断综合,全方位地向高又立体的微观、宏观方向进军。这些,要求管理工作对实际问题的反映和决策必须迅速及时,对信息系统的完善程度越来越高,传统的手工业式的管理理论、方法、体制已远远不能适应当代社会的发展和四化建设的需要。改革、创新,实现管理现代化势在必行。 现代化管理的内容很多,关系很复杂,它包括人、资金、物质、信息和时间等诸要素,其中起关键作用的要素是人。人既是管理者,又是被管理者,在管理中处于双重地位,且具有巨大的能动性。可见人是现代管理中最重要的因素。因此,管理人力资源开发与利用的人事管理在整个复杂的管理大系统中的重要地位是不言而喻的。牵一发而动全身,抓好了人事管理就为其他管理的优化得到根本的保证。 管理改革必须配套进行,现代化管理的实施也需要协调发展,人事管理既然在管理系统中占有如此突出的重要地位,在管理现代化的浪潮中,人事管理现代化也需同步进行,才能使现代化管理在社会化大生产和当代科学技术发展中起到放大和增产的作用。总而言之,人事管理现代化是管理现代化不可缺少的重要一环,它是把现代化管理的理论、方法和手段运用到人事工作中,使人事管理达到最大限度地提高工作效率的目的,以适应社会和科学技术的发展。实现人事管理现代化,使从事管理工作由原来凭个人或少数人的经验作决策,逐步上升到按事物的内在规律的科学高度办事,做到物质与精神相结合,抽象与具体相结合,定性与定量结合,静态与动态相结合,现状和未来相结合,个体与群体相结合。至于先进的科技手段,除科学地运用原有的生物、化学、物理、机械等手段外主要是运用当代最新科学技术之一的电子计算机来为人事管理现代化服务。概括地说,人事管理现代化的内容是包括人事管理思想的现代化、人事管理、组织的现代化、人事管理手段的现代化。通过这四个方面的现代化来实现人事管理的计划、组织、指挥、协调、控制的现代化和从事人事管理工作者自身的现代化。 人事来之不易系统化,是人事管理现代化的一个重点。研究人事管理,必须研究这个系统所处的环境,即研究政治系统,经济系统,法律、科技和文教系统,人物系统和大管理系统对人事管理系统的影响以及人事管理系统的反影响。离开周围的事物,去研究人事管理现代化,是注定要失败的。 所谓系统,就是在一定条件下,由相互作用、相互依赖的若干组成部分结合而成的,并具有特写功能的有机整体。从一般意义上讲,系统由输入、处理、输出、控制与反馈的四个基本部分组成。 在系统理论中,系统分析是指对系统性能的理解。系统最佳化是系统设计成综合的内容。系统工程即用教学方法进行系统分析或优化,把传统的组织管理工作总结成技术并使之数值化。用系统工程来分析系统问题是比较科学的,利用系统工程这门学科的概念和原则,来进行人事组织管理方面的工作,是实现人事管理现代化的重要途径和有效手段。 人事管理系统内有多种元素,如:管理人员、管理机构、办公设备、规章制度、各业务环节,各种管理技术和方法等,都可以看作它的“元素”。各元素之间的联系是否有序,联系的方式和效果是否最优,直接影响着人事管理的水平。在不同条件下,起主导作用的元素是不相同的。人事管理系统化的一个重要目标,是围绕着责任制和考核制,逐步建立起完整配套的干部“进”、“管”、“出”制度。实现系统化,除了要解决制度问题外,还有一个掌握系统方法的问题,即学会应用系统工程和系统分析法,这对搞好人事管理现代化,具有重要的意义。 人事管理系统的基本功能,目前尚无统一的说法。根据我校人事管理的工作的现有材料和工作特点分析来说,人事管理系统的基本功能,我们认为有如下几方面: 1.确定人事管理的方针政策 2.确定人事管理体制、编制人事规划 3.编制人事计划,设置人事管理机构和岗位 4.制定人事管理的条例办法; 5.教职员工的业务培训; 6.人才选拔、使用、交流(流动); 7.考核、奖惩、任免; 8.工资、福利与保险 9.离休、退休、退职。 作为人事干部(人事管理人员),如何最大限度地发挥人员的才能?这是人事管理学研究的根本任务。对这个问题进行个体研究方面,目前是做得不够的。因为个体寓于群体之中,群体对人员才能发挥之影响作用,可利用系统原理去指示。通过群体研究来寻求合理的年龄结构、知识结构、专业结构、来取得令人满意的配合效果等。 过去,在人事管理工作中,人事工作信息滞后,传递慢、“马后炮”,人事管理数据加工不及时。比如:干部考核、人员的工资计算、人事的统计、人事档案的填写,贮存等等。这些人事工作繁琐、耗时费力,准确性差、效率低、手工操作已难以适应形势的发展的要求。为此,我们应该努力学习有关人事管理现代化的有关理论资料,提高对管理现代化重要性的认识,尝试去利用计算机来实现人事管理的现代化。比如现在有些学校和单位在人事管理这方面所作的努力,由于从事计算机工作人员的技术指导和从事多年人事工作的老同志 的帮助,他们: 首先,开发了“中华职专职工档案管理”软件系统。 其次,将学校或单位人员的档案内容的所需数据,存储在计算机的磁盘里,需要时可以通过计算机方便地进行查询、检索、维护,还可以将有关数据打印出来。 第三,还用计算机进行了日常办公现代化的管理工作的使用。 第四,及时收集、加工、整理、存贮、检索新的变化数据。 使其单位人事管理初步实行计算机化,让计算机在人事管理中得到初步应用。使人事管理者总是根据准确、及时的人事信息来进行决策,实现管理。只有计算机才能将现代化社会中,成倍增长的人事信息量,进行及时收集、加工、整理、贮存、检索、传递、反馈给决策者。发挥其特有的功能。 即:(1)对输入的人事数据,进行数值运算和逻辑运算,求解各种问题。 (2)对人事信息进行加工来解决各种数据处理问题,为人事决策者在决策时提供依据。 (3)对人事管理的各种资料数据和计算机顺序,具有记忆存贮的能力。 实践证明,当管理的信息量和复杂程度达到某一限度时,即管理人员的劳动强度超过其承受能力时,就必须采用新的管理手段,即用计算机技术信息的收集、加工、传递和存贮等,可以使用人事基础信息,高效、合理、恰当地管理。这样,人事信息系统随着计算机的应用、发展而不断完善,计算机在人事信息管理中的地位也就是益重要。 正因为如此,实现人事管理现代化,要有科学的管理方法和先进的技术手段,才能最大限度地提高人事管理工作效率。现代人事工作的信息量越来越大,保密性越来越强,而且信息的密度不断提高,靠传统的管理方法和人工操作手段已经无法搞好人事管理工作。而计算机作为数据处理系统,已逐渐成为人事管理现代化的重要手段,在人事管理中正在发挥着重要的作用。一般来说,计算机在人事信息系统中的作用有: (1)计算机能够比人更快地提供有信息价值的人事数据; (2)计算机能够比人提供更新的人事数据; (3)计算机能够比人提供更加准确的人事数据; (4)计算机能够比人处理更多的人事数据等等。 正因为如此,我们利用计算机替代手工操作建立的人事信息系统,即计算机人事信息系统,其主要功能可以归纳为以下三点: 一是可以高效能、大容量地收集、处理、存贮人事信息,大幅度地提高人事管理信息系统的工作质量和效率。 二是可以及时掌握整个人事管理系统的全面情况,提供系统的准确的人事信息,可以促进人事工作的规范化及各项管理制度与指标体系的建立和健全,从而提高行政管理水平。 三是可以提供各种加工处理了的人事信息,以满足人事管理的特殊要求,适应新形势对教职工队伍提出的新要求,帮助选择方案,实现优化决策。当前,不少单位的人事部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会 总之,计算机的广泛应用,计算机人事管理信息系统的建立,适应了社会经济发的客观要求,是人事管理现代化的一大进步。今天我们运用计算机进行了学校人事档案管理的初步现代化的开发和使用,它大大提高了人事管理工作者的工作效率,它把人事干部从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它教育教学的活动中去;它能使决策、计划和其它管理活动更加科学、精确、灵活。因此,建立计算机人事管理信息系统是一种客观发展必然趋势。尽管在人事管理方面还不可能普遍使用计算机,但从长远来说,人事管理现代化和计算机是不分割的。轻视或者拒绝利用计算机技术,就不可能真正地、全面地实现人事管理现代化。随着我国经济、科技的发的,人才开发管理的加强,我们一定要努力创造条件,促进使用计算机的人事管理现代化。为建设中国特色的社会主义而努力奋斗。
撒野撒野王子
在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE界面,如下:然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下:点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下:在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图:在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。保存我的界面为. 保存完毕之后,会自动打开文件,而我们所有的程序都是要写在这个M文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback函数。那么我们的菜单项也是如此的。在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。当我们点击不同的控件时,其对应的属性都会在这里显示,我们可以进行修改。最主要的属性莫过于Tag属性和String属性。设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。如下:然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run Figure)。注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure. 我们会看到如下的界面:那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要点击“Change Directory”来改变当前目录。当然,如果你想把当前目录添加到MATLAB路径也可以,那就点击“Add to Path”就OK了。我在这里推荐点击“Change Directory”,因为没有什么太大必要把其添加到MATLAB路径中,一般是工具箱需要添加或者我们的函数或程序写完了,而在MATLAB的命令窗口找不到我们的函数的时候,我们可以将函数或程序所在的目录添加到MATLAB路径。总之吧,点那个按钮,要看个人的爱好了。不管点击两个按钮的那一个按钮,都会正确的运行程序的。我们的程序运行时的样子,是这样的:文件下面的菜单项和快捷键我们都能看到,但是我们没有写程序,所以就算点也没有什么响应。还有如果不想设置快捷键,可以在Menu Editor中设置,只要把其选择为Ctrl+none就行了,如下:这样的话,保存项就没有了快捷键了。我们可以通过上面的按钮“View”来查看该菜单项的响应函数,也就是Callback函数。也可以在中看,比如保存的Tag属性是m_file_save,那么它对应的Callback函数的名字就是m_file_save_Callback。依次类推了。下面我们来写打开菜单项的函数,要打开一个图片,当然要用打开对话框了。在界面编程中,打开对话框的函数是uigetfile. 关于它的详细的说明用help uigetfile命令查看。下面是打开菜单的响应函数:function m_file_open_Callback(hObject, eventdata, handles)[filename, pathname] = uigetfile( ... {'*.bmp;*.jpg;*.png;*.jpeg', 'Image Files (*.bmp, *.jpg, *.png, *.jpeg)'; ... '*.*', 'All Files (*.*)'}, ... 'Pick an image');保存.m文件,并运行程序。点击“文件”下的“打开”,会打开如下的打开对话框:选择一个文件之后,程序中的filename就是你选择的文件的文件名,pathname就是该文件所在的目录的路径。比如:filename =,pathname =C:\Documents and Settings\Administrator\My Documents\。那么获得路径之后,我们要怎么样才能读入和显示一个图片呢?读入图片可以用imread函数,而显示可以在一个坐标轴上。那么我们需要在界面上画上一个坐标轴,为了对比,我们画两个坐标轴,一个显示处理前,一个显示处理后的。并且将处理前的坐标轴的Tag属性改为axes_src,处理后的坐标轴的Tag属性为axes_dst。更改之后,保存。如下:然后在m_file_open_Callback程序原来的基础上,再添加如下的程序:axes();%用axes命令设定当前操作的坐标轴是axes_srcfpath=[pathname filename];%将文件名和目录名组合成一个完整的路径imshow(imread(fpath));%用imread读入图片,并用imshow在axes_src上显示运行程序,通过“打开”菜单项,打开一个图片。效果如下:那么如何来保存一副图片?用imwrite命令。但imwrite命令的第一个参数就是你读入的图片数据,也就是imread的返回值。这样的话,我们就要将m_file_open_Callback中的程序做一点小小的改动。将最后一句(imshow(imread(fpath))),更改为两句,如下:img_src=imread(fpath);imshow(img_src);不仅如此,我们的保存菜单的Callback函数,如何去获得打开菜单的Callback函数下的img_src变量呢?这里就要将img_src来作为一个共享的数据。许多界面编程的朋友,喜欢用global声明。我个人不喜欢这样用,因为有更好的方法。那就是用setappdata和getappdata两个函数。我们可以为界面上面的任何一个具有Tag属性的空间添加应用程序数据。当然我比较喜欢将这些共享的应用程序数据统一添加到Figure窗口上,因为这样容易记,如果一个控件一个,感觉不容易记。你在.m文件中会发现除了各个菜单项的Callback函数以外,还有两个函数:pjimage_OpeningFcn和pjimage_OutputFcn.而pjimage_OpeningFcn就相当于界面的初始化函数,而pjimage_OutputFcn则是界面的输出函数,也就是当你不运行fig,而调用.m文件时的返回值。所以,我们要在pjimage_OpeningFcn中添加如下的程序,来共享这个img_src矩阵。代码如下:setappdata(,’img_src’,0);然后,在m_file_open_Callback函数的最后写上如下程序:setappdata(,’img_src’,img_src);那么,我们在m_file_save_Callback函数中就可以像这样的来提取img_src,如下:img_src=getappdata(,’img_src’);那么保存的时候,自然会用到保存对话框了。要用保存对话框,就要用到uiputfile函数了,具体的请用help uiputfile查看。那么,保存菜单项下的程序(m_file_save_Callback),可以这样写:[filename, pathname] = uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'}, 'Pick an Image');if isequal(filename,0) || isequal(pathname,0) return;%如果点了“取消”else fpath=fullfile(pathname, filename);%获得全路径的另一种方法endimg_src=getappdata(,'img_src');%取得打开图片的数据imwrite(img_src,fpath);%保存图片下面是退出菜单项的程序的。要退出界面,只要用close函数就行了,但是通常都会有提示的。比如你如果进行了处理图片,而又没有保存处理后的图片,那么在关闭的时候就应该给出提示,询问是否进行保存。不过,在这里,我们先不做这个工作,等后面有需要的时候再写吧。因此,这里的退出菜单项的程序就是一句,如下:close();其实,用delete函数也是可以的,就是:delete();看你的心情了。但是运行程序的时候,你会发现,当你打开图片的时候,如果点“取消”按钮,那么在MATLAB的命令窗口会弹出错误,那是因为我们没有处理取消的情况。下面我们来处理下这个问题,只要把m_file_open_Callback下面的程序更改为如下程序即可:[filename, pathname] = uigetfile( ... {'*.bmp;*.jpg;*.png;*.jpeg', 'Image Files (*.bmp, *.jpg, *.png, *.jpeg)'; ... '*.*', 'All Files (*.*)'}, ... 'Pick an image');if isequal(filename,0) || isequal(pathname,0), return;endaxes();fpath=[pathname filename];img_src=imread(fpath);imshow(img_src);setappdata(,'img_src',img_src);下面我们来做一个图像二值化的一个图像处理。用上面的方法添加一个“图像处理”菜单,如下:在其下面添加一个“图像二值化”的菜单项,如下:然后,点击“OK”关闭菜单编辑器,并保存整个界面。如果我们的.m文件中没有对应的Callback时,我们可以点击上图中的“View”按钮来生成一个Callback函数。图像二值化,有一个阈值的设置,那么我们可以新建一个界面,在这个界面上放一个滑动条来设置图像二值化的阈值。同时,有一个文本,显示当前滑动条的值。那么我们新建一个空白界面,在它上面画一个Static Text和Slider控件,然后用工具栏的对齐工具(Align Objects),来对其这两个空间。如下:然后,将这个界面保存为。整个设计如下:你可以设置Static Text的FontSize属性为10,这样字体会更大一点。设置Static Text的Tag属性为txt_display,设置滚动条的Tag属性为slider_val。为了能够在滚动条滚动时,Static Text显示滚动条的值,需要在滚动条的Callback中写下如下程序,你可以在滚动条上点击右键,选择“View Callbacks”下的“Callback”直接进入滚动条的Callback函数(slider_val_Callback)。val=get(hObject,'Value');set(,'String',num2str(val));保存,运行程序,就可以滑动滚动条,而Static Text就会显示相应的值。在figure上双击打开figure(有方块的底层窗口)的属性窗口,将其Tag属性设置为“figure_im2bw”,将其Name属性设置为“设置图像二值化阈值”。然后,保存界面。运行时,如下:那么,我们想的是,当滑动条滑动时,将二值化的图像显示在中的axes_dst坐标轴上的。那么怎么办呢?首先,要做的是,当点击菜单“图像处理”下的“图像二值化”的时候,会打开。这个时候就是我们要调用的时候了。当我们调用它的时候,会返回一个句柄,而这个句柄就是指向打开的的。关于更详细的,你可以参看文件的最前面的注释,其中有这样写:% H = IM2BW_ARGS returns the handle to a new IM2BW_ARGS or the handle to% the existing singleton*.那就说明,我们可以如上的方式打开。所以在“图像二值化”的Callback函数(m_image_2bw_Callback)下,写上如下的程序:h=im2bw_args;然后,保存.还有就是,最好将和保存在一个目录下面。然后,运行,可以看到,当点击“图像二值化”的时候会打开,同时滑动条滑动时也会显示响应的值。下面来说说如何在滑动条滑动时,将滑动后的二值化图像显示到pjimage的axes_dst坐标轴中。首先,我们要获得pjimage的figure的句柄,这个可以通过findobj函数来完成,之后将返回值用guihandles来转换成一个句柄。之后,就可以用这个转化后的句柄来引用中的任何一个控件了。所以,我们在下的滑动条的Callback函数中添加如下函数:h_pjimage=getappdata(,'h_pjimage');axes();img_src=getappdata(,'img_src');bw=im2bw(img_src,val);imshow(bw);然后,在im2bw_args_OpeningFcn中添加:h_pjimage=findobj('Tag','figure_pjimage');h_pjimage=guihandles(h_pjimage);setappdata(,'h_pjimage',h_pjimage);然后,保存,运行。效果如下:但是,如果在我们没有打开图片的情况下,要是点击了“图像二值化”会出现什么问题呢?可以看到显示的图像是全黑的,完全没有意义。所以,我们可以在没有点击“打开”菜单项的时候,使“图像处理”菜单不可用。那么在的OpeningFcn中,添加如下程序:set(,'Enable','off');在“打开”菜单项的Callback函数的最后,添加如下程序:set(,'Enable','on');这样的话,只要你不点“打开”,就不能用“图像处理”菜单中的命令,效果如下:点击“打开”之后,就能使用了。下面,我们来说说前面的问题,就是询问是否保存图片的问题。首先,我们要设置两个标志:一个是图片是否被处理过了,二是图片是否被保存了。那么我们在pjimage_OpeningFcn中,添加如下的两个应用程序数据。setappdata(,'bSave',false);setappdata(,'bChanged',false);然后在“图像二值化”菜单项的Callback函数中,改变bChanged的值为true,即添加如下程序:setappdata(,'bChanged',true);由于我们要保存的是坐标轴axes_dst中的图像,而我们“文件”下的“保存”,实质上保存的是坐标轴axes_src中的图像,那怎么办呢?只好再添加一个“保存”菜单项了。这次,我们在坐标轴axes_dst中添加右键菜单。打开工具栏的菜单编辑器,选择Context Menu(上下文菜单),如下:然后,新建一个Context Menu,其Tag属性为:axes_dst_menu,如下:然后为其添加菜单项:“保存”,其Tag属性为axes_dst_menu_save.如上图。然后,在坐标轴axes_dst上右键,选择“Property Inspector”。将该坐标轴的UIContextMenu属性更改为axes_dst_menu. 如下图:然后,保存,运行。在axes_dst上点右键就能看到“保存”菜单了。下面来写其函数。[filename, pathname] = uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'}, 'Pick an Image');if isequal(filename,0) || isequal(pathname,0) return;else fpath=fullfile(pathname, filename);endimg_dst=getimage();imwrite(img_dst,fpath);setappdata(,’bSave’,true);但是你会发现,没有读入图片之前,在axes_dst点右键是有菜单的,一旦二值化之后,再次点右键就没有菜单了。但是,当我们把右键菜单axes_dst_menu,添加到figure窗口(在没有控件的地方,双击,即可打开figure的属性窗口)的UIContextMenu的时候,就不会出现上面的问题,而且一切运行正常。因为,当你添加到axes_dst之后,一旦坐标轴的内容改变,就会将右键菜单附加到父对象上。因此,如果一定需要在坐标轴上显示右键菜单,就要通过程序创建了。如何创建,咱们先不说,先说说把坐标轴axes_dst保存完毕,退出程序的时候的处理。将原来的m_file_exit_Callback更改为如下程序:bChanged=getappdata(,'bChanged');%获得是否更改bSave=getappdata(,'bSave');%获得是否保存if bChanged==true && bSave==false,%更改了,而没保存时 btnName=questdlg('您已经更改了图片,但没有保存。要保存吗?','提示','保存','不保存','保存');%用提问对话框 switch btnName, case '保存', %执行axes_dst_menu_save_Callback的功能 feval(@axes_dst_menu_save_Callback,); case '不保存',%什么也不做 endendh=findobj('Tag','figure_im2bw');%查找是否打开设置图像二值化参数窗口if ~isempty(h),%找到的话,则关闭 close(h);endclose(findobj('Tag','figure_pjimage'));%关闭主窗口下面来为程序添加一个工具栏,单击工具栏上那个的Toolbar Editor,打开如下:选择“Predefined Tools”下的Open,点击“Add”。再次选择“Save”,点击“Add”。并将Open按钮的Tag属性更改为tbl_open,Save按钮的Tag属性更改为tbl_save,如下:点“View”,来找到Open按钮的Callback,在它的下面来调用菜单中的打开菜单项的Callback,需要在Open按钮的Callback下写下如下程序:feval(@m_file_open_Callback,);用同样的方法,找到Save按钮的Callback,并在它的下面写上保存程序,但是,我们要判断一下是不是第一次保存,如果是,则用保存对话框;如果不是,我们直接保存在第一次保存的路径中就可以了。那么,我们还是需要设置几个应用程序数据的,第一个就是记录是否是第一次保存,第二个是记录第一次保存的路径。这样的话,我们在pjimage_OpeningFcn中添加如下的代码:setappdata(,'fstSave',true);setappdata(,'fstPath',0);然后,在Save按钮的Callback下,写下如下的程序:fstSave=getappdata(,'fstSave');if(fstSave==true) [filename, pathname] = uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'}, 'Pick an Image'); if isequal(filename,0) || isequal(pathname,0) return; else fpath=fullfile(pathname, filename); end img_dst=getimage(); imwrite(img_dst,fpath); setappdata(,'fstPath',fpath); setappdata(,'bSave',true); setappdata(,'fstSave',false);else img_dst=getimage(); fpath=getappdata(,'fstPath'); imwrite(img_dst,fpath);end并且,我们还需要在没有打开图片之前的“文件”下的“保存”和工具栏的“Save”按钮都不可用,只有点击“文件”下的“打开”或工具栏下的“打开”的时候,它们才可用。那么需要在pjimage_OpeningFcn中添加如下代码:set(,'Enable','off');set(,'Enable','off');并且在m_file_open_Callback下,添加如下代码:set(,'Enable','on');set(,'Enable','on');这样一个小程序,算是完成了。如果您能按照上面的步骤做完这个小小的程序的话,那么界面编程中的问题你已经掌握的差不多了。
蛋的故事
我就说一下JAVA的GUI吧分为AWT,Swing,SWTAWT是Swing的前身,实际上是调用本地操作系统的控件。由于在不同的操作系统下,提供的控件是不一样的,AWT采用最小公约数的办法,只提供所有操作系统都有的控件。但后来SUN在Swing里除了JFrame,JWinodows,JDialog等是调用本地操作系统的控件,其它JPanel,JButton之类的都是绘出来的,所以Swing在所有平台看起来都是一样的外观。这样保持了外观一致性,但牺牲了性能。IBM做的SWT,采用的是最大公倍数的做法。SWT大部分都是用的本地操作系统的控件,一些在windows里有的控件可能在linux下没有,对这种控件才采用自己绘制的方式。SWT采用类似JAVA虚拟机的方式,在不同的平台,有不同的开发包,我们写的java代码是一样的,但不同平台下看起来外观是不一样的,但性能提升很高,和C++做的界面速度差不多。以SWT为例,基本不需要学习很多东西因为大部分别人都已经做好了,不管是按钮,菜单,选项卡。如果不是要做一个复杂的界面你需要的只是调用。
问题一:毕业论文总结怎么写 毕业论文总结 2007年3月,我开始了我的毕业论文工作,时至今日,论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路
用AT89C51单片机做比较简单配上按键键盘,三极管驱动一个喇叭就能实现,下面是我调试过的单片机程序供参考;DIANnbsp;ZInbsp;QINnbsp;电子
这个在论文网上面有资源的呀,在上面能找到很多你想要的呢。你ni我,我发给你吧。
摘要:通过对应急发电机自启动要求的分析,结合装备现状、配电系统的设计要求,利用PLC(可编程控制器)改造现有设备的优势,提出了详细的设计思路和方案以供参考。
标题:网上C语言学习系统设计与实现目的:掌握动态站点的主要概念,了解宏观动态站点的主要技术,动态站点和数据库技术,掌握一种实现动态站点的技术,并用此技术实现网上