程序设计与软件开发【最新11篇】

《程序设计与软件开发【最新11篇】》由精心整编,希望在【程序开发】的写作上带给您相应的帮助与启发。

程序开发 1

关键词:Excel;考场排座;VBA编程

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)10-0009-03

考试风气是衡量一个学校的校风学风的核心依据之一,是全面检查教与学两方面情况的重要环节,是教学质量和教学效果反馈的重要手段。通过考试既可以检查学生的学习情况、了解学生对所学知识和技能的理解程度和应用能力,促使学生改进学习方法,又可检查教师的教学效果,促使教师总结教学经验、改进教学方法[1]。

但是,高校学生考试作弊问题一直困扰学校的管理者。在“大学生考试作弊情况调查分析及对策”[2]一文中提到通过对1200名在校大学生进行抽样问卷调查,得出引发大学生考试作弊动机的原因之一是管理因素,主要是考场管理松懈。“考试管理不严,给作弊者有机可乘”被认为是最终导致考试作弊发生的主要原因(占50.9%)。而串通作弊是考场作弊的主要手段,一般发生在关系亲密的同学之间,好讲江湖义气,他们会事先约定座位及作弊方法,所以监考老师通常在安排考场时,把学生序号打乱,使熟人之间的座位尽量隔开,希望从根本上杜绝串通作弊的现象,譬如像中考、高考、研究生考试和外语水平考试等大规模而且关系重大的考试中,组织者非常注意座位的安排。但人工安排座位具有主观性,效率低、质量差,难免顾此失彼。

就目前城市学院来说,应该承认绝大多数学生是讲诚信的,能够遵守考场纪律,但防范总是比事后的补救更有效,而且防范的最终目的是为了爱护学生。城市学院目前的做法是考试前监考老师领取“浙江大学城市学院教室座位表”,并填写这张座位表,考生进入考场按这张座位表就坐,这样做一方面给监考老师增加了额外的负担,另一方面更重要的是由于很多老师填写这张座位表时采用简单的按学号顺序横向填写或逆序填写,这样座位的随机性不好,给一些同学有了可乘之机。采用计算机来安排考场座次就能很好地解决这个问题。为此,我们设计了一个简单易行、高效而且通用的算法,希望能在实践中得到检验和完善。

1系统开发工具

Excel是Microsoft Office中的重要组件之一,是许多用户喜欢使用的电子表格软件,它具有较强的计算功能和数据管理功能,在学校工作中有着广泛的应用。Excel不仅具有强大的制表功能,同时还内置了系统开发工具VBA(Visual Basic for Application)。利用VBA,可以直接对Excel对象进行编程,从而提高Excel的利用效率。

VBA是用于开发应用程序的Basic语言,因此在编程方法、对象使用上与Visual Basic完全相同。所不同的是VBA不是一个独立存在的语言,它必须基于一个主应用程序,例如,基于Microsoft Excel的VBA。实际上VBA用于Excel时并没有加入Excel的特有的成分,Excel通过一个叫做对象库的特殊命令集对VBA显示出它的能力,如图1所示[3]:

在Microsoft Office中,VBA作为一个完整的开发工具,是Microsoft Office套件的共享组件。在Excel中使用VBA程序可以大大扩展Excel的功能,它使得用Excel完成一个管理系统的工作变得完全可能。

2系统特色

本系统以Excel为操作平台,符合大多数人的使用习惯。用户既可以通过系统界面提高工作效率,也可以通过Excel界面直接操作。用Excel + VBA编制的程序与Excel工作表同存于Excel的工作簿文件中,文件、文件夹的复制意味着系统数据与程序的完全复制。因此,本系统为绿色软件,不需要进行系统安装就可以直接运行。

3系统开发

在系统开发过程中,首先考虑的是如何对考生产生随机入座序列,方法是给定考生学号和姓名,对每个考生产生一个1~100000之间的随机数,以这个随机数为关键字段对考生排序,这样就产生了考生序列,每次启动排序都产生不同的随机数,确保考生序列有很好的随机性,然后把考生按序编入已设计好的相应考场座位表中。

For i=2 To rs+1

myWorkbooks.Worksheets("界面").Cells(i,3) = Int(100000 * Rnd)

Next i

Sheet1.Range(Cells(2, 1), Cells(i, 3)).Sort Key1:=Range("C2")

其次要注意的是考场的座位布局,城院的教室以124座的普通教室最多,但还有其他几种类型的考场,在系统设计的时候注意到软件的实用性,把所有的教室类型都考虑到,供用户进行选择。

第三要考虑的是教室的容量是限定的,如最常见的教室类型最多只能安排60位考生,当考生人数超过额定座位数的时候怎么办呢?我们选择的方法是自动分若干考场,如考生人数为230人,且选择了60人的考场,则自动产生考场座位表1,考场座位表2,考场座位表3,考场座位表4这四张工作表,并且在填入内容时,可选择填入学号或姓名,甚至可同时选择填入学号和姓名。

第四要考虑的是可人为地选择考场中考生就坐位置,如安排第一列,第三列,第

最后是打印表单。系统中设定页面为横向,打印份数1份,把所有考场信息一次性打印。还设置了打印预览,符合了大多数用户的使用习惯。

mysheetname = "考场座位表"

myworksheetcout = myWorkbooks.Worksheets. Count

For i = 1 To myworksheetcout - 1

With myWorkbooks.Worksheets(mysheetname + Str(i))

= xlLandscape

.PrintPreview

End With

myWorkbooks.Worksheets(mysheetname + Str(i)).PrintOut Copies:=1, Collate:=True

Next i

4系统使用说明

启动Excel,载入“排座软件”,选择启用宏,首先看到的是如图2所示的启动界面。

这是一张工作表,在这张工作表的开头是系统说明,提示在A3单元格开始粘贴考生学号及姓名;填写D3-G3单元格中的使用教室、考试课程、考试时间、考试班级、若有多个考场,则把使用教室列在D3列后面;单击“Show Userform”按钮后显示用户窗口,如图3所示。

系统计算并显示考生人数,请用户选择教室类型及排座记录方式,单击“启动排序”按钮系统按照所选教室类型及排座记录方式生成考场座位表如图4所示。若对排序结果不满意,可重新指定单元格为“*”,也可以把原来的“*”清除,选择“继续排序”,系统就显示新的排序结果,如此可以不断重复,直到满意为止。最后单击“打印表单”按钮,打印考场坐位表。系统运行结束时单击“结束”按钮。在排序过程中若出现缺少考生名单或在继续排序过程中考生人数超过可坐座位数,系统都会有相应错误提示,使得软件的使用具有较好的人机交互界面。

5讨论

通过编制一个计算机程序很好地解决了学校组织考试时座位的编排,提高了工作效率,也减轻了监考老师的负担。本程序是我们的一次小尝试,还存在着诸多不足,特别是原始数据要求粘贴到Excel表中,而我们目前的考生名单数据是直接放在网页上的,要利用这个排座软件意味着需手工从网上下载数据再转换成Excel格式;其次城市学院目前共有七种教室布局类型,程序中需要对每一种教室布局进行描述;另外要进一步提高程序的通用性,能通过简单方法增加新的教室类型,或者当用户输入教室号码时系统自动识别教室布局类型。所有这些都是需要进一步改进和提高的地方。

参考文献

[1] 陈一女。 论高校的考试管理[J]. 浙江万里学院学报,2004,10(5).

