编程软件(精选12篇)
随着计算机技术的发展和工作的需要,为了能够更好的维护公司生产管理系统;公司安排我们到北大青鸟APTECH进修。我们选择了时下最流行、发展速度较快的语言C#。C#学习共分三个阶段,目前我只学习了第一个阶段;现将我在北大青鸟学习第一阶段为期两个月的学习心得总结如下:
C#是一种新的面向对象的编程语言,专门用于.NET运行时。C#编译器只能生成受管制的代码,也可以使用.NET基类。C#语言自C/C++演变而来。但是,它具有简单、现代、完全面向对象和类型安全等诸多特性。下面就简单说说简单和现代其中两种特性。
1、简单
C#具有C++所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C++的一些功能)有助于C#全方位的简单。
在C#中,没有C++中流行的指针。默认地,您工作在受管理的代码中,在那里不允许如直接存取内存等不安全的操作。我想没有C++程序员可以声称,从没有使用指针访问过不属于他们的内存。
C#弃用其它操作符,名字空间、成员和引用仅使用单个操作符 “.”。现在一个程序员所需要理解的就是嵌套名字的注解了。
C#使用统一的类型系统。这种系统充许您把各种类型作为一个对象查看,它是一个原始类型还是一个full-blown 类。和其它编程语言相比,由于加框(boxing)和消框(unboxing)的机制,把简单类型当作对象处理并不能获得性能的改善。稍后将详细解释加框和消框,但基本上仅当需要时才使用对象访问简单类型这种技术。
2、现代
投入学习C#的努力是一笔大投资,因为C#是为编写NGWS 应用程序的主要语言而设计。很多用C++可以实现或者很费力实现的功能,在C#中不过是一部分基本的功能而已。根据应用程序的特殊需求,可以很容易地创建出新的一种数据类型。
指针不再是编程武器的一部分。运行时NGWS提供了一个垃圾收集器,负责C#程序中的内存管理。因内存和应用程序都受到管理,所以很必要增强类型安全,以确保应用的稳定性。
异常处理是C#的主要功能。C#的异常处理与C++的不同点在于它是交叉语言的(运行时的另一个功能)。在没有C#之前,您必须处理怪异的HRESULTs,但现在由于使用了基于异常的健壮的出错处理,这一切都结束了。
对于现代的应用程序,安全是首要的,C#也不会例外。它提供了元数据语法,用于声明下述NGWS安全模式的能力和许可。元数据是NGWS运行时的一个关键的概念。
教材利用了“二分法”进行解析, 可看到, 作出对应值表以及每一次“取中点”进行运算缩短零点所在的区间范围时, 即使使用计算器, 运算量也很大.其实借助信息技术可以很方便地求出一个方程的近似解.下面将介绍如何应用Mathematica6.0求方程的近似解.
方法1:利用Mathematica6.0的代数自动求解功能求方程的近似解.
打开Mathematica6.0, 执行命令→进行输入→按下“Shift+Enter”组合键即可, 具体如下:
ln[1]:=Solve[2Λx+3*x-7==0, x]
经过化简便得到方程2x+3x=7的解的表达式为:
为了得到此方程的近似解, 我们可以输入命令“N[expr]” (注:表达式的机器精度近似值) 和命令“Solve[eqn, var]” (注:解方程) 的组合命令即直接输入命令NSolve[lhs==rhs, var] (注:求方程数值解 ) , 具体如下:
ln[2]:=NSolve[2Λx+3*x-7==0, x]
Out[2]={{x→1.43319}}
方法2:利用Mathematica6.0的画图功能辅助二分法快速求解.
首先借助Mathematica绘制准确的图像, 使二分法的“无限逼近”更快, 同样, 执行命令→进行输入→ 按下“Shift+Enter”组合键即可, 具体如图1:
由图1极易看出方程2x+3x=7的解在1~2之间.同时我们还可以改变x的取值范围, 以实现图像局部放大的目的, 例如将横坐标的取值范围改为{x, 1, 2}, 就可得到如图2所示的局部放大图像.
由图2直接就可看出方程2x+3x=7的解在1.4~1.45之间, 于是我们就可以从这儿开始“二分法”的“无限逼近”……
当然也可以直接改变x的取值范围, 实现图像局部放大来进行求解.
将横坐标的取值范围改为{x, 1.4, 1.45}, 则有如图3所示的图像:
由图3中的图像可以看出方程2x+3x=7的解在1.432~1.4434之间.
继续将横坐标的取值范围改为{x, 1.432, 1.434}, 则有如图4:
由图4中的图像可以看出方程2x+3x=7的解可以近似取1.43318, 且方程解的精度已很高.
关键词:编程软件;风险规避;策略
中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 12-0000-01
现代信息技术应用领域的扩展使得基于编程的软件项目应用范围和应用深度都发生了极大的改变,这就为现代编程软件及其项目的开展与实现提出了新的任务和要求,而软件编程实现的整个流程也逐渐面临更高更大的开发风险,这些风险若不能够得到妥善的解决或规避则会带来较为严重的损失和不良后果。因而在软件项目编程开发中必须制定必要的风险规避策略以保证项目的稳健开展。
一、编程软件开发过程所面临的风险分析
软件的开发与编程实现需要经历计划制定、项目估算、编程实现以及后续维护几个阶段,无论那一阶段均存在一定程度的风险,即风险是存在于编程软件项目整个生命周期的。项目所面临的风险可能会为项目的开展与完成带来如下几方面威胁:软件质量不高、开发成本提升、软件开发进度滞后、项目终止等。而可能会为软件开发带来威胁的风险可以来自于软件开发涉及的每一方面如开发人员水平、软件开发环境、管理人员的软件开发管理与控制、开发成本等。
特别是在项目制定与开展过程中若没有做好符合实际环境的进度估计与控制、人员沟通、流程制定等,则非常容易导致软件编程过程中出现问题,影响软件的开发与完成。
为降低或消除编程软件所面临的风险,在软件开发中必须对软件进行风险评估并建立适当的风险管理机制,制定和应用符合软件开发需求的风险规避策略来对编程软件开发的操作过程、组织过程、合同等相关参数进行管理。
二、软件项目编程开发中的风险识别、分析与监控
为更好实现风险规避,在软件开发中需要遵循以下步骤对软件项目编程开发中各阶段中存在的风险进行识别、分析与监控。
(一)软件项目编程开发中的风险识别
由于风险是贯穿于软件项目编程开发的整个生命周期的,故在进行风险识别时需要从项目规划开始使用系统化、理论化、全面性的风险分析方法和风险分析软件对编程软件开发每一阶段中涉及的内容进行详细分析与统计,整理可能带来风险的因素并安排相关人员对其进行评估和分类,识别和判定可能会为编程软件项目开发带来潜在威胁的风险,并按照其发生几率、威胁程度等进行排序整理。
(二)软件项目编程开发中的风险分析
在完成风险识别步骤后需要应用定性或定量的方法对所识别的风险进行具体的分析与评估,确认其对整个软件编程开发生命周期的影响程度,区分出主次,进而制定与其危害程度、发生概率相匹配风险应对机制和风险应对时期。
(三)软件项目编程开发中的风险监控
对软件项目编程开发的整个过程进行风险监控有利于识别和分析項目开发中所面临的潜在风险,组织相关人员利用相应的资源开展风险管理与规避,还能够有效预防和处理在某些阶段或进程中突发的风险行为,降低或避免其对软件开发所带来的经济损失。
三、软件项目编程开发中的风险规避策略
制定并执行风险规避策略可以有效提升软件项目开发的抗风险能力,保障软件生命周期内各项活动的正常开展。具体来说,软件项目编程开发中的风险规避策略主要包括以下几方面内容。
(一)开发人员和开发技术储备。开发人员和软件编程水平对整个软件的开发与实现具有重要意义,稳定的开发人员和较高的编程水平可以确保软件项目按时保质的开展与完成。但是软件开发过程中不可避免的会面临人员流动这一风险,为降低其为软件开发所带来的风险需要对关键性技术岗位培养后备人员,对关键性技术实现依照文档撰写规范制定技术文档,这样可以保证即便出现人员流动也够能保障项目的继续开展。
(二)对关键技术进行提前调研并关注其发展动态。软件开发的核心工作内容即为关键技术和关键功能的编程实现。为增强这些技术和功能的抗风险能力、延长软件的生命周期、避免出现功能落后等现象,在进行软件编程开发时应该注意开展相关信息的收集工作,尽量获得具有自主知识产权的核心技术内容,避免因技术购买等带来的成本投入提升状况发生。
(三)制定项目规划并对其执行情况进行追踪。凡事预则立,不预则废。项目规划是项目开展和控制的主要依据。该策略不仅可以让相关负责人员及时掌握与了解软件编程工作的开展进度和产生的数据信息,对项目进度当前情况进行分析,判断软件编程开发过程中是否存在阻碍或问题,帮助其制定适当的偏差纠正策略对存在问题的环节进行纠正或调整,还可以有效提升相关负责人员对整个开发周期的管控水平。
(四)制定具体的风险应对策略。该策略就是针对某些具体的风险制定具体的应对方案,一旦软件编程开发过程中出现该类风险可以按照预定的应对措施及时消除该风险,降低风险所带来的损失。应对措施的制定应该尽量满足可行、使用、有效等原则,可采取转移、化解、分担等手段。
四、总结
编程软件的风险规避贯穿于软件开发的整个生命周期,需要综合分析软件开发涉及的多种因素,具有系统化、全面化等特点。制定和采用适当的风险规避策略对编程软件开发中可能面临的多种风险进行规避是软件开发的内在需求和确保软件开发质量的可靠保证。
参考文献:
[1]黄石磊.浅谈软件编程的风险规避[J].科技创新导报,2010(4).
[2]闫秋粉,南振岐,姚尔果.软件风险评估量化分析研究[J].计算机工程与设计,2012,33(4).
当来到的一个陌生的地方时,时常需要我们进行一个自我介绍,自我介绍是一展示自己的手段。千万不能认为自我介绍随便应付就可以,以下是小编精心整理的软件编程人员求职自我介绍,仅供参考,大家一起来看看吧。
在四年的学习生活中,我系统地掌握了开发与应用方面的技术,同时也对当今网络的发展有了深刻的认识。因此打下扎实的专业基础知识。
在思想行为方面,我有着良好的道德修养,并有坚定的政治方向,我积极地想团组织靠拢,使我对我们团组织有了更为深刻的认识。参加了学校组织的`各种共青团活动。本人遵纪守法,爱护公共财产。关心和帮助他人,并以务实求实的精神热心参加各种公益宣传和爱国活动。
理论学习上,我认真学习专业知识理论,在各方面都能严格要求自己,积极要求上进。在专业学习过程中,学习态度端正,学习踏实努力,专业成绩优异,多次获得校级奖学金。
专业知识上。精通CC++编程语言,能够熟练运用上述语言进行软件开发;掌握Visual C++6、0编程软件,有丰富的基于Windows平台编写软件的经验;了解TCPIP协议,熟悉数据库基本原理;具有较为丰富的网站设计开发经验,曾经协助建设和维护学院网站。学习期间,积极参与多项科研项目。具有很强的业务能力。
课余生活中,我还坚持培养自己广泛的兴趣爱好,坚持体育锻炼,使自己始终保持在最佳状态。为提高自己的社会交往和各方面知识的运用能力,我积极参加社会实践。四年中,我加入了青年志愿者、参加了学校党校培训,这些经历,不仅增强了我吃苦耐劳、自理自立的能力,还提高了我与别人合作与交往的能力。
四年的学习生活,无论是专业知识还是社会常识,亦或是为人处事,都让我学到了很多,可以说,这四年是我人生中最有意义的一段时光,我的人生理想和人生追求在这段时间内得以确定,对自己的职业生涯发展有了新的规划,生活也有了新的目标。我将继续努力,不断进步,走向成功!
在四年的学习生活中,我系统地掌握了开发与应用方面的技术,同时也对当今网络的发展有了深刻的认识。因此打下扎实的专业基础知识。
在思想行为方面,我作风优良、待人诚恳,能较好处理人际关际,处事冷静稳健,能合理地统筹安排生活中的事务。
理论学习上,我认真学习专业知识理论,在各方面都能严格要求自己,积极要求上进。在专业学习过程中,学习态度端正,学习踏实努力,专业成绩优异,多次获得校级奖学金。
专业知识上。精通C/C++编程语言,能够熟练运用上述语言进行软件开发;掌握Visual C++6.0编程软件,有丰富的基于Windows平台编写软件的经验;了解TCp/Ip协议,熟悉数据库基本原理;具有较为丰富的网站设计开发经验,曾经协助建设和维护学院网站。学习期间,积极参与多项科研项目。具有很强的业务能力。
工作上,在大学期间我还担任过团支书,具有很强的组织和协调能力。能在较短时间内适应高压力的工作。强烈的事业心和责任感使我能够面队任何困难和挑战。
a)开发环境要求:
开发语言:JAVA
JDK版本:1.6
开发工具:Eclipse
数据库:MySQL
上机时间:第17周(从第16周按要求开始准备)b)报告提纲
需求分析:以用例和用例图方式描述需求
系统总体设计:分别画出系统的模块图、类图、顺序图和状态图。
详细设计:以程序流程图或伪代码,写出关键方法的实现。 实现:对系统关键功能的实现过程,用代码+文字形式进行描述。
测试:系统的测试情况
体会:课程学习和项目实现过程的感受、体会或反思。c)考核时间:6月21日
2、考核要求
学生演示系统,老师现场提问,根据回答情况和报告情况,给出最终成绩。
考核点:
独立解决问题的能力;
系统设计、实现情况;
代码的规范性、可读性;
3、作业
1)学生成绩管理系统(数据库版)
功能要求:
学生基本信息管理:实现学生的学号(唯一)、姓名、性别、出生年月、班级等内容的增、删、改、查。要求在查询时,可按照学生的学号、姓名、年龄段、班级进行组合模糊查询。增加和修改时,需要考虑验证学号的唯一性。
课程信息管理:实现课程的信息,包括课程编号(唯一)、课程名称、课程描述、先修课程(每门课只有1门先修课程)、学分等信息进行增、删、改、查。
班级选课信息管理:实现班级选课功能,每个班级可选一门或多门课程
学生成绩管理:实现学生成绩的录入、修改和查询。在录入成绩时,先选择班级、课程名称,然后进行录入。在录入过程时,用户可分批多次录入成绩,也可随时点击“保存”按钮保存信息。查询时可按照班级+课程名称查询,对查询结果以学号排序,并以列表方式显示。也可按照学生学号或姓名查询某个学生的所有课程成绩。
使用Swing图形界面
随着信息技术的飞速发展,基础软件环境诸如操作系统、办公软件、数据库等产品也保持较快速度发展,以操作系统为例,从本世纪出开始,微软已经陆续推出了Windows 2000,Windows XP,Windows 7等。其中,Windows XP操作系统是美国微软公司的经典作品,自2001年10月25日面世以来,已经连续工作了近15年。2015年4月8日,美国微软公司已正式停止对Windows XP的服务支持,也就是不再提供安全补丁,不再进行系统更新,不再发布象SP3那种增强包。如果黑客继续攻击Windows XP,找到了新的破绽,广大使用Windows XP的用户将只能陷入自行承担安全风险,自行抵御黑客攻击的尴尬境地。将Windows XP升级到更高的系统就是一种很好的解决方案,比如升级到Windows 7操作系统,Windows7操作系统拥有更加安全的机制和更加美好的操作体验。
目前,我国有近2亿用户使用Windows XP操作系统,基于Windows XP操作系统的应用软件也不计其数。如何以较小的代价实现应用软件从Windows XP操作系统向Windows 7操作系统升级,并且基于应用安全性考虑而限定应用软件应在非管理员用户下可正常运行,这是摆在广大应用开发者面前的的一个现实问题。笔者通过总结分析近年来的编程实践及软件调试过程中发现的与环境升级和应用安全规定相关的各类问题和解决方法,从编程环境安装、Windows7编程、Oracle10g编程和非管理员模式的编程等方面对应用软件在基础环境升级情况下的软件编程提出了建议。
2基础软件环境
应用软件可在以下基础软件环境下正常运行:
(1)客户端:操作系统支持Windows2000&Windows XP和Windows7;数据库客户端支持Oracle8.1.7;办公软件支持MS Office2003和MS Office 2007。
(2)服务器:支持两种配置,Windows 2000 Server&Oracle8.1.7或Windows Server 2003&Oracle10g。
3编程环境安装
推荐编程环境主要包括Visual C++6.0、Delphi 7.0和Visual Bassic 6.0等当前主流的开发环境。经测试发现,在Windows7下上述编程环境安装时需要对缺省配置进行修改才能正确安装。
(1)Windows7下安装Delphi 7步骤:
1)以管理员身份运行安装程序,忽视兼容性警告。
2)使用缺省路径安装。
3)打开Delphi安装文件夹“c:/program files/Borland/delphi7”的“属性”,去掉“常规”页面的“只读”选项;进入“安全”页面,赋予users“完全控制”权限。
4)安装Delphi 7补丁程序:以管理员身份运行“d7_ent_upd1_1.exe”。
5)安装帮助补丁程序:以管理员身份运行“Windows7for Delphi7帮助文件补丁-Windows6.1-KB917607-x86.msu”。
6)安装排版工具:以管理员身份运行“Setup Ex.exe”。
(2)Windows7下安装Visual Bassic 6.0步骤:
1)如果是光盘安装版,先把文件拷到硬盘里;
2)打开setupwiz.ini,把"acme=acmboot.exe"改为"=acmsetup.exe";
3)STF=setupvc98ent.stf改为=acmsetup.stf,保存退出;
4)将安装文件的子目录文件setup的所有文件复制到安装文件的根目录中,然后将根目录中的vc98ent.stf(刚刚从setup中复制的那个文件)改名为acmsetup.stf;
5)然后运行setup.exe即可安装。
(3)Windows7下安装Visual C++6.0步骤:
1)在安装或使用Visual C++6.0时,凡是出现兼容性问题提醒对话框,一律选择勾选“不再显示此消息”,然后选择“运行程序”。
2)安装选择“custom(自定义安装)”。
3)安装时去除选择TOOLS内里的OLE/COM OBJECT VIEWER工具。COM OBJECT VIEWER仅仅是Visual C++6.0的辅助查看工具,对编译不会产生任何影响,且该工具不兼容Vista和Windows7操作系统。
4)安装完成后,启动Visual C++6.0,在“Tools(工具)—〉Options(选项)—〉Directories(目录)”中添加下面列出的资源路径:(请将下面示例中的“D:Program Files”替换为您机器里的Visual C++6.0安装路径。)
4软件编程建议
通过试验发现,大部分软件不需修改可直接在升级后的基础软件环境下运行,但当软件实现涉及到系统服务的使用、数据库访问信息的获取以及用户权限时,可能会发生问题。通过对发现的问题及解决方法进行总结归纳,列举了几类常见的编程方法在新环境下的编程建议,以供参考。
4.1 Windows7下的编程
(1)系统服务类
在Windows7操作系统下,系统服务的用户身份为LocalSystem,与Windows XP不同,系统服务不再与当前登录操作系统的用户共享桌面、内存等资源,因此带来一系列系统服务与当前用户间的通信问题:
1)当需要通过系统服务弹出窗口时,窗口无法在当前登录用户的桌面上显示。建议采用其他方法如托盘程序弹出窗口,避免使用系统服务实现。
2)当系统服务需要与应用之间使用共享内存、管道等方式进行通信时,会产生系统服务与应用之间通信失败的问题。建议采用Socket通信、文件或其他与用户身份无关的通信方式,可解决系统服务与应用之间的通信问题。
3)当需要通过系统服务启动托盘程序时,会产生托盘程序向桌面注册失败的问题。建议应用安装时将托盘程序追加到开始菜单里的“启动”项,可解决托盘程序启动问题。
(2)第三方控件包类
当需要采用第三方控件包时,控件包可能与Windows7操作系统不兼容,从而带来各种界面显示问题。例如,使用Visual C++编程语言、基于Xtreme Toolkit框架开发的程序,在调用Delphi开发的程序时,会出现应用界面显示不完整、Hint提示框显示不完整等现象,这是由于Visual C++的XT框架实现机制中的界面钩子与Windows7操作系统不兼容导致的。通过将Xtreme Toolkit框架中“抓取其他窗口”的选项去掉,即可解决此问题。
(3)Oracle8字符集类
Oracle8.1.7在Windows7操作系统下安装时,默认字符集为AMERICAN_AMERICA.ZHS16GBK,而在服务器上Oracle8.1.7和Oracle10g安装后默认字符集均为通用的SIMPLI-FIED CHINESE_CHINA.ZHS16GBK,因此Windows7操作系统下,当通过Oracle8.1.7客户端访问服务器时,会产生中文数据显示乱码的问题。建议修改客户端Oracle8.1.7的字符集,将注册表项HOME0的NLS_LANG键值修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,可解决此问题。
4.2 Oracle 10g下的编程
Oracle10g和Oracle8.1.7在注册表记录信息的结构不同。当通过注册表获取数据库安装路径等信息时,由于Oracle的不同版本间注册表的结构不一致,会产生Oracle的安装路径、字符集、Odbc数据源名称无法获取的问题,建议区分不同版本Oracle进行程序转换,以适应获取不同版本Oracle安装信息的需要。
4.3非管理员模式下的编程
当软件在非管理员模式下运行时,不再享有管理员对所有文件的读写权限,可能带来应用软件运行时的问题。可通过改变软件对文件的读写设计解决此类问题。主要分为以下几种情况;
(1)文件读写类
当需要对操作系统目录、Oracle目录或Office目录下的文件进行操作时,由于非管理员用户没有权限修改操作系统目录下文件和管理员用户创建的文件,会产生向操作系统目录下无法拷贝文件、修改文件以及无法修改Oracle或Office目录下文件的问题。
建议应用不再使用操作系统目录或管理员目录存放自生成文件,可将文件放置在应用自己的安装目录下,运行时只修改自己目录下的文件,可解决修改文件的问题。
(2)注册表读写类
1)当应用在运行时刻需要修改注册表项时,由于没有权限对注册表进行修改,会产生由于修改注册表项失败而导致应用运行异常的问题。建议将需要写入注册表的信息写入其私有配置文件,存放在自己的安装目录下,可解决注册表的读写问题。
2)当Delphi开发的应用通过TRegedit类读取注册表时,由于应用没有权限对注册表进行读取,会产生无法获取注册表键值的问题,通过调用Windows API读取注册表的方法,可解决Delphi开发的应用读取注册表键值的问题。
(3)环境变量读写类
当应用需要在运行时刻访问环境变量时,由于应用没有权限修改或访问其他用户创建的环境变量,会产生无法修改环境变量或获取相关信息的问题。建议将需要写入环境变量的信息写入其私有配置文件,存放在自己的安装目录下,可解决环境变量的读写问题。
(4)控件注册类
当应用程序在运行过程中对控件进行注册时,由于没有权限对控件进行注册,会产生控件无法注册、控件相关的界面显示不完整等问题。建议在段打包时,通过打包工具的控件注册功能在安装时完成控件注册。
(5)系统服务类
当应用安装后为系统服务形式时,由于没有权限对服务进行控制,会产生无法启动、停止和重启应用的问题。建议应用在客户端不使用系统服务形式,可采用自启动托盘程序,可解决此问题。
通过试验发现,大部分软件不需修改可直接在升级后的基础软件环境下运行,但当软件实现涉及到系统服务的使用、数据库访问信息的获取以及用户权限时,可能会发生问题。通过对发现的问题及解决方法进行总结归纳,列举了几类常见的编程方法在新环境下的编程建议,以供参考。
5结语
在对应用软件升级过程中,针对应用软件的基础环境升级以及非管理员用户下搭建了相应调试环境,在实际调试试验中虽然大部分软件不需要进行任何改动,能很好地运行,但还是有少数原来可用的程序在新环境下不能正常使用了,经过认真分析排查,在对应用软件进行少量修改后,这些问题都得到了解决或规避,而且实现了一个客户端软件版本可同时运行Windows2000、Windows XP和Windows7上,避免了同一软件需出多个版本的问题。在这里我们将这些问题进行总结,也是为了尽快帮助大家解决因环境升级带来的问题。
参考文献
关键词 C#语言 语言规范 软件编程
中图分类号:TP31 文献标识码:A
软件开发需要技术人员的经验和态度。当然,程序员的工作经验是要靠实际工作来进行积累的,那么对于刚刚参加工作的程序员们来说,一套完善的软件开发规范制度是必要的,即,一套完善的软件开发时的工作制度与代码使用规范可以对程序员的正常工作起到一定的约束作用。
1代码规范
(1)命名规范
变量、方法名、类名和借口名的命名都应该清楚明了,最好选用通用的名称,让旁人一眼便可看出,避免由于主观的认知而让他人产生对于名称的误解。而单字母命名往往会造成歧义,虽然命名简单但是不能够达到预期的效果。应该注意的是,在命名是一定要使用英文,注意使用Pascal的大小写规则与Camel规则。两种规则虽然有所不同,但是其根本目的仍是方便开发人员的理解,增强代码的可读性。
(2)代码注释
在代码编写的过程中,往往需要对代码进行注释,这样既增加代码的辨识度,又提高了代码的可用性。如:
If(1==1)
{statement;}
对于经验丰富的程序员可能不会有任何的理解影响,但是对于新晋的程序员往往会由于“1==1”这个条件啊产生较大的歧义,如果在if语句后加上注释
If(1==1)//always true
这样,这个if语句的含义便很明了了,即:每一次该语句的判断均为true,故每一次运算的结果都会传入下方进行体中。工作经验是需要一定是时间才能积累的,如果工作时间不够,没有针对相应环境的经验,则很容易造成与分歧。
(3)代码优化
对于一些循环语句,为了减少一些不必要的循环,当必要的循环逻辑已经完成之后,如果还未达到之前规定的循环次数,为了减少服务器的资源消耗,提高页面反应的速度,故此时需要跳出循环。
(4)代码分层
现在软件开发工作日益严峻,工作量不断加大,尤其是各种编程技术的发展在不断增速,技术多样化的今天,代码分层的重要性正在不断的展现出来。
2代码规范的重要性
(1)代码规范可以减少即时问题的发生
其实程序员的工作有时并不像想外人想的那样终日埋头在案前进行大量的运算。就像刚才提到的,复杂的运算过程和冗长的逻辑设计往往不是工作量最大的,工作量最大的是编写代码。但是简单不意味着不会出现问题,往往越简单的工作出现问题的频率就会越高。而原因在很大的程度上都可以归于没有一个规范的代码使用制度。没有规范的对输入输出参数的规范,没有规范的异常处理,没有规范的日志处理等等,不但导致了我们总是出现类似空指针这样低级的bug而且还很难找到引起bug的原因。
(2)规范代码可以方便代码的查错工作
代码编写完成后不意味着万事大吉,往往此时只是完成了编写的一个部分,而另一部分就是对源代码的审查工作。及时地复查可以避免错误地发生,也可以端正编程人员的态度,使其工作更加谨慎认真。而且,作为一个团队,可以在其他人编写完代码之后查出其中的错误,对于整个团队的其他成员也是一种学习和进步。但是,如果代码书写不规范,不但严重影响了审查工作的进行,加大了工作量与工作难度,有时甚至会造成没有办法审查的严重后果。由于不了解此代码编写是否成功,因此代码便会被弃用。由此,代码书写的规范可以让程序编写的审查工作更好开展,提高了效率和效果,同时也提高了整个团队的代码开发速度。
(3)规范代码可以提升团队的合作能力
作为团队型工作,如果不规范代码书写,则每个人写出的代码都会有不同的解读障碍。如果是多人同时在书写同一段代码,对于代码可用度的辨识上就会出现很大的分歧;如果是每一个人都有明确的分工,确定其负责的步骤,在整合的时候工作量也会由于每个人代码的差异而加大。很多时候,读不懂代码不仅仅是因为专业知识不够或者是代码有多么复杂难懂,只是因为别人的代码书写方式和自己的不尽相同。如果将代码书写进行规范,则提高了代码在团队中的可读性,每个人看到代码都不会产生疑问,自然会提高整个团队的工作效率。
(4)规范代码可以减少由于维护带来的开销
之前说到的问题如果不去解决,则会影响到所开发程序的质量,在开发过程中,前期的开发工作实际上只是对于程序的编写,而后期的调试才是整个过程中开销最大的一项。代码的质量不够,则需要多次进行检查,而且每一次检查都会需要相应的投入。在每个人的代码书写没有统一的时候,即使是一段没有问题的代码经过数次维护,最后也会成为了乱码,维护又该怎样进行?因此,只有规范代码的书写才能减少维护。
3总结
总之,在代码规范问题中,最重要的还是要树立良好的代码编写规范准则,在不断的实践工作中积累经验,并将其运用与平时的代码编写中。只有通过实践,才能不断的提高自身的技术水平,严惩不良的行为习惯,保证代码运行效率,让写出的代码真正有效运用到软件开发过程中。
参考文献
相信很多朋友都遇到过三菱PLC编程软件GX-DEVELOPER-C安装失败的问题,有的朋友安装成功之后不能创建新工程、软件打不开、PLC编程软件安装后总显示“工程初始化失败”或者安装后找不到快捷方式等问题,以下是本人经过这么多年的实践总结出来的安装编程软件的注意事项,希望对大家能有帮助:
1:如果以前装过三菱软件先要删除旧软件再册掉旧的注册文件
删除方法:①打开开始→运行→输入REGEDIT 点确定打开注册表手动寻找以下键值HKEY_LOCAL_MACHINESOFTWAREMITSUBISHI
②、将MITSUBISHI随意更改名称 按F5 刷新OK再重装新软件(当然你如果安装了三菱的其他软件,那千万别把其他的删掉了哦)
2:先运行EnvMEL文件中的SETUP程序;
3:最后运行文件夹中的SETUP1(setup);
4:安装过程中不选择安装监控的选项(如果你不熟悉的话最好在安装过程中直接点击下一步,不要勾选其他选项);
5: 安装完该软件后才能安装仿真,需要仿真的请向我们索取;
6:安装过程中编程软件和仿真软件尽量选择默认路径(即最好安装在C盘);
7:安装好后很多人看不到软件快捷方式,你可以点击:
开始>>>程序>>>MELSOFT>>>GX DEVELOPER找到相关的快捷方式;
浅谈如何学好计算机编程程序语言-Visual Basic程序编程的学习
作为职业学校的大专生,要成为一名合格的.毕业生,就必须学好至少一门编程语言,而在此学习过程中,很多学生都感到十分头疼.我们职业学校通常会选择Visual Basic这几门视化稿程语言来作为学生的程序设计课,本文我们就以Visual Basic这门课程的学习来谈论一下如何学好编程程序语言.
作 者:何小进 作者单位:盐城市高级职业学校,江苏盐城,224003刊 名:科技资讯英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):“”(35)分类号:G433关键词:Visual Basic 方法 目标
【关键词】编程语言;计算机知识;软件开发;软件应用
目前,计算机业内流行的软件编程语言有:C#、Java、PHP、C++、 VisualBasic、Delphi、Power Builder等。编程的目的主要是为了解决问题,解放现实的劳动力,而现实的问题都是可以用语言来描述的,将问题用计算机语言来实现,需要编写计算机开发程序。主要的途径是对现实问题进行分析,用合理的数学模型来表达,然后通过计算机程序语言来实现功能,例如:R、G、B3色份量来各表示一种颜色,对于颜色的处理被转化为对 R、G、B3个整数的处理。只要改变这3个整数,就可以将其改变成另外一种颜色。
1.计算机常用的编程语言
C语言:该语言应用广泛,是所有计算机语言里最常用的编程语言,从开始出现到现在已经有40年的历史,C语言具有很多优点, 如:语法简洁、运算符丰富、数据结构类型丰富、代码和数据分离的结构化、语法要求不严格、功能强大等。C语言是具有兼容能力强的程序语言,移植起来非常容易,利用 C语言为某种计算机写的软件可以用到另一种机器上去。如:如果为苹果机写的一个程序能够方便地改为可以在IBM PC上运行的程序。C语言的主要结构成分是函数C的独立子程序,编写的程序语言比较容易维护,并且容易实现。
C++:该语言是C语言的升级,它几乎包含了C语言的所有功能, 在C语言的广泛引用前提下,C++也应用的非常广泛,可以说任何领域都可以使用,包括各种操作平台,这也决定了C++是一种最难学的编程语言,因为,它强大的功能背景下,使用起来非常的灵活多样。 实践证明,如果掌握了C++,再学习其他编程语言的时候就会非常容易,因为它贯穿了从硬件到对象的各个环节,学完该语言以后就会对计算机语言有个深刻的认识。
Jav和C#:Java和C#都是出现在 C语言之后,以面向对象为主的语言,Java 语言是在充分吸收了C++的优点,摒弃了C++的一些缺点的基础上诞生的,并且形成了具有自身特色的优势,而C#则是在Java 语言之后出现的,它更多地借鉴了Java的优点,同时增加了一些自己的特点。在一定意义上可以说,Java站在C++的肩膀上,而C#站在了 Java的肩膀上。除了跨平台以外,Java和C# 相比没有太多优势,.NET 可以控制迅雷,调用 dll等,这个是Java很难做到的,虽然有JNI或第三方开源程序,但是那些第三方不太成熟,而JNI则需要会写VC代码,很难做到。
Pascal语言。是计算机通用设计语言的一种,是高级程序语言,主要特点有:具有严格的结構化形式、丰富的数据类型、较高的运行效率和较快的纠错能力等。这些优点决定了该语言能够描述各种算法以及数据结构,另外,在应用这种语言的过程中,能够帮助编程者保持一个很好的习惯和设计风格。
每一种语言都有其存在的理由,都有其独特的优势和应用范围, 编程人员在计算机应用软件开发过程中应该以提升工作效率为基础, 以运效果为目标,选择适合开发项目的程序,选择最适合的语言,达到提高工作效率,降低工作量的目的。
2.原则
2.1整体结构
开发项目的整理结构决定了用什么样的开发软件,使用什么样的编程语言,整个系统是由多个部分组成,并不是说整个系统都必须要使用同一种编程语言进行编写,编程语言的选择应该依据项目功能而定。对于成本投入较大的操作,如:图形渲染、密码学、视频处理以及信号处理等,程序员要认真考虑,尽量用一些静态类型的语言。
2.2尽量使用最为熟悉的语言
熟练掌握的语言能够运用在开发软件方面的话,可以节省大量的时间,并且能够对软件工程项目时间表进行准确预测,及时完工。此外,熟悉的语言可以创新,如,开发的软件是偏重复处理手工劳动时, 就可以根据实际情况选择简单、灵活的编程语言,尤其是选择那些自身就具备相应功能的编程语言。
2.3充分考虑硬件环境
硬件环境是软件开发的基础,所有软件编程语言都应该适应硬件环境,所以软件开发过程中要考虑外部硬件环境。
通常情况下,编程语言适应了目前版本的硬件环境,但随着硬件设备的更新,当前的软件可能就不适应了,不匹配的问题仍然存在。
因此,在程序开发以前要选择适应环境的编程语言,这样编出来的程序就能够长时间较好地运行。只有这样才能确保任何编程语言编出来的开发软件都能够实现并能够快速调整,因此,快速原型是很重要的,动态语言在这方面表现出了突出的优点,可以和很多相关库进行结合。
2.4语言的选择要考虑是否支持平台
支持平台也是在编程语言选择过程中需要考虑的因素。
例如:在浏览器中运行的程序语言,根据语言是否适应就可以有选择的使用一些语言。平台是一个大环境,所有操作都应该适应于平台,一些程序开发过程中,程序语言的格式决定了要涉及大量的位操作,此时,要充分考虑大量的位操作是否给软件开发带来困难,是否可以避免大量的工作,如果必须要进行大量的位操作,那就应该选择那些具有容易位操作而且可以提供合适数据类型等特点的编程语言。
同时, 在一些特殊领域,程序员应该使用专业的编程语言,因为这些程序语言具有很强的针对性,使用起来既能够节省很多的工作时间,还可以防止编程出现较大的失误。
3.结语
编程语言决定了软件的开发的效果,软件开发的项目和环境限制了程序语言的使用,恰当的编程语言,能够大大提高编程效率和开发软件的质量,能够保证编程工作的顺利开展,能够使工作事半功倍。
因此,在编程过程中,编程人员应加强学习,不断吸收新知识,对各类编程语言的特点进行深入了解,以寻找出最合适的编程语言。 [科]
【参考文献】
[1]周博文,杜山泽.社会管理创新:从伦理观念、管理理念到思维方式的转变.载于.行政管理改革,2012(11).
[2]沈化敏.基于Delphi的计件工资核算及产品质量系统的设计与实现[D].华东师范大学,2007.
随着数控雕刻机应用的普及,雕刻加工被更多地用于制作印章、标牌和浮雕艺术品。软件厂商也推出了大量应用于雕刻加工的自动编程软件,例如美国CNC SOFTWARE公司的MASTER CAM软件ART模块可支持浮雕造型与加工的自动编程。考虑到浮雕造型要求操作人员拥有一定的CAD设计能力,并不适合普通人,如果自动编程软件能够将一张数码照片根据浮雕加工的工艺要求直接处理为数控加工程序,那将使得艺术创作变得更加容易。
本文分析了基于图像的浮雕雕刻原理,讨论了软件的设计方法和操作流程。
1 基于图像的浮雕雕刻原理
图像的种类很多,彩色图像由于色彩丰富可以反映出物体的真实状况,灰度图像则由于色彩呈阶梯分布适合用于特殊的数字图像处理。在使用RGB三基色表示灰度图像时灰度等级最高可为256级且RGB三种颜色的数值相等,即RGB值的范围从(0,0,0)至(255,255,255),颜色由黑色至白色呈阶梯分布[1]。虽然灰度图像本身是平面的,但由于颜色深浅不同,因此颜色的深浅可以转换为三维浮雕表面的高低。在本次研究的浮雕雕刻中可定义灰度图像中黑色所表示的浮雕表面高度最低,而白色所表示的浮雕表面高度最高,颜色由黑色至白色变化过程中其浮雕表面的高度呈线性变化。因此由灰度图像完成三维浮雕的数控加工时,只需控制刀具根据当前图像像素的灰度值切削至合适的深度即可。图1表示由灰度图像处理为刀具轨迹的对比情况,刀具轨迹为轴侧视角,且为了更清晰地表示灰度图像中颜色深浅与浮雕表面高度的关系,此处的刀具轨迹只显示了图像中的部分区域。
2 软件的设计方法
本次研究使用的编程软件为Visual Studio 2008,采用VISUAL BASIC语言编程,考虑到该自动编程软件应简单易用,因此使用了单一编程界面(SDI),所有的操作选项均按类别分类。编程中使用的主要控件为:Picture Box,Rich Text Box,Check Box,Radio Button,Open File Dialog和Save File Dialog[2]。Picture Box控件的功能为显示加载的图像文件;Rich Text Box控件的功能为显示生成的数控加工程序文本;Check Box控件的功能为提供快速切削加工功能的复选;Radio Button控件的功能为提供多种编程原点位置的选择;Open File Dialog和Save File Dialog控件的功能为产生文件打开与保存的对话框。该自动编程软件能够对加载的图像进行必要的数字处理,并根据浮雕加工的工艺参数生成数控加工程序,同时能将数字处理后的图像生成可被其他自动编程软件读取的CAD数据文件。下面对该软件主要功能的关键设计方法和浮雕数控加工的仿真测试做出介绍,软件的运行界面如图2所示。
2.1 图像的平滑处理
将灰度图像处理为刀具轨迹是根据当前图像像素灰度值与刀具的切削深度呈线性关系来进行的,因此当像素与其相临像素之间的灰度值相差过大时(即图像部分区域颜色变化剧烈时)将会导致生成的刀具轨迹呈剧烈跳动,这将使得加工出的浮雕表面非常粗糙、缺乏美感。为了解决以上问题必须通过数字图像处理使得像素与其相临像素之间的灰度值变化较缓,以使刀具轨迹能够平滑过渡,从图像的角度上讲即是对图像进行平滑处理[3]。
该自动编程软件的平滑处理功能采用时域法对图像的各个像素完成了平滑处理,其算法是将原图像每一个像素的灰度值都由其相临n×n个像素灰度值的平均值来代替[4]。此处如选n=3,则原像素的灰度值将由其相临的8个像素及其本身灰度值之和的平均值来代替,该3×3的阵列如表1所示。设图像中某像素的灰度值为f(i,j),平滑处理后该像素的灰度值为g(i,j),则有:
值得注意的是,在使用Visual Studio 2008中的VI-SUAL BASIC语言编程时受Picture Box控件的影响,采用以上算法将不能对图像的边界像素进行平滑处理。图像经处理后生成的刀具轨迹将变得较为平滑,其处理前后的刀具轨迹如图3所示,刀具轨迹为轴侧视角,反映了人物的左眼图像在使用平滑处理前后所生成刀具轨迹平滑状态的对比。
2.2 数控加工程序的生成
2.2.1 程序生成的处理流程
数控加工程序的生成主要是将图像中各像素的屏幕坐标转换成相对于数控加工中编程原点的位置坐标,同时还应考虑添加程序头和程序尾以及切削用量数据,程序生成的处理流程如图4所示。其中工艺参数初始化阶段为收集用户设置的工艺参数数据并分配给各个变量,计算字符数组大小阶段则是根据图像像素的个数以及程序头和程序尾的数量计算临时存储数控加工程序的数组空间,以上两个过程为程序生成的必要准备。由于程序头和程序尾具有典型的固定结构,可根据数控系统的编程要求向数组中的元素依次添加相关语句,下面将主要阐述循环查找各像素生成程序语句的主要算法。
2.2.2 编程原点位置的切换
该自动编程软件可根据机床对刀操作的要求提供5种XY向编程原点的选择,设计中初始化XY向左下角端点为基准点,其X向和Y向的偏移量均为0,根据图像的长、宽像素值可计算出其它编程原点相对于基准点的偏移量。以计算XY向中心的编程原点偏移量为例,其程序代码如下:
其中变量a为图像的长度像素值,变量b为图像的宽度像素值,Fix()为调用取整函数。
2.2.3 屏幕坐标的转换
在设计中需要将图像中各像素的屏幕坐标转换成相对于数控加工中编程原点的位置坐标,由于图像编程中屏幕的原点被定义为图像左上角的端点(向右为X轴正向,向下为Y轴正向),而本次设计中编程原点的基准点为图像左下角的端点(向右为X轴正向,向上为Y轴正向),同时屏幕坐标的单位为像素而机床坐标的单位为毫米,因此在生成程序时必须对屏幕坐标加以转换,其转换公式为:
以上公式中x_new、y_new为机床坐标值,x、y为屏幕坐标值,x_offset,y_offset为当前编程原点相对于编程基准点的偏移量,b为图像的宽度像素值;k为转换系数,此处可根据一般计算机屏幕点距取值为0.26;scale为比例系数,可调整实际浮雕加工尺寸。
2.2.4 快速切削加工的实现
如果希望加工后的浮雕表面更为精细,可采用先粗加工后精加工的工艺实现。软件提供了快速切削加工功能,当选择该功能时可生成粗加工程序,否则生成精加工程序,实现该功能的程序结构如下:
图像处理程序
该结构为FOR语句的二级嵌套,可处理二维图像的各像素,其中的IF语句可实现一行像素的处理之后将下一次行处理位置调整为间隔一行进行,因此软件是对图像像素的奇数行生成程序语句,即完成了浮雕的粗略(快速)切削加工。
2.2.5 往复切削加工的实现
浮雕切削过程是对图像每行像素对应的机床坐标位置进行行切实现的,而数控加工中行切法可分为单向式和往复式,由于往复式没有抬刀动作可连续切削,故其切削效率较高。本设计中程序的生成采用往复式生成加工代码,其实现的方法是对图像像素奇数行采用从左往右扫描生成加工程序,偶数行采用从右往左扫描生成加工程序。
2.3 数据接口的支持
该自动编程软件还可以将处理后的图像转换为CAD文件供其它自动编程软件使用,本次设计的浮雕雕刻自动编程软件可支持ASCII格式文件的生成。该格式是将图形中定义的点用一系列点的坐标来表示,其中点的Z坐标值与该点灰度值呈线性关系,所有点的坐标构成了一份数据文件,又称“点云”数据。该文件为文本文件,其文件扩展名可任意,但在使用时应注意特定自动编程软件对文件扩展名的要求,例如使用Master CAM软件读取ASCII格式文件时必须要求文件扩展名为DOC[5]。由于有了数据接口的支持,用户可以将处理后的图像转换为三维空间点阵并由其它CAD/CAM软件进行编辑,例如可将空间点阵先连接为样条线再生成曲面,最后可对曲面进行CAM编程,通过该方法使得用户拥有了更多的加工选择方案。
2.4 其它辅助功能的实现
该自动编程软件还考虑了输入参数合法性校验和建议毛坯尺寸功能。当用户输入加工参数时可能会因为误操作输入如字母或标点符号等非法字符而导致程序的崩溃,此处可通过对文本框控件因输入完毕失去“焦点”而引发的Lost Focus事件来完成对输入结果的验证环节,当输入的数据为非法字符时软件将显示警告并将文本框中的数据恢复为初始值。毛坯尺寸是指导用户完成浮雕加工的必要条件,当用户加载图像文件后软件可根据图像的长宽像素值计算并显示所需毛坯的长宽尺寸,同时当用户修改加工参数中的“比例系数”时毛坯尺寸也会随之更新。
2.5 浮雕数控加工的仿真测试
当灰度图像被处理为数控加工程序后还应对加工效果进行测试,此处选择了Northwood Designs公司的专业数控加工仿真软件“The Meta Cut Utilities”进行测试。生成数控加工程序时采用的加工参数分别是:加工速度为500 mm/min,最大深度为-10 mm,冷却液为OFF,主轴转速为1 500 r/min,比例系数为3,XY向原点位置为毛坯上表面中心,仿真软件选择的毛坯尺寸为180 mm×233 mm×20 mm,刀具选择直径6 mm的球头铣刀,加工过程为先粗加工后精加工,其最终的加工效果如图5所示,总的加工时间经模拟计算为2 h 42 min。
3 软件的操作流程
下面以图1中的图像为例说明其浮雕雕刻自动编程的操作流程。
1)选择软件的“打开文件”按钮加载图像文件,如原文件不是灰度图像将被自动转换为灰度图像;
2)选择“平滑处理”按钮,软件将完成图像的平滑处理以使得刀具轨迹能够平滑过渡;
3)根据加工要求选择合适的加工参数并确定XY向原点位置;
4)如需生成粗加工程序则选择“快速切削加工”复选选项(否则生成精加工程序)并选择“生成程序”按钮,软件将完成数控加工程序的生成;
5)如需将处理后的图像生成为可供其它自动编程软件读取的CAD文件则选择“生成ASCII”按钮,软件将完成CAD文件的生成。
4 结束语
本文在介绍基于图像的浮雕雕刻原理基础上,利用Visual Studio 2008软件编写了浮雕雕刻自动编程软件,提供了一种浮雕数控加工的编程方法。所生成的数控加工程序在数控机床上能够加工出令人满意的浮雕作品,同时配合仿真软件的使用,可迅速获得浮雕的加工效果和加工时间,有助于产品的生产与加工安排。
摘要:为了实现浮雕的数控加工,提出了基于图像的浮雕雕刻方法。该软件采用数字图像处理技术,结合丰富的加工参数选项,实现了浮雕雕刻的自动编程。经测试其生成的数控加工程序在数控机床上能够加工出令人满意的浮雕作品,同时配合仿真软件的使用,可迅速获得浮雕的加工效果和加工时间,有助于产品的生产与加工安排。
关键词:浮雕,图像,数控加工,自动编程
参考文献
[1]杨珍.利用Photoshop制作数控浮雕的若干问题[J].上海工程技术大学学报,2009(3):60~62.
[2]汤涌涛.Visual Basic2008从入门到精通[M].北京:清华大学出版社,2008.
[3]谭浩强.数字图像处理应用与基础通[M].北京:中国铁道出版社,2002.
[4]李兰友,李玮,白克壮,等.Visual Basic.NET图形图像编程与实例详解[M].北京:电子工业出版社,2002.