首页

> 学术期刊知识库

首页 学术期刊知识库 问题

程序设计论文范文

发布时间:

程序设计论文范文

建议去百度文库找一下,有很多关于计算机毕业设计的文章。记得当时因为自己在实习,所以没有时间做,和同学一起找到的诚梦毕业设计,他们是专业做这个的,不管是毕业设计和论文,都是能做好,所以最后顺利毕业了。

计算机编程专业的同学们,大家毕业时,应该要书写一份专业论文。以下是我精心准备的浅谈宏程序编程论文,大家可以参考以下内容哦!

摘 要:随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛的应用,越来越多的人正在学习和使用数控编程。目前在我国的数控行业中,对于简单的二维加工编程,大多数人习惯使用手工编程(这里所指的手工编程实际是指普通程序编程),而对于曲面类的零件加工一般都是使用自动编程(此处所指的自动编程主要是指CAD/CAM软件自动编程)来实现的,而使用宏程序编程的人少之又少,甚至有人根本不知道。那么宏程序是什么呢?宏程序到底有什么作用呢?本文就此问题进行讨论。

关键词:普通程序编程 宏程序编程 CAD/CAM软件编程

1 数控编程的种类和概念

数控编程一般分为两类:即手工编程和CAD/CAM自动编程,采用哪种编程方法应根据具体的零件加工形状的难易程度而定。

手工编程

手工编程就是从分析零件图样、确定加工工艺过程、数值计算、编写零件加工程序单、程序输入数控系统到程序校验都由人工完成。手工编程又可分为普通程序编程和宏程序编程。所谓普通程序编程,其实是相对于宏程序编程而言的,它是大多数人经常使用的手工编程方法,这种编程方法是使用ISO代码或其它标准代码指令编程,每个代码的功能是固定的,由系统生产厂家开发,使用者只需也只能按照规定编程,所有的参数坐标都是事先定好的。但有时候这些固定格式的指令不能满足用户灵活的需求,如图1所示的孔系,如果加工时孔的数量、分布直径等随时依据情况变化时,使用固定坐标的程序显然不够灵活。因此,数控系统提供了用户宏程序,使编程更具灵活性。

CAD/CAM自动编程

CAD/CAM自动编程也叫计算机辅助数控编程,它是以待加工零件CAD模型为基础的一种集加工工艺规划及数控编程为一体的自动编程方法。它的编程过程是借助于自动编程软件,在电脑上进行零件加工建模,选择机床和刀具,确定刀具运动方式、切削加工参数,自动生成刀具轨迹和程序代码。最后经过后置处理,按照所使用机床规定的文件格式生成加工程序。通过串行通信的方式,将加工程序传送到数控机床的数控单元。目前主要自动编程软件有UG、Cimatron、MasterCAM、CATIA、CAXA等。

2 宏程序编程和普通程序编程的比较

程序比较

用户宏程序和普通程序存在一定的区别,表1是它们的简要对比。

功能比较

普通程序编程对于较简单的二维加工具有灵活、方便、快捷的优点,但对于某些二维加工却显得臃长,如用数控铣床加工图2所示的平底圆槽,假设现有铣刀为Φ16,由外向里加工,行距为12 mm,只加工一层2 mm深,下面按FANUC0i系统分别用普通程序和宏程序进行编程。

普通程序编程如下:

00001 M03S800

Z5

G01Z-2F40 G02I-52F200

G01X40 G02I-40

G01X28 G02I-28

G01X16 G02I-16

G01X4 G02I-4

G00Z100 M30

宏程序编程如下:

00002 G01X#1F200