[2] 胡礼祥,应飚。 大学生考试作弊情况调查分析及对策[J]. 思想理论教育,2000,(3).

[3] 李晓玫,杨小平。 Excel中的VBA程序设计[J]. 四川师范大学学报(自然科学版),2004,7(4).

收稿时间:2006-12-27

程序开发 2

APP流量成本的急剧攀升做渠道运营的同学可能会清楚,过去两年里,APP推广的成本是呈翻倍增长的。有些垂类APP的CPA单价高达500元以上,对于创业者来说没有太多钱可以去砸在流量上,但流量往往是控制产品的命脉,每年有50%的新APP死在流量问题上。

移动互联网格局基本已定,用户主要需求场景已被巨头把持移动互联网发展已有五年时间,在这几年时间里,从PC时代迁移过来的连接人与信息、连接人与人、连接人与商品、连接人与服务四个大类已经基本完成了格局重塑。用户的主要需求场景,尤其是同时具备刚需和高频两个特点的场景,基础工具、生活服务、娱乐等都已经有PC时代的老巨头继续把持,或者移动互联网新生的小巨头们占据山头。

面向所有产品对用户时间的竞争在之前的文章里,白崎反复讲过一个观点就是现在的竞争不仅仅是同类竞品的竞争,其实是你在和所有产品竞争用户的时间。显然微信是目前的翘楚,平均每天长达4小时以上的停留时长。很多APP面临的问题便是用户即便下载安装了,但也想不起打开,或者打开了很快就被关闭。

(来源:文章屋网 )

程序开发 3

电可擦除、可编程只读存储器(Elec-ricallyErasableProgrammableRead-OnlyMemory,以下简称为EEPROM),具有存取速度快,可以随机访问,并在掉电时,不会丢失任何信息等优点。对EEPROM进行编程时,无须将它从原插座中取出,擦除信息方便,不需任何条件。由于它本身所具有的普通存储芯片没有的优点,因此,有一定应用前景。

2EEPROM的硬件分析

EEPROM的擦除不需要借助于其他设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,可以方便地升级和控制。

3EEPROM设计原理与指令

(1)起始条件:如果CS和DI引脚在CLK出现首个上升沿的时候同时为高电平,器件就视之为起始位。

(2)数据输入/数据输出(DI/DO):数据输入引脚和数据输出引脚可以连接在一起。驱动器电流源输出能力越强,数据输出引脚上的电压就越高。为了限制电流,应该在DI引脚和DO引脚之间串接一个电阻。

(3)数据保护:如果VCC低于1.5V的典型电压值或3.8V的典型电压值,所有的操作模式都将被禁止。在正常操作过程中,EWEN和EWDS命令可以提供额外保护以避免发生意外编程操作。

(4)擦除(ERASE):ERASE指令使指定地址的所有数据位都强行设置为逻辑1状态。DO引脚为逻辑0表明编程仍在进行。DO引脚为逻辑1表明指定地址的寄存器已被清空,器件准备好执行下一条指令。

(5)全部擦除(ERAL):全部擦除(ERAL)指令会把整个存储器阵列清空,即设置为逻辑1状态。

(6)擦写禁止和使能(EWDS/EWEN):93XX系列器件上电后处于擦写禁止(EWDS)状态。执行EWEN指令,将一直保持编程使能,直至执行EWDS指令或器件不连接VCC信号。EWDS指令可用来禁止所有的擦写功能。

(7)读(READ):READ指令把所寻址的存储单元中数据串行输出到DO引脚。在CS保持高电平期间可进行连续读取操作。存储器上的数据将会自动周期性地转移到下一个寄存器中,然后依次输出。

(8)写(WRITE):WRITE指令执行完后,将在指定的地址内写入8位(如果ORG为低电平或A版器件)或16位数据(如果ORG为高电平或B版器件)

(9)全部写(WRAL):全部写(WRAL)指令将会在整个存储器阵列中写入命令中所指定的数据。

4EEPROM的设计过程

该EEPROM占用4个端口:

(1)SK310

(2)CS311

(3)DI312

(4)DO313

本驱动是运行在用户空间的,实现了EEPROM提供的6个功能:读一个单元、写一个单元、擦除一个单元,擦除所有单元、擦除/写使能、擦除/写禁止。

(1)读:先串行地向EEPROM的DI端口写入读的命令代码110,接着写入想读的单元的地址,再使用inb()函数就可以读出相应单元中的数据。

(2)写:先串行地向EEPROM的DI端口写入写的命令代码,接着写入想写的单元的地址,最后,写入想写的数据,接着使用outb()向EEPROM中写数据。由于EEPROM的速度一般比较慢,不能立即写下一个数据,必须等待设备已经写完一个数据才能继续写下一个数据。可以通过读取端口DO来判断比较设备是处于就绪还是忙状态。在写之前必须先使擦除/写使能打开。

(3)擦除:擦除有两种情况,一种是擦除某一个具体的单元,擦除的过程是先向EEPROM写入ERASE的命令代码,接着写入要擦除的单元地址,EEPROM就会执行擦除的动作,单元擦除后的值默认为0xFF。另一种情况是擦除所有的单元,只需要向设备发出ERAL的命令就可以了,设备会自动地擦除所有单元。

(4)用户接口:给用户提供了六个功能函数:

a.读

提供了两个读函数,分别实现读取一个字节的数据和多个连续单元的数据。

intread_eeprom_b(intindex,unsignedchar*value)

intread_eeprom_a(intstart,intcount,unsignedchar*buf)

b.写

与读一样,同样有两个接口函数,分别实现写一个字节数据和多个字节数据。

intwrite_eeprom_b(intindex,unsignedcharvalue)

intwrite_eeprom_a(intstart,intcount,unsignedchar*buf)

c.擦除

擦除也有两个函数接口,一个为擦除某个单元,一个为擦除所有单元。

interase_eeprom_b(intindex)

interase_eeprom_all()

程序开发 4

关键词:高炉上料;控制程序;开发应用

前言

安钢新建2000级高炉炉顶采用PW公司的串罐无料钟炉顶,槽下上料系统采用皮带上料方式。为保证高炉正常连续生产,不出现亏料线现象,上料罐、下料罐和上料主皮带上必须同时各有一批料,这样才能满足高炉要料请求,实现高炉正常生产。在高炉顺行条件下,上料主皮带一般有一批料且不允许中途停车,整个上料过程是一个连续不间断的过程。这就要求编程人员根据上料工艺要求,利用编程工具去很好地实现这个控制时序。2000级高炉建设中,灵活地运用了计数器很好地实现了这一控制时序,此方法与罗列上料罐是否有料、下料罐是否有料以及主皮带上是否有料的条件来实现这一控制时序的方法比较起来,简单,易懂,具有很好的推广运用价值。

1工艺控制过程

高炉炉顶采用串罐无料钟炉顶。由上料罐、下料罐、上密封、下密封、下料闸、溜槽、均压、放散等主要设备组成,下料罐装有料罐称,用来称量下料罐的实时称重,实现重量法布料。槽下上料系统采用皮带上料方式,主要由供焦皮带,供矿皮带和上料主皮带、返矿皮带、振动筛以及料仓等组成。

