编程软件范文
时间:2023-04-04 15:05:05
导语:如何才能写好一篇编程软件,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
scratch教学体验解读
激发学生学习兴趣与主动性 为什么越是小学高段学生在信息课上越没有兴趣?为什么我们花大量的时间控制学生玩网络游戏,却没有很好的效果?为什么信息课堂纪律让人苦恼?笔者带着尝试的心态将scratch引进六年级课堂教学,学生所表现出对课堂的兴趣远远超过了我的想象。它不仅帮助学生简单直观地完成信息化表达和数字化创作,还提升了学生的思维能力和创造能力,更使他们从以往的个人解决问题发展到如今的团队合作共同创作。开发Scratch项目的凯伦・布雷迪强调说:“我们的目的不是要创建电脑程序编写大军,而是帮助电脑使用者表达自己。”
提高学生的创造力与合作力 Scratch的可视化设计,将学生从算法中解救出来,学生不用再记忆枯燥的语法,而是专注于想象与设计,并能够轻松将所想加以实现。教学实践表明:当scratch走进课堂后,每个孩子都在参与课堂,甚至是以前屡屡不交课堂作业的后进生。在Scratch教学中,一直被教师所推崇的“做中学”升级为“边设计、边学习”,即学生在设计中一边想、一边实施指令、一边创造学习。在课堂创作中大家可以感受到,一个游戏要设计的吸引别人,一定要不断地思考、修改,多听别人的意见,多合作。在这个互动中,教师经常可以看到学生的进步,他们的创造力越来越强了,并得到了充分展现。让学生在设计中学习,是开拓学生思维和创造力的绝佳学习方式。
scratch教学初体验之应用
数字动画让孩子产生想象和述说 当孩子对单一的指令讲解感觉比较枯燥时,如果在讲解脚本时加上这样的故事教学,孩子的想象力和语言表达能力是出乎意料的。一个简单的场景,孩子可以想象出许多角色,描述出他们之间的故事情节。有了想象,结合自然语言表达,就回避了小学生绘制流程图的难点;同时,还让学生们感受到“凡事预则立,不预则废”,并树立思维优先,先设计后制作的意识。游戏设计让孩子学会创新和合作。实例1:走迷宫。迷宫游戏的要素是一个完整的迷宫要有迷宫图(复杂的路线、起点、终点)、角色,外加一些障碍物。脚本设计如下:①开始执行。动作――开始执行指令。②角色起点。动作――移动到X( )Y( )。③跟随鼠标移动。移动( )步,面向鼠标指向,外加重复执行。④判断条件。碰到障碍物回到起点,碰到终点游戏结束。这些过程都是学生通过探讨得到的,环节设计中给学生充分的时间与同桌交流,通过不断地交流,学生可以说出整个游戏设计。在作业批改中,教师会发现原来孩子的创新能力是无穷的。图1、图2为学生的作业。
实例2:捉小猫。课堂导入:小游戏,捉小猫,比得分。游戏非常吸引孩子,游戏里有许多黄猫和绿猫在跑动,一只手可以抓猫,抓到黄猫加10分,抓到绿猫扣5分,游戏倒计时2分钟。当问及他们玩过的小游戏中是否有类似的时,孩子们争先恐后地说着网上各种各样的小游戏名字。看得出,他们喜欢游戏。由此入手,布置任务:为你的小游戏选择相应的角色以及绘制好击打角色的工具。没有演示,放手让孩子自己去思考、探索。10分钟后的作业展示非常丰富,有人画了一把枪,有人画了泡泡龙里的发射导弹……随后让学生思考几分钟后描述游戏设计过程,在说的过程中其实就是一种设计。学生A:如果导弹击中小猫,小猫会消失一会儿再出现,分数会增加。学生B:小猫会在舞台上随意走动,碰到边缘反弹。慢慢地,大家达成了共识,按着我们的语言描述设计了完整的脚本。图3为捕捉器指令脚本,图4为小猫指令脚本,图5为效果图。
结束语
篇2
关键词:数据库;计算机软件工程;编程技术
编程技术其实是办公实现自动化的重要基础和关键组成部分,因为编程技术不仅能够支持办公类各种计算机软件的正常和运行,还能够保证办公电脑硬件设备的安全。也就是说将计算机软件应用在计算机数据库之中,不仅能够最大程度上办公的工作效率和办公整体水平,还能够提升企业的综合能力和竞争力,从而使企业在金融危机这个大环境下,一直长远的发展下去。
1计算机软件工程中数据库文件的建立
1.1类型比较
数据库文件的建立一般情况下都要在能够读取相关信息的前提下进行,所以在初期准备建立数据库时,一定要针对数据库的相关信息来进行有效的对比,而在观察文件时还要根据信息读取过程中容易出现的问题来进行选择建立数据库文件方式。
1.2建立数据库
数据库的创建一般情况下都是在文件类型确定之后才展开的一项工作,而在建立数据库之后对于数据库相关信息的访问权限也会有较大的改变,所以在一般情况下设计都是针对相关功能不够完善的项目来进行整改,通过更加合理的改善来解决计算机运行过程中出现的各种问题。
2计算机数据库的概念
计算机数据库其实就是通过编程技术来进行一系列工作的信息处理系统,其实计算机数据库出现的根本原因就是因为现如今信息技术发展十分迅速,所以计算机数据库应运而出,其最大的作用就是能够为企业构建一个自动化属性的企业内部信息处理系统,从而最大限度上为企业提供一个计算机数据库平台,使办公人员能够借助编程技术进行工作,其中包括信息的储备、更新、维护和传输等等。其实从本质上看来,计算机数据库就是一个对相关信息收集和整理的过程,这种技术十分适用于企业的办公。
3编程技术在计算机数据库中的作用
3.1可用性
可用性的提出是为了针对快速恢复故障和平衡负载。当计算机的主接口出现问题时,备份的接口将会自动的代替其进行工作,从而保证网络能够有条不紊的运行。而当网络的数据接受量过大时,备份接口还可以帮助主接口进行数据的接收和发送,从而起到均衡的作用。
3.2信息隐藏性
主体在进行通讯连接时,可以利用计算机的NAT技术系统,来隐藏内网的网址,并且在数据上是以公网的网址访问的网络,也就是说企业的用户可以直接访问外网的因特网,但是外网的所有网络都无法进行企业内部网络查看企业中的任何信息和资源。
3.3身份鉴别
身份鉴别是面向所有用户进行的验证程序,计算机的身份鉴别主要是指访问计算机的身份鉴别和端口计算机的身份鉴别。访问该计算机的用户必须通过SSH或者HTTP(HTTPS)的连接,通过输入用户和密码的方式来进行连接和鉴别,并且要保证密码以私密文件的方式保存在TACACS认证的服务器上,也就是说在计算机数据库中应用编程技术将能够最大限度上保证企业办公信息和数据的安全性。
4计算机数据库中存在的问题
编程技术和传统的计算机网络技术其实都是一样的,都是对于计算机的使用人员相关网络信息的总结和整理,只是编程技术要相较于传统计算机网络技术来说更加的便捷和方便。但是计算机网络技术存在着一个至关重要的问题,那就是相关信息的安全性,因为计算机网络技术依赖于编程技术和网络,所以编程技术具有容易修改、容易删除、容易查阅的特点,所以计算机网络技术中的信息很容易就被人他人进行查阅和修改,缺乏一定程度上的安全性。也正是因为这一问题,所以导致了计算机网络技术安全信息上的安全隐患。
5数据库文件的访问技术改革
5.1给予计算机数据库硬件支持
企业的工作流程内,计算机占据着其中百分之八十工作量,也就是说要想实现计算机数据库就必须要将编程技术应用在办公中。由于计算机数据库涉及的业务内容较多且相关信息比较繁杂,所以不论是计算机办公的软件还是硬件设备都需要编程技术的支持才能够保证办公中所有工作的顺利进行。计算机数据库中的特定软件有很多,其中以设备管理的软件为主,而支持自动化办公软件的系统主要是计算机数据库、SQLserver2008和Access。
5.2实现办公软件自动化
在办公的文档管理中应用编程技术,不仅能够保证使用者在计算机办公过程中能够在计算机的网络平台进行信息文件的审阅和查看批复,还能够在网络信息平台对文件信息进行审批和修改,这对于办公来说不仅提升了工作效率,还最大程度上减少了工作量。企业的工作人员在接收到文件之后,可以先将文件录入在网络信息平台内,然后再信息平台内进行修改和存档,存档完毕之后,可以对其进行准确的命名,以便他日查阅文件,并且存档的工作人员还可以将文件进行加密,针对不同用户设置访问权限,从而保证文件的安全性和共享性。
5.3创建全新信息平台
现如今很多企业都将编程技术应用在企业管理和信息中,其中信息使用的最为广泛和频繁,企业信息主要就是利用编程技术创建一个网络信息平台,其中最常见的就是电子网络论坛或者电子公告,在这个网络信息平台内,企业可以随时随地的公布企业公告和企业交流等等。
6结束语
综上所述,只有了解了编程技术的全部应用内容,才能够更好的将编程技术应用在计算机数据库内,这不仅能够提升企业的办公质量,还能够最大限度上的提升企业的办公效率,多方位的保障企业办公所有工作的顺利进行,从而最大限度上企业在整个市场环境下的竞争能力。
参考文献
[1]范丽萍.基于计算机软件工程的数据库编程技术[J].电子技术与软件工程,2017,01(22):164-165.
[2]侯艳辉.矿区生态环境评估及预警实现技术研究[D].山东:山东科技大学,2014.
[3]尤晶晶.工程软件中VB数据库编程技术的应用及选择思路解析[J].电脑编程技巧与维护,2016,04(134):71-72+94.
篇3
【关键词】C语言 计算机 软件编程
C语言应用建立在简单编程语言的基础上,是一项新型的编程语言确保了编程任务的顺利完成。使用者在实际的应用过程中,不受各项限制条件影响,可以结合自身的实际使用需求,严格按照C语言的编程要求进行编程。通过编程运行应用软件的实施结果上可以看出,C语言是计算机中的高级编程Z言,对提升计算机技术应用效果具有重要作用。
1 C语言下的计算机软件编程实验技巧
1.1 熟练掌握指针运用方法
指针是C语言编程中一种特殊的类型变量,能够快速处理编程设计过程中存在的复杂问题。指针的三要素主要包括指针名、值和类型。在对指针编程过程中,主要确保一般变量和指针的相同性。将指针应用于数组表示和函数的参数返回值中。
1.2 明确C语言特有函数功能
特有函数在C语言编程中被广泛应用,需要充分展现出函数的功能,编程设计人员需要将返回值、函数名字和参数名等项目进行定义。编程库中的函数主要是由C编译系统提供,需要确保函数系统的合理定义,确保程序调用的合理性,将“#include指令”包含到所用文件中。例如,在程序运行过程中,通常会运用sqrt函数,为了确保程序的合理运行,需要将#include“string.h”应用到头文件中。
1.3 掌握算法程序设计技巧
算法是程序设计的灵魂,需要明确算法技巧的应用方法,运用自然语言和流程图合理表达算法。要求程序设计员需要熟练掌握流程图符号,将其作为计算机之母,通过对数学知识的牢固应用,有助于提升计算机编程效率。
1.4 掌握位运算及文件知识
位运算是C语言之间的重要特色,也是计算机中的高级语言运算方法,自身具有唯一性和独特性特点。需要将位运算作为二进制位对象,严格按照程序要求进行运算。程序设计员在编程时,需要将所写的程序存储到文件中,提升数据查找效率。
2 计算机软件C语言编程案例
2.1 混合软件编程方法
随着科学技术的快速发展,需要加大对语言混合编程技巧的应用,对提升系统编程开发效率具有重要作用。在对混合软件编程方法进行研究时,主要包括以下两方面研究内容:
(1)需要将汇编语句嵌入到C语言源程序中,例如,在将asm汇编语句嵌入到C语言源程序中,需要将asm mov as,5/*将5发送到ax寄存器*/,将汇编语句嵌入到C语言源程序中时,需要利用大括号将嵌入程序括起来,例如:
Main( )
{asm{
mov ah,2
mov bh,5
int 10h
}
}
本次实验在实施过程中,在对程序进行嵌入式设计时,需要严格按照固定的格式进行嵌入式输入,并且需要在嵌入的各行代码前加“asm”。程序设计人员在进行嵌入式程序设计时,需要满足以下条件要求:“asm”关键字不可少,并且需要将其放置在指令代码前,需要确保嵌入汇编语言指令代码能够与正常的C语言程序混合使用,用“;”作为C语言的分隔符;将“/%”和“*/”作为C语言的注释分界符。
(2)做好C语言程序和汇编程序的编写工作,确保编译目标代码模块的独立性,确保链接的合理性。首先,明确C语言程序汇编语言中各种子程序和定义变量的合理性,确保汇编语言的合理调用。由于混合编程语言由若干个功能模块共同组成,各功能模块语言能够独立完成编程工作,并且通常会以函数的形式展现出来。设计人员需要结合每一模块的特点,来合理选择独立的语言编程系统,并形成目标性的文件,确保能够形成可视性的文件。其次,需要加大对参数传递问题的合理解决,从参数传递原则方面对C语言的程序调用汇编程序进行分析,运用推栈将参数传递给汇编程序。例如,在对voidaa(char*p,inti)函数进行编写时,主要是利用汇编语言进行编写,确保编译工作能够在小内存模式下开始,系统在调用时,将其编写成aa(&q,n)。
2.2 混合软件编程实例分析
在开展混合软件编程工作时,需要纯5个数中寻找最小值,将主程序设为“min.c”,汇编子程序设为“qiumin.asm”。主程序的编写形式主要是利用C语言进行编写,汇编子程序的编写形式主要是利用汇编语言编写,在实际的应用过程中,通常会被主程序所调用,以便完善对最小数的寻找,程序代码如下所示:
/*文件名为:min.c*/
#include
Int extern qiumin(int count,int vl,int v2,int v3,int v4,int v5);/*声明qiumin为外部函数*/
Main()
{
int min;
Min=qiumuin(12 ,54,8,4,23,9);
Printf(“The min is%d\n”,min);
}
主要是利用C语言和汇编语言混合的编程反复发,确保应用程序能够满足运行速度的要求,编程人员需要做好寄存器的合理分配,明确影响程序的因素。为了确保程序的合理运用,需要确保程序预报语言设计之间外部接口的相互协调性,提升外部调用效果。
3 结论
近年来,信息技术发展迅速,计算机软件是信息化社会的必需品,需要加大对C语言的应用力度,将其应用到各个领域中,确保行业的高效运营,为计算机软件的发展奠定良好的基础。同时,确保C语言软件能够广泛的应用到计算机编程实验中,强化C语言的实践效果,利用简单的C语言编程,提高软件的功能性,拓宽计算机软件的应用领域,确保计算机软件的多样化发展,向网络化和信息化方向不断迈进。
参考文献
[1]龚晨.基于C语言的计算机软件编程实验研究[J].电脑编程技巧与维护,2016(02):36-37.
[2]芮素文.基于C语言的计算机软件编程分析[J].信息系统工程,2015(01):40.
[3]王志超,赵越.基于C语言的计算机软件编程实验研究[J].科技创新导报,2015(11):45.
篇4
关键词:软件人才 量化考核 独立学院 软件编程
独立学院的人才培养目标是定位在高级应用型人才。因此,应科学合理地确定培养目标,建立与应用型人才培养相适应、具有独立学院特点的人才培养模式;提高教学质量必须确定不同于其他院校的质量标准和要求,还要根据学校和学生的特点去实施教育行为达到教育实效。计算机专业应用型人才培养很重要的,也是最基本的一个方面是程序设计能力的培养。要积极探索一种方法,如何在校提高学生编程能力,这是培养计算机高级应用型人才很重要的一个环节。
独立学院学生的特点是思想活跃、自我意识强;缺点是基础不够扎实、自制能力、学习的动力和自觉性不够。为了提高独立学院计算机专业学生教学质量,需要针对学生的特点,在实践教学上进行改革,以取得较好的效果。
1.目前计算机实践教学概况
目前计算机专业教学普遍的现象是:学生学了高级程序设计语言、数据结构、数据库、操作系统、软件工程等课程,虽然考试通过了,但绝大多数学生反映不会设计和编写一个程序。去应聘时,感觉大学三年什么也没有学。原因是:
1.1在大学四年里,虽然不少课程都涉及到算法和编程,但由于各门课程教学都是孤岛,无法对学生编程进行系统考核。在实验教学指导上,老师包的过多,限制学生的积极性和创造性的发挥。在实验教学中,通常是由按教师编制好的步骤进行,使得学生容易出现依赖性,缺乏主动思维,因而影响学生创造力的发挥,对培养学生分析问题和解决问题能力培养不利。
1.2多数任课老师不太清楚,学生更不清楚大学四年学习后,各门课程的衔接,更不清楚四年学习,我们将培养怎样的“职业标准人才”,因此,出现学生学完所有计算机课程后,编程能力很差,甚至无编程能力。
1.3在教学计划制定后,较多的注重课堂授课质量的提高,对实践教学部分重视不够,措施不力,注重对理论知识的验证,忽略解决实际工程能力的培养。创造性、设计性、综合性实践少。尤其是对学生创新意识的培养不够。
1.4学生实验报告抄袭现象较严重,程序不是自己编写,而是将他人的程序拷贝过来,甚至连名字都不改的拷贝过来。
2.软件人才编程量化考核的几点建议
编码行数是判断软件开发熟练度及从业经验的重要指标。根据行业现状,达到20000行编码并具有相关职业素质的人员可被认为是一名合格的软件从业者。分析了我们的教学计划,对我系计算机软件工程人才的培养提出编程量化考核的思路,并进行探讨与实实践。具体做法是:
2.1确定编码条数。分析计算机专业学生有关编程课程特点及IT岗位对学生的基本需求,确定四年来学生在高级语言的编程能力上要达到初级程序员的水平。定位四年来学生阅读和编程的程序条数达到12000条的指标。并探讨把要求学生完成上万行编程语句作为量化考核,量化深透到各门课程训练(课程设计或课程实验)中,从而使实践教学从简单到复杂,从单一到综合,从虚拟到真实,把专业能力培养落到实处。
2.2确定编码量化指标。参照按一个合格的程序员的“职业技能标尺”,将编程量化总指标分解到涉及的各门课程中,给出四年有关课程的编程量化指标如表1所示。
有了这个指标,各门课程的任课老师和实验指导老师都明确实验的要求,学生也明确通过这门课的学习,编程能力要有哪些提高。防止上课和实践脱节。
2.3加强实验指导书的编写。根据编程量化指标的要求编写实验指导书,一般指导书的内容要求先读后编,不断提高学生的编程兴趣和技能。
2.4加强实践教学师资队伍的建设。每一门有关课程都要有一位专任老师参加编程量化实践教学。承担实践教学的老师要不断提高自己的编程能力,经常讨论编程量化实践中出现的问题,并提出解决方法。
2.5严格教学环节,优化考核办法。实验结果的验收方式是考核很关键的问题,最初几门量化考核课程最好使用逐个学生验收的办法,防止学生抄袭现象,督促学生很好完成课程实验内容,即使程序是拷贝其他同学,为了验收,他也要很好的读懂,真正了解程序的编写
2.6以学生为中心,充分发挥学生的主动性。和其他教学一样,计算机软件教学过程同样是由教师的教和学生的学所组成双边活动过程。要将量化考核的标准提前告诉学生,让学生知道四年来,自己在编程能力应达到什么程度,提高他们学习的积极性。
3.初步实施
上学期操作系统课程设计根据编程量化的要求,针对算法的实现,让学生阅读了进程调度、作业调度、存储管理、文件系统等近1000条的程序,编写了近500条的程序,取得了较好的效果,不但对操作系统的算法有了进一步的理解,同时对C语言编程能力的提高有所帮助。学生反映这次课程设计收获较大,由于有编程量化的要求落实到每个学生,加上最后实验的验收是一个一个的进行,学生很认真、努力完成任务,取得较好的效果,也增强了我们开展编程量化教学探讨的信心。如果有关课程都能执行编程量化考核标准,四年下来,相信一定会为学生编程能力的提高打下很好的基础。
4.存在问题
4.1如何对学生编程进行系统考核。
4.2对老师提出了更高的要求,要求任课老师一定要参加实践教学,使得课堂教学与实践教学紧密结合。
4.3逐个验收实验结果,教师工作量加大了。应加大实践教学学分比重。
篇5
打开维控PLC编程软件新创建的工程,在菜单栏中选择【视图】
在展开的【视图】子目录中勾选【指令集】
在弹出的【指令集】目录中选择【基本顺控指令】目录。
使用鼠标左键,选中指定的顺控指令,比如【LD】
按住鼠标不放,选取【LD】拖动至右侧【梯形图(写入)】输入框内,放置于指定位置,松开鼠标右键
在弹出的梯形图输入窗口中输入【指令地址】,并点击确定。
篇6
教材利用了“二分法”进行解析,可看到,作出对应值表以及每一次“取中点”进行运算缩短零点所在的区间范围时,即使使用计算器,运算量也很大.其实借助信息技术可以很方便地求出一个方程的近似解.
下面将介绍如何应用Mathematica6.0求方程的近似解.
方法1:利用Mathematica6.0的代数自动求解功能求方程的近似解.
打开Mathematica6.0,执行命令进行输入按下“Shift+Enter”组合键即可,具体如下:
ln[1]:=Solve[2Λx+3*x-7==0,x]
Out[1]={{x13(7-3Productlog[4321/3log[2] ]log[2] )
}}
经过化简便得到方程2x+3x=7的解的表达式为:73-productln[(432/3)?ln2]ln2.
为了得到此方程的近似解,我们可以输入命令“N[expr]” (注:表达式的机器精度近似值)和命令“Solve[eqn, var]”(注:解方程)的组合命令即直接输入命令NSolve[lhs==rhs, var](注:求方程数值解 ),具体如下:
ln[2]:=NSolve[2Λx+3*x-7==0,x]
Out[2]={{x1.43319}}
方法2:利用Mathematica6.0的画图功能辅助二分法快速求解.
首先借助Mathematica绘制准确的图像,使二分法的“无限逼近”更快,同样,执行命令进行输入 按下“Shift+Enter”组合键即可,具体如图1:
ln[3]:=Plot[2Λx+3*x-7==0,{x,-2,5},PlotStyle{Black}]
图1
由图1极易看出方程2x+3x=7的解在1~2之间.同时我们还可以改变x的取值范围,以实现图像局部放大的目的,例如将横坐标的取值范围改为{x,1,2},就可
得到如图2所示的局部放大图像.
ln[4]:=Plot[2Λx+3*x-7==0,{x,1,2},PlotStyle{Black}]
图2
由图2直接就可看出方程2x+3x=7的解在1.4~1.45之间,于是我们就可以从这儿开始“二分法”的“无限逼近”……
当然也可以直接改变x的取值范围,实现图像局部放大来进行求解.
将横坐标的取值范围改为{x,1.4,1.45},则有如图3所示的图像:
ln[5]:=Plot[2Λx+3*x-7==0,{x,1.4,1.45},PlotStyle{Black}]
图3由图3中的图像可以看出方程2x+3x=7的解在1.432~1.4434之间.
继续将横坐标的取值范围改为{x,1.432,1.434},则有如图4:
ln[6]:=Plot[2Λx+3*x-7==0,{x,1.432,1.434},PlotStyle{Black}]
图4
篇7
关键词:计算机;软件开发;编程语言
一、引言
对于计算机应用软件的研究与开发来说,选择一项合适的编程语言对其影响十分深远,编程语言的适配度将决定计算机应用软件的优质度。其中编程语言是一项十分复杂的工作程序,它既影响着计算机应用软件的开发难度与开发效率,也影响着计算机应用软件后期的维护难度与维护效率。现阶段随着计算机技术的不断发展,编程语言也得到了大力研发,编程语言的种类也越来越多,每一种不同的编程语言都具有着其独特的性质与作用。
二、结合相关计算机应用软件的具体开发结构进行选择
一般情况下,在进行计算机应用软件的相关开发编程语言的选择过程中,往往都是一个具体的计算机应用软件对应一个固定的编程语言,但是在特殊情况之下,也会存在研究开发一个计算机应用软件时同时选择多个不同的编程语言的情况。出现这种现象的主要原因还是在于在一个具体的计算机应用软件的开发过程中,该应用软件的结构以及功能都会随着区域和时间的变化而不断发生变化,换言之,在一个应用软件中的不同区域所需要的编译效果也是不同的。因此,在进行计算机应用软件开发中的编程语言的选择过程中,一定要结合相关应用软件的具体需求与实际结构变化选择最合适的编程语言。除此之外,当一款计算机应用软件在开发过程中选择了一项或几项最合适的编程语言之后,并不意味之该应用软件在后期更新与维护过程中不会再选择或者替换其他的编程语言,也许在该应用软件开发的时候这几项编程语言十分适合该软件,但在两年或者更久的时间之后这项编程语言就不一定会适合该应用软件的更新与二次开发。因此,一个计算机应用软件的编程语言并不是一成不变的,在为计算机应用软件的开发选择编程语言的时候一定要结合应用软件的具体性质与结构变化进行实时选择与实时更新。比如,为了最大限度地提高所选的编程语言对相关计算机应用软件开发的适配度,相关软件开发人员可以遵循以下方式进行具体的编程语言的选择。首先技术人员需要对将要开发的应用软件的整体结构进行总体的把握与设计,其中不仅包括该应用软件所开发的主要功能以及属性,还包括该应用软件的延伸功能与后期维护等问题。其次软件开发人员还要在进行应用软件首次语言编写的过程中就将应用软件的所有功能以及延伸功能都充分挖掘出来,并结合应用软件的功能需求选择最佳的编程语言。比如相对于C语言与C++语言来说,JAVA语言更适合具有简单功能需求的应用软件开发,而C语言和C++语言则相对适合用于开发具有相对繁琐功能的计算机应用软件的开发。最后还要考虑所开发应用软件的数据规模,并根据不同的数据规模来选择合适的编程语言,比如如果是开发相对功能比较简易的计算机应用软件的话,则更加适合选择ACCESS语言。通过整体结构把握与具体功能把握相结合的方式来选择计算机应用软件开发的编程语言,一方面既有利于提高相关计算机应用软件的开发效率,另一方面也可以在一定程度上降低该应用软件的后期维护难度。
三、根据对相关计算机软件开发编程语言的熟悉程度进行选择
对于很多计算机软件开发人员来说,都希望能够在每一次的计算机应用软件的开发过程中进行勇敢的尝试与创新,从而实现自己的职业理想与自我完善。但是在实际的计算机应用软件开发项目中,尤其是对于非专业研究类的应用软件开发项目来说,开发人员在选择对应的编程语言的时候还是要尽量从自己知识范围内的熟悉掌握的编程语言入手。这主要是因为在计算机应用软件的开发过程总选择熟悉的编程语言能够在软件开发初期就帮助开发人员计算与估量出大概的项目进度表。一方面可以有效避免在计算机应用软件开发过程中出现其他的不必要的变数,使得整个项目完成得更加具有计划性与体系性;另一方面也可以有效提高计算机应用软件开发的效率与质量,最大限度地避免各种意外的发生概率。因此,软件开发人员的技术储备将决定一个计算机软件开发中所选用的编程语言的适配范围与选择广度,对于计算机应用软件的开发与后期维护来说,当然是所选择的编程语言范围越广,开发与后期维护的难度也就越低,效率也就越高。因此相应地软件开发人员的自身知识与技能储备在计算机应用软件开发的编程语言选择上就发挥出了至关重要的作用。只有不断提高软件开发人员的技能储备,才可以确保在相关应用软件开发编程语言的选择过程中拥有更多的选择,从而最大限度地避免在开发过程中可能会遇到的各种问题。比如,为了提高软件开发人员对相关编程语言的熟悉程度与掌握程度,从而在计算机应用软件开发时能够拥有更多的编程语言可以选择,相关计算机软件开发公司要提高对相关软件开发人员的技术储备与知识储备的考察强度与审核力度。首先针对于具有不同特长的软件开发人员,即可以十分熟练地掌握几项编程语言,但对于其他的编程语言都不太了解,这类技术人员其实已经十分优秀,但为了进一步提高与完善其综合水平,公司相关部门可以就这部分技术人员开展互助小组活动。换言之,掌握不同编程语言的两个或者三个技术人员可以结成学习对子或者学习小组,互相学习对方所熟练掌握的编程语言,从而切实达到互相进步的目的。其次还可以通过科普讲座的方式,让不同的软件开发人员对于不同的编程语言都能够有一个更加深入的了解,不断丰富软件开发人员的专业技能与综合水平。通过这种方式,软件开发人员所熟悉的编程语言将会得到一个质的提升,那么在进行计算机应用软件开发编程语言的选择时,也将会大大提高选择的广度与深度,有利于提升应用软件的开发效率与开发质量。
四、综合考虑不同编程语言的特性进行选择
每一种不同的编程语言都有其存在的理由与价值,这而在相关计算机应用软件开发中编程语言选择的过程中,具体应用软件编程语言的选择则要充分考虑到不同的编程语言的特点与性质。当前阶段比较常见的计算机应用软件开发所用的编程语言主要有以下几种,其中分别是C语言、C++语言、JAVA语言、ACCESS语言以及PESCAL语言等几种。以上这几种不同的编程语言都有着其独特的使用优势与适用范围。其中应用最广泛的是C语言,该编程语言是所有的计算机语言里最常用的一种,从开始出现截止到目前为止已经拥有四十几年的应用历史。而C语言最大的优势就是拥有十分丰富的运算符、数据结构,但是语法却十分简洁且语法要求也相对较低,功能十分强大。除此之外,C语言还是一种兼容能力很强的编程语言,通过C语言编程开发的计算机应用软件可以十分方便地移植到其他类型的计算机上。因此相关计算机软件开发人员在进行应用软件的编程过程中应该以提升工作完成质量为前提,以提升工作完成效率为目标,在结合实际应用软件开发需求的基础上,充分考虑不同编程语言的优势与特色,从中选择最合适的编程语言,选择最规范的软件开发程序,从而达到顺利完成工作任务,提高工作效率的目的。比如,以C++语言为例,作为C语言的拓展与延伸,C++语言在汇聚了C语言的众多优势与特点的基础上,又在应用软件的编程过程中注入了新的编程思想与编程模式,可以更加贴近与满足计算机应用软件的开发需求。作为一种全新的编程语言与编程形式,C++编程语言也在计算机编程领域得到了广泛的应用。结合C++语言的特色与优势,软件开发人员在计算机应用软件开发的过程中就可以做出更加合适与科学的选择。尤其是在大部分的计算机应用软件的开发过程中,针对于具体的硬件资源的使用是十分有限的,而且在很多时候收到运行环境与开发平台的限制,很多编程语言都无法实现很好的兼容,这时就完全可以选择C++语言作为应用软件的主要编程语言。C++语言可以在有限的外部环境与硬件资源条件下实现对环境与资源的最大化利用。
五、总结
综上所述,计算机应用软件的研究与开发是一项极其艰巨与复杂的工程,很多因素都会对其最终的研发效果与研发质量产生直接或间接的影响,其中编程语言的选择对于这项工程的完成则发挥着至关重要的作用。因此,计算机软件开发人员要不断提高自身素养与技能水平,充分掌握各种编程语言的应有优势与适用范围,在结合具体的计算机应用软件开发需求的基础上,选择最合适的编程语言,从而实现计算机应用软件的高效率与高质量开发。
参考文献
[1]王树琴.计算机应用软件开发中编程语言的选择研究[J].软件设计开发,2017(19):219.
篇8
1计算机软件工程中的数据库建立
在进行计算机数据库建立的整个过程中最开始就需要对计算机基础框架进行设计,并且同时需要对计算机中的数据库进行改进,而计算机软件的运行是需要通过网络这个媒介来作为支撑,要不然计算机系统中的软件就不能发挥作用,因此在系统数据库的搭建过程中要考虑到这些相关的影响因素,整个系统的各子系统之间相互之间需要形成良好的交互关系,最终才能使系统的软件运行,同时也可以保证计算机系统中的信息的安全性。在软件工程数据库一开始建立初期就必须要有明确的应用范围,这样就能够高效地做好计算机数据库的管理工作,在初步形成了数据库的总体构架之后,需要在此基础上进行其他功能的完善,提升整个软件的使用性能和安全性能并解决在使用过程中出现的漏洞,当这个软件在不断更新升级改进后它的功能将会越来越人性化以满足用户的需求,同时在抵抗外界的干扰方面也是会做得更好,此外数据库也要及时进行更新以免出现使用故障问题。编程技术是形成计算机数据库的基础,各功能的协调是解决软件技术问题的主要途径,软件在开发出后投入市场让用户进行使用中要有效利用好计算机数据库中的资源,使得软件能够在使用过程中可以进行自动更新,来解决软件在使用过程中出现的问题同时增加一些必要的功能。在做软件过程中工程师要合理的选择汇编语言,然后进行软件框架的编程,这样就能更好的做出所需的软件和提升用户的使用体验。
2数据库文件建立
2.1类型比较
数据库需要处于读取的条件下才能对数据库的文件进行建立,为此在数据库进行数据建立的最初阶段需要做好对比工作,防止出现在读取的过程中出现数据的丢失却不能及时发现的问题。通常采用对比的数据读取方式更能够保证数据读取的稳定性,同时在文件读取出现问题时也更能够直观的发现问题,也更能够找到合适的类型。在文件读取时要做到节省计算机的存储空间,并且短时间地对数据进行读取,这样做的目的就是可以保证软件运行的流畅度和稳定性,更不容易出现运行故障问题。
2.2创建数据库
一般情况下是在文件建立之后进行数据库的建立,并且在创建之后系统将会对访问的权限进行限制,会限制用户之后的相关操作,特别是在当系统出现一些问题需要进行相应的改进时,由于权限限制的原因将需要对各方面进行调整,需要更加有效的关联才能使得整个系统的稳定性有较高的保障。为了保证系统的稳定可靠性可以采用分模块的形式来对系统的多个功能进行逐一控制,如此一来就可以有效的提升数据库各功能的稳定性,保证系统的流畅运行。而一些在外部安装的软件就相对来说在对数据库创建时简便很多,在对外部软件进行安装时可以采取私人模式的安装方法可以保证用户的数据安全。同时需要根据软件的具体特征来建立合适的数据库,保证数据库中的资源能够充分利用,此外还需要不断对编程技术进行改进。为了能够保证系统在系统出现问题数据丢失的情况下保证系统快速的快速恢复运行,需要对数据库中的信息做好备份工作。
3对数据库文件的访问
3.1面向对象的数据库存储模式选择
分区之后就可以进行数据库存储模式状态,但是这项功能又存在多方面的安全问题。数据库的存储的作用就是对用户的各项权限进行一定的限制,以保证系统能够稳定运行,这种访问权限是被分为多个访问级别,不同类型的访问用户,进入系统的页面信息也会有所区别,主要目的还是在于保证系统的安全和稳定。建立了文件类型数据库后,更加有利于文件的访问,在进行系统的功能设计时需要重点针对这一方面,要做好合理优化系统资源,保证系统高效稳定运行。
3.2数据库文件的加密保护
文件加密主要是防止用户的个人重要信息被他人盗取而采取的保护措施,需要采取相应的措施来保证用户的信息安全,主要的措施就是通过对用户的信息根据信息的重要程度来设置,在用户进行使用时需要设置登录密码来保证信息安全,同时在登录数据库时也需要密码,这类分等级分类型的密码设置可以保证技术人员高效找到解决问题的策略,保证数据库和用户的信息不会被木马等其他病毒攻击窃取信息,损坏计算机系统,造成重大财产损失。对于在这个过程中信息选择问题可以通过加密选择来解决,通过结构优化来解决功能冲突问题,最终保证系统处于一个安全稳定的状态下运行。
3.3数据存储模式使用方法比较
使用方法的对比过程影响着系统运行的稳定性,同时在软件处于工作状态下进行判断系统是否处于不稳定运行的状态,最终技术人员根据出现的具体问题进而采取相应的改进措施。同在网络如何进行选取完全看之前设计时的功能选择,以及在实际使用过程中所遇到的具体问题决定的,最终可以达到提高系统稳定性的作用,而这种解决策略在防止计算机病毒的入侵系统这一方面起到了很好的作用,也在保障数据库的信息安全方面起到了很关键的作用,一般性的软件技术问题,在这种模式下软件都能稳定运行,此时在系统获得到信息后能够自动进行选择分类,这样就能保证数据库调动数据的效率和速度,同时软件也会根据具体要求进行自动更新,而这都需要各系统间高效配合才能实现。同时系统会对各模式进行筛选,找出其中的问题,优化整个运行系统。
3.4开发设计中的编程技术选择
保证软件系统的稳定性是选择哪种编程技术的重要参考标准,得到编程技术能否保证资源的高效利用,还有保证系统稳定性的能力。通过采用对比的方法进行编程来解决系统的一些相关问题,当系统出现不稳定时要及时发现问题所在采取相应的解决措施,保证软件不会出现较大的功能问题影响到软件的正常运行。相关的技术人员在进行问题诊断时也要针对性的进行检查,保证系统能够处于一种稳定的状态下持续安全运行。所以软件运行的稳定性和编程技术的选择有着密不可分的联系,编程技术选取的是否合适直接影响到软件运行的稳定性,因此要选择最为适合特定软件开发的编程技术。在一开始的软件开发阶段遇到问题可以对软件开发的基础框架进行优化,以保证之后的开发能够有效进行,这就对编程技术提出了更高的要求,需要编程技术能够实现软件特定功能的同时也要保证软件的安全性。
4结语
在互联网时代背景下,各行各业都需要利用计算机技术来获得发展,因此在很多非计算机类的工程领域内也越来越需要懂得计算机编程技术的人才,而对于非计算机专业人员面对这门较为复杂的学科一开始学习都会有所困惑甚至退却。本文就关于数据库系统做了详细的说明,希望对相关的使用人员有所帮助,也为非计算机专业人员提供学习方法。
软件工程硕士论文参考文献
[1]范丽萍.基于计算机软件工程的数据库编程技术[J].电子技术与软件工程,2017(1):164-165.
[2]张程誉.基于计算机软件工程的数据库编程技术[J].自动化与仪器仪表,2018(6).
篇9
关键词 极限编程技术;软件开发;重要作用
中图分类号:TP313
文献标识码:A
文章编号:1007-7316-(2014)02-
一、极限编程技术在软件开发中能够控制风险
在软件开发的过程中,风险是不可避免的,这就会导致软件开发进度受到影响,并且不利于保证软件开发的正常进展。而借助于极限编程技术在软件开发过程中的应用,可以控制风险,尽可能地确保软件开发过程的正常进行。
(一)极限编程技术在软件开发中能够控制进度延迟的风险
极限编程技术的时间非常短暂,所以,这种技术对于进度延迟的现象是非常不容许的。在运用极限编程技术的过程中,最为首要的就是要开发出那些具备最高的应用性能的功能模块,只有这样,客户才会发现软件是能够利用的,从而方便客户的使用,不应该像传统的软件开发方法那样仅仅提供文档信息。与此同时,对于开发完成的软件产品,一定要定期对客户进行回访,并且根据客户的需求进行不断地改进,从而能够最大限度地迎合客户的需求。
(二)极限编程技术在软件开发中能够控制项目被取消的风险
在利用极限编程技术来进行软件开发的项目中,先开发出具备较高的应用性能的功能模块以满足客户的需求,在这种情况下,如果项目被取消,那么,就不会像传统的软件开发方法那样面临巨大的损失,仍然有许多功能模块是能够利用的,从而能够节约大量的软件开发成本。
(三)极限编程技术在软件开发中能够控制不被客户认可的风险
在利用极限编程技术来进行软件开发的项目中,客户也参与到软件开发过程中来。在开发遇到问题的情况下,软件开发人员会和客户进行相互沟通,以便推动软件开发过程的顺利进行。
(四)极限编程技术在软件开发中能够控制缺陷率高的风险
在利用极限编程技术来进行软件开发的项目中,可以借助于自动化测试和测试先行的编码方式来最大限度地控制缺陷,一旦出现缺陷,客户就能够在最短的时间内察觉出来,从而能够和软件开发人员一起在最短的时间内进行处理。
二、极限编程技术在软件开发中能够提高质量
通常情况下,质量是由观察者来进行决定的,而质量的具体内涵则是根据不同的风险承担者而存在着差别的。在利用极限编程技术来进行软件开发的项目中,极限编程技术能够最大限度地保证所开发出的软件产品的质量,它确保质量的质量指标有很多。表1列出了一些质量标准,并详细说明了极限编程技术是如何确保质量的。
表1极限编程技术确保质量的质量指标
指标 描述 极限编程技术实践
易用性 在最终用户看来系统易于使用 现场客户
可伸缩性 容量(用户、数据量等)不断增加时,系统仍能够处理 测试
持续集成
可用性 用户可以使用系统的时间百分比 简单设计
重构
测试
可维护性 度量修复缺陷所需费用的指标 测试
集体拥有
编码标准
结对编程
可支持性 在运行时,修补或升级系统的难易程度 简单设计
测试
持续集成
功能性 系统的特性满足客户需求的程度 现场客户
用户故事
比喻
扩展性 在系统中添加新特性的难易程度 简单设计
小型
持续集成
平均故障间隔 系统可靠性的度量指标——
两次故障之间的平均时间
测试
集体拥有
编码标准
结对编程
三、极限编程技术在软件开发中能够管理变化
在利用极限编程技术来进行软件开发的项目中,能够确保在软件构建期间和需求收集期间对软件项目进行修改的成本相同,能够最大限度地节约成本。极限编程技术能够实现修改成本的均匀化,这种技术没有必要明确地指定需求。与此同时,软件开发小组也没有必要迫切地要求客户看到未来可能的需求。极限编程技术来进行软件开发就好比一次不能够准确界定最终的目的地的旅行。倘若客户能够带领软件开发成员快速地提供业务价值,并且及时进行反馈,那么,整个软件开发过程一定能够非常顺利地开展。
四、结束语
综上所述,本文探索了极限编程技术。虽然极限编程技术已经被提出了十多年的时间了,然而,这种编程理念仍然是一种新兴的软件开发方法,值得相关领域的专家和学者继续进行在不断的探索和完善。希望通过本文的研究,能够抛砖引玉,引起国内外专家学者对于极限编程技术领域的进一步的重视。
参考文献:
[1] 贺亚茹. 极限编程(XP):概念、特点和应用[J]. 新西部(下半月), 2008,(12)
[2] 张鹏,唐发根,林广艳. 软件架构设计在XP方法中的实施[J]. 计算机工程与应用, 2003,(33) .
[3] 王晓华,赵明. XP过程对软件缺陷影响分析[J]. 航天控制, 2008,(01) .
[4] 周立力. 极限编程的质量保证分析[J]. 计算机应用与软件, 2010,(04) .
[5] 王晓华,赵明. 一种XP项目迭代周期估计方法[J]. 计算机应用, 2007,(05) .
[6] 林明泉,谭云兰,邓易偲,余友儒,刘粱军. 基于极限编程的电子政务考评平台的研究与开发[J]. 科技广场, 2009,(05) .
[7] 廖瑞华,文海英,胡英. 极限编程(XP)方法及其应用[J]. 电脑知识与技术, 2009,(27) .
[8] Amr Elssamadisy,Gregory Schalliol. Recognizing and re-sponding toBad Smellin Extreme Programming[J] .ICSE‘02,May 19-25,2002. :617-622 .
篇10
关键词:LINGO软件;集合;非线性规划;最优解
中图分类号:O144文献标识码:A文章编号:1009-3044(2012)10-2419-04
Modeling of Nonlinear Programming and LINGO’s Programming and Application
SANG Yang-yang, ZHU Wan-hong, DAN Bing-bing
(Engineering Institute of Engineer Corps .PLA Univ. of Sci. &Tech., Nanjing 210007, China)
Abstract: It’s very difficult for the fast modeling and solution of the nonlinear programming. LINGO modeling language greatly simplifies the process. Introduce the programming skills of LINGO and the SET in detail combined with a nonlinear programming problem. The calculation results show that the programming language is simple, flexible and applicability when using LINGO to solve the nonlinear programming problems contained a lot of variables and constraints.
Key words: LINGO; SET; nonlinear programming; optimal solution
对于大型复杂的优化模型,包含变量和约束条件较多,通过手工计算求解这类问题是非常困难的。使用MATLAB或C语言等编程计算虽然可行,但一般情况下程序编写繁琐,不仅容易出错,还可能耗费大量的时间和精力。LINGO软件是美国LINDO系统公司(Lindo System Inc.)开发的求解最优化问题的软件包,在求解大型线性、非线性和整数规划问题方面具有编程简单,计算稳定可靠和求解迅速的优势。其内置的建模语言提供了几十个内部函数,能以较少的语句,较直观的方式描述较大规模的优化模型。
1非线性规划类问题及其实例建模
1.1非线性规划类问题求解的一般特点
线性规划问题的目标函数和约束条件是自变量的一次函数,如果在目标函数或约束条件中包含有非线性的函数,就称这种规划问题为非线性规划问题。由于非线性函数的复杂性,解非线性规划问题要比解线性规划问题困难得多。而且,也不像线性规划有单纯形法等通用方法,且可用于求解的各个方法都有自己特定的适用范围,掌握起来较为困难。
非线性规划问题的一般模型为:min f(x)
s.t. gi(x)≥0,i=1,…,m
hj(x)=0,j=1,…,p
其中,x=(x1,…,xn)属于定义域D,符号min表示求“最小值”,符号s.t.表示“受约束于”。定义域D中满足约束条件的点称为问题的可行解。对于一个可行解x*,如果存在x*的一个邻域,使目标函数在x*处的值f(x*)优于该邻域中如何其他可行解处的函数值,则称x*为问题的局部最优解。如果f(x*)优于一切可行解处的目标函数值。则称x*为问题的整体最优解。实际应用中的非线性规划问题一般要求得到整体最优解。
1.2实例分析与建模
首先对一个求解电厂监控系统的最优化改造方案的问题进行非线性规划的实例分析与数学建模。
指标一系统稳压设施各等级安全概率及其费用
上面各表中数据反映的是某电厂改造其内部的监控系统(主要包括一个主设备间和多条监控管线),在模拟出现爆炸,火灾等恶劣和极端工作条件下,各类安全防护指标所选取的方案、相应的费用和破坏概率。整个系统的改造费用为400万元,求出该系统各种防护指标方案的最优搭配,使系统的总体安全概率最高。
按照上述的思路,共设4种安全防护指标,即N=4。目标函数为:
其中F总=400万元,pij为第i项指标下第j个方案的破坏概率,x为引入的0-1变量,xij=1代表第i项指标下第j个方案为使用,为0则为不使用。C为建设费用。P总为系统整体安全概率。
为便于后面的编程计算,我们首先把第一项指标中的安全防护效能转化为破坏概率。其次,在三,四项指标中各添加一个方案五(重复一遍任意方案即可,这里直接复制四方案)。
指标一系统稳压设施各等级安全概率及其费用
2运用LINGO程序求解非线性规划问题
2.1 LINGO程序段的一般组成
LINGO的主要功能是求解大型线性、非线性和整数规划问题,对于这类问题中大量的变量和约束条件,采用“集”(集合)的形式进行管理和参与运算,极大地方便了对复杂规划类问题的建模与求解。理解LINGO建模语言最重要的是理解集“SET”及其属性的概念。
常见的LINGO程序段包含下面三个部分:
1)“集”定义部分:定义“集”及其属性(从“SETS:”到“ENDSETS”)。
2)数据输入部分:已知属性赋以初始值(从“DATA:”到“ENDDATA”)。
3)目标函数和约束条件:定义了目标函数,约束条件等反映LINGO对数学模型的编译内容。
2.2 LINGO程序的编程
2.2.1 LINGO程序“集”的定义
“集”是一组相关对象构成的组合,代表模型中的实际事物,是实际问题到数学的抽象。例子中的4项防护指标可以看成一个集合,每项指标都有5项方案,这5项方案又可以看成一个集合。每个“集”在使用之前需要预先给出定义,定义集时要明确三方面的内容,集的名称,集内的成员(也称元素),集的属性(可以看成是与该集合有关的变量和常量,相当于数组)。本例集合定义如下:
scheme/s1..s5/;
measure/m1..m4/;
为了表示数学模型中指标与连队的各项关系,又定义了一个新的集:
links(measure,scheme):c,p,x;
该集以初始集measure和scheme为基础,称为衍生集合(或称派生集合)。c、p和x是该衍生集合的三个属性,分别表示每项指标下的每项方案的建设费用、破坏概率还有决定采用还是不采用的0-1型决策变量,实际运算中,引入(i,j)依次标示这两个纬度里的各项成员。
2.2.2数据的输入
以上集合中属性X是决策变量,是待求未知数,属性c和p都是已知数,LINGO建模语言通过数据初始化部分来实现对已知属性赋以初始值,格式为:
DATA:
p=0.066,0.18,0.238,0.385,0.477 0.084,0.228,0.376,0.580,0.831 0.017,0.076,0.154,0.810,0.810 0.000,0.015,0.552,0.826,0.826; c=100,60,40,20,0 250,180,120,90,0 50,42,30,0,0 50,40,30,0,0; ENDDATA
2.2.3目标函数和约束条件
目标函数表达式:,表达式中p和x即links的两个属性。
如果表达式中参与运算的属性属于同一个集合,则@prod语句中索引(i,j)(或下标)可以省略,假如表达式中参与运算的属性属于不同的集合,则不能省略属性的索引,故前一LINGO语句可写为:max=@prod(links:1-p*x);
约束条件实际上表示了4个不等式,用LINGO语言表示该约束条件,语句为:@for(measure(i):@sum(links(i,j):x(i,j))=1);语句中@for是LINGO提供的内部函数,它的作用是对某个集合的所有成员分别生成一个约束表达式,它有两个参数,以上述语句为例,@for的一个参数为measure,它表示指标或措施,共有4个成员,故应生成4个约束表达式,@for的第二个参数是约束表达式的具体内容,此外再调用@sum函数(使用方法和@prod函数相同),表示约束表达式的左边是求和,是对集合links的5个成员,并且对表达式X(i,j)中的第二维j求和,即
用LINGO语句表示为:
@sum(links(i,j):c(i,j)*x(i,j))
2.3完整的模型
MODEL:
SETS:
scheme/s1..s5/;
measure/m1..m4/;
links(measure,scheme):c,p,x;
ENDSETS
DATA:
p=0.066,0.18,0.238,0.385,0.477
0.084,0.228,0.376,0.580,0.831
0.017,0.076,0.154,0.810,0.810
0.000,0.015,0.552,0.826,0.826;
c=100,60,40,20,0
250,180,120,90,0
50,42,30,0,0
50,40,30,0,0;
ENDDATA
max=@prod(links(i,j):1-p(i,j)*x(i,j));
@sum(links(i,j):c(i,j)*x(i,j))
@for(links(i,j):@bin(x(i,j)));
@for(measure(i):@sum(links(i,j):x(i,j))=1); END
3求解报告分析
点击“求解”按钮,很快得出求解报告,部分求解报告如下:
Objective value:0.7272757
……
VariableValueReduced Cost
……(省略c,p常量的列举)
X( M1, S1)0.000000-0.4012672E-01 X( M1, S2)1.0000000.1487580E-01 X( M1, S3)0.0000000.000000
X( M1, S4)0.0000000.7858797E-01 X( M1, S5)0.0000000.1171758
……(省略指标2、3、4的求解结果)
以指标一为例,x12求得等于1,其它三项为0,说明在最优方案中,指标一系统稳压设施采用方案2,其它三项若使用达不到总体的这个最优结果,故不使用。同理,x21,x31,x42为1,即分别对应系统结构抗力措施采取方案1,防震隔振措施采取方案1,屏蔽防护措施采取方案2时,该监控系统可得到最大的安全防护概率0.727%。
4结束语
通过对这个非线性规划类问题的建模求解,体现了运用LINGO软件求解非线性规划问题的三个优点:一是工程实际中涉及到的运筹分析往往是包含大小多个不同的系统,LINGO软件的编程语言可以简明高效的表达其中的各类数学关系,定义部分也较为简单直观。“集”在建模的过程中简化了运算关系;二是LINGO软件提供了大量的内部函数,可以简单有效地表达目标函数以及约束条件,如求和表达式,若用直接输入的方式,将有200个Nij和200个Mij相乘再相加,需要输出长长一大窜,不便于输入和修改,提供的@sum,@prod则大大简化了编程输入;三是符合LINGO的“集”和其它部分编程的语法规定的表达式都可以进行计算,没有线性规划和非线性规划的具体区别。而如果用手工计算,两者对应的完全是不同的求解方法,非线性问题的解决也相当复杂,一般人较难掌握。
参考文献:
[1]谢金星,薛毅.优化建模与LINGO/LINDO软件[M].北京:清华大学出版社,2005.
[2]袁新生,邵大宏,郁时炼.LINGO和Excel在数学建模中的应用[M].北京:科学出版社,2007.
[3]甘应爱,田丰,李梅生.运筹学[M].北京:清华大学出版社,2005.