M03S800 G02I[-#1]

G54G90G00X52Y0Z100 #1=#1-12

Z5 END 1

G01Z-2F40 G00Z100.

#1=52 M30

WHILE[#1 GT 6] DO 1

由上面可以看出,宏程序编程要比普通程序编程显得简洁、灵活,因为若随着加工圆槽的半径变大、刀具半径变小,普通程序编程的程序会越来越长,修改也很不方便,而宏程序编程的程序不会变长,只要改变几个相应的参数,或把这几个参数也设为变量将更加简便。

另外,对于一些有规律的可以用公式表达的曲线或曲面,普通程序编程是望尘莫及的,而宏程序编程更显出其独特的优势。如图3所示的椭圆槽加工,普通程序编程难以完成,而用宏程序编程则较容易。

假设现有铣刀为Φ8,由外向里加工,行距为6 mm,只加工一层2 mm深,下面按FANUC0i系统用宏程序进行编程。

宏程序编程: WHILE[#1 LE 360]DO 1

O0003 #4=#2*COS[#1]

M03S800 #5=#2*SIN[#1]

G54G90G00X36Y0Z100 G01X#4 Y#5F200

Z10 #1=#1+1

G01Z-2F40 END 1

#2=36 #2=#2-6

#3=26 #3=#3-6

WHILE[#3GE 0]DO 2 END 2

G01X#2F200 G00 Z100

#1=0 M30

3 宏程序编程的特点

宏程序编程的最大特点,就是将有规律的形状或尺寸用最短的程序表示出来,具有极好的易读性和易修改性,编写出的程序非常简洁,逻辑严密,通用性极强,而且机床在执行此类程序时,较执行CAD/CAM软件生成的程序更加快捷,反应更迅速。

宏程序具有灵活性、通用性和智能性等特点,例如对于规则曲面的编程来说,使用CAD/CAM软件编程一般都具有工作量大,程序庞大,加工参数不易修改等缺点,只要任何一样加工参数发生变化,再智能的软件也要根据变化后的加工参数重新计算道刀具轨迹,尽管计算速度非常快,但始终是个比较麻烦的过程。而宏程序则注重把机床功能参数与编程语言结合,而且灵活的参数设置也使机床具有最佳的工作性能,同时也给予操作工人极大的自由调整空间。 从模块化加工的角度看,宏程序最具有模块化的思想和资质条件,编程人员只需要根据零件几何信息和不同的数学模型即可完成相应的模块化加工程序设计,应用时只需要把零件信息、加工参数等输入到相应模块的调用语句中,就能使编程人员从繁琐的、大量重复性的编程工作中解脱出来,有一劳永逸的效果。

另外,由于宏程序基本上包含了所有的加工信息(如所使用刀具的几何尺寸信息等),而且非常简明、直观,通过简单地存储和调用,就可以很方便地重现当时的加工状态,给周期性的生产特别是不定期的间隔式生产带来了极大的便利。

4 宏程序和CAD/CAM软件生成程序的加工性能比较

任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都比较短,一般很少超过60行,至多不过2KB。

一方面,宏程序天生短小精悍,即使是最廉价的数控系统,其内部程序存储空间也会有10KB左右,完全容纳得下任何复杂的宏程序,因此不像CAD/CAM软件那样需考虑机床与外部电脑的传输速度对实际加工速度的影响问题。

另一方面,为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令和圆弧插补G02/G03指令等。因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,且运算速度极快,再加上伺服电机和机床的迅速响应,使得加工效率极高。

而对于CAD/CAM软件生成的程序,情况要复杂得多。

再举一个简单的例子,如用铣刀以螺旋方式加工内圆孔,使用宏程序不仅非常简短,而且机床实际运行时,执行进给速度F=2000 mm/min都可以保持非常均匀、快速的螺旋运动;而在Cimatron软件中,即使通过使用外部用户功能生成相似的刀具轨迹,但刀具轨迹是根据给定的误差值用G01逐段逼近实现的,其程序就比宏程序大两个数量级,而且即使把整个程序都存入到机床的控制系统中,当机床运行时的实际速度上不去,进给速度小于600 mm/min时还不明显,如果F设定为1000 mm/min左右,就可以看到机床在明显的“颤抖”。

5 结语

综上所述,宏程序能简化二维编程中普通程序编程的繁琐问题,能解决二维编程中普通程序编程不能解决的有规律的曲线和曲面编程问题。另外,在加工有规律的曲面时,宏程序能克服CAD/CAM软件编程所无法避免的加工问题。所以,宏程序编程具有普通程序编程和CAD/CAM软件编程无法替代的作用。

参考文献

[1] 陈海舟.数控铣削加工宏程序及其应用实例.

[2] 谢晓红.数控车削编程与加工技术.

[3] 张英伟.数控铣削编程与加工技术.

摘 要:网络发展的早期,人们更多地强调网络的方便性和可用性,而忽略了网络的安全性。当网络仅仅用来传送一般性信息的时候,当网络的覆盖面积仅仅限于一幢大楼、一个校园的时候,安全问题并没有突出地表现出来。但是,当在网络上运行关键性的如银行业务等,当企业的主要业务运行在网络上,当政府部门的活动正日益网络化的时候,计算机网络安全就成为一个不容忽视的问题。

随着技术的发展,网络克服了地理上的限制,把分布在一个地区、一个国家,甚至全球的分支机构联系起来。它们使用公共的传输信道传递敏感的业务信息,通过一定的方式可以直接或间接地使用某个机构的私有网络。组织和部门的私有网络也因业务需要不可避免地与外部公众网直接或间接地联系起来,以上因素使得网络运行环境更加复杂、分布地域更加广泛、用途更加多样化,从而造成网络的可控制性急剧降低,安全性变差。

随着组织和部门对网络依赖性的增强,一个相对较小的网络也突出地表现出一定的安全问题,尤其是当组织的部门的网络就要面对来自外部网络的各种安全威胁,即使是网络自身利益没有明确的安全要求,也可能由于被攻击者利用而带来不必要的法律纠纷。网络黑客的攻击、网络病毒的泛滥和各种网络业务的安全要求已经构成了对网络安全的迫切需求。

本文对现有网络安全的威胁以及表现形式做了分析与比较,特别对为加强安全应采取的应对措施做了较深入讨论,并描述了本研究领域的未来发展走向。

关键词 网络安全;信息网络;网络技术;安全性

一、绪论

课题背景

随着计算机网络技术的飞速发展,信息网络已经成为社会发展的重要保证。信息网络涉及到国家的政府、军事、文教等诸多领域,存储、传输和处理的许多信息是政府宏观调控决策、商业经济信息、银行资金转账、股票证券、能源资源数据、科研数据等重要的信息。其中有很多是敏感信息,甚至是国家机密,所以难免会吸引来自世界各地的各种人为攻击(例如信息泄漏、信息窃取、数据篡改、数据删添、计算机病毒等)。

通常利用计算机犯罪很难留下犯罪证据,这也大大刺激了计算机高技术犯罪案件的发生。计算机犯罪率的迅速增加,使各国的计算机系统特别是网络系统面临着很大的威胁,并成为严重的社会问题之一,从而构成了对网络安全的迫切需求。

计算机网络安全威胁及表现形式

计算机网络具有组成形式多样性、终端分布广泛性、网络的开放性和互联性等特征,这使得网络容易受到来自黑客、恶意软件、病毒木马、钓鱼网站等的攻击。

常见的计算机网络安全威胁

(1) 信息泄露

信息被透漏给非授权的实体。它破坏了系统的保密性。能够导致信息泄露的威胁有网络监听、业务流分析、电磁、射频截获、人员的有意或无意、媒体清理、漏洞利用、授权侵弛、物理侵入、病毒、术马、后门、流氓软件、网络钓鱼等。

(2) 完整性破坏

通过漏洞利用、物理侵犯、授权侵犯、病毒、木马、漏洞等方式文现。

(3) 拒绝服务攻击

对信息或资源可以合法地访问,却被非法地拒绝或者推迟与时间密切相关的操作。

(4) 网络滥用

合法用户滥用网络,引入不必要的安全威胁,包括非法外联、非法内联、移动风险、设备滥用、业务滥用。

常见的计算机网络安全威胁的表现形式

(1) 自然灾害

计算机信息系统仅仅是一个智能的机器,易受自然灾害及环境(温度、湿度、振动、冲击、污染)的影响。目前,我们不少计算机房并没有防震、防火、防水、避雷、防电磁泄露或干扰等措施,接地系统也疏于周到考虑,抵御自然灾害和意外事故的能力较差。日常工作中因断电而设备损坏、数据丢失的现象时有发生。由于噪音和电磁辐射,导致网络信噪比下降,误码率增加,信息的安全性、完整性和可用性受到威胁。

(2) 网络软件的漏洞和“后门”

网络软件不可能是百分之百的无缺陷和无漏洞的,然而,这些漏洞和缺陷恰恰是黑客进行攻击的首选目标,曾经出现过的黑客攻入网络内部的事件,这些事件的大部分就是因为安全措施不完善所招致的苦果。另外,软件的“后门”都是软件公司的设计编程人员为了自便而设置的,一般不为外人所知,一旦“后门”洞开,其造成的后果将不堪设想。

(3) 黑客的威胁和攻击

这是计算机网络所面临的最大威胁。黑客攻击手段可分为非破坏性攻击和破坏性攻击两类。非破坏性攻击一般是为了扰乱系统的运行,并不盗窃系统资料,通常采用拒绝服务攻击或信息炸弹;破坏性攻击是以侵入他人电脑系统、盗窃系统保密信息、破坏目标系统的数据为目的。黑客们常用的攻击手段有获取口令、电子邮件攻击、特洛伊木马攻击、钓鱼网站的欺技术和寻找系统漏洞等。

(4) 垃圾邮件和间谍软件

一些人利用电子邮件地址的“公开性”和系统的“可广播性”进行商业、宗教、政治等活动,把自己的电子邮件强行“推入”别人的电子邮箱,强迫他人接受垃圾邮件。与计算机病毒不同,间谍软件的主要目的不在于对系统造成破坏,而是窃取系统或是用户信息。

(5) 计算机犯罪

计算机犯罪,通常是利用窃取口令等手段非法侵入计算机信息系统,传播有害信息,恶意破坏计算机系统,实施贪污、盗窃、和金融犯罪等活动。在一个开放的网络环境中,大量信息在网上流动,这为不法分子提供了攻击目标。他们利用不同的攻击手段,获得访问或修改在网中流动的敏感信息,闯入用户或政府部门的计算机系统,进行窥视、窃取、篡改数据。不受时间、地点、条件限制的网络,其“低成本和高收益”又在一定程度上刺激了犯罪的增长。使得针对计算机信息系统的犯罪活动日益增多。

(8) 计算机病毒

20世纪90年代,出现了曾引起世界性恐慌的“计算机病毒”,其蔓延范围广,增长速度惊人,损失难以估计。它像灰色的幽灵将自己附在其他程序上,在这些程序运行时进入到系统中进行扩散。计算机感染上病毒后,轻则使系统工作效率下降,重则造成系统死机或毁坏,使部分文件或全部数据丢失,甚至造成计算机主板等部件的损坏。

二、网络信息安全防范策略

防火墙技术

防火墙,是网络安全的屏障,配置防火墙是实现网络安全最基本、最经济、最有效的安全措施之一。防火墙是指位于计算机和它所连接的网络之间的硬件或软件,也可以位于两个或多个网络之间,比如局域网和互联网之间,网络之间的所有数据流都经过防火墙。通过防火墙可以对网络之间的通讯进行扫描,关闭不安全的端口,阻止外来的DoS攻击,封锁特洛伊木马等,以保证网络和计算机的安全。一般的防火墙都可以达到以下目的:一是可以限制他人进入内部网络,过滤掉不安全服务和非法用户;二是防止入侵者接近你的防御设施;三是限定用户访问特殊站点;四是为监视Internet安全,提供方便。

数据加密技术

加密就是通过一种方式使信息变得混乱,从而使未被授权的人看不懂它。主要存在两种主要的加密类型:私匙加密和公匙加密。

私匙加密

私匙加密又称对称密匙加密,因为用来加密信息的密匙就是解密信息所使用的密匙。私匙加密为信息提供了进一步的紧密性,它不提供认证,因为使用该密匙的任何人都可以创建加密一条有效的消息。这种加密方法的优点是速度很快,很容易在硬件和软件中实现。

公匙加密

公匙加密比私匙加密出现得晚,私匙加密使用同一个密匙加密和解密,而公匙加密使用两个密匙,一个用于加密信息,另一个用于解密信息。公匙加密系统的缺点是它们通常是计算密集的,因而比私匙加密系统的速度慢得多,不过若将两者结合起来,就可以得到一个更复杂的系统。

访问控制

访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和非常访问。访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。适当的访问控制能够阻止未经允许的用户有意或无意地获取数据。访问控制的手段包括用户识别代码、口令、登录控制、资源授权、授权核查、 日志和审计。它是维护网络安全,保护网络资源的主要手段,也是对付黑客的关键手段。

防御病毒技术

随着计算机技术的不断发展,计算机病毒变得越来越复杂和高级,对计算机信息系统构成极大的威胁。在病毒防范中普遍使用的防病毒软件,从功能上可以分为网络防病毒软件和单机防病毒软件两大类。单机防病毒软件一般安装在单台PC机上,即对本地和本地工作站连接的远程资源采用分析扫描的方式检测、清除病毒。网络防病毒软件则主要注重网络防病毒,一旦病毒入侵网络或者从网络向其他资源传染,网络防病毒软件会立刻检测到并加以删除。病毒的侵入必将对系统资源构成威胁,因此用户要做到“先防后除”。很多病毒是通过传输介质传播的,因此用户一定要注意病毒的介质传播。在日常使用计算机的过程中,应该养成定期查杀病毒的习惯。用户要安装正版的杀毒软件和防火墙,并随时升级为最新版本。还要及时更新windows操作系统的安装补丁,做到不登录不明网站等等。

安全技术走向

我国信息网络安全研究历经了通信保密、数据保护两个阶段,正在进入网络信息安全研究阶段,现已开发研制出防火墙、安全路由器、安全网关、黑客入侵检测、系统脆弱性扫描软件等。但因信息网络安全领域是一个综合、交错的学科领域,它综合了利用数学、物理、生化信息技术和计算机技术的诸多学科的长期积累和最新发展成果,提出系统的、完整的和协同的解决信息网络安全的方案,目前应从安全体系结构、安全协议、现代密码理论、信息分析和监控以及信息安全系统五个方面开展研究,各部分相互协同形成有机整体。

由于计算机运算速度的不断提高,各种密码算法面临着新的密码体制,如量子密码、DNA密码、混沌理论等密码新技术正处于探索之中。因此网络安全技术在21世纪将成为信息网络发展的关键技术

三、结 论

总的来说,网络安全不仅仅是技术问题,同时也是一个安全管理问题。我们必须综合考虑安全因素,制定合理的目标、技术方案和相关的配套法规等。世界上不存在绝对安全的网络系统,随着计算机网络技术的进一步发展,网络安全防护技术也必然随着网络应用的发展而不断发展。

参考文献

1、 葛秀慧.计算机网络安全管理[M ].北京:清华大学出版社,2008.

2、 张琳,黄仙姣.浅谈网络安全技术[J].电脑知识与技术,2006, (11).

软件技术与硬件技术相比较,其发展的空间更为广阔、应用的领域更为广泛,因此计算机软件技术得到了关注和发展。下面是我为大家整理的计算机软件技术毕业论文,供大家参考。

摘要:目前,高职软件技术专业的教学改革势在必行,本文介绍了问题研究的必要性和Moodle平台的功能,探讨了基于Moodle平台进行混合式教学的教学过程。

关键词:Moodle平台;混合式教学模式

1概述

目前,高职学院主流的教学主体为教师的教学模式早已不能满足社会对人才的需求。这要求我们积极进行教学改革开展以学生为主体的教学模式的探索。混合式教学模式是教育信息化发展而出现的一种新教学模式。其意义在于将学生在网络上的自主学习和传统课堂上的教学相融合,是多种教学方式、学习方式和教学媒体的整合。因此,基于Moodle平台的高职软件技术专业混合式教育模式研究具有十分重要的意义。

2Moodle平台简介

Moodle是一个开源课程管理系统(CMS),是一个免费开放源代码的软件,以社会建构主义为其主要的理论基础。Moodle是ModularObject-OrientedDynamicLearningEnvironment的缩写,即模块化面向对象的动态学习环境。在基于Moodle平台的教学活动中,教师和学生都是主体,彼此相互协作,共同建构知识。Moodle平台有主要三个方面的功能:课程管理、学习管理和系统管理,其中课程管理包括课程教学组织、教学资源组织、学生学习活动组织、学生评价组织等管理;学习管理包括:记录学习情况、下载学习资源、开展协作活动、测验与作用等;系统管理包括系统模块管理、课程管理、模块管理、用户管理和系统参数设置。Moodle平台有系统管理员、教师和学生三种用户角色。其中,系统管理员主要负责搭建Moodle平台的软硬件环境,可分为课程管理员和网站管理员。课程管理员负责课程的创建和管理,网站管理员负责对Moodle平台进行配置和维护。教师角色中的主讲教师和辅导教师是按照权限不同来分的。主讲教师可以组织教学活动,建设教学资源,进行日常教学管理。可以为学生分组,添加或注销学生,可以授权辅导教师,可以设置课程“密钥”。辅导教师不能参与课程设计,只能组织学生的管理成绩、课外讨论、查看日志等,在日常教学过程中监督学生的学习活动。在指定教师时,如果不特定教师编辑权限,该教师就默认为辅导教师。学生角色可以在线学习网络课程资源,参加在线测试,在线进行讨论,并将自己的学习历程以及学习心得写在自己的博客上。学生可以建立一个在线档案,包括照片和个人描述。

3基于Moodle平台的高职软件技术专业混合式教学模式的教学过程设计

混合式教学是指融合不同的教学模式和不同的应用方式来进行教学的一种策略,它结合了课堂教学和网络教学的优势。下面以《Java程序设计》这门课程为例来介绍如何基于Moodle平台进行混合式教学模式的教学过程设计。

混合式教学模式的教学资源设计

教学资源是混合式教学模式的基本保障,主要指与所授课程相关的教学材料,包括课程的教案、课程的课件、实训指导、教学大纲、复习题、拓展资料等。随着慕课的兴起,在《Java程序设计》课程的教学资源设计中,教师可将课程的教学内容制作成慕课放在Moodle平台上供学生课余时间观看。既方便了课堂上未听懂的学生进一步学习,也为基础好的学生提供了预习的资源,增强了学生对知识的掌握程度。

混合式教学模式的教学课程内容设计

《Java程序设计》课程的操作性强,采用任务驱动的教学方式能督促学生课前预习、课后复习,提高动手能力,从而激发学习的兴趣。下面以《Java程序设计》中《类和对象实现》一节为例,说明教学内容的设计。

教学目标

知识目标

①类与对象概念与特征、属性和方法;②类与对象的关系;③定义类的语法;④创建类的对象,使用对象的步骤。

能力目标

①运用面向对象程序设计思想分析类和对象特征;②会创建和使用类和对象。a教学任务“人”是社会主体,日常生活中要想描述一个人主要包括姓名、年龄、性别、体重、家庭地址等信息。任务要求在计算机中使用Java语言对“人类”进行描述,并用Java代码实现,最后打印出人的信息。b实训任务第一,编写一个电脑类,属性包括品牌、型号,方法为显示电脑信息,并测试类;第二,编写一个手机类,属性包括手机品牌、手机型号,方法为显示手机信息,并测试类。

混合式教学模式的课堂教学活动设计

课堂教学活动设计是混合式教学模式的关键。Moodle为教师和学生的互动提供了很好的平台,学生可以针对教学内容展开讨论或者提出问题,也可以发表自己的心得体会。教师可以在教学过程中设置测试来及时检验学生的学习效果,还可以创建一些趣味性话题,鼓励学生参与并给予加分奖励,同时还要在Moodle平台中跟踪学生的发言,并及时给出反馈。下面以《Java程序设计》中《类和对象实现》一节为例,说明教学活动的设计。课前:将教学课件上传至Moodle平台,供学生预习。课中:①(10分钟)利用Moodle平台中的“测验”功能,针对上创建一套试题来考查学生对上节课知识的掌握情况。②(30分钟)利用课件和案例演示讲解本次课知识点。③(35分钟)布置并指导学生完成实训任务。④(15分钟)总结并布置作业。课后:创建讨论话题,鼓励学生积极参与。

4总结

基于Moodle平台的混合式教学模式,能够激发学生学习的兴趣,提高学生的自主学习能力,营造良好的学习环境。同时也存在一些问题,可根据每个学校的需求,进行二次开发,增加功能,更好地为教学服务。

参考文献:

[1]李明,胡春春.基于Moodle平台的“合作—探究”式网络教学平台研究[J].吉林省教育学院学报,2011(3).

[2]熊小梅.基于Moodle平台的网络课程设计及应用[J].教育与职业,2014(02).

[3]唐春玲,蔡茜,张曼.基于Moodle平台的远程教育的实践与研究[J].网友世界,2014(5).

[4]赵俞凌,鲁超.基于Edmodo平台的高职写作课程混合式教学设计[J].金华职业技术学院学报,2015(1).

【摘要】近年来,在社会经济快速发展的同时,一定程度上带动了科学技术的进步。而在此过程中,智能手机与个人电脑得到了发展,并且逐渐融入到人们日常的生产生活当中,被广泛地应用。其中,在智能操作系统当中,安卓操作系统占据重要地位,并且其开放性相对明显,这样一来,智能手机与个人电脑应用的优势就更大。由此可见,在安卓操作系统的基础上开发软件具有重要的现实意义。本文对安卓操作系统的开发平台进行了全面分析,并重点阐述了在安卓操作系统基础上的应用软件开发。

【关键词】安卓操作系统;应用软件;开发;分析

众所周知,信息技术在其自身的发展过程中,电子产品的丰富性与多样性充分地展现出来,并且使得人们生活方式有所改变,一定程度上为人们日常生产与生活带来了便利。正是因为安卓操作系统自身独特的开放性特征,使其同电子设备实现了有效地沟通,并且始终能够满足用户不同需求。现阶段,安卓手机已经被广泛使用,并且已经普及,在此背景下,使人们开始重视其便携性问题,希望能够时刻进行操作,所以,在安卓操作系统的基础上,应该积极开发出相应的应用软件,这是当前安卓操作系统工作领域中亟待解决的问题。

1安卓操作系统开发平台

在安卓操作系统平台中,其主要的构成部分就是应用软件、中间件以及用户界面和操作系统,给予平台各层分离有力的支撑与保障,使得各层中间都能够保证分工的明确性[1]。通常情况下,安卓操作系统中的应用程序框架可以有效地提供API,同时还能够合理地设计出其自身特有的功能模块,这样一来,还可以实现为其他应用程序提供有价值的使用依据。在安卓操作系统当中,其最核心的应用程序就是联系人、网络浏览器、日历、SMS应用程序以及电子邮件等等。在编写并设计应用程序的过程中,开发工作人员需要对Java语言进行充分地利用,这样才能够确保系统程序和开发程序所包含的资源实现共享。在此基础上,安卓操作系统还能够向组件提供相应的C/C++库集合,然而,开发工作人员不能够对其进行直接调用,一定要根据上层的应用程序框来实现C/C++库的应用[2]。通常情况下,安卓操作系统库的构成内容是媒体库、FreeType、界面管理和SQLite等多种系统。

2基于安卓操作系统应用软件开发的重要意义

随着科技发展与人们生活水平的提升,始终对个人电脑与智能手机在社会经济当中的发展情况产生影响。现阶段,我国智能手机市场始终处于爆炸式增长的趋势,而截至到2013年,智能手机的普及率也迅速上升,将近2/3的国民都已经拥有智能手机[3]。然而,国民拥有智能手机的技术水平也处于上升的阶段,其中,智能手机终端CPU处理能力以及存储和用户交互等方面的能力都出现了明显的提高,以上内容也同样是智能手机关键性的指标,所以,一定程度上对于安卓操作系统应用软件的开发工作提供了有力的硬件基础。基于安卓操作系统的应用软件开发能够保证使用者手中安卓智能操作系统同社会各行业经济发展过程中所使用的电子设备实现有效连接,进而能够为使用者提供更具特色与专业化的服务。若安卓智能操作系统应用软件能够得到广泛地应用,必然会为人们的生产与生活带来便利与实用价值,进而更方便人们的工作与生活。

3安卓操作系统概述

安卓发展史

安卓股份有限公司位于美国加州,公司成立于2003年,并在2005年被谷歌所收购。谷歌公司的主要目标就是要创建标准化与开放化的安卓系统移动客户端平台[4]。同其他智能手机的操作系统相比,安卓操作系统的开放性更加明显,并且能够在其实际运行的过程中始终处于开放状态,同时还能够同其他电子设备实现数据链接,在此基础上,更好地实现高级操作。安卓系统是智能手机当中的一种智能操作系统,所以,其更新的速度相对较快,当前最新版本已经是(M)操作系统

安卓开发平台结构与特征

(1)应用程序层。

智能手机操作系统中的安卓系统,其自身就能够为智能手机的运行提供相应的应用软件,而且,其基本的应用软件都是操作系统本身所配置的,主要的表现形式就是系统应用[5]。然而,在智能手机实际运行的过程当中,这些应用软件同其他的应用软件共同享受同等资源的支配权利。

(2)应用程序框架。

在智能手机操作系统当中的安卓操作系统,本身明显的特征就是能够支持使用者的软件运行,但是,需要基于应用程序框架。而且在安卓智能操作系统当中,各应用软件都能够设计出特有功能模块,只要保证功能的设置与应用程序框架的具体需求相吻合,就能够获取安卓系统有力的支持,最终同其他的功能模块实现信息的交互。

(3)内核设置。

安卓系统是基于发展起来的,所以,该系统的核心就已经集成了Linux的绝大多数特点[6]。而且,其中主要部分就涉及到安卓系统安全认证及网络协议栈等等内容。但是,也正是这种智能集成,使得安卓系统得到了全面发展,也确保该系统实现了层叠式体制结构的构建,积极地提高了安卓系统实际运行的效率。

安卓应用系统基本组件

(1)应用表示层。

在应用软件实际运行的过程中,该组件能够有效地保证应用软件系统同用户的交流,并且在运行时,表示代码需要以特定形式表现,这样能够合理地缓解了系统内部设置的压力。

(2)无可示界面。

该组件同应用表示层的地位同等,都是单独安卓组件,但是最主要的差异就在于,该徐建使用者根本不能够在系统后台运行,而且不能够看到实际的运行状态[7]。同时,由于无可示界面自身的设计特征,无需同用户信息交互,但是却始终为其提供服务,因此,也可以将其当作无形用户界面。

(3)接收广播通知组件。

该组件同事件监听器相似,属于事件推送机制,而在其内部,将安卓应用当中的其他组件作为事件来源信息来进行推送,这就是该组件具体的服务内容。

(4)安卓开发环境搭建。

安卓智能操作系统是开放型的操作平台,所以,在安卓操作系统基础上所开发设计的应用软件,仅对系统原有安卓系统加装系统开发软件即可,这样就能够实现安卓系统应用软件开发。

4Java多线程编程

要想实现Java多线程,就需要积极地运用Thread类子类,使用覆盖方法,即run()[8]。把所要执行代码添加至上述方法当中。但是,这种实现方法存在自身不足,如果该类已经继承另一类,那么就无法对该类继续继承。其次,可以建立Java程序接口,利用该接口用户命令信息能够通过运行命令的方式重新编写命令,并且在重写以后沿数据接口能够直接送至电子设备命令执行阶段,进而有效地提升电子设备命令执行的效率。

5基于安卓操作系统手机遥控PPT播放软件的开发

实用性分析

由于PPT演示实际应用简单,并且图文并茂,所以,在报告或者是会议当中被广泛使用,是一种信息展示的有效形式。然而,传统PPT的展示需要会议的主持人员或者是演说者使用鼠标对PPT的文件播放进行控制。这种方法在实际的应用过程中,为了确保PPT资料的展示具有一定的匹配性,所以,演讲者与会议的主持者始终在电脑旁边,这样就会影响到演讲者个人发挥。在科技快速发展的背景下,激光笔代替原有鼠标,对演讲者来说是一种解放。然而,在PPT书写与绘画要求方面并未得到满足,因此,导致控制方式与演示需求间存在一定的供需矛盾,所以,必须要设计出能够脱离鼠标的一种演讲方式。正因为安卓智能手机系统具有一定的开放性,并且,其处理器的效率较高,所以,大尺寸高分辨率的屏幕都能够在手机中显示并书写。

系统设计

这种PPT播放软件通常被使用在个人电脑中,其架构与系统相吻合,可以被划分为两部分:①客户端;②服务器端。客户端就是在用户电脑中所运行的PPT程序,然而,服务器端则是网络架构服务器的一种链接形式[9]。在此范围内,客户端可以利用网络通信以及其服务器来实现通信。由于这种应用软件相对成熟,所以,其架构与操作系统都十分完善,可以同其他电子信息系统实现链接,并且实际的开发环境十分优秀。设计应用软件的时候,可以将其分成服务器的子系统与终端的子系统。在PPT应用软件当中,服务器端子系统的应用是一种有效地改进,并且被集中于软件系服务器端,可以在服务器端加装自己设计的手机遥控PPT播放软件服务器端。这种方法能够保证PPT系统当中的服务器端同移动终端子系统实现命令信息交互,并且实现移动终端子系统更好地控制手机遥控PPT播放软件。服务器的子系统,其主要的任务就是实现终端PPT文件发送的接收与解析,并且接受终端的控制命令等等。而移动终端的子系统,其主要的工作内容就是发出系统运行命令,同时需要对服务器子系统反馈PPT页面信息予以接受。另外,还应该不断强化移动终端的子系统,使其画板功能更丰富,确保其在手机遥控该软件的过程中,能够有效地下达命令,确保使用者能够以多种方式操控PPT展示。

软件测试与运行结果的展示

完成手机遥控PPT播放软件的编程设计工作后,必须要对其实际的运行状态予以检测,进而确保该软软件具有一定的实用性,同时,还需对其设计效果予以客观地评价。文章对手机遥控PPT播放软件及PPT的展示能力进行了实际检测,并且真实地验证了该软件的功能与效果。在实际的测试过程中,以不同移动数据终端同手机遥控PPT播放软件的服务器子系统实现链接,并且在测试的过程中确保软件自身链接的安全,在移动数据终端处输入相对复杂的信息内容,并且,该软件仍然可以在电脑的页面中快速反应出智能手机具体的指令信息内容。由此可见,站在客观的角度上来看,手机遥控PPT播放软件的设计是成功的,同时也证明了在安卓系统基础上开发应用软件的可行性,实际所开发的应用软件是具有现实应用意义的。

6结束语

综上所述,在智能手机发展和更新的背景下,很多人开始意识到随身通信工具的重要作用,所以对于智能手机更加重视。因为智能手机内置处理器处理能力极强,并且应用程序相对丰富与多样,因此,在人们的日常生产生活当中被广泛应用。当前,安卓操作系统是智能手机重要的操作平台,并给在市场中占据较大份额,所以对于社会发展具有积极地推动作用。由此可见,在安卓操作系统基础上开发应用软件并及时进行更新具有重要的积极作用。

参考文献

[1]杨潇亮.基于安卓操作系统的应用软件开发[J].电子制作,2014(19):45~46.

[2]饶润润.基于安卓操作系统的应用软件开发[D].西安电子科技大学,2013.

[3]王子榕.浅谈基于安卓操作系统的应用软件开发[J].通讯世界,2015(14):220.

[4]李帅.浅论基于安卓操作系统的应用程序开发[J].电子制作,2015(2):87.

[5]乔頔.Android系统应用软件3D界面的设计和开发[D].中国人民大学,2012.

[6]朱婷婷.基于Android平台的PKM软件的研究与设计[D].浙江师范大学,2012.

[7]尚忠阳.一种基于安卓手机的定位服务应用软件的设计与实现[D].北京邮电大学,2014.

[8]伍贤珍.基于Android平台的智能电话应用软件模块设计与开发[D].哈尔滨工业大学,2013.

免费查阅文献的刊物,你可以看看(计算机科学与应用)等等这些

程序设计论文

vb程序设计论文

在社会的各个领域,大家都跟论文打过交道吧,论文的类型很多,包括学年论文、毕业论文、学位论文、科技论文、成果论文等。如何写一篇有思想、有文采的论文呢?下面是我为大家收集的vb程序设计论文,希望能够帮助到大家。

Visual Basic(简称VB)是目前使用最广泛的一种程序设计语言,是在Basic语言的基础上发展起来的,它继承了Basic语言简单易用的优点,结合了可视化界面的设计方法,采用面向对象、事件驱动的编程机制,把Windows编程复杂性进行巧妙封装,使开发Windows环境下的各种应用软件变得更为容易。因此,目前国内很多高校都选择将《VB程序设计》这门课程作为理工科专业的一门基础课程。程序设计具有知识结构严谨、逻辑性强的特点,学生学习起来比较困难,教学效果也不尽如人意。如何提高本课程的教学质量和教学效果,是每位授课教师都会关注的课题。

1教学中存在的问题

就VB程序设计这门课程的教学现状而言,通常采用的还是以课本原有知识体系为脉络的传统讲授法,教学内容大多以线性方式展开,同时结合上机实践操作来巩固和熟悉课堂上所讲的每一章节的知识点。经过教学实践证明,这种教学模式能够让学生掌握Visual Basic的较多的理论知识,也可以阅读程序代码,但是让学生自己解决一些问题的时候,通常都会束手无策。经过分析总结出此课程在教学中存在的问题:

一是教学内容与教学目标不一致。VB程序设计课程的教学目标是培养学生程序设计的基本知识、思维方式以及基本的操作技能,而教师在实际授课时,大多单纯依照教材讲授理论基础知识,授课基本上是以语言自身的知识体系为脉络展开,过分注重语句、语法和结构的讲解,忽视对学生分析与解决问题能力的引导,不能很好的将编程环境、程序设计语言、算法、数据结构以及程序设计思想关联起来形成体系化教学。[1]导致学生只学会了语法概念而不会使用,能够读懂某一条语句,却无法理解一段代码的含义。

二是实验内容过于简单。上机实验大多都是属于基础与验证型实验,偏重于VB语言的基本语法和结构的练习,能够帮助学生更好的理解和掌握这些语法知识,但无法培养学生编程能力和解决实际问题的能力。实验内容普遍都是知识点案例,针对的是具体的一个或多个知识点,没有依托完整的实践项目,使学生对知识点的学习感到枯燥无味,而且很容易遗忘。

三是学生缺乏计算机的思维方式。学生在接触这门课程之前通常没有任何基础,学生普遍缺乏相应的知识背景和算法思想,对程序设计的思维方式还不适应,分析和解决问题的能力处于一个较低的水平。在学习过程中经常会出现这种情况,教师对程序进行分析讲解时学生能够听懂理解,代码也能够读懂,但是让学生自己编写时,就无处下手,久而久之学生对编程充满畏惧感,对学习本门课程缺乏兴趣。

如何改变目前教学中存在的问题,让学生能够更好地掌握VB语言,掌握程序设计的基本方法?需要对课程的教学进行改革和创新。

2课程教学改革

拓展教学内容

本课程主要培养学生的程序设计思维方式和实际编程能力,而不是单纯的程序设计语言,因此必须打破固有的以“语法”和“结构”为中心的传统教学理念,以突出能力培养为主轴,围绕能力培养组织教学内容。教学内容的选择不能仅仅局限在一本教材上,要突破教材局限,将程序设计中所需要的众多知识点加以整合,包括VB语言的语法结构、可视化编程方法、常用的算法、数据结构以及程序的调试等,形成新的知识体系。在这里算法是程序设计的核心,而语言只是一种工具,在授课的过程中,特别是讲解实例时,需要剥开语言这层外壳,让学生掌握其中的精粹——算法,也就是如何利用计算机来解决某一具体问题。

当然,这并不是说语言不重要,语言是程序设计的工具,如果不掌握语言,程序设计就无从谈起。教材上的语法描述非常细致、系统,但大量的语法规则会使初学者感觉枯燥,这非常影响学生的学习兴趣。根据二八定律,在任何一组东西中,只有20%是最重要的,事实上VB语言也是如此,最常用、最重要的知识点并不是很多。因此在讲述语法时,只需提供给学生最基本的语法知识,其余的细枝末节可以由学生自学。

优化教学方法和教学策略

在程序设计的教学中,传统讲课方式的缺陷已众所周知,因为这是一种以教师为主、学生为辅的一种授课形式,讲课中教师是积极的而学生是消极的,很难把学生吸引到学习进程之中。但这不是意味着要把这种授课方式抛弃,讲课是把大量知识传递给学生的一种常用模式,尤其在本课程的教学中,学生缺乏普遍缺乏知识背景,大量的理论知识需要传递给学生,这就需要教师进行详细地讲解。在讲解时应该采用多种策略,比如在讲述抽象概念时最好与实践相关联,或者与学生已有的知识联系起来,这样比较容易理解。在提到函数和数据类型的.时候,可以跟学生比较熟悉的Excel中的相关概念关联起来。在讲述面向对象的概念时,可以拿Windows操作系统作为例子,它就是依照面向对象的思想编制而成的,在桌面上的每个图标,可以理解成一个对象,当需要启动某个对象时,只需用鼠标点击它(消息驱动)。[2]不仅如此,在不同的情境下还需要灵活运用多种教学方法,如问题法、引导法、任务驱动和实例教学法等,这样有助于让学生从消极的学习者转变为积极的学习者。

完善实验教学体系

VB程序设计是一门理论性和实验性都很强的课程,对实验环节有较高的要求。要学好这门课,学生只有经过大量的上机实验,才能掌握程序设计的技能和方法。因此,在教学过程中要给学生留出足够的上机时间,让学生在实验中理解VB语言的基本概念,掌握基本的编程方法。结合学生的专业方向,精心选择合适的案例、设计型与研究型课题,构建有助于培养学生动手能力和程序设计思维方式的实验教学平台。整个实验环节分为三个层次设计,基础验证型、设计开发型和研究创新型实验,每次实验课有多个基础验证型实验,帮助学生掌握相应的语法知识和算法设计,每一章精选1~2个设计开发型实验,与学生分析讨论解题思路,引导学生独立解决问题,培养学生的上机调试能力。学生以小组为单位,选择一个与其专业相关的研究题目,要求学生逐步完成研究分析与报告,写出个人的心得体会,并在学期末给出一定的时间完成课题。

创建项目实例库

充分利用网络资源,搜集各类完整的VB程序实例,从中选取典型的、有实际意义的实例,作为程序设计的模板提供给学生。大多数学生基本上是初次接触计算机程序设计,习惯采用数学思维方式来分析问题,还没有真正掌握计算机编程的基本思路。在实验过程中,遇到一个新的题目,学生往往不知道从何下手,思路不清晰,此时就可以从项目实例库找出对应的实例,通过借鉴或修改相应的模板得到结果。“熟读唐诗三百首,不会做诗也会吟”,经常阅读这些实例,能够拓展学生的视野,促进学生对于程序设计思想的理解与认识,提高学生的编程能力。

在具体实施上,整理出40~50个典型项目实例,将它们分为五大类:基础类、算法类、图形类、文本类和应用类,供学生自主学习,另外从中选取6~8个典型的项目实例,要求学生必须理解掌握,这些实例基本上包含了这门课程的知识要点,理解了这些实例,对于课程的知识结构会有一个全面的了解。其中,学生最喜欢也最有兴趣的实例就是弹球游戏,通过对弹球游戏程序代码的阅读分析,学生能够更好地掌握定时器控件和控件坐标等相关的知识,学生也很有兴趣地去改写程序代码,以获得类似的动画效果,可见好的实例能够激发学生的求知欲望,提高学生的学习积极性,培养学生分析问题和解决问题的能力。

3结束语

VB程序设计课程对于理论知识和实际操作均有较高要求,教学时需要综合运用多种教学方法和教学策略,充分调动学生的学习积极性和主动性,将教学重点放在算法的分析和编程的训练上,注重实验教学环节,加强对学生程序设计思维方式和实际编程能力的培养,提高课程的教学效果。

谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。了解一些基本知识一.C语言的背景就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点:1.兼备高级语言与低级语言的优点,属于一种中间语言。2.它是一种结构化程序设计语言,非常适合结构化程序设计。3.有较丰富的数据类型、运算符以及函数供以选用。4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。二.二大语系二种不同的学习方法其实高级程序语言分为两大语系。例如:C,C++(C语言的扩展),QBASIC,VB(BASIC的可视化),JAVAs cript,Js cript ,VBs cript,JAVA,ASP,FOXPRO,PERL等等。一路是以C为主的程序语言,例如:JAVAs cript,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如:FOXPRO,VBs cript等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。因此若是您以前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万不要把学习BASIC的方法以及思路用在C身上。讲到这里,我想大家对C语言一定有了感性认识吧!下面让我们再升华一下,全方位亲密接触它。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。亲密接触C语言一.输入输出C语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在C语言中,我们必须要彻底了解它。由于篇幅有限,因此笔者不能详谈,有兴趣的朋友可以参考由著名程序语言教授谭浩强先生主编,由清华大学出版社出版的《C程序设计第二版》。不过这里笔者还是有几点要简单的谈一下。1.二维浮点数数组的输入二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值)在很多专业书中都没有详细讲过这个问题。在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。2.注意输出格式中“%”后的字符C语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C语言的教授讲道:“如果C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时我们无不认同。从这则事例中可以看出C语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“%”后的字符,每个字符都有其意义,也都有其作用。二.优先级说道优先级,有很多朋友都不是很了解或说很模糊。为此笔者想先通过一个例子让各位有个概念。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。三.指针就个人认为,C语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式,只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。笔者涉足编程已经有三年多了,在这期间曾经收到过很多网友的电子邮件询问学习指针的方法。就本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就比较容易理会,毕竟C语言是一门介于机器语言与高级语言中间的语言,没有一些硬件工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可:1.指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值,这有点象一个家庭地址在不同的场合标识的人物也不同。例如:父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。2.指针是可以运算的,它的运算法则与变量是一致的。另外,在编写一个程序时,除非万不得已,一般不要使用指针变量。因为指针是比较复杂的,用不好就“当机”。所以笔者建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另当别论了。四.函数虽说很多程序语言都有函数这一内容,但笔者觉得C语言的函数是最有魅力的。如果你能完全掌握C语言的函数,那么学习C++就不成问题了(C++是一门建立在C语言上,但又不同于C语言的高级程序语言,它增添了很多函数。)。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。有些朋友认为,程序语言中的函数没有多大用处,其实这并不正确,函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。笔者曾经作过一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话30句话都摆不平,可想而知函数是多么实用呀!

1、论点(证明什么)论点应该是作者看法的完整表述,在形式上是个完整的简洁明确的句子。从全文看,它必能统摄全文。表述形式往往是个表示肯定或否定的判断句,是明确的表态性的句子。A.把握文章的论点。 中心论点只有一个(统率分论点)⑴明确:分论点可以有N个(补充和证明中心论点)⑵方法①从位置上找:如标题、开篇、中间、结尾。②分析文章的论据。(可用于检验预想的论点是否恰当)③摘录法(只有分论点,而无中心论点)B.分析论点是怎样提出的:①摆事实讲道理后归结论点;②开门见山,提出中心论点;③针对生活中存在的现象,提出论题,通过分析论述,归结出中心论点;④叙述作者的一段经历后,归结出中心论点;⑤作者从故事中提出问题,然后一步步分析推论,最后得出结论,提出中心论点。2、论据(用什么证明)⑴论据的类型:①事实论据(举例后要总结,概述论据要紧扣论点);②道理论据(引用名言要分析)。⑵论据要真实、可靠,典型(学科、国别、古今等)。⑶次序安排(照应论点);⑷判断论据能否证明论点;⑸补充论据(要能证明论点)。3、论证(怎样证明)⑴论证方法 (须为四个字)①举例论证(例证法)事实论据记叙②道理论证(引证法和说理)道理论据 议论③对比论证(其本身也可以是举例论证和道理论证)④比喻论证 比喻在说明文中为打比方,散文中为比喻。⑵分析论证过程:①论点是怎样提出的;②论点是怎样被证明的(用了哪些道理和事实,是否有正反两面的分析说理);③联系全文的结构,是否有总结。⑶论证的完整性(答:使论证更加全面完整,避免产生误解)⑷分析论证的作用:证明该段的论点。4、议论文的结构⑴一般形式:①引论(提出问题)―――②本论(分析问题)―――③结论(解决问题)。⑵类型:①并列式②总分总式③总分式④分总式⑤递进式。6、驳论文的阅读⑴作者要批驳的错误观点是什么?⑵作者是怎样进行批驳的,用了哪些道理和论据;⑶由此,作者树立的正确的观点是什么?

对于许多初尝文献综述的科研工作者而言,在写作的时候,常常不知如何动笔,建议你多看看计算机科学与应用这本期刊,,然后自己写吧,

毕业论文程序设计范例

去看(计算机科学与应用)这样的论文~~~

随着信息全球化的发展,计算机的运用越来越普及。在企业方面管理和培训方面,计算机软件技术发挥了不可替代的作用。下面是我为大家整理的计算机专业 毕业 论文,供大家参考。

摘要:本文从“软件技术基础”课程的特点出发,分析和 总结 了该课程教学过程中出现的各种问题,综合其他学校该课程的教学内容和 教学 方法 ,结合我校教学环境和学生学习的实际情况,对课程教学进行了一些改革探索和实践,并取得了一定的成绩。

关键词:软件技术基础;教学改革;教学研究;

一、引言

随着科学技术的飞速发展,计算机应用已经深入到社会生活的各个领域中。熟练的操作和使用各种计算机应用软件,成为我们工作和生活的必备技能。越来越多的应用软件的设计与开发是由非计算机专业人员完成,开发出的各种软件,也大部分由非计算机专业人员操作和使用。吉林医药学院针对本校生物医学工程专业的学生,开设了“软件技术基础”课程。但由于该课程教学内容多样,教学学时有限,学生程序设计水平参差不齐等原因,给教师和学生的教学带来一定的难度。针对该课程的特点,综合其他学校的教学方式,结合吉林医药学院实际情况,对“软件技术基础”课程教学进行了一些改革探索和实践。

二、“软件技术基础”课程教学现状

第一,课程内容多,覆盖范围广。吉林医药学院的“软件技术基础”课程,是在基础课程“计算机应用基础”、“C语言程序设计”、“VB数据库程序设计”课程后开设的课程,其教学内容涵盖了四门计算机专业的课程:“数据结构”、“数据库系统”、“ 操作系统 ”和“软件工程”。在有限的学时中完成该课程的教学,教师与学生都面临很大的挑战。[1]

第二,课程学时有限。吉林医药学院“软件技术基础”课程教学有50学时,其中理论32学时。将这有限的学时分配后,各部分教学内容的教学时间更加受限,在短时间内学好该课程,对老师和学生都是极大的挑战。受课时限制,在教学中,教师对枯燥和抽象的知识无法深入讲解,没有时间通过更多的实例对概念和算法演示和说明;学生缺少足够的程序设计 经验 和调试能力,对所学内容无法融会贯通。以“软件技术基础”课程的数据结构部分内容讲授为例,对于顺序表、链表、栈、队列、树、图、排序和查找等知识,课堂的大部分时间,只能集中讲解相关知识的概念、思想及算法实现,学生练习操作时也只能是将算法在机器上实现,但具体的应用、程序设计以及调试等技巧课堂上无法细致讲解,同样,对于大部分学生,具体的应用在练习操作时练习不到。[2]

第三,学生学习目的不明确。学生在学习时,需要了解所学内容在其未来工作和生活中的目的和意义。但是,由于“软件技术基础”课程涵盖教学内容多,授课学时少,导致学生学到的知识浮于表面,课堂讲授以概念和理论为主,缺少解决实际问题经验,学生对所学内容的重要性、实用性了解不深。学生学习“软件技术基础”课程后,只掌握了一些基本概念和算法,但无法将所学应用于实践。[3]

第四,学生的程序设计水平参差不齐。吉林医药学院“软件技术基础”课程开设于学生大二下学期,学生在学习该课程前,已经学习了“C语言程序设计”,但C语言课程对于第一次接触程序设计的学生来说,概念抽象且规则繁多,掌握困难。对于C语言中数据的存储、算法编写、程序设计及调试等尤其畏惧、困惑,加深了接下来数据结构部分学习的难度。又由于“软件技术基础”课程与“C语言程序设计”课程之间间隔一个学期,这让学生本就不牢固的C编程知识在学习新的内容时更加困难。

第五,注重培养学生的应用能力。学生学习“软件技术基础”课程是为了用所学知识解决实际问题,学生的实践能力的培养是本课程教学的重中之重,如何更好的提高学生的学习兴趣,加深学生对知识的理解,同样是该课程的教学难点。以上是吉林医药学院“软件基础基础”课程面临的主要问题,各个问题相互影响和制约,进一步影响到“软基”课程的教学效果和学生学习该课程的兴趣和效果。针对以上问题,考查其他院校的教学方法和教学手段,吉林医药学院的“软件技术基础”在教学和实践环节进行了改革探索,取得了一定的成果。

三、课程教学改革探索

第一,利用现代 教育 技术,实例化教学。教材是学生获取知识的直接方法,在选择教材方面,选取案例详细的教材,弥补教学学时的不足。理论课教学是学生获取知识的重要手段,我校的教学环境优秀,每一个教室都配备有多媒体等现代化设备辅助教学,利用先进的教学设备,制作优秀的教学课件,增加动画等元素,将晦涩难懂的理论知识,通过直观的例子和生动的讲解展示给学生。如讲解数据结构中栈的存储结构、定义及算法时,利用学生熟知的手枪中的弹夹讲解;讲队列相关知识的时候,利用学生最经常使用的车站买票等生动形象的例子。再如,讲解数据库中范式概念的时候,利用学生熟悉的班级学生作为对象,分别解释各个范式的区别……

第二,对比归纳,强调总结。受到课时等客观条件限制,经多轮授课发现,学生在学习“软件技术基础”课程知识时,会有囫囵吞枣的感觉,知识无法吸收透彻并应用,已经开始下一部分知识的学习。教师需要利用自己的教学经验,在讲授过程中对知识进行凝练,对相似知识多进行归纳总结,用尽量少的语言复习与对比相关内容,让学生做到温故而知新。

第三,强化实践教学,提高动手能力。授人鱼不如授人以渔,相对于教师,学生才是学习的主体,学生学习的主动性和积极性直接影响着学习的效果。勤能补拙,督促学生利用课余时间复习C语言等学过的知识,利用实验课程序调试的机会,让学生自己讲解程序并引导学生对程序跟踪,仔细观察程序变量的变化,总结经验,对程序进行优化,打下良好的程序设计基础。吉林医药学院软件技术基础课程的实验有18学时,实验课上除了验证课堂讲授的内容,学生无法更进一步的学习深入的内容,为更好的培养学生独立操作能力和实际应用能力,我校为生工的学生开放实验室,提供自主上机练习环境。对有进一步学习需要的学生,在每周三下午开设第二课堂,由有经验的老师对学生有针对性的讲解程序设计和软件开发的方法和技巧。

第四,采用课程设计,督促学生自主学习。为更好的激发学生学习的积极性和主动性,在数据结构和数据库部分基础知识学习后,分别要求学生进行课程设计。在数据结构部分,为每一位学生提供不同的设计题目,限定提交作业时间。为解决学生可能是网络下载或他人协作帮助完成作业的情况,需要学生对程序进行注释,要求学生能读懂程序。针对数据库部分,采用学生分组完成数据库题目的方式,数据库题目可采用教师命题和学生选题的方式,学生分组采用学生自主分组,要求每组5-6成员,每位成员负责数据库的不同部分,最后根据每人负责的设计难易程度评价学生的成绩。采用课程设计的方式,给与学生学习的紧迫感和压力,对于程序设计能力稍差的学生,适当降低要求,达到锻炼学生实际动手能力、培养学生团队合作意识和协同操作能力,为学生的工作打下基础。

四、结束语

教学是一项永无止境的工作,在教学过程中,教师要根据学生的专业情况和个人学习情况及特点,有针对性的进行教学方式和教学内容的改革,运用适当的教学模式,把知识传递给学生,培养学生独立分析问题、解决问题、将所学知识综合应用于实践的实践和创新能力。

参考文献:

[1]张小瑞,孙伟,张自嘉,杨双翼.《计算机软件技术基础》教学改革探索与研究[J].中国科技信息.2012(04):129~135.

[2]陈帝伊,马孝义,辛全才.“计算机软件技术基础”课程教学方法探析[J].计算机教育2009(22):68~69.

[3]伦向敏,门洪,兰建军.《软件技术基础》教学改革探析[J].课程教育研究,2014(27)

摘要:作为一门新兴学科,计算机软件在短短的十几年中实现了跨越式发展,当今时代计算机软件技术依旧保持着旺盛的发展潜力,为人类的前进做出了巨大贡献。该文主要从计算机软件开发技术的现状、主要方式、应用以及发展趋势等方面论述了计算机软件开发技术的应用及发展趋势。

关键词:新时期;计算机开发技术;应用;趋势

1计算机软件开发技术概述

一般来说,计算机软件主要包括两大部分:应用软件和系统软件。计算机应用软件指的是为了帮助用户解决使用过程中的具体问题而设计的软件,比如娱乐、管理、文档等方面的软件;系统软件则指的是计算机本身所携带的软件,主要用于保障计算机的运行、维护等等。计算机应用软件和计算机系统软件的作用是相同的,都旨在为用户提供更好的上网体验和实用环境。从本质上来看,人们在使用计算机时运行的最为频繁的是计算机的软件系统而非计算机本身,可以说,没有计算机软件,计算机就无法正常使用。20世纪中期,世界范围内的计算机软件开发技术较为落后,仅仅停留在手工软件开发阶段,工作效率低下,远远不能满足人们日益增长的需求。伴随着全球经济的飞速发展以及第三次科技革命浪潮的开始,计算机软件开发技术也取得了长足发展,人们对其的认识也发生了变化,软件开发一词重新被定义:为了实现计算机的程序运行而采用的规则以及方法等相关的文档等都属于计算机软件的范畴。发展到当今时代,计算机软件开发技术大致经历了程序设计过程、软件过程、软件工程三个时期,随着时间的变化,计算机软件开发技术已经日趋成熟。

2计算机软件开发技术现状

计算机软件开发技术现状

当今时代无所不在的网络给人们的工作生活方式带来了翻天覆地的变化,而支撑着互联网发展的正是计算机软件技术的开发和运行。随着计算机在全球范围内的普及,国内的计算机软件开发技术也迅速成长,为适应市场人才需求,各大高等院校设立了与计算机软件技术相关的专业及方向,无论是高职院校还是重点院校的专业人数比重都呈上升趋势,从事于软件开发行业的人才不断增多。

计算机软件开发技术重要性

正是有了软件开发技术的不断改革创新,才推动了整个互联网行业的飞速发展,可以说计算机软件开发技术对当代信息社会的发展有举足轻重的作用,作为整个信息网络的核心部分,计算机软件技术开发将网络信息传输和远程控制变为了现实,为人们的生活、工作提供了极大地便利。计算机软件开发技术的应用大大提升了信息网络环境的安全性、隐私性,保证人们在畅想网络所带来的自由时不会受到其他因素的干扰,大大提升了人们的体验感。此外,软件技术的开发和应用可以促进计算机使用和软件技术之间的问题,实现两者有机融合,从而拓展了计算机的适用范围和适用领域,推动人类社会向前发展。

计算机软件开发技术问题

首先,信用值计算问题。这是计算机软件技术开发过程中的重要问题之一,其关键在于信用机制,由于没有统一的信用机制,因此,会导致计算方法的不同。多数情况下,采取的是乘性减、加性增的方法,加性增主要是用来处理信誉度增加的问题,这样可以对恶意节点形成约束作用。其次,是数据安全问题。虽然现阶段的计算机软件开发技术应经十分成熟,但是在面对数据传送过程中的数据丢失等问题时,还是无法有效遏止,很容易造成机密文件被窃取泄露的问题,这对相关人员、机构都带来了极大的损失。最后,是版权问题。这是计算机软件开发技术中最严重最泛滥的一个问题。由于我国版权保护法规还没有完全形成体系,再加上网络资源的共享性等因素,软件技术开发的成果很容易被窃取,这大大降低了软件人员的工作效率和积极性,也会对我国的软件行业发展带来消极影响。

3计算机软件开发技术主要方式

经过几十年的发展,计算机软件开发技术的方式已经进入了成熟阶段,各方面理论知识也日臻完善,总的来说,现阶段最主要的软件开发方式主要包括计算机软件生命周期法、原型化方法和自动形式的系统开发法三种方式:计算机软件生命周期法该软件开发方式亦被称为结构化系统开发方法。是三种方式中最为普遍的一种使用手段,计算机软件生命周期法着眼于软件的整体性和全局性,主要用于复杂的系统开发阶段。这种方式将软件的开发阶段划分为若干个子阶段,降低了原有软件系统的难度,便于更好的操作和维护。计算机软件生命周期法的缺点在于开发耗时长,各阶段之间缺乏独立性,前后联系密切增大了工作量。原形化方法这种开发方式主要指的是相关的技术人员在商讨决定一个统一的软件模型之后进入开发阶段并不断修改调整,直到达到用户的要求即可。这也是一种较为普遍的开发手法,其优点在于以用户的需求为导向目标性强,可以降低不必要的成本和技术浪费,缺点在于适用范围较小,只可用于小型简易的软件系统开发。自动形式的软件开发方法主要特点是在软件开发过程中对软件的开发目的和内容详细说明,对开发过程则不过多赘述,其优点在于可以根据软件的要求自主设计编码。

4计算机软件开发技术应用

任何一种技术的发明和应用都是为了更好地服务于人类,提升人类的生活方式和工作方式。因此,开发计算机软件就是为了给人们带来更多的便捷性、高效性,满足人们的各种需求。举例来说,在对两个不同的软件系统和Web+_ml+Active 进 行应用时,就要根据软件本身的特点来满足用户的不同需求。由于第一个软件的版本与微软的版本相同,因此在安装时就可以直接在电脑上运行,无需其他辅助的系统软件,安装成功后,该系统在使用时操作流畅快捷,使用方便,并且没有其他多余的附加产品影响用户的使用,因此,该软件的用户需求就会不断提升,可能会因为用户过多而对使用体验造成影响,这就需要人工进行调整。而第二种软件在安装时由于受到自身条件的限制,在安装时会在一定程度上降低用户使用量。这就说明在进行计算机软件技术开发时要坚持以人为本,将用户的需求放在首位,最大程度的满足用户的体验,唯有如此,才能获取更多的使用率和利润。

5结束语

计算机软件开发技术的发展趋势主要表现在以下几个方面:

1)网络化。

网络化是计算机软件开发技术的主要目标,其网络化的发展方向势必会为人类的生活生产方式产生巨大影响,人与物之间相互连接物联网将会是以后计算机软件开发技术的主要研究内容。

2)服务性。

计算机软件在开发应用之前就是为了解决人们处理问题时的难题,未来的计算机软件开发技术将借助先进的开发理念更全面、更细致的满足用户的体验和需求,所以服务性是其最根本的特征,也是今后不断向前发展的动力。

3)智能化。