整个工艺控制过程是,当炉顶发出要料信号,由放矿指针和放焦指针给出放矿或放焦指令,选中的矿仓或焦仓开始按设定的次序依次放料,当第一个被选中的料仓开始放料时,程序发出料头信号,当最后一个被选中的料仓放空料时,程序发出料尾信号。当料头和料尾在供矿皮带或供焦皮带上的延时走完时,发出料头和料尾在主皮带上的信号。当料头和料尾在主皮带上的延时走完时,发出料头和料尾在上料罐的信号,此时发出上料罐有料信号。当下料罐放完一批料发出料空信号时,打开均压放散阀对料罐卸压,随后开启上密封阀及上料闸,将上料罐中的炉料装入下料罐。装料完毕,关闭上料闸、上密封阀和均压放散阀,并向下料罐均压。探尺探料降至规定料线深度,提升到位后,打开下密封阀及下料闸,用下料闸的开度大小来控制料流速度,炉料由布料溜槽布入炉内。布料溜槽每布一批料,其起始角较前批料的起始角步进60度。整个过程的无限循环即完成高炉的装、布料动作。

2控制要求及时序

大高炉上料过程要求是一个连续不间断的动态过程,主皮带一直在转,矿仓和焦仓根据放料指针进行放料,主皮带上始终有一批料在运行,这样才能保证上料要求,不至于亏料线,影响高炉操作。上料罐和下料罐也要求始终有一批料,这样才能维持动态地平衡。此动态平衡过程是:下料罐放料的同时,发出放矿或放焦指令,开始放矿或放焦,矿或焦在皮带上运行,当下料罐放空料,上料罐中的料放到下料罐中时,焦头或矿头也刚好快要到达炉顶,当料尾到达炉顶时,延时2秒钟发出上料罐料满信号。此时主皮带上没有料还要发出放矿或放焦指令,以保证主皮带上始终有一批料的要求。然后再重复刚开始的过程,以保持一种动态的平衡。

维持此种动态平衡,关键在于放矿或放焦指令的发出,过早地发出放矿或放焦指令,炉顶动作还没有完毕,炉料已经到达炉顶,这会造成主皮带中途停车现象。过迟地发出放矿或放焦指令,上料速度赶不上,会造成亏料线的现象。合适的放矿或放焦指令的发出,是时序控制的关键。大多情况下,根据上料罐、下料罐以及皮带上是否有料来决定是否发出放矿或放焦指令,这三种条件的组合起来,比较繁琐,联锁条件多不好判断,不是发得过早就是发得过晚,有时还不能发出放料指令信号,造成无法上料的局面。

另外,在维持此种动态平衡的同时,还要满足刚开始投运的要求,此时上料罐、下料罐以及主皮带上都没有料,条件与动态平衡时的条件存在很大的差异,再按动态平衡时的条件来发出放料指令,会出现放重料,主皮带停车的事故。

怎样选择合适的控制时序,是大高炉上料的关键,是控制程序简炼、可靠的关键,2000级高炉建设中计数器的灵活应用,很好地满足了上述要求。

3计数器在控制过程中的应用

在安钢2000级高炉建设中,编程开发人员巧妙地运用了计数器来控制整个上料过程,使得整个上料过程运行稳定,故障率较低,而且简化了控制程序。其控制思路主要是计算总的放料次数,通过控制总的放料次数,以达到控制放料指令的目的。当在放矿或放焦状态时要加计数,当上料罐放料开到位时,减计数,控制总放料次数在0~2之间,当放料总次数小于1时,可以根据放料指针,直接放焦或放矿;当放料总次数等于1且皮带上的料已到达炉顶(靠料尾延时判断是否到达炉顶)时,根据放料指针判断放焦或放矿。这样便能很好地实现上料控制过程,皮带上以及上料罐始终是两批料。当下料罐空时,打开上密封阀以及上料闸,把上料罐中的料放到下料罐中,减计数器减1,总的放料次数等于1或0,再根据放料条件判断放焦或放矿。下面祥细阐述计数器控制上料时序的应用。

首先用加、减计数器计算放料总次数,计数条件为在放矿或放焦状态。放料总次数计算控制程序如图1所示:

图1

放料总次数计算控制程序

图1中,Table_put_c_state为放矿状态;Table_put_c_state为放焦状态;No_ind_Batches为放料总次数;BF_UP_VALVE_OPEN为上料闸开到位信号。

当放矿状态或放焦状态的上升沿来时使能加计数器,放料总次数加1;当上料闸开到位时使能减计数器,放料总次数减1。通过这两个计数器计算总的放料次数。

在信号故障以及程序出错时,有时放料总次数可能小于0或者大于2,此时要限定放料总次数,使其在0~2范围之间,再根据放料指针放焦或放矿。放料总次数限定控制程序如图2所示:

图2

放料总次数限定控制程序

放料总次数计算完毕,根据放料总次数以及放料指针控制放焦或者放矿。根据放料总次数可以分为三种情况,

1)当放料总次数小于1时,放料指针选中焦或选中矿时直接放焦或放矿;

2)当放料总次数等于1,且前一批料到达炉顶时,靠料尾延时是否走完判断是否到达炉顶,放料指针选中焦或选中矿时放焦或放矿;

3)当放料总次数等于2时,停止放料,等到满足前两种条件时再放焦或放矿。放焦控制程序如图3所示:

图3

放焦控制程序

图3中,No_ind_Batches为放料总次数;T_DELAY为料尾到达炉顶信号;料尾延时走完;C_WILL_PUT为放料指针选中焦;Table_put_c为放焦指令。

4应用效果

计数器在高炉上料控制过程中的灵活开发应用,满足了上料要求与控制时序,很好地维持了一种动态平衡。与罗列上料罐是否有料、下料罐是否有料、皮带上是否有料以及是否正在放焦或者正在放矿等多种条件来判断是否放焦或放矿相比较,有很大的区别。罗列条件的方法虽然简单,但复杂繁琐,不易懂,不易控制,不是重料就是该放料时不放料,造成亏料线等现象的发生。而采用加、减计数器计算放料总次数,根据放料总次数控制是否放焦或放矿,简单、易懂、控制逻辑严密。高炉投产以来,槽下上料系统运行稳定、可靠,在设备正常运行条件下,没有发生过重料、赶不上料,亏料线等现象。此方法值得在同类型高炉上借鉴推广。

参考文献:

程序开发 5

关键字:计算机,工程应用,程序,开发

计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。通常,计算机程序要经过编译和链� 未经编译就可运行的程序通常称之为脚本程序。

为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。目前中国国内的计算机语言应用认证主要有微软的MCSD、IBM以及SUN的SCJP,常用计算机语言主要包括C、C++、Java、Cobal、Fortran、Pascal等等,但除了Java可广泛应用于不同平台,其他语言都受到操作平台类型的限制,使编程工作复杂化,重复编程工作人员的劳动,降低了效率。因此Java也就越来越多地受到重视,被广大计算机工作者接受。特别是其基于internet的操作性,更使其方便地在网络上传播应用,加之其执行速度比其他开发语言要快,更适应现代经济发展的需要。我们可以乐观地预计Java不久将成为世界上最普及的计算机程序开发语言。编写一个程序去生成另外一个程序的过程被称之为原编程(Metaprogramming)。它可以被应用于让程序根据给定数据生成代码。单一一个程序可能不足以表示给定数据的所有方面。让一个程序去分析这个数据并生成新的程序去处理数据所有的方面可能会容易一些。Lisp就是一例支持这种编程模式的程序语言。

在神经网络里储存的权重是一种数据。正是这些权重数据,跟网路的拓扑结构一起,定义了网络的行为。人们通常很难界定这些数据到底表示什么或者它们是否可以由程序来代替。这个例子以及跟人工智能相关的其它一些问题进一步考验程序和数据的区别。

编写程序是以下步骤的一个往复过程:编写新的源代码,测试、分析和提高新编写的代码以找出语法和语义错误。从事这种工作的人叫做程序设计员。由于计算机的飞速发展,编程的要求和种类也日趋多样,由此产生了不同种类的程序设计员,每一种都有更细致的分工和任务。软件工程师和系统分析员就是两个例子。现在,编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。

因此,如今程序设计员可以指某一领域的编程专家,也可以泛指软件公司里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理,用以监督项目进度和完成日期。大型软件通常经历由系统设计师的掌握的一个长时间的设计阶段,然后才交付给开发人员。牛仔式的编程(未经详细设计)是不为人所齿的。

两种当今常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发表意见,而由其中的某一个人协调不同意见。这样的项目组通常有10个左右的成员,这样做是为了便于管理。第二种开发方式是结对开发。在生活中,你通常只知道「喔!原来这网站是用Java写的、「喔!原来这是手机的JavaGame。若自技术层次拆解,JavaTechnology可简单区分为Java程序语言(language)与Java平台(platform)。

Java程序语言所指是撰写程序所需的语法与词汇,像学习中、英文,有一套基本的单字与语法,只要利用单字组出符合语法的句子,这就是Java程序的基础。

至于Java平台,如大家熟知的,Java共分三大平台:J2ME、J2SE和J2EE,分别专精于嵌入式行动平台、标准平台和企业应用平台,除了共同的类别函式库(API)之外,每个平台也有其特定的API,供程序设计师们开发使用。

随着开发工具陆续推出,降低了Java开发技术门坎,要写出正确无误的Java程序不是太难的事情,但论及系统性的Java软件开发,那可就不是一件轻松事。开发大型项目有三项非常重要的因素,将会影响整个项目的进度与质量,分别是人(people)、流程(process)与技术(technology)。

这三个要素是环环相扣的,任何一项要素的成败都会影响另外两个要素,与相关开发人员的素质,这不是一项简单容易的任务,但有好的方法可以完成。真正困难的不是Java程序语言或是API的使用,而是整个对象导向程序设计的概念。也标榜与Java有着类似的对象导向架构,除执行平台不同、API的名称不同,本质与Java可以算是孪生兄妹,在渐进式的开发过程中,透过不断的提炼(refine),可趁早发现问题且找出解决方法,也确保每一工作项目的进度。不过,在架构(Architecture)方面,RUP确实着墨较少,而架构优劣也是足以影响软件系统成败的关键因素。

QoS(QualityofService)或是SLR(ServiceLevelRequirement),我想是每个系统最基本的要求,它包含可用性(Availability)、可管理(Manageability)、可信赖(Reliability)、可扩充(Scalability)和安全性(Security)等条件。

程序开发 6

关键词:WDM模型,驱动编程,PCIE,WinDDK

1.引言

PCI Express是第三代I/O总线技术,早在2001年的春季,由英特尔公司提出,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成。它采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的优势众多,数据传输速率高,2010年,PCIE3.0协议,数据传输速率带宽达到10GB/S,PCI Express设备能够支持热拔插以及热交换特性,支持的三种电压分别为+3.3V、3.3Vaux以及+12V。考虑到显卡功耗的日益上涨,PCI Express而后在规范中改善了直接从插槽中取电的功率限制,同时,其在兼容性方面,在软件层面上,能无缝兼容PCI总线设备产品。

基于PCIE总线在各个方面的优势众多,从推出至今,被广泛的接受和应用,市场上大多数新系列的以太网卡,PCIE显卡和PCIE声卡,都摒弃传统的PCI总线技术,采用优点更多的PCIE总线协议技术,针对这种大的背景趋势,开发者结合具体的实例系统工程,详细探讨说明基于WDM的PCIE设备驱动开发技术。

2.设备驱动程序

设备驱动程序是连接应用程序、硬件以及操作系统的桥梁,是硬件设备连接到计算机系统的软件接口。Windows xp操作系统,为了提高系统的稳定性,将windows程序分为两类,用户态和内核态程序,执行在用户态的程序不能直接调用系统底层的物理地址,所有操作必须在用户态内存地址空间中,内核态程序,能访问到内核态内存地址,即能访问系统物理设备映射在系统内部的物理地址空间,设备驱动程序属于内核态程序。

2.1概念

设备驱动程序(Device Driver)是操作系统内核的重要组成部分,运行在操作系统的内核态,属于操作系统的信任部分,驱动程序能工作在32位和64位下,用来控制和管理计算机物理设备的可执行二进制代码,在windows XP系列操作系统中,驱动程序文件扩展名为。SYS。现在的驱动程序遵循内核模式驱动程序框架规范(WDM),与windows 98能绕过驱动程序访问硬件特性不同,Xp必须通过设备驱动程序访问硬件,基于WDM内核驱动程序框架规范的驱动程序,能很好的支持设备的即插即用功能。

2.2WDM的基本原理

WDM(Windows Driver Model)值得是windows驱动模型,目前大部分计算机设备驱动程序都采用WDM驱动框架规范,动态构造WDM驱动程序堆栈是实现即插即用设备支持的关键,WDM属于一个分层型驱动模型框架,分为设备对象堆栈结构,和设备驱动程序结构,设备驱动分为功能驱动层和总线驱动层,总线驱动层为总线上发现的设备创建物理设备对象PDO,功能驱动层为设备驱动创建自己的功能设备对象FDO,用户太的应用程序通过API发送IRP数据包,和驱动进行交互,然后驱动将用户请求的数据,以IRP数据包格式返回给连接的用户应用程序。内核模式的WDM驱动程序有着可移植性,可配置性,即插即用等特点。

3.基于PCIE接口的嵌入式系统

笔者结合一个实际基于PCIE接口的嵌入式系统例子详细说明基于WDM的PCIE设备驱动开发过程,主要介绍如何实现该系统的PCIE设备驱动程序,对于系统的其他设计功能模块在此不做说明。

3.1基于PCIE接口的嵌入式系统结构

基于WDM,和PCIE接口的众多优势,开发PCIE设备已成为一种趋势,笔者提出开发完成了基于PCIE接口的嵌入式系统。所以,主机通过系统驱动与PCIE2SATA芯片通讯,对挂载在PCIE外接卡上的SATA硬盘发送标准的ATA指令,从而实现嵌入式系统的存储系统。

3.2基于WDM的PCIE设备驱动程序实现

由于系统的驱动完成了很多命令功能,篇幅有限,笔者特别截选了PCIE驱动实现中最具有代表性的驱动命令字的实现细节,即PCIE驱动动态获取PCIE外接卡中的物理寄存器的分配地址和类型。

该解析过程是根据PICE3.0协议规定,PCIE硬件接口必须实现三类物理资源寄存器,一类是case CmResourceTypePort,IO端口寄存器,二类是case CmResourceTypeMemory,内存地址寄存器,三类是case CmResourceTypeInterrupt,中断寄存器地址。在前面的函数获取的数据资源中,通过枚举解析,基于WDM的PCIE设备驱动程序就能动态的获取PCIE卡上的资源端口物理地址,驱动程序之后通过操作这些物理端口地址,就能实现完全控制PCIE外接卡的目的,最终驱动程序就能实现应用程序与外接卡的通讯连接桥梁功能作用。