计算机软件开发技术随着社会的发展逐步向智能化方向迈进,随着技术的不断进步,计算机软件开发技术会更加趋向人性化,智能化发展方向是人类计算机软件的重要进步,是高科技的一次突破性进展。

4)开放化。

计算机软件开发技术的开放化主要体现在技术开发人员之间的技术交流和共享,在技术上则指的是软件源代码的开放和软件产品的标准化,从业人员之间的相互学习可以打破行业之间的壁垒,碰撞出更多的思维火花,从根本上提高软件产品的质量,实现整个软件行业繁荣发展。

参考文献:

[1]范伟.浅论新时期计算机软件开发技术的应用及发展趋势[J].计算机光盘软件与应用,2014(13):80-80+82.

[2]刘芳.新时期计算机软件开发技术的应用及发展趋向[J].中国新通信,2015(13):89-89.

[3]左岑.试析计算机软件开发技术的应用及发展展望[J].才智,2013(12):384-384.

[4]刘凯英.浅谈计算机软件开发技术的应用及发展[J].无线互联科技,2013(1):69.

[5]潘其琳.计算机软件开发技术的现状及应用探究[J].信息技术与信息化,2015(3):249-251.

计算机专业毕业论文——软件技术相关 文章 :

1.计算机专业毕业论文范本