4.系统调试运行

基于WDM驱动程序在visual stdio2008环境下编译连接的命令配置十分复杂,笔者的开发调试环境是,windows XP系统,基于visual stdio2008环境下的windows DDk驱动开发包,按照参数表设置完编译配置命令参数,编译后得到扩展名为。SYS的设备驱动二进制执行代码文件,在应用程序中,CreateFile驱动文件,获取驱动句柄成功后,调用DeviceIoControl函数发送命令字,与驱动通讯,笔者开发的系统调试运行图,运行结果正确,达到了预计设计效果。

5.总结

笔者通过探讨PCIE以及WDM的原理,优势,分析得出开发PCIE设备驱动的趋势,有与篇幅有限,文中给出了基于WDM的PCIE设备驱动程序的部分代码实现,笔者通过一个实际的PCIE嵌入式系统问例子,详细描述了基于WDM的PCIE设备驱动程序的开发流程和方法,基于PCIE设备驱动编译通用方式的繁杂,最后在编译调试章节给出了在visual stdio2008环境中编译参数设置表,笔者最终通过实验得出,该设计的正确性和可行性,为以后的PCIE设备驱动开发者提供了可行的借鉴,对于驱动开发领域有积极促进作用。(作者单位:武汉纺织大学数学与计算机学院)

参考文献:

[1]李平等,Windows2000内核模式驱动程序设计[J],计算机应用技术,2003.

[2]杨龙等,USB设备驱动程序的设计与开发[J],装备指挥学院学报,2003.

程序开发 7

计算机程序语言,顾名思义,是指计算机用于识别和执行程序员操作的指令的集合,主要是依赖二进制码表示。从语言的逼到形式上来看,计算机程序语言系统化强,对于指令的辨识有一定的程序性。作为一套用来描述和实现计算过程的人工语言符号系统,计算机程序语言具有规则化、迅速化和系统化的特点,可直接执行人工指令,灵活易识记。而从技术的角度来看,计算机程序语言作为人与计算机通讯的必要工具,它在贮存某一对象的信息的同时,也在将此信息传递给下一个指定对象,并对其的进一步行动作出指令。计算机程序语言通常都能够对客观世界予以抽象的描述和解决,直观性好,占用空间少,而这些解决方法,常常是一个通用的符号集合,即计算机程序语言。用户在使用计算机程序语言的同时,也在通过程序语言的执行把有待解决的问题进行处理和翻译,并形成相应的解决办法以进行下一步的操作。作为一种形式化的语言,计算机程序语言不但克服了常规机器语言难以理解、难以读写且容易出错的缺点,还具有比一般的人工语言更大的精确性与适应性,同时还因其含有巨大的信息量而具有广泛的用途和重大意义。人门在使用这种程序化的人工语言符号系统的过程中,可以有效地将有待解决的复杂的问题转而形式化为助记符号进行进一步的运算,从而大大解放了人工劳动了,更释放了空间,同时又使原来很多不能实现的东西得到了解决,并由此推动了科学的发展。但计算机要真正理解程序化语言,必须要有相应的硬件与软件做支持,才能进行高效的运算和编程。

2计算机程序语言的结构

一般来说,计算机程序语言在整体结构上主要包括高层语言和低层语言两个层次,以及四个基础部分,包括:1)基本字符集。基本字符集是一个系统支持的所有抽象字符的集合,这些抽象字符可以包括各国家文字、标点符号、图形符号、数字等,具有紧凑性和可观察性的特点。作为专门的人工语言符号,基本字符集是计算机计算值任何一种程序化的语言得以顺利运行的基础。2)语法规则。如果说基本字符集是基石,语法规则就是钢筋,包括词法规则和语法规则两大主要部分。词法规则描述主要负责从基本字符集到形成独立的单词,而语法规则主要负责由单词构成语句、程序等更大的语法单位。3)语义规则。有了钢筋就要有水泥,语义规则充当的就是这个角色,它主要用来给出单词、句子及更大语祛单位以确切的含义。4)语用规则,主要用来研究相应语言的实现问题。

3计算机程序语言解析

3.1计算机汇编语言

对于计算机出现语言而言,最为根本的就是计算机汇编语言。作为最初应用于计算机程序中的一种基础语言,一般情况下将其叫做低等级或低层的语言类别。由于本身是针对机器而言的,所以计算机语言中的汇编语言能耗费的系统空间非常有限,同时,其还必须具有更为便利的优势。尽管优势多多,历史久远,但低层计算机程序语言这一语言存在的不足也极为显著的,尤其是其在移动性能上存在一定的缺陷,极易出现系统的故障,并最终导致系统运作高效性无法实现的情况。

3.2计算机高级语言

通常情况下,计算机所接受和执行的计算机程序语言即我们所称的高级语言,比如BASIC、PASCAL、C、COBOL、FORTRAN等。然而计算机并不能直接地接受和执行用高级语言编写的源程序,必须通过对高级源程序的翻译才能进行下一步的操作。计算机只有配备了相应的高级语言的编译或解释程序,才能识别和执行上行的指令。常规传统的计算机高级语言需要在软件技术开发和计算机进行运算操作的时候,依赖另外的编译程序,这就使计算及高级语言相较于计算机汇编程序语言来讲,在程序规划设计的时候要求极为细致,而太过细致则往往会导致不能实现对象的集成工作。

4计算机程序语言的发展

计算机程序语言的发展受着多种因素的影响与制约,表面上看,其发展直接受到计算机硬件、软件不断改善进步的推动,而归根结底,计算机程序语言的变革是受到社会生产、科学研究和社会生活需要的推动的,离开了生活和社会生产的计算机程序语言,将一无所值。19世纪到20世纪中叶可以看做计算机程序语言发展的第一阶段,也就是机器语言和汇编语言阶段,这一阶段内出现了世界上第一台计算机和世界上第一个程序员,� 随着二十世纪四十年代时第一台电子数字计算机的诞生,现代程序语言也正式面世。若果说机器语言是机器的指令代码,那么汇编语言则是机器语言的符号化,电脑操作程序员需要做的就是通过各种语言程序对机器的内存单元和工作和工作单元添加一组硬件指令,但此时指令和其操作的存贮单元之间是没有直接的对应关系的。

5基于计算机高级语言的软件开发分析

随着计算机程序语言的不断发展,其应用也越来越广泛,计算机高级程序语言的应用主要是针对软件开发而言。网页开发其实是相对较为简单同时也是应用较为广泛的一项技术运用案例,涉及比较综合性的代码开发技术,不论是了解客户需求、计算需求分析、软件开发设计都需要计算机程序语言的参与,且其在网络编程工作的每一步都体现着关键的应用价值。就软件开发来说,最为基础也是最为关键的就是计算机的程序语言的设计,完成这一环节,才能设计、开发出满足用户所需的功能作用,并最终完成计算机技术人性化应用的目的。

6结语

程序开发 8

1 绪论

1.1 研究背景

Android程序开发是当前很多高职院校软件相关专业的必开课程之一,自本课程开设以来,大多数院校长期采用的是基于PC端Android SDK+ADT+Eclipse(下文简称AAE)开发环境的经典教学模式,但在多年的实际教学中,这一经典模式也面临许多问题需要改进和解决。