2.计算机专业毕业论文大全参考

3.计算机软件技术专业论文

4.计算机软件技术的毕业论文

5.关于计算机技术应用专业毕业论文

6.计算机软件本科毕业论文

vb程序设计论文

在社会的各个领域,大家都跟论文打过交道吧,论文的类型很多,包括学年论文、毕业论文、学位论文、科技论文、成果论文等。如何写一篇有思想、有文采的论文呢?下面是我为大家收集的vb程序设计论文,希望能够帮助到大家。

Visual Basic(简称VB)是目前使用最广泛的一种程序设计语言,是在Basic语言的基础上发展起来的,它继承了Basic语言简单易用的优点,结合了可视化界面的设计方法,采用面向对象、事件驱动的编程机制,把Windows编程复杂性进行巧妙封装,使开发Windows环境下的各种应用软件变得更为容易。因此,目前国内很多高校都选择将《VB程序设计》这门课程作为理工科专业的一门基础课程。程序设计具有知识结构严谨、逻辑性强的特点,学生学习起来比较困难,教学效果也不尽如人意。如何提高本课程的教学质量和教学效果,是每位授课教师都会关注的课题。

1教学中存在的问题

就VB程序设计这门课程的教学现状而言,通常采用的还是以课本原有知识体系为脉络的传统讲授法,教学内容大多以线性方式展开,同时结合上机实践操作来巩固和熟悉课堂上所讲的每一章节的知识点。经过教学实践证明,这种教学模式能够让学生掌握Visual Basic的较多的理论知识,也可以阅读程序代码,但是让学生自己解决一些问题的时候,通常都会束手无策。经过分析总结出此课程在教学中存在的问题:

一是教学内容与教学目标不一致。VB程序设计课程的教学目标是培养学生程序设计的基本知识、思维方式以及基本的操作技能,而教师在实际授课时,大多单纯依照教材讲授理论基础知识,授课基本上是以语言自身的知识体系为脉络展开,过分注重语句、语法和结构的讲解,忽视对学生分析与解决问题能力的引导,不能很好的将编程环境、程序设计语言、算法、数据结构以及程序设计思想关联起来形成体系化教学。[1]导致学生只学会了语法概念而不会使用,能够读懂某一条语句,却无法理解一段代码的含义。

二是实验内容过于简单。上机实验大多都是属于基础与验证型实验,偏重于VB语言的基本语法和结构的练习,能够帮助学生更好的理解和掌握这些语法知识,但无法培养学生编程能力和解决实际问题的能力。实验内容普遍都是知识点案例,针对的是具体的一个或多个知识点,没有依托完整的实践项目,使学生对知识点的学习感到枯燥无味,而且很容易遗忘。

三是学生缺乏计算机的思维方式。学生在接触这门课程之前通常没有任何基础,学生普遍缺乏相应的知识背景和算法思想,对程序设计的思维方式还不适应,分析和解决问题的能力处于一个较低的水平。在学习过程中经常会出现这种情况,教师对程序进行分析讲解时学生能够听懂理解,代码也能够读懂,但是让学生自己编写时,就无处下手,久而久之学生对编程充满畏惧感,对学习本门课程缺乏兴趣。

如何改变目前教学中存在的问题,让学生能够更好地掌握VB语言,掌握程序设计的基本方法?需要对课程的教学进行改革和创新。

2课程教学改革

拓展教学内容

本课程主要培养学生的程序设计思维方式和实际编程能力,而不是单纯的程序设计语言,因此必须打破固有的以“语法”和“结构”为中心的传统教学理念,以突出能力培养为主轴,围绕能力培养组织教学内容。教学内容的选择不能仅仅局限在一本教材上,要突破教材局限,将程序设计中所需要的众多知识点加以整合,包括VB语言的语法结构、可视化编程方法、常用的算法、数据结构以及程序的调试等,形成新的知识体系。在这里算法是程序设计的核心,而语言只是一种工具,在授课的过程中,特别是讲解实例时,需要剥开语言这层外壳,让学生掌握其中的精粹——算法,也就是如何利用计算机来解决某一具体问题。

当然,这并不是说语言不重要,语言是程序设计的工具,如果不掌握语言,程序设计就无从谈起。教材上的语法描述非常细致、系统,但大量的语法规则会使初学者感觉枯燥,这非常影响学生的学习兴趣。根据二八定律,在任何一组东西中,只有20%是最重要的,事实上VB语言也是如此,最常用、最重要的知识点并不是很多。因此在讲述语法时,只需提供给学生最基本的语法知识,其余的细枝末节可以由学生自学。

优化教学方法和教学策略

在程序设计的教学中,传统讲课方式的缺陷已众所周知,因为这是一种以教师为主、学生为辅的一种授课形式,讲课中教师是积极的而学生是消极的,很难把学生吸引到学习进程之中。但这不是意味着要把这种授课方式抛弃,讲课是把大量知识传递给学生的一种常用模式,尤其在本课程的教学中,学生缺乏普遍缺乏知识背景,大量的理论知识需要传递给学生,这就需要教师进行详细地讲解。在讲解时应该采用多种策略,比如在讲述抽象概念时最好与实践相关联,或者与学生已有的知识联系起来,这样比较容易理解。在提到函数和数据类型的.时候,可以跟学生比较熟悉的Excel中的相关概念关联起来。在讲述面向对象的概念时,可以拿Windows操作系统作为例子,它就是依照面向对象的思想编制而成的,在桌面上的每个图标,可以理解成一个对象,当需要启动某个对象时,只需用鼠标点击它(消息驱动)。[2]不仅如此,在不同的情境下还需要灵活运用多种教学方法,如问题法、引导法、任务驱动和实例教学法等,这样有助于让学生从消极的学习者转变为积极的学习者。

完善实验教学体系

VB程序设计是一门理论性和实验性都很强的课程,对实验环节有较高的要求。要学好这门课,学生只有经过大量的上机实验,才能掌握程序设计的技能和方法。因此,在教学过程中要给学生留出足够的上机时间,让学生在实验中理解VB语言的基本概念,掌握基本的编程方法。结合学生的专业方向,精心选择合适的案例、设计型与研究型课题,构建有助于培养学生动手能力和程序设计思维方式的实验教学平台。整个实验环节分为三个层次设计,基础验证型、设计开发型和研究创新型实验,每次实验课有多个基础验证型实验,帮助学生掌握相应的语法知识和算法设计,每一章精选1~2个设计开发型实验,与学生分析讨论解题思路,引导学生独立解决问题,培养学生的上机调试能力。学生以小组为单位,选择一个与其专业相关的研究题目,要求学生逐步完成研究分析与报告,写出个人的心得体会,并在学期末给出一定的时间完成课题。

创建项目实例库

充分利用网络资源,搜集各类完整的VB程序实例,从中选取典型的、有实际意义的实例,作为程序设计的模板提供给学生。大多数学生基本上是初次接触计算机程序设计,习惯采用数学思维方式来分析问题,还没有真正掌握计算机编程的基本思路。在实验过程中,遇到一个新的题目,学生往往不知道从何下手,思路不清晰,此时就可以从项目实例库找出对应的实例,通过借鉴或修改相应的模板得到结果。“熟读唐诗三百首,不会做诗也会吟”,经常阅读这些实例,能够拓展学生的视野,促进学生对于程序设计思想的理解与认识,提高学生的编程能力。

在具体实施上,整理出40~50个典型项目实例,将它们分为五大类:基础类、算法类、图形类、文本类和应用类,供学生自主学习,另外从中选取6~8个典型的项目实例,要求学生必须理解掌握,这些实例基本上包含了这门课程的知识要点,理解了这些实例,对于课程的知识结构会有一个全面的了解。其中,学生最喜欢也最有兴趣的实例就是弹球游戏,通过对弹球游戏程序代码的阅读分析,学生能够更好地掌握定时器控件和控件坐标等相关的知识,学生也很有兴趣地去改写程序代码,以获得类似的动画效果,可见好的实例能够激发学生的求知欲望,提高学生的学习积极性,培养学生分析问题和解决问题的能力。

3结束语

VB程序设计课程对于理论知识和实际操作均有较高要求,教学时需要综合运用多种教学方法和教学策略,充分调动学生的学习积极性和主动性,将教学重点放在算法的分析和编程的训练上,注重实验教学环节,加强对学生程序设计思维方式和实际编程能力的培养,提高课程的教学效果。

c语言程序设计课程设计论文

#include <>#define MAX 200int main(){ int a[MAX][MAX],n; void initmatrix(int a[][MAX]);//初始化矩阵,将所有元素赋0 void creatematrix_2k1(int a[][MAX],int n);//生成2n+1阶幻方 void creatematrix_4k(int a[][MAX],int n);//生成4n阶幻方 void creatematrix_4k2(int a[][MAX],int n);//生成4n+2阶幻方 void outputmatrix(int a[][MAX],int n);//输出n阶幻方 initmatrix(a); printf("please input a interger number:"); scanf("%d",&n); if(n%2) creatematrix_2k1(a,(n-1)/2); else {if(n%4==0) creatematrix_4k(a,n/4); else creatematrix_4k2(a,(n-2)/4);} outputmatrix(a,n); return 0;}void initmatrix(int a[][MAX]){ for(int i=0;ij)&&((i-j)%4==0||(i+j+1)%4==0)) {temp=a[i][j]; a[i][j]=a[4*n-1-i][4*n-1-j]; a[4*n-1-i][4*n-1-j]=temp;} for(i=0;i<2*n;i++) {temp=a[i][i]; a[i][i]=a[4*n-1-i][4*n-1-i]; a[4*n-1-i][4*n-1-i]=temp;}}void creatematrix_4k2(int a[][MAX],int n)//构造4n+2阶幻方{ int col=-1,row=-1,i; int exn=(2*n+1)*(2*n+1); int *p,*q; p=&col,q=&row; void fillmatrix_2(int a[][MAX],int *p,int *q,int cs, int rs,int n,int i);/*将i填入以a[cs][rs]为起始的2n+1阶幻方中,用p,q返回的i-1行列值*/ for(i=1;i<=exn;i++) fillmatrix_2(a,p,q,0,0,n,i); for(i=exn+1;i<=exn*2;i++) fillmatrix_2(a,p,q,2*n+1,2*n+1,n,i); for(i=2*exn+1;i<=3*exn;i++) fillmatrix_2(a,p,q,0,2*n+1,n,i); for(i=3*exn+1;i<=4*exn;i++) fillmatrix_2(a,p,q,2*n+1,0,n,i); void lastswap(int a[][MAX],int n);//对4n+2阶幻方做最后的变换 lastswap(a,n);}void fillmatrix_2(int a[][MAX],int *p,int *q,int cs, int rs,int n,int i){ int exn=(2*n+1)*(2*n+1); if(i%exn==1) { a[cs+0][rs+n]=i; *p=0,*q=n; } else {if((*p==0&&*q==2*n)||a[(*p+2*n)%(2*n+1)+cs][(*q+1)%(2*n+1)+rs]) { a[(*p+1)%(2*n+1)+cs][*q+rs]=i; *p=(*p+1)%(2*n+1); } else{ a[(*p+2*n)%(2*n+1)+cs][(*q+1)%(2*n+1)+rs]=i; *p=(*p+2*n)%(2*n+1),*q=(*q+1)%(2*n+1); } }}void lastswap(int a[][MAX],int n){ int temp,i,j; for(i=0;i3*n+2;j--) {temp=a[i][j]; a[i][j]=a[2*n+1+i][j]; a[2*n+1+i][j]=temp;}}求幻方的程序 #include <>#include <>#define IO "%d"//和下面一行共同扩展数据成员的格式typedef int ElemType;//同上typedef struct LinkNode{ ElemType data; struct LinkNode *next;}LinkNode,*Link;Link creat();//建立带头结点的链表,并返回头指针void print(Link);//输出链表所有结点bool insert(Link,int ,ElemType);//向head为头指针的链表中插入元素e使之成为链表第i个元素成功返回TRUE否则FALSEbool del(Link,int );//在head为头指针的链表中删除第i个结点,成功返回TRUE否则返回FALSEvoid operate(Link);//在本程序中进行链表的插入,删除,输出操作Link creat(){ Link head=(Link)malloc(sizeof(LinkNode)); Link pre=head,p; int count=1; char ch; printf("是否终止建立链表(Y/N):"); scanf("%c",&ch); while(ch=='n'||ch=='N') { p=(Link)malloc(sizeof(LinkNode)); printf("请输入第%d个结点内的数据:",count); scanf(IO,&(p->data)); fflush(stdin); pre->next=p; pre=p; printf("是否终止建立链表(Y/N):"); scanf("%c",&ch); count++; } pre->next=NULL; return head;}void print(Link head){ printf("链表目前情况为:\n"); Link p=head->next; int count=1; while(p) { printf("第%d个结点中数据为"IO" ",count,p->data); p=p->next; if((count++)%3==0)printf("\n"); } if(count%3!=1)printf("\n");}bool insert(Link head,int i,ElemType e){ Link pre,p; int k; for(k=0,pre=head;knext);//寻找第i-1个元素的指针 if(k!=i-1||(!pre))return false; p=(Link)malloc(sizeof(LinkNode)); p->data=e; p->next=pre->next; pre->next=p; return true;}bool del(Link head,int i){ Link pre,p; int k; for(k=0,pre=head,p=head->next;knext);//寻找第i-1个元素的指针 if(k!=i-1||(!p))return false; pre->next=p->next; free(p); return true;}void operate(Link head){ int n,i; ElemType e; do { printf("************************************************\n"); printf("请输入想进行何种操作\n1============插入结点\n2============删除结点\n3============输出链表\n"); scanf("%d",&n); switch(n) { case 1:printf("现在进行结点插入\n"); printf("请输入欲插入到何位置:");scanf("%d",&i); printf("请输入欲插入的数据:");scanf(IO,&e); if(insert(head,i,e))printf("插入成功!\n");else printf("插入失败!\n"); break; case 2:printf("现在进行结点删除\n"); printf("请输入欲删除结点位置:");scanf("%d",&i); if(del(head,i))printf("删除成功!\n");else printf("删除失败!\n"); break; case 3:print(head);break; default:break; } }while(n<4&&n>0);}int main(){ Link head=creat(); operate(head); return 0;}链表的操作#include <>#include <>//求积分int main(){ double f1(double); double f2(double); double f3(double); double f4(double); double f5(double); double (*p)(double); double integral(double a,double b,double(*p)(double)); double a,b;//记录积分区间 printf("请输入积分区间:"); scanf("%lf %lf",&a,&b); if(a>b){double temp=a;a=b;b=temp;}//确保a1e-6) { sum=0; for(i=0;i

发给你了邮箱里