本项目以四川省示范高职院校——泸州职业技术学院(下文简称泸职院)软件开发专业为蓝本,试图通过研究对Android程序开发课程进行完善。

1.2 问题提出、分析和解决思路

Android程序开发主要存在以下实际问题急需解决:

问题一:学生可能没有电脑,尤其大一新生,也包括部分贫困生;

问题二:基于Eclipse环境的PC端模拟器运行效率低,对实验环境硬件要求高;

问题三:采用模拟器的方式学习体验明显不如真机直观;

问题四:在PC端学习较为枯燥,趣味性不足,难以调动学生积极性。

问题一其实是个严肃问题,教育是普适性的,问题一的客观存在无疑抬高了软件类专业对学生的经济或物质门槛,这与教育的初衷是背道而驰的。

问题二分为两个方面,Android官方的开发模拟器(见图1)运行效率低下让人印象深刻,不过还是有替代解决方案,比如采用著名的BlueStacks,或者天天模拟器等,都是不错的选择,但是替换一种模拟器仅仅是在软件模拟层面上有性能改善,对硬件的要求必然意味着教学成本的提高,让学生购买高性能计算机必然增加学生和家庭的经济负担,而学校自建专用机房也面临着技术更新快,硬件升级周期短资金压力大的问题。

图1 Android官方的开发模拟器

问题三和问题四可以归为同类问题,基于Eclipse经典环境下的模拟器直观性插,操作不便,程序调试体验糟糕是公认的事实,Android程序开发对于高职学生来说本身就具有较大难度,Eclipse那种过于经典严肃的工作界面,确实影响了很多学生的学习兴趣。

针对以上问题,泸职院迫切需要寻找到一种可以完善当前教学模式的技术手段和方法,一种在Android环境下运行的新型开发环境AIDE为此研究带来了契机和思路。

2 教学分析与设计

2.1 AIDE简介

AIDE,全称Adroid IDE(软件领域的IDE全称为Integrated Development Environment,集成开发环境,Eclipse就是PC端一种著名的IDE),是appfour GmbH出品的一款基于Android系统的Android应用程序开发环境,可以理解为运行在Android上的Eclipse。该环境安装包不足35M,跟总体积3G左右的AAE全包相比堪称袖珍,即便在Android上也只能算体积中下的软件。

2.2 AIDE引入教学的优点

AIDE安装极其简单,就跟普通apk一样,没有任何特殊之处,也无需额外配置,打开即能使用,较之AAE繁杂的配置,简化至极。

AIDE兼容性好,谷歌公司最新推出的Android6.0也能获得良好支持,同时几乎支持目前所有市面在售Android手机,目前Android手机在学生群体中的普及率接近100%,也就是学生不需要额外增加设备,性能方面也无需多虑,1G RAM的设备就可以较为流畅的调试程序,而当前知名品牌2G RAM手机最低价位在500元以内,

AIDE自带Android开发的一体化教程,由易到难,逐步推进,每个教程都有文字说明和案例代码,学生如同完成填空题一般即可完成相应学习,值得一提的是,每个案例都是可以实时运行的,因为它本身就是一个货真价实的IDE。它还自带错误提示和评分机制,帮助学生了解自己的掌握情况。

AIDE支持API文档的导入和查看,具备不输于Eclipse的项目向导和代码提示功能,调试和运行程序都是在Android设备真机环境下完成,运行效率高,体验好。

AIDE支持Eclipse项目的导入,这为没有计算机的学生完成课外作业带来了可能。

当然,能够在自己的手机上开发程序并能马上看到效果,本身就是非常有趣的一件事,AIDE无疑可以充分调动学生爱玩手机的积极性,为原本枯燥的专业学习增加极大的趣味性。

综上可以看出,基于AIDE实施Android程序开发课程教学,可以很好地解决本文开篇所提的四个问题。

2.3 以AIDE为载体的教学设计

AIDE究竟能否胜任教学工作呢?教学团队在教学中做了相关尝试,这里以Android程序开发课程中的部分典型环节为例进行说明。

APP的创建,如图2:

APP的运行,如图3:

APP界面设计器的使用,如图4:

Android程序开发课程要点繁多,限于篇幅,这里不能一一列举展示,但是可以看出,基于AIDE对该课程进行补充延伸是可行的。

3 教学效果评定

为了量化说明,教学团队用2个月时间对泸职院软件开发专业2014级100名在校生做了对比调查,结果如表1:

从表1可以看出,AIDE的引入使得部分原本没有PC机的学生也具备了课后可以学习的软硬件环境,课后作业的按时完成率有了保障,同时大幅度提升了学生的学习兴趣,降低了学生主观感知的学习难度,由于把原本显得枯燥的程序开发变成了一种更具娱乐色彩的方式,很多学生把AIDE中的案例课程当做闯关游戏来完成,还相互比较完成速度和得分,形成了良性竞争的学习风气,课后主动学习研究相关技术的学生比例也明显增长。基于AIDE的教学设计取得了良好效果。

4 结束语

经过多年的发展,Android程序开发课程在各院校已趋于成熟,但是由于相关技术更新非常快,各院校在教学实施过程中也面临着诸多具体问题。

本文突破传统的程序开发课程教学拘泥于PC环境的限制,大胆尝试引入基于Android环境下的AIDE开发环境进行教学创新,降低了学生的入门门槛,大大提升了学生的学习热情和主动性,还解决了以往未能解决的一些现实问题,取得了较好的成效。

不过也要看到,AIDE并非万能,其操作不够便捷、开发效率低下以及不是行业技术主流等局限性也是明显的,为了让学生跟行业主流相融,PC端经典技术的教学不可废弃,AIDE则可

程序开发 9

Web应用程序既不是一个真正意义上的Web网站。也不是一个传统的应用程序,它是Web网页和用来完成某些功能的其他资源的一个集合,是在B/S结构中构建的基于浏览器的服务器端程序。对Web应用程序的开发,实际上也就是对客户端程序和服务端程序的开发。

1 客户端程序开发。通过浏览器在客户端展现的是信息内容。而HTML语言则是信息展现的有效载体,此外,还有XML语言。HTML语言关心的是信息的表现形式,而XML语言关心的是信息本身的格式和数据内容。通过XSLT标准,可将XML信息转换为HTML等不同的信息展现形式,最终在浏览器中执行和显示。为了提高开发人员对信息展现格式的控制能力,可采用CSS技术,CSS技术可以在浏览器的支持下,使页面获得更好的展现效果。动态交互的HTML页面实现方法有多种,DTHML技术无需启动Java虚拟机或其他脚本环境,就能获得更高的执行效率,而Javastop技术需启动Java虚拟机,但能获得更好的动态效果。除此之外,还有Applets技术,它是处在服务器端的可以被浏览器下载并在浏览器上运行的Java小应用程序,像网易的聊天室采用的就是这一种方式,当然这还必须有与此相应的服务器端程序。