C语言课程设计报告--学生成绩管理系C语言课程设计报告:学生成绩管理系统系统需求一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息. 二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。三、新生插入 :通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。 四、输出全部学生信息和全部学生成绩。五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。总体设计一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。 2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。 3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、 maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。 5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。二、系统主模块结构图:详细设计一、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下: 学生成绩管理系统 请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、 数据结构设计: 程序设计中用到的结构体类型: 学生信息结构体类型:typedef struct student{ char name[MAX]; int num[MAX]; char sex[MAX]; int chinese; int mathematic; int english; int computer; struct student *next; }程序代码://原始密码是123456#include""#include""#include""#include""#define MAX 10typedef struct student{ /*定义结构体*/ char name[MAX]; /*姓名*/ int num[MAX]; /* 学号*/ char sex[MAX]; /*性别*/ int chinese; /*语文*/ int mathematic; /* 数学*/ int english; /*英语*/ int computer; /*计算机*/ struct student *next; /*结构体指针*/ }stu;stu *head; /*头指针*/void print() /*显示或打印函数*/ { system("cls"); printf("\t\t\tScore Manage System\n"); /*成绩管理系统*/ printf("<1>Enter Record\t"); /*输入数据*/ printf("<2>Display\t"); /*显示*/ printf("<3>Insert\t"); /*插入数据*/ printf("<4>Quest\t"); /*访问数据*/ printf("<5>Update\t"); /*以前数据*/ printf("<6>Save\t"); /*保留数据*/ printf("<7>Fresh\t"); /*更新数据*/ printf("<8>Chinese Average\t"); /*语文平均成绩*/ printf("<9>Math Average\t"); /*数学平均成绩*/ printf("<10>English Average\t"); /*英语平均成绩*/ printf("<11>Computer Average\t"); /*计算机平均成绩*/ printf("<12>Quit\t\n"); /*退出*/ }void cin(stu *p1) /*输入相关数据的函数*/ { printf("Enter name:\n"); scanf("%s",&p1->name); printf("Enter num:\n"); scanf("%d",&p1->num); printf("Enter sex:\n"); scanf("%s",&p1->sex); printf("Enter score:\n"); printf("Enter chinese:\n"); scanf("%d",&p1->chinese); printf("Enter math:\n"); scanf("%d",&p1->mathematic); printf("Enter English:\n"); scanf("%d",&p1->english); printf("Enter Computer:\n"); scanf("%d",&p1->computer); } stu *cindata() /*其他数据是否继续输入的函数*/ { stu *p1,*p2; int i=1; char ch; p1=(stu *)malloc(sizeof(stu)); head=p1; while(i) { cin(p1); printf("Do you Want to Continue?yes or no"); /*是否继续输入数据*/ ch=getchar(); ch=getchar(); if(ch=='n'||ch=='N') { i=0; p1->next=NULL; } else { p2=p1; p1=(stu *)malloc(sizeof(stu)); p2->next=p1; } } return(p1->next);}stu *lookdata(stu *p1) /*查看数据的函数*/ { while(p1!=NULL) { printf("Num:%d\t",p1->num); printf("Name:%s\t",p1->name); printf("Sex:%s\t",p1->sex); printf("\n"); printf("Chinese:%d\t",p1->chinese); printf("Math:%d\t",p1->mathematic); printf("English:%d\t",p1->english); printf("Computer:%d\t",p1->computer); printf("\n"); p1=p1->next; } return p1; }void insert() /*通过比较学号来插入数据的函数*/ { stu *p1,*p3,*p2; char ch; p1=head; p3=(stu *)malloc(sizeof(stu)); p3->next=NULL; if(head==NULL){ head=p3; return;} cin(p3); while(p1!=NULL&&(p1->numnum)) /*通过学号的比较来插入*/ { p2=p1;p1=p1->next;} if(p2==head) {p3->next=head; head=p3; return;} p3->next=p1; p2->next=p3;}find(stu *p2) /*通过姓名查找查看数据的函数*/ { char name[20]; int b=0; printf("Enter the name of the student you want to find:"); /*通过姓名查看*/ scanf("%s",name); while(p2!=NULL) {if(strcmp(name,p2->name)==0) { printf("The data you want has be found\n"); printf(" Name:%s\t",p2->name); printf("Num:%d\t",p2->num); printf("sex%s\t",p2->sex); printf("\n"); printf("Chinese:%d\t",p2->chinese); printf("Math:%d\t",p2->mathematic); printf("English:%d\t",p2->english); printf("Computer:%d\t",p2->computer); printf("\n"); b=1; } else if(b==0) printf("sorry not find data!"); p2=p2->next; } if(b==1) { print(); printf("Find one\n");} else {print(); printf("Not find\n"); }}void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=; float sum=; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1->next) sum+=p1->chinese; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) {if(maxchinese) max=p1->chinese; } p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) if(min>p1->chinese) min=p1->chinese; } printf("Chinese Average:%f",aver); printf("Chinese Max:%f",max); printf("Chinese Min:%f",min); }void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=; float sum=; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1->next) sum+=p1->mathematic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) {if(maxmathematic) max=p1->mathematic; } p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) if(min>p1->mathematic) min=p1->mathematic; } printf("Mathe Average:%f",aver); printf("Mathe Max:%f",max); printf("Mathe Min:%f",min); }void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=; float sum=; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1->next) sum+=p1->english; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) {if(maxenglish) max=p1->english; } p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) if(min>p1->english) min=p1->english; } printf("English Average:%f",aver); printf("English Max:%f",max); printf("English Min:%f",min); }void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=; float sum=; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1->next) sum+=p1->computer; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) {if(maxcomputer) max=p1->computer; } p1=head; for(i=0;p1!=NULL;i++,p1=p1->next) if(min>p1->computer) min=p1->computer; } printf("Computer Average:%f",aver); printf("Computer Max:%f",max); printf("Computer Min:%f",min); }update(stu *p2) /*通过姓名查找来更新数据*/ { char name[10]; /*p2为指向结构体struct student的指针*/ int b=0; printf("Enter The Name"); /*输入姓名*/ scanf("%s",name); while(p2!=NULL) {if(strcmp(name,p2->name)==0) { printf("Find you data\n"); scanf("Name:%s",p2->name); scanf("Num:%s",p2->num); scanf("Sex:%s",p2->sex); scanf("Chinese:%d",p2->chinese); scanf("Math:%d",p2->mathematic); scanf("english:%d",p2->english); scanf("Computer:%d",p2->computer); printf("Success!"); b=1;} else if(b==0) printf("Sorry not Find data!"); p2=p2->next;} if(b==0) {print(); printf("Sorry not Find data!"); } else { print(); printf("Finish!"); } }save(stu *p2) /*保留数据函数*/ { FILE *fp; char file[10]; printf("Enter file name"); /*输入文件名*/ scanf("%s",file); fp=fopen(file,"w"); while(p2!=NULL) { fprintf(fp,"%s",p2->name); fprintf(fp,"%s",p2->num); fprintf(fp,"%s",p2->sex); fprintf(fp,"%d",p2->chinese); fprintf(fp,"%d",p2->mathematic); fprintf(fp,"%d",p2->english); fprintf(fp,"%d",p2->computer); p2=p2->next; } fclose(fp); }char password[7]="123456"; /*定义初始密码*/void main() /*主函数*/{ int choice; stu *p2; char s[8]; int flag=0,i; /*标志项*/ int n=3; do{ printf("Enter password:\n"); scanf("%s",s); if(!strcmp(s,password)) /*进行密码匹配验证*/ { printf("PASS\n\n\n"); flag=1; break; } else{ printf("Error Enter again:\n"); n--; } } while(n>0); if(!flag) {printf("you have Enter 3 times!"); /*输入密码超过了3次!!*/ exit(0); /*自动退出*/ } /*密码验证成功后进入的界面*/ printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/ printf("\t\tWelcom to the Mis\n"); printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班级和号码*/ printf("Adress:HG\n"); /*地址*/ printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); printf("\t\tEnter OP:\n"); printf("\n\n\n\n"); printf("==============\t\t==============\n"); printf("==============\t\t==============\n"); printf("\t\tEnter the MIS yes or no\n"); /*问进入系统与否*/ scanf("%d",&choice); if(choice=='n'||choice=='N') exit(1); print(); while(1) { printf("Enter choice:"); scanf("%d",&i); if(i<1||i>13) { printf("Enter num from 1 to 13:\n"); /*再从1-13中进行选择*/ exit(1); } switch(i) { case 1: p2=cindata(); /*其他数据是否继续输入的函数*/ break; case 2: p2=lookdata(head); /*查看数据的函数*/ break; case 3: insert(); /*通过比较学号来插入数据的函数*/ break; case 4: find(head); /*通过姓名查找查看数据的函数*/ break; case 5: update(head); /*通过姓名查找来更新数据*/ break; case 6: save(head); /*保留数据函数*/ break; case 7: print(); /*显示或打印函数*/ break; case 8: caverage(); /*求各学生语文平均分、最高和最低分成绩的函数*/ break; case 9: maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/ break; case 10: eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/ break; case 11: comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/ break; case 12: ; /*空操作*/ case 13: exit(1); /*退出*/ break;} scanf("%d",&i);}}程序中出现的问题及解决方法问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。 2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错 3、输出用于循环检查语句中的学生信息,发现乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。问题三、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入插入信息时,看是否我们输入的插入信息有

#include #include #include using namespace std; const N=50; // 定义系统可录入的员工最大数值 string Ename[N]; long Enum[N]; char Esex[N]; int Eage[N]; char Emarriage[N]; int Edepart[N]; int Eposition[N]; int Edegree[50]; int Eworktime[N]; float Epay[N]; class Employee { public: string Employeename; long Employeenum; char Employeesex; int Employeeage; char Employeemarriage; int Employeedepart; int Employeeposition; int Employeedegree; int Employeeworktime; float Employeepay; static long EmployeeMaxNum; static float EmployeeBasePay; void NewInfo(); void ShowInfo(); void showall(); void showdepart(int depart); void showdegree(int degree); void showage(int min,int max); void shownum(long number); void RefreshInfo(); void DeleteInfo(); float Pay(int Employeegrade); static int MaxNum(); }; class DBOperate { public: string Employeename; long Employeenum; char Employeesex; int Employeeage; char Employeemarriage; int Employeedepart; int Employeeposition; int Employeedegree; int Employeeworktime; float Employeepay; static long EmployeeMaxNum; static float EmployeeBasePay; void WriteIn(int iflag); void ReadOut(); void RefreshMaxNum(int iflag); //i=1 or -1 or 0 }; long Employee::EmployeeMaxNum = 1000; float Employee::EmployeeBasePay = 1500; int Employee::MaxNum() //返回系统已经存储的人数 { int MN = 0; ifstream myf; (""); myf>>MN; cout<>Employee::Employeename; Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1; cout<<"新员工性别 (F为女性,M为男性): "; cin>>Employee::Employeesex; cout<<"新员工年龄: "; cin>>Employee::Employeeage; cout<<"新员工婚姻状况(Y为已婚,N为未婚): "; cin>>Employee::Employeemarriage; cout<<"新员工学历,请输入相应学历的序号: "<>Employee::Employeedegree; while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&Employee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employee::Employeedegree !=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeedegree; } cout<<"新员工所在部门,请输入相应部门的序号:"<>Employee::Employeedepart; while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&Employee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee::Employeedepart!=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeedepart; } cout<<"新员工职位, 请输入相应职位的序号: "<>Employee::Employeeposition; while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&&Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Employee::Employeeposition !=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeeposition; } cout<<"新员工的工作时(不需要输入单位): "; cin>>Employee::Employeeworktime; Employee::Employeepay = Employee::Pay(Employee::Employeeposition); DBOperate dbo; (); int MaxNum = Employee::MaxNum(); Enum[MaxNum] = Employee::Employeenum; Ename[MaxNum] = Employee::Employeename; Esex[MaxNum] = Employee::Employeesex; Eage[MaxNum] = Employee::Employeeage; Emarriage[MaxNum] = Employee::Employeemarriage; Edegree[MaxNum] = Employee::Employeedegree; Edepart[MaxNum] = Employee::Employeedepart; Eposition[MaxNum] = Employee::Employeeposition; Eworktime[MaxNum] = Employee::Employeeworktime; Epay[MaxNum] = Employee::Employeepay; (1); cout<<" 添加新成员成功!"<>choice1; switch(choice1) { case 1: showall();break; case 2: cout<<"请输入要查询职工的部门编号: [1:董事会 2:市场部 3:公关部 4:客服中心 5:信息中心] " ; cin>>choice2; (choice2);break; case 3: cout<<"请输入要查询职工的学历编号: [1:初中 2:高中 3:本科 4:硕士 5:博士] "; cin>>choice2; (choice2);break; case 4: cout<<"请输入要查询的年龄范围: "; cout<<"最小值: "; cin>>min; cout<<"最大值: "; cin>>max; (min,max);break; case 5: cout<<"请输入要查询的员工号: "; cin>>searchnum; (searchnum);break; default: cout<<"出错啦! "<"<"<"<"<"<"<=min&&Eage[i]<=max) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::shownum(long number) //按员工编号输出函数 { int i; for(i=0;i"<"<"; if(Esex[i]=='F') cout<<"女 "<"<"; if(Emarriage[i]=='Y') cout<<"已婚 "<"; switch (Edegree[i]) { case 1:cout<<"初 中 "<"; switch (Edepart[i]) { case 1:cout<<"董事会 "<"; switch (Eposition[i]) { case 1:cout<<"临时成员 "<"<"<"; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i>Employee::Employeename; Ename[i] = Employee::Employeename; cout<<"新员工性别: [F为女性,M为男性]: "; cin>>Employee::Employeesex; Esex[i] = Employee::Employeesex; cout<<"新员工年龄: "; cin>>Employee::Employeeage; Eage[i] = Employee::Employeeage; cout<<"新员工婚姻状况(Y为已婚,N为未婚): "; cin>>Employee::Employeemarriage; Emarriage[i] = Employee::Employeemarriage; cout<<"新员工学历,请输入相应学历的序号:"<>Employee::Employeedegree; while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&Employee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employee::Employeedegree !=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeedegree; } Edegree[i] = Employee::Employeedegree; cout<<"新员工所在部门,请输入相应部门的序号: "<>Employee::Employeedepart; while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&Employee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee::Employeedepart!=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeedepart; } Edepart[i] = Employee::Employeedepart; cout<<"新员工职位,请输入相应职位的序号:"<>Employee::Employeeposition; while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&&Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Employee::Employeeposition !=5) { cout<<"输入有误,请重新输入:"<>Employee::Employeeposition; } Eposition[i] = Employee::Employeeposition; cout<<"新员工的工作时 (不需要输入单位): "; cin>>Employee::Employeeworktime; Eworktime[i] = Employee::Employeeworktime; Epay[i] = Employee::Pay(Employee::Employeeposition); break; } } (0); } void Employee::DeleteInfo() //删除员工数据的函数 { char tmp; int cNum = 1000; DBOperate dbo; (); void Employee::shownum(long number); cout<<"请输入您要修改的员工编号>: "; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i>tmp; if(tmp=='Y') { if(i==MN-1) (-1); else { for(int j=i;j>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage >>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employeepay; Enum[i] = DBOperate::Employeenum; Ename[i] = DBOperate::Employeename; Esex[i] = DBOperate::Employeesex; Eage[i] = DBOperate::Employeeage; Emarriage[i] = DBOperate::Employeemarriage; Edegree[i] = DBOperate::Employeedegree; Edepart[i] = DBOperate::Employeedepart; Eposition[i] = DBOperate::Employeeposition; Eworktime[i] = DBOperate::Employeeworktime; Epay[i] = DBOperate::Employeepay; } (); } void DBOperate::RefreshMaxNum(int iflag) //更新系统中员工计数文件的函数 { int MaxNum = 0; ifstream myif(""); myif>>MaxNum; (); MaxNum = MaxNum+iflag; ofstream myof(""); myof<>select; Employee e; DBOperate dbo; switch(select) { case 1: (); break; case 2: (); (); break; case 3: (); break; case 4: (); break; case 5: break; default: cout<<"命令错误!"<

计算机程序设计论文范文模板

免费查阅文献的刊物,你可以看看(计算机科学与应用)等等这些

软件技术与硬件技术相比较,其发展的空间更为广阔、应用的领域更为广泛,因此计算机软件技术得到了关注和发展。下面是我为大家整理的计算机软件技术毕业论文,供大家参考。

摘要:目前,高职软件技术专业的教学改革势在必行,本文介绍了问题研究的必要性和Moodle平台的功能,探讨了基于Moodle平台进行混合式教学的教学过程。

关键词:Moodle平台;混合式教学模式

1概述

目前,高职学院主流的教学主体为教师的教学模式早已不能满足社会对人才的需求。这要求我们积极进行教学改革开展以学生为主体的教学模式的探索。混合式教学模式是教育信息化发展而出现的一种新教学模式。其意义在于将学生在网络上的自主学习和传统课堂上的教学相融合,是多种教学方式、学习方式和教学媒体的整合。因此,基于Moodle平台的高职软件技术专业混合式教育模式研究具有十分重要的意义。

2Moodle平台简介

Moodle是一个开源课程管理系统(CMS),是一个免费开放源代码的软件,以社会建构主义为其主要的理论基础。Moodle是ModularObject-OrientedDynamicLearningEnvironment的缩写,即模块化面向对象的动态学习环境。在基于Moodle平台的教学活动中,教师和学生都是主体,彼此相互协作,共同建构知识。Moodle平台有主要三个方面的功能:课程管理、学习管理和系统管理,其中课程管理包括课程教学组织、教学资源组织、学生学习活动组织、学生评价组织等管理;学习管理包括:记录学习情况、下载学习资源、开展协作活动、测验与作用等;系统管理包括系统模块管理、课程管理、模块管理、用户管理和系统参数设置。Moodle平台有系统管理员、教师和学生三种用户角色。其中,系统管理员主要负责搭建Moodle平台的软硬件环境,可分为课程管理员和网站管理员。课程管理员负责课程的创建和管理,网站管理员负责对Moodle平台进行配置和维护。教师角色中的主讲教师和辅导教师是按照权限不同来分的。主讲教师可以组织教学活动,建设教学资源,进行日常教学管理。可以为学生分组,添加或注销学生,可以授权辅导教师,可以设置课程“密钥”。辅导教师不能参与课程设计,只能组织学生的管理成绩、课外讨论、查看日志等,在日常教学过程中监督学生的学习活动。在指定教师时,如果不特定教师编辑权限,该教师就默认为辅导教师。学生角色可以在线学习网络课程资源,参加在线测试,在线进行讨论,并将自己的学习历程以及学习心得写在自己的博客上。学生可以建立一个在线档案,包括照片和个人描述。

3基于Moodle平台的高职软件技术专业混合式教学模式的教学过程设计

混合式教学是指融合不同的教学模式和不同的应用方式来进行教学的一种策略,它结合了课堂教学和网络教学的优势。下面以《Java程序设计》这门课程为例来介绍如何基于Moodle平台进行混合式教学模式的教学过程设计。

混合式教学模式的教学资源设计

教学资源是混合式教学模式的基本保障,主要指与所授课程相关的教学材料,包括课程的教案、课程的课件、实训指导、教学大纲、复习题、拓展资料等。随着慕课的兴起,在《Java程序设计》课程的教学资源设计中,教师可将课程的教学内容制作成慕课放在Moodle平台上供学生课余时间观看。既方便了课堂上未听懂的学生进一步学习,也为基础好的学生提供了预习的资源,增强了学生对知识的掌握程度。

混合式教学模式的教学课程内容设计

《Java程序设计》课程的操作性强,采用任务驱动的教学方式能督促学生课前预习、课后复习,提高动手能力,从而激发学习的兴趣。下面以《Java程序设计》中《类和对象实现》一节为例,说明教学内容的设计。

教学目标

知识目标

①类与对象概念与特征、属性和方法;②类与对象的关系;③定义类的语法;④创建类的对象,使用对象的步骤。

能力目标

①运用面向对象程序设计思想分析类和对象特征;②会创建和使用类和对象。a教学任务“人”是社会主体,日常生活中要想描述一个人主要包括姓名、年龄、性别、体重、家庭地址等信息。任务要求在计算机中使用Java语言对“人类”进行描述,并用Java代码实现,最后打印出人的信息。b实训任务第一,编写一个电脑类,属性包括品牌、型号,方法为显示电脑信息,并测试类;第二,编写一个手机类,属性包括手机品牌、手机型号,方法为显示手机信息,并测试类。

混合式教学模式的课堂教学活动设计

课堂教学活动设计是混合式教学模式的关键。Moodle为教师和学生的互动提供了很好的平台,学生可以针对教学内容展开讨论或者提出问题,也可以发表自己的心得体会。教师可以在教学过程中设置测试来及时检验学生的学习效果,还可以创建一些趣味性话题,鼓励学生参与并给予加分奖励,同时还要在Moodle平台中跟踪学生的发言,并及时给出反馈。下面以《Java程序设计》中《类和对象实现》一节为例,说明教学活动的设计。课前:将教学课件上传至Moodle平台,供学生预习。课中:①(10分钟)利用Moodle平台中的“测验”功能,针对上创建一套试题来考查学生对上节课知识的掌握情况。②(30分钟)利用课件和案例演示讲解本次课知识点。③(35分钟)布置并指导学生完成实训任务。④(15分钟)总结并布置作业。课后:创建讨论话题,鼓励学生积极参与。

4总结

基于Moodle平台的混合式教学模式,能够激发学生学习的兴趣,提高学生的自主学习能力,营造良好的学习环境。同时也存在一些问题,可根据每个学校的需求,进行二次开发,增加功能,更好地为教学服务。

参考文献:

[1]李明,胡春春.基于Moodle平台的“合作—探究”式网络教学平台研究[J].吉林省教育学院学报,2011(3).

[2]熊小梅.基于Moodle平台的网络课程设计及应用[J].教育与职业,2014(02).

[3]唐春玲,蔡茜,张曼.基于Moodle平台的远程教育的实践与研究[J].网友世界,2014(5).

[4]赵俞凌,鲁超.基于Edmodo平台的高职写作课程混合式教学设计[J].金华职业技术学院学报,2015(1).

【摘要】近年来,在社会经济快速发展的同时,一定程度上带动了科学技术的进步。而在此过程中,智能手机与个人电脑得到了发展,并且逐渐融入到人们日常的生产生活当中,被广泛地应用。其中,在智能操作系统当中,安卓操作系统占据重要地位,并且其开放性相对明显,这样一来,智能手机与个人电脑应用的优势就更大。由此可见,在安卓操作系统的基础上开发软件具有重要的现实意义。本文对安卓操作系统的开发平台进行了全面分析,并重点阐述了在安卓操作系统基础上的应用软件开发。

【关键词】安卓操作系统;应用软件;开发;分析

众所周知,信息技术在其自身的发展过程中,电子产品的丰富性与多样性充分地展现出来,并且使得人们生活方式有所改变,一定程度上为人们日常生产与生活带来了便利。正是因为安卓操作系统自身独特的开放性特征,使其同电子设备实现了有效地沟通,并且始终能够满足用户不同需求。现阶段,安卓手机已经被广泛使用,并且已经普及,在此背景下,使人们开始重视其便携性问题,希望能够时刻进行操作,所以,在安卓操作系统的基础上,应该积极开发出相应的应用软件,这是当前安卓操作系统工作领域中亟待解决的问题。

1安卓操作系统开发平台

在安卓操作系统平台中,其主要的构成部分就是应用软件、中间件以及用户界面和操作系统,给予平台各层分离有力的支撑与保障,使得各层中间都能够保证分工的明确性[1]。通常情况下,安卓操作系统中的应用程序框架可以有效地提供API,同时还能够合理地设计出其自身特有的功能模块,这样一来,还可以实现为其他应用程序提供有价值的使用依据。在安卓操作系统当中,其最核心的应用程序就是联系人、网络浏览器、日历、SMS应用程序以及电子邮件等等。在编写并设计应用程序的过程中,开发工作人员需要对Java语言进行充分地利用,这样才能够确保系统程序和开发程序所包含的资源实现共享。在此基础上,安卓操作系统还能够向组件提供相应的C/C++库集合,然而,开发工作人员不能够对其进行直接调用,一定要根据上层的应用程序框来实现C/C++库的应用[2]。通常情况下,安卓操作系统库的构成内容是媒体库、FreeType、界面管理和SQLite等多种系统。

2基于安卓操作系统应用软件开发的重要意义

随着科技发展与人们生活水平的提升,始终对个人电脑与智能手机在社会经济当中的发展情况产生影响。现阶段,我国智能手机市场始终处于爆炸式增长的趋势,而截至到2013年,智能手机的普及率也迅速上升,将近2/3的国民都已经拥有智能手机[3]。然而,国民拥有智能手机的技术水平也处于上升的阶段,其中,智能手机终端CPU处理能力以及存储和用户交互等方面的能力都出现了明显的提高,以上内容也同样是智能手机关键性的指标,所以,一定程度上对于安卓操作系统应用软件的开发工作提供了有力的硬件基础。基于安卓操作系统的应用软件开发能够保证使用者手中安卓智能操作系统同社会各行业经济发展过程中所使用的电子设备实现有效连接,进而能够为使用者提供更具特色与专业化的服务。若安卓智能操作系统应用软件能够得到广泛地应用,必然会为人们的生产与生活带来便利与实用价值,进而更方便人们的工作与生活。

3安卓操作系统概述

安卓发展史

安卓股份有限公司位于美国加州,公司成立于2003年,并在2005年被谷歌所收购。谷歌公司的主要目标就是要创建标准化与开放化的安卓系统移动客户端平台[4]。同其他智能手机的操作系统相比,安卓操作系统的开放性更加明显,并且能够在其实际运行的过程中始终处于开放状态,同时还能够同其他电子设备实现数据链接,在此基础上,更好地实现高级操作。安卓系统是智能手机当中的一种智能操作系统,所以,其更新的速度相对较快,当前最新版本已经是(M)操作系统

安卓开发平台结构与特征

(1)应用程序层。

智能手机操作系统中的安卓系统,其自身就能够为智能手机的运行提供相应的应用软件,而且,其基本的应用软件都是操作系统本身所配置的,主要的表现形式就是系统应用[5]。然而,在智能手机实际运行的过程当中,这些应用软件同其他的应用软件共同享受同等资源的支配权利。

(2)应用程序框架。

在智能手机操作系统当中的安卓操作系统,本身明显的特征就是能够支持使用者的软件运行,但是,需要基于应用程序框架。而且在安卓智能操作系统当中,各应用软件都能够设计出特有功能模块,只要保证功能的设置与应用程序框架的具体需求相吻合,就能够获取安卓系统有力的支持,最终同其他的功能模块实现信息的交互。

(3)内核设置。

安卓系统是基于发展起来的,所以,该系统的核心就已经集成了Linux的绝大多数特点[6]。而且,其中主要部分就涉及到安卓系统安全认证及网络协议栈等等内容。但是,也正是这种智能集成,使得安卓系统得到了全面发展,也确保该系统实现了层叠式体制结构的构建,积极地提高了安卓系统实际运行的效率。

安卓应用系统基本组件

(1)应用表示层。

在应用软件实际运行的过程中,该组件能够有效地保证应用软件系统同用户的交流,并且在运行时,表示代码需要以特定形式表现,这样能够合理地缓解了系统内部设置的压力。

(2)无可示界面。

该组件同应用表示层的地位同等,都是单独安卓组件,但是最主要的差异就在于,该徐建使用者根本不能够在系统后台运行,而且不能够看到实际的运行状态[7]。同时,由于无可示界面自身的设计特征,无需同用户信息交互,但是却始终为其提供服务,因此,也可以将其当作无形用户界面。

(3)接收广播通知组件。

该组件同事件监听器相似,属于事件推送机制,而在其内部,将安卓应用当中的其他组件作为事件来源信息来进行推送,这就是该组件具体的服务内容。

(4)安卓开发环境搭建。

安卓智能操作系统是开放型的操作平台,所以,在安卓操作系统基础上所开发设计的应用软件,仅对系统原有安卓系统加装系统开发软件即可,这样就能够实现安卓系统应用软件开发。

4Java多线程编程

要想实现Java多线程,就需要积极地运用Thread类子类,使用覆盖方法,即run()[8]。把所要执行代码添加至上述方法当中。但是,这种实现方法存在自身不足,如果该类已经继承另一类,那么就无法对该类继续继承。其次,可以建立Java程序接口,利用该接口用户命令信息能够通过运行命令的方式重新编写命令,并且在重写以后沿数据接口能够直接送至电子设备命令执行阶段,进而有效地提升电子设备命令执行的效率。

5基于安卓操作系统手机遥控PPT播放软件的开发

实用性分析

由于PPT演示实际应用简单,并且图文并茂,所以,在报告或者是会议当中被广泛使用,是一种信息展示的有效形式。然而,传统PPT的展示需要会议的主持人员或者是演说者使用鼠标对PPT的文件播放进行控制。这种方法在实际的应用过程中,为了确保PPT资料的展示具有一定的匹配性,所以,演讲者与会议的主持者始终在电脑旁边,这样就会影响到演讲者个人发挥。在科技快速发展的背景下,激光笔代替原有鼠标,对演讲者来说是一种解放。然而,在PPT书写与绘画要求方面并未得到满足,因此,导致控制方式与演示需求间存在一定的供需矛盾,所以,必须要设计出能够脱离鼠标的一种演讲方式。正因为安卓智能手机系统具有一定的开放性,并且,其处理器的效率较高,所以,大尺寸高分辨率的屏幕都能够在手机中显示并书写。

系统设计

这种PPT播放软件通常被使用在个人电脑中,其架构与系统相吻合,可以被划分为两部分:①客户端;②服务器端。客户端就是在用户电脑中所运行的PPT程序,然而,服务器端则是网络架构服务器的一种链接形式[9]。在此范围内,客户端可以利用网络通信以及其服务器来实现通信。由于这种应用软件相对成熟,所以,其架构与操作系统都十分完善,可以同其他电子信息系统实现链接,并且实际的开发环境十分优秀。设计应用软件的时候,可以将其分成服务器的子系统与终端的子系统。在PPT应用软件当中,服务器端子系统的应用是一种有效地改进,并且被集中于软件系服务器端,可以在服务器端加装自己设计的手机遥控PPT播放软件服务器端。这种方法能够保证PPT系统当中的服务器端同移动终端子系统实现命令信息交互,并且实现移动终端子系统更好地控制手机遥控PPT播放软件。服务器的子系统,其主要的任务就是实现终端PPT文件发送的接收与解析,并且接受终端的控制命令等等。而移动终端的子系统,其主要的工作内容就是发出系统运行命令,同时需要对服务器子系统反馈PPT页面信息予以接受。另外,还应该不断强化移动终端的子系统,使其画板功能更丰富,确保其在手机遥控该软件的过程中,能够有效地下达命令,确保使用者能够以多种方式操控PPT展示。

软件测试与运行结果的展示

完成手机遥控PPT播放软件的编程设计工作后,必须要对其实际的运行状态予以检测,进而确保该软软件具有一定的实用性,同时,还需对其设计效果予以客观地评价。文章对手机遥控PPT播放软件及PPT的展示能力进行了实际检测,并且真实地验证了该软件的功能与效果。在实际的测试过程中,以不同移动数据终端同手机遥控PPT播放软件的服务器子系统实现链接,并且在测试的过程中确保软件自身链接的安全,在移动数据终端处输入相对复杂的信息内容,并且,该软件仍然可以在电脑的页面中快速反应出智能手机具体的指令信息内容。由此可见,站在客观的角度上来看,手机遥控PPT播放软件的设计是成功的,同时也证明了在安卓系统基础上开发应用软件的可行性,实际所开发的应用软件是具有现实应用意义的。

6结束语

综上所述,在智能手机发展和更新的背景下,很多人开始意识到随身通信工具的重要作用,所以对于智能手机更加重视。因为智能手机内置处理器处理能力极强,并且应用程序相对丰富与多样,因此,在人们的日常生产生活当中被广泛应用。当前,安卓操作系统是智能手机重要的操作平台,并给在市场中占据较大份额,所以对于社会发展具有积极地推动作用。由此可见,在安卓操作系统基础上开发应用软件并及时进行更新具有重要的积极作用。

参考文献

[1]杨潇亮.基于安卓操作系统的应用软件开发[J].电子制作,2014(19):45~46.

[2]饶润润.基于安卓操作系统的应用软件开发[D].西安电子科技大学,2013.

[3]王子榕.浅谈基于安卓操作系统的应用软件开发[J].通讯世界,2015(14):220.

[4]李帅.浅论基于安卓操作系统的应用程序开发[J].电子制作,2015(2):87.

[5]乔頔.Android系统应用软件3D界面的设计和开发[D].中国人民大学,2012.

[6]朱婷婷.基于Android平台的PKM软件的研究与设计[D].浙江师范大学,2012.

[7]尚忠阳.一种基于安卓手机的定位服务应用软件的设计与实现[D].北京邮电大学,2014.

[8]伍贤珍.基于Android平台的智能电话应用软件模块设计与开发[D].哈尔滨工业大学,2013.

计算机编程专业的同学们,大家毕业时,应该要书写一份专业论文。以下是我精心准备的浅谈宏程序编程论文,大家可以参考以下内容哦!

摘 要:随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛的应用,越来越多的人正在学习和使用数控编程。目前在我国的数控行业中,对于简单的二维加工编程,大多数人习惯使用手工编程(这里所指的手工编程实际是指普通程序编程),而对于曲面类的零件加工一般都是使用自动编程(此处所指的自动编程主要是指CAD/CAM软件自动编程)来实现的,而使用宏程序编程的人少之又少,甚至有人根本不知道。那么宏程序是什么呢?宏程序到底有什么作用呢?本文就此问题进行讨论。

关键词:普通程序编程 宏程序编程 CAD/CAM软件编程

1 数控编程的种类和概念

数控编程一般分为两类:即手工编程和CAD/CAM自动编程,采用哪种编程方法应根据具体的零件加工形状的难易程度而定。

手工编程

手工编程就是从分析零件图样、确定加工工艺过程、数值计算、编写零件加工程序单、程序输入数控系统到程序校验都由人工完成。手工编程又可分为普通程序编程和宏程序编程。所谓普通程序编程,其实是相对于宏程序编程而言的,它是大多数人经常使用的手工编程方法,这种编程方法是使用ISO代码或其它标准代码指令编程,每个代码的功能是固定的,由系统生产厂家开发,使用者只需也只能按照规定编程,所有的参数坐标都是事先定好的。但有时候这些固定格式的指令不能满足用户灵活的需求,如图1所示的孔系,如果加工时孔的数量、分布直径等随时依据情况变化时,使用固定坐标的程序显然不够灵活。因此,数控系统提供了用户宏程序,使编程更具灵活性。

CAD/CAM自动编程