2 服务器程序开发。到目前为止,服务器端程序根据运行时的具体情况,动态生成HTML页面的技术有CGI、PHP、ASP、JSP、ASP,NET等。每一种都有它的特点及擅长的地方,开发人员要根据需求和具体情况来定哪一种系统环境和开发技术。开发人员对于相似编程语言或范例的熟悉程度同样可以作为选择的因素。没有完美的方法和个人实际情况可以表明哪种技术是最佳选择。CGI是公共网关接口,是定义Web服务器、浏览器和应用程序之间的相互操作中共同遵守的规则集。CGI程序的最大特点是可以用C、C++、Pascal等任何一种语言编制,可运行在任何一种平台上,只要它符合CGI的规范即可,且大多是经过编译后的可执行程序,运行速度快,开销小,安全性高。PHP是一种开放源代码服务器端的HTML嵌入式的脚本描述语言,它将HTML代码和PHP指 在保持了与Perl相当能力的前提下。大大加强了对数据库的操作能力。丰富的数据库操作函数,可以进行当前几乎所有的数据库操作。使用PHP语言创建基于数据库的网页将是一件极其简单的事情。更为重要的一点是,PHP语言可以在当前几乎所有的平台上运行,这就决定了使用PHP语言编写的程序可以方便地进行系统之间的移植。

SP是微软公司推出的一种来取代CGI的技术,它是基于IIS的开放式的服务器端脚本环境,使用ASP可以很好地将HTML、脚本命令和组件融合在一起,集简单性、高效性和易扩展性于一体。它使开发人员可以使用几乎所有工具来组合HTML代码,这些脚本可以利用本地服务器或远程服务器上运行的组件来存取数据库、应用程序或处理信息。因此开发简单、功能强大。对于ASP。可以便捷地使用Acfivex组件来执行复杂的任务,只要安装了符合Activex脚本标准的相应脚本引擎,就可以在ASP页中使用任何一种脚本语言。通过创建自己的Acfivex组件,可以将应用程序中的商业逻辑封装到能够从脚本、其他组件或从其他程序中调用的模块。ASP由于使用了COM组件所以它变得十分强大。但是,这样的强大由于Windows NT系统最初的设计问题而引发大量的安全问题。同时。无法实现跨操作系统的应用,它只能工作在Windows环境下。

JSP是由Sun公司在Java语言上开发出来的一种动态网页制作技术,该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。在传统的网页HTML页面中加入Java程序式段和JSP标记,就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页等,这就是建立动态网站所需要的功能。JSP技术可以将网页中的动态部分和静态的HTML相分离,这有助于程序开发人员和页面设计人员同时展开工作而互不干扰。同时也保护了作者的源代码。JSP页面采用可重用的组件,这种基于组件的方法加速了总体开发过程。

二、性能及安全

程序开发 10

CAM软件有优越性。采用模块程序,则可以扩展机床的数控功能,以高度的柔性,减少了工作量,提高了工作效率。

【关键词】数控;模块化程序;开发意义

随着现代制造技术的发展和数控机床的日益普及,数控加工技术在我国得到了广泛的应用,其中相当比例的数控铣及加工中心都应用在模具行业。由于模具加工的特殊性,各种CAD/CAM软件的应用由来已久,且日趋成熟。从规模大的各种行业到那些仅有1~2台数控铣加工中心的数控“加工店”,随处可见UG、MasterCAM、Cimatron、PowerMILL、Solidworks

CAM等世界知名CAD/CAM软件的身影。在CAD/CAM软件普及应用的今天,手工编程的应用日趋偏小,似乎数控界有一种说法很流行“手工编程没有啥用了,自动编程又快又方便”,对此本人不敢苟同。好的手工编程,不仅可以满足一般的零件产品加工要求,而且也可以根据特定的零件编写模块化程序。对于这一系列的零件只需要更改零件的几何特征参数,一个模块化程序就可以完成编程,有着“一劳永益”的功能。

模块化程序是基于数控编程里的在一种高级形式,也就是我们常说的宏程序。宏程序的编制是手工编程里的核心,并且能够方便工人编程 ,锻炼工人的编程能力,帮助工人深入的了解自动编程的本质。模块化程序的设计与质量与编程人员的素质息息相关,程序里应用了大量的编程技巧,例如数学模型的建立、数学表达式的表达、加工刀具的选择、走刀方式的取舍等,这些使得宏程序的精度很高。特别是对于中等复杂难度的零件使用宏程序进行编程加工要比自动编程加工的快得多,程序的短小且简练。在实际工作中,模块化程序的应用也非常广泛,基于HNC-21M数控系统的开放式结构下,我们用户可以根据自己的特定产品,开发一些列实用的数控加工模块化程序,在调用时就会很方便,省去很多编程辅助时间,例如,在2008年全国数控大赛里应用到的模块化程序就非常方便,在大赛中为选手节约了不少编程时间,从而发挥了相当大的作用。我们来看看当初的一个应用模块:

N边形,含分层功能,可加工直/斜轮廓面,如图1。格式:G99/G98 G101 X Y A B C I R W Z Q K D F 。参数说明:N边形,含分层功能,可加工直/斜轮廓面;X/Y:中心坐标,绝对坐标,省略为坐标原点;I:-I外接圆半径/I内切圆半径;R:圆角半径,如R=I,加工圆锥面;A:附加旋转角,假定第一边与X轴正向垂直,附加角根据该边实际方位确定;B:边数;C:-1外轮廓/1内轮廓;D:刀具半径,负D表示球刀;K沿锥面进刀长度,-K向上进刀,+K向下进刀;Q:锥面倾斜角度;W/Z:起始/终止Z坐标(绝对坐标)。W=Z时,仅在Z深度走一刀。分层加工完毕抬到至Z5,单层加工完毕,如指定G99,为不抬刀,指定G98,抬到至Z5。

这只是一个模块的解释说明,这些参数根据我们实际加工的零件图来设置参数即可,在应用过程中支需要像调用数控铣床上那些固定循环G代码一样方便。当然不是随便一台数控机床就这样可以用的,前提是我们编程人员要将这些参数以及相互关系利用数控语言编写成模块程序,存储在机床内部,外界只需要来调用即可,例:内正六边形R30内切圆,无圆角,Z0至-6,直径为10的立铣刀,倾角45°,旋转15°。则程序为:G99G101 I30 A15 B6 C1 R0 K1 Q45 D5 W0 Z-6F1000。内正六边形R30内切圆,R4圆角,Z0至-6,直径为10的球头铣刀,倾角45°,旋转15°。则程序为:G99G101 I30 A15 B6 C1 R4 K1

Q45 D-5 W0 Z-6F800。好的模块化程序开发包含着很多技术要点,比如说,刀具的切入与切出设计,程序中容错处理,参数意义的定义以及参数自动检测报错处理等,这些在我们的模块化程序中都是可以实现的,当然这对于我们的编程人员的水平要求也很高,不仅需要过硬的实际加工经验,和工艺安排经验,同时具备一定的专业英语能力和较强的逻辑思维能力。

在铣床或加工中心上经常需要铣削螺纹,利用机床的的螺旋线进给功能来编制一个模块程序,不同大小的螺纹,用户只需要改相应的参数即可完成,也就是相当于在数控系统上重新加了一个螺纹铣削功能,而且还可 参数说明(如图2):X/Y:孔(圆柱)中心坐标(绝对坐标);I:孔(圆柱)半径;D:刀具半径;K:螺旋线导程,+K向下,-K向上;W/Z螺旋线起始/终止坐标(绝对坐标),W/Z之差应为导程整数倍;A:A=2,3螺旋线用G2/G3走刀;B:B=1孔底铣平,B=0孔底不走平;C:-1外轮廓/1内轮廓;F:走刀速度。