CAD/CAM自动编程也叫计算机辅助数控编程,它是以待加工零件CAD模型为基础的一种集加工工艺规划及数控编程为一体的自动编程方法。它的编程过程是借助于自动编程软件,在电脑上进行零件加工建模,选择机床和刀具,确定刀具运动方式、切削加工参数,自动生成刀具轨迹和程序代码。最后经过后置处理,按照所使用机床规定的文件格式生成加工程序。通过串行通信的方式,将加工程序传送到数控机床的数控单元。目前主要自动编程软件有UG、Cimatron、MasterCAM、CATIA、CAXA等。

2 宏程序编程和普通程序编程的比较

程序比较

用户宏程序和普通程序存在一定的区别,表1是它们的简要对比。

功能比较

普通程序编程对于较简单的二维加工具有灵活、方便、快捷的优点,但对于某些二维加工却显得臃长,如用数控铣床加工图2所示的平底圆槽,假设现有铣刀为Φ16,由外向里加工,行距为12 mm,只加工一层2 mm深,下面按FANUC0i系统分别用普通程序和宏程序进行编程。

普通程序编程如下:

00001 M03S800

Z5

G01Z-2F40 G02I-52F200

G01X40 G02I-40

G01X28 G02I-28

G01X16 G02I-16

G01X4 G02I-4

G00Z100 M30

宏程序编程如下:

00002 G01X#1F200

M03S800 G02I[-#1]

G54G90G00X52Y0Z100 #1=#1-12

Z5 END 1

G01Z-2F40 G00Z100.

#1=52 M30

WHILE[#1 GT 6] DO 1

由上面可以看出,宏程序编程要比普通程序编程显得简洁、灵活,因为若随着加工圆槽的半径变大、刀具半径变小,普通程序编程的程序会越来越长,修改也很不方便,而宏程序编程的程序不会变长,只要改变几个相应的参数,或把这几个参数也设为变量将更加简便。

另外,对于一些有规律的可以用公式表达的曲线或曲面,普通程序编程是望尘莫及的,而宏程序编程更显出其独特的优势。如图3所示的椭圆槽加工,普通程序编程难以完成,而用宏程序编程则较容易。

假设现有铣刀为Φ8,由外向里加工,行距为6 mm,只加工一层2 mm深,下面按FANUC0i系统用宏程序进行编程。

宏程序编程: WHILE[#1 LE 360]DO 1

O0003 #4=#2*COS[#1]

M03S800 #5=#2*SIN[#1]

G54G90G00X36Y0Z100 G01X#4 Y#5F200

Z10 #1=#1+1

G01Z-2F40 END 1

#2=36 #2=#2-6

#3=26 #3=#3-6

WHILE[#3GE 0]DO 2 END 2

G01X#2F200 G00 Z100

#1=0 M30

3 宏程序编程的特点

宏程序编程的最大特点,就是将有规律的形状或尺寸用最短的程序表示出来,具有极好的易读性和易修改性,编写出的程序非常简洁,逻辑严密,通用性极强,而且机床在执行此类程序时,较执行CAD/CAM软件生成的程序更加快捷,反应更迅速。

宏程序具有灵活性、通用性和智能性等特点,例如对于规则曲面的编程来说,使用CAD/CAM软件编程一般都具有工作量大,程序庞大,加工参数不易修改等缺点,只要任何一样加工参数发生变化,再智能的软件也要根据变化后的加工参数重新计算道刀具轨迹,尽管计算速度非常快,但始终是个比较麻烦的过程。而宏程序则注重把机床功能参数与编程语言结合,而且灵活的参数设置也使机床具有最佳的工作性能,同时也给予操作工人极大的自由调整空间。 从模块化加工的角度看,宏程序最具有模块化的思想和资质条件,编程人员只需要根据零件几何信息和不同的数学模型即可完成相应的模块化加工程序设计,应用时只需要把零件信息、加工参数等输入到相应模块的调用语句中,就能使编程人员从繁琐的、大量重复性的编程工作中解脱出来,有一劳永逸的效果。

另外,由于宏程序基本上包含了所有的加工信息(如所使用刀具的几何尺寸信息等),而且非常简明、直观,通过简单地存储和调用,就可以很方便地重现当时的加工状态,给周期性的生产特别是不定期的间隔式生产带来了极大的便利。

4 宏程序和CAD/CAM软件生成程序的加工性能比较

任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都比较短,一般很少超过60行,至多不过2KB。

一方面,宏程序天生短小精悍,即使是最廉价的数控系统,其内部程序存储空间也会有10KB左右,完全容纳得下任何复杂的宏程序,因此不像CAD/CAM软件那样需考虑机床与外部电脑的传输速度对实际加工速度的影响问题。

另一方面,为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令和圆弧插补G02/G03指令等。因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,且运算速度极快,再加上伺服电机和机床的迅速响应,使得加工效率极高。

而对于CAD/CAM软件生成的程序,情况要复杂得多。

再举一个简单的例子,如用铣刀以螺旋方式加工内圆孔,使用宏程序不仅非常简短,而且机床实际运行时,执行进给速度F=2000 mm/min都可以保持非常均匀、快速的螺旋运动;而在Cimatron软件中,即使通过使用外部用户功能生成相似的刀具轨迹,但刀具轨迹是根据给定的误差值用G01逐段逼近实现的,其程序就比宏程序大两个数量级,而且即使把整个程序都存入到机床的控制系统中,当机床运行时的实际速度上不去,进给速度小于600 mm/min时还不明显,如果F设定为1000 mm/min左右,就可以看到机床在明显的“颤抖”。

5 结语

综上所述,宏程序能简化二维编程中普通程序编程的繁琐问题,能解决二维编程中普通程序编程不能解决的有规律的曲线和曲面编程问题。另外,在加工有规律的曲面时,宏程序能克服CAD/CAM软件编程所无法避免的加工问题。所以,宏程序编程具有普通程序编程和CAD/CAM软件编程无法替代的作用。

参考文献

[1] 陈海舟.数控铣削加工宏程序及其应用实例.

[2] 谢晓红.数控车削编程与加工技术.

[3] 张英伟.数控铣削编程与加工技术.

摘 要:网络发展的早期,人们更多地强调网络的方便性和可用性,而忽略了网络的安全性。当网络仅仅用来传送一般性信息的时候,当网络的覆盖面积仅仅限于一幢大楼、一个校园的时候,安全问题并没有突出地表现出来。但是,当在网络上运行关键性的如银行业务等,当企业的主要业务运行在网络上,当政府部门的活动正日益网络化的时候,计算机网络安全就成为一个不容忽视的问题。

随着技术的发展,网络克服了地理上的限制,把分布在一个地区、一个国家,甚至全球的分支机构联系起来。它们使用公共的传输信道传递敏感的业务信息,通过一定的方式可以直接或间接地使用某个机构的私有网络。组织和部门的私有网络也因业务需要不可避免地与外部公众网直接或间接地联系起来,以上因素使得网络运行环境更加复杂、分布地域更加广泛、用途更加多样化,从而造成网络的可控制性急剧降低,安全性变差。

随着组织和部门对网络依赖性的增强,一个相对较小的网络也突出地表现出一定的安全问题,尤其是当组织的部门的网络就要面对来自外部网络的各种安全威胁,即使是网络自身利益没有明确的安全要求,也可能由于被攻击者利用而带来不必要的法律纠纷。网络黑客的攻击、网络病毒的泛滥和各种网络业务的安全要求已经构成了对网络安全的迫切需求。

本文对现有网络安全的威胁以及表现形式做了分析与比较,特别对为加强安全应采取的应对措施做了较深入讨论,并描述了本研究领域的未来发展走向。

关键词 网络安全;信息网络;网络技术;安全性

一、绪论

课题背景

随着计算机网络技术的飞速发展,信息网络已经成为社会发展的重要保证。信息网络涉及到国家的政府、军事、文教等诸多领域,存储、传输和处理的许多信息是政府宏观调控决策、商业经济信息、银行资金转账、股票证券、能源资源数据、科研数据等重要的信息。其中有很多是敏感信息,甚至是国家机密,所以难免会吸引来自世界各地的各种人为攻击(例如信息泄漏、信息窃取、数据篡改、数据删添、计算机病毒等)。

通常利用计算机犯罪很难留下犯罪证据,这也大大刺激了计算机高技术犯罪案件的发生。计算机犯罪率的迅速增加,使各国的计算机系统特别是网络系统面临着很大的威胁,并成为严重的社会问题之一,从而构成了对网络安全的迫切需求。

计算机网络安全威胁及表现形式

计算机网络具有组成形式多样性、终端分布广泛性、网络的开放性和互联性等特征,这使得网络容易受到来自黑客、恶意软件、病毒木马、钓鱼网站等的攻击。

常见的计算机网络安全威胁

(1) 信息泄露

信息被透漏给非授权的实体。它破坏了系统的保密性。能够导致信息泄露的威胁有网络监听、业务流分析、电磁、射频截获、人员的有意或无意、媒体清理、漏洞利用、授权侵弛、物理侵入、病毒、术马、后门、流氓软件、网络钓鱼等。

(2) 完整性破坏

通过漏洞利用、物理侵犯、授权侵犯、病毒、木马、漏洞等方式文现。

(3) 拒绝服务攻击

对信息或资源可以合法地访问,却被非法地拒绝或者推迟与时间密切相关的操作。

(4) 网络滥用

合法用户滥用网络,引入不必要的安全威胁,包括非法外联、非法内联、移动风险、设备滥用、业务滥用。

常见的计算机网络安全威胁的表现形式

(1) 自然灾害

计算机信息系统仅仅是一个智能的机器,易受自然灾害及环境(温度、湿度、振动、冲击、污染)的影响。目前,我们不少计算机房并没有防震、防火、防水、避雷、防电磁泄露或干扰等措施,接地系统也疏于周到考虑,抵御自然灾害和意外事故的能力较差。日常工作中因断电而设备损坏、数据丢失的现象时有发生。由于噪音和电磁辐射,导致网络信噪比下降,误码率增加,信息的安全性、完整性和可用性受到威胁。

(2) 网络软件的漏洞和“后门”

网络软件不可能是百分之百的无缺陷和无漏洞的,然而,这些漏洞和缺陷恰恰是黑客进行攻击的首选目标,曾经出现过的黑客攻入网络内部的事件,这些事件的大部分就是因为安全措施不完善所招致的苦果。另外,软件的“后门”都是软件公司的设计编程人员为了自便而设置的,一般不为外人所知,一旦“后门”洞开,其造成的后果将不堪设想。

(3) 黑客的威胁和攻击

这是计算机网络所面临的最大威胁。黑客攻击手段可分为非破坏性攻击和破坏性攻击两类。非破坏性攻击一般是为了扰乱系统的运行,并不盗窃系统资料,通常采用拒绝服务攻击或信息炸弹;破坏性攻击是以侵入他人电脑系统、盗窃系统保密信息、破坏目标系统的数据为目的。黑客们常用的攻击手段有获取口令、电子邮件攻击、特洛伊木马攻击、钓鱼网站的欺技术和寻找系统漏洞等。

(4) 垃圾邮件和间谍软件

一些人利用电子邮件地址的“公开性”和系统的“可广播性”进行商业、宗教、政治等活动,把自己的电子邮件强行“推入”别人的电子邮箱,强迫他人接受垃圾邮件。与计算机病毒不同,间谍软件的主要目的不在于对系统造成破坏,而是窃取系统或是用户信息。

(5) 计算机犯罪

计算机犯罪,通常是利用窃取口令等手段非法侵入计算机信息系统,传播有害信息,恶意破坏计算机系统,实施贪污、盗窃、和金融犯罪等活动。在一个开放的网络环境中,大量信息在网上流动,这为不法分子提供了攻击目标。他们利用不同的攻击手段,获得访问或修改在网中流动的敏感信息,闯入用户或政府部门的计算机系统,进行窥视、窃取、篡改数据。不受时间、地点、条件限制的网络,其“低成本和高收益”又在一定程度上刺激了犯罪的增长。使得针对计算机信息系统的犯罪活动日益增多。

(8) 计算机病毒

20世纪90年代,出现了曾引起世界性恐慌的“计算机病毒”,其蔓延范围广,增长速度惊人,损失难以估计。它像灰色的幽灵将自己附在其他程序上,在这些程序运行时进入到系统中进行扩散。计算机感染上病毒后,轻则使系统工作效率下降,重则造成系统死机或毁坏,使部分文件或全部数据丢失,甚至造成计算机主板等部件的损坏。

二、网络信息安全防范策略

防火墙技术

防火墙,是网络安全的屏障,配置防火墙是实现网络安全最基本、最经济、最有效的安全措施之一。防火墙是指位于计算机和它所连接的网络之间的硬件或软件,也可以位于两个或多个网络之间,比如局域网和互联网之间,网络之间的所有数据流都经过防火墙。通过防火墙可以对网络之间的通讯进行扫描,关闭不安全的端口,阻止外来的DoS攻击,封锁特洛伊木马等,以保证网络和计算机的安全。一般的防火墙都可以达到以下目的:一是可以限制他人进入内部网络,过滤掉不安全服务和非法用户;二是防止入侵者接近你的防御设施;三是限定用户访问特殊站点;四是为监视Internet安全,提供方便。

数据加密技术

加密就是通过一种方式使信息变得混乱,从而使未被授权的人看不懂它。主要存在两种主要的加密类型:私匙加密和公匙加密。

私匙加密

私匙加密又称对称密匙加密,因为用来加密信息的密匙就是解密信息所使用的密匙。私匙加密为信息提供了进一步的紧密性,它不提供认证,因为使用该密匙的任何人都可以创建加密一条有效的消息。这种加密方法的优点是速度很快,很容易在硬件和软件中实现。

公匙加密

公匙加密比私匙加密出现得晚,私匙加密使用同一个密匙加密和解密,而公匙加密使用两个密匙,一个用于加密信息,另一个用于解密信息。公匙加密系统的缺点是它们通常是计算密集的,因而比私匙加密系统的速度慢得多,不过若将两者结合起来,就可以得到一个更复杂的系统。

访问控制

访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和非常访问。访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。适当的访问控制能够阻止未经允许的用户有意或无意地获取数据。访问控制的手段包括用户识别代码、口令、登录控制、资源授权、授权核查、 日志和审计。它是维护网络安全,保护网络资源的主要手段,也是对付黑客的关键手段。

防御病毒技术

随着计算机技术的不断发展,计算机病毒变得越来越复杂和高级,对计算机信息系统构成极大的威胁。在病毒防范中普遍使用的防病毒软件,从功能上可以分为网络防病毒软件和单机防病毒软件两大类。单机防病毒软件一般安装在单台PC机上,即对本地和本地工作站连接的远程资源采用分析扫描的方式检测、清除病毒。网络防病毒软件则主要注重网络防病毒,一旦病毒入侵网络或者从网络向其他资源传染,网络防病毒软件会立刻检测到并加以删除。病毒的侵入必将对系统资源构成威胁,因此用户要做到“先防后除”。很多病毒是通过传输介质传播的,因此用户一定要注意病毒的介质传播。在日常使用计算机的过程中,应该养成定期查杀病毒的习惯。用户要安装正版的杀毒软件和防火墙,并随时升级为最新版本。还要及时更新windows操作系统的安装补丁,做到不登录不明网站等等。

安全技术走向

我国信息网络安全研究历经了通信保密、数据保护两个阶段,正在进入网络信息安全研究阶段,现已开发研制出防火墙、安全路由器、安全网关、黑客入侵检测、系统脆弱性扫描软件等。但因信息网络安全领域是一个综合、交错的学科领域,它综合了利用数学、物理、生化信息技术和计算机技术的诸多学科的长期积累和最新发展成果,提出系统的、完整的和协同的解决信息网络安全的方案,目前应从安全体系结构、安全协议、现代密码理论、信息分析和监控以及信息安全系统五个方面开展研究,各部分相互协同形成有机整体。

由于计算机运算速度的不断提高,各种密码算法面临着新的密码体制,如量子密码、DNA密码、混沌理论等密码新技术正处于探索之中。因此网络安全技术在21世纪将成为信息网络发展的关键技术

三、结 论

总的来说,网络安全不仅仅是技术问题,同时也是一个安全管理问题。我们必须综合考虑安全因素,制定合理的目标、技术方案和相关的配套法规等。世界上不存在绝对安全的网络系统,随着计算机网络技术的进一步发展,网络安全防护技术也必然随着网络应用的发展而不断发展。

参考文献

1、 葛秀慧.计算机网络安全管理[M ].北京:清华大学出版社,2008.

2、 张琳,黄仙姣.浅谈网络安全技术[J].电脑知识与技术,2006, (11).

相关百科

热门百科