程序开发 11

公司名称:

公司名称:

(以下称甲方)

(以下称乙方)

址:

址:

人:

人:

编:

编:

联系电话:

联系电话:

一、总则

甲、乙双方经友好协商,本着平等、自愿、诚实、互惠互利的原则,就

“微信小程序开发”

项目合作达成如下协议:

甲方委托乙方进行微信小程序开发,甲方向乙方支付技术开发费用。

二、双方权利与义务

2.1甲方权利义务

1.

甲方须配合乙方提供申请微信小程序的相关材料。如已有微信公众号,须向乙方完成提供公众号资料信息

2.

小程序内的客户信息资源归甲方所有,乙方不得擅自将甲方客户信息透露给第三方或者用于其他用途。

3.

甲方不得通过微信平台违法违规的内容。

2.2乙方权利义务

1.

甲方委托乙方进行微信小程序的申请开通以及相关技术开发。

2.

乙方开发的微信小程序具有以下功能和相关服务:

主要功能:

广告轮播、商品分类、上下架后台管理、订单及支付、库存管理、客服功能、数据分析、底部导航、个人中心、购物车、优惠券、会员、积分、折扣、权限管理、云服务等

服务内容:

(1)乙方负责微信小程序开发

(2)

乙方负责解决程序运行过程中出现的问题,项目运行的服务器和相关网络服务由乙方提供,乙方保证网站的顺利运行。

(3)

乙方可代甲方进行商品更新与维护,后期定制功能板块开发以另行约定协议为准。

三、项目所含费用说明

1.

首次程序开发费用

2.

微信认证费(首年及以后每年的微信认证续费,300元/年,由微信收取)

3.

服务器及维护费用(次年开始收取,1000元/年)

4.

若需商品更新服务,费用根据更新量大小再行商定

四、付费方式

甲方支付乙方微信平台技术开发费用人民币

元(

元整),第二年开始甲方每年支付乙方服务器及网络费用每年人民币

元(

元/年)。

五、付款方式:

1.

本协议约定价格为含税价格。

2.

付款方式:

l

合同签订5个工作日内,甲方向乙方支付合同总价的70%,即

元(

元整)。

l

剩余款项在乙方完成开发并交付给甲方后5个工作日内支付。

l

第二年开始的服务器及网络费用,于之后每年的

日前支付。

六、协议的生效

1、本协议自双方签字并盖章之日起生效。

2、本协议之修改须经双方以书面形式签署方为有效。其未尽事宜由各方在友好协商的基础上,另行订立补充协议,补充协议与本协议具有同等的法律效力。

3、本协议正本一式二份,甲乙双方各执一份,具有同等的法律效力。

七、协议的解除和争议解决

1、在协议履行过程中,发生以下情形之一,一方可在7日内书面通知对方解除协议:

(1)因对方违约使协议不能继续履行或没有必要继续履行,因一方违约致使无法实现协议目的;

(2)由于电信运营商的原因或不可抗力致使本协议不能继续履行或没有履行的必要的;

(3)经双方协商一致同意的。

2、本协议及其附件或补充协议应当适用中华人民共和国的法律。在履行协议过程中发生的一切争议,双方友好协商解决;协商不成的,应提交原告所在地人民法院进行诉讼。

甲方盖章:

联系人:

日期:

乙方盖章:

联系人:

日期:

微信小程序开发合同

方:

方:

人:

人:

联系电话:

联系电话:

址:

址:

本合同除合同编号、文本空格、双方签章信息外,其余内容均为印刷字体。手写部分(包括但不限于添加、删除、修改)无效,不具备法律效力。委托人甲方与受托人XX网络科技有限公司(以下简称“乙方”)双方本着平等互利、友好协商的原则,依据《中华人民共和国合同法》等法律规定,就甲方授权乙方开发微信小程序事宜的达成如下协议。

第一条、服务内容:

1、微信小程序:

项目开发服务

微信小程序主体

数量

开发周期

单价

微信小程序普通版

微信小程序高级版

微信小程序名称

费用总计:

元整

元整

付款方式:

汇款

现金

支票

付款时间:合同签订之日起付款后合同生效

注:

自第二年开始每年收取380元维护费用用于功能升级和维护,服务费采用自愿续费原则,如不续费不影响原有功能终身使用。

备注

第二条

、甲方的权利和义务:

1、甲方有权享有本合同备注项目下的服务。

2、合同期满后甲方有权自主进行选择服务商,乙方应提供必要的协助。

3、甲方应该如实向乙方提供所需之相关信息(包括但不限于本合同填写之信息)凡因相关信息不真实,不准确等原因导致乙方无法或不能妥善履行本合同义务的,因此产生的一切后果由甲方负责。

4、甲方应当遵守相关法律及本合同项下服务内容相关的各项服务费用规定,甲方应保证本合同项下服务过程中甲方通过小程序传递信息的真实性、准确性、合法性和合理性;不能使用小程序开发服务从事任何违反法律及国家利益的事务;若乙方发现甲方有上述违约或违规行为,乙方有权选择立即暂停或终止微信小程序服务,并有权不承担任何责任的单方解除本合同,甲方还应当给乙方适当的赔偿。

5、甲方应妥善保管小程序相关账号和密码,非因乙方原因造成甲方账号和密码泄露,被他人盗用等所产生的损失,乙方不承担任何责任。

第三条

、乙方的权利和义务:

1、乙方为甲方提供小程序开发服务、技术支持及服务器。

2、未经甲方书面同意,乙方不得随意更改甲方提供的资料,乙方应对甲方的相关信息保密(司法机关或行政机关根据其权限调查除外)。

3、乙方负责在产品设计功能范围内解决甲方在小程序内容制作过程中遇到的技术问题。

4、乙方在维护管理服务器时,或由于乙方网站平台改版、升级、更新等,必要时可短时间中断服务。

第四条、验收标准:

1、甲方应以电话、传真以及电子邮件提供运营结果。

2、运营结果达到到约定效果即为验收合格。

3、乙方需及时填写验收确认信息。

4、验收期限为三天,如果乙方超过验收期未验收,甲方将视为验收满意。

5、甲方完成验收后以合同提供的联系方式及时联系乙方。

第五条

、违约责任:

1、因甲方违反本合同的约定造成乙方收到相关部门处罚或者对任何第三方产生不良后果的,甲方应当赔偿因此给乙方造成的损失,并追究甲方其他的法律责任。

2、若乙方违反合同约定,甲方有权单方面终止合同,并要求乙方退回未履约的相应费用,并追究乙方的其他法律责任。

3、任何一方因不可抗力,致使对方受到重要经济损失,或导致本合同不能履行或不能完全履行时,受不可抗力影响的一方对另一方的损失不承担违约责任,本合同所指不可抗力,是指不能避免,不能实现的客观要求,包括但不仅限于地震、洪水等自然灾害、战争及政府行为、突发性公共事实等。

4、任何一方违反本合同约定的,应赔偿守约方因对方违约造成的全部损失,守约方有权解除本合同。

5、本合同履行过程中若发生争议,双方应友好协商解决,协商不成的,经双方同意后可将争议提交到仲裁委员会。

第六条、收款账户信息:

名:

开户行:

账号:

甲方(盖章):

乙方(盖章):

代表签字:

代表签字:

期:

一键复制全文保存为WORD
相关文章