软件(JAVA)专业调研报告

2024-09-07 版权声明 我要投稿

软件(JAVA)专业调研报告

软件(JAVA)专业调研报告 篇1

计算机系软件教研室温跃平

为了更好地为学校计算机软件编程(JAVA)专业的课程设置、教学和就业做准备,今年暑假我对软件专业进行市场调研,在调研过程中侧重与软件编程和手机软件方向,主要地点是广州,现将调研结果总结如下:

一、职业教育计算机专业现状分析

由于现在世界上计算机应用已经朝着多元化发展,特别是网络技术与计算机软硬件技术飞速发展,推动着经济全球化的进程。而当前我们很多职业学校计算机应用专业的设置和教学方法,与计算机的发展及社会对计算机专业人才的需求不相适应,在当前的形势下显得过于单薄和简陋,毕业的学生除了在一些计算机应用水平较低的行业和机关外,已经无法适应飞速发展的信息社会对计算机专业人才专业化、高技能、高素质的需求。

据统计表明,职业教育计算机软件相关专业的毕业生,大部分(80%以上)从事计算机销售与技术支持、数据录入、办公文秘等岗位的工作,在计算机应用与软件人才链中处于较低端位置。在软件开发、游戏软件制作、网络编程等岗位上工作的职业学校毕业生相对较少,而实际上这些岗位非常需要高职(技)毕业生,高职(技)毕业生在这里具有很大的就业的空间。

因此,我们有理由认为,随着计算机的普及,社会不仅需要掌握计算机基础知识,具有操作和维护计算机系统的人才,更加需要掌握一定的计算机组成原理、计算机网络等知识,具备软件开发、手机游戏制作、网络游戏制作等能力的软件专业高等专业人才。

二、调研的目的此次进行调研的主要目的是了解软件行业的人才需求目标,能力要求以及行业的工作过程,以此来修改人才培养方案和进行课程建设。

三、调研的主要方式

1、上网查询本行业相关的企业的招聘启示,了解行业所需的前沿知识;

2、网上查找行业的最新动态以确定我进行企业调研的方向;

3、利用自己的人际关系,通过对广州虫洞网络科技有限公司、北京宏天德美数码科技有限公司广州分公司、深圳市三旺通信技术有限公司等几家IT企业采用走访、电话采访、网络沟通等多种途径的调研,了解企业中的工作流程。

四、调研的主要内容

1、软件行业的发展现状;

2、软件行业的人才需求状况;

3、广州地区的软件企业现状;

4、职业(技工)院校培养的软件专业学生适合的岗位群。

五、调研结果

1、关于中大科技园

中山大学国家大学科技园是依托中山大学的科技、人才等资源优势和学科 特点,面向社会,开放办园,以产权为纽带,以市场为导向,以技术创新为中心,把学校的人才、技术优势与社会资源结合起来,实现校企之间的紧密合作,使中山大学国家大学科技园成为具有持续创新能力,集高新技术的研究开发、高新技术企业的孵化、创新人才的吸纳与培育于一体的大学科技园,为促进中山大学科技和教学整体水平的提高服务,为广东的经济建设服务。

中大科技园自2006年10月被认定为国家大学科技园,按照“一校多园”的模式,先后与省内多个市、区签订了全面合作协议,在全省各地建立分园区,搭建产学研合作平台,共同促进高新技术产业发展。经过近年来的建设和发展,目前已基本形成六个园区,即:主园区(海珠园区)、大学城园区、越秀园区、广州科学城园区、珠海园区和深圳园区。

2、关于软件行业

近年来,软件行业的迅速发展为社会创造了巨大的价值的同时,也为人才市场提供了大量的就业岗位。据广州市信息产业局透露,到2012年广州每年的高新技术人才缺口达30万人,其中高新软件人才的缺口达20万。巨大的软件人才缺口达20万。巨大的软件人才缺口导致众多企业不得不以重金到别的企业去挖取软件人才。广州市作为珠三角地区的经济文化重镇,云集了数百家国内知名的软件企业,但其中大部分软件企业仍面临10000月薪难觅技能性软件人才的尴尬局面。此外除了常规的软件服务行业外,还发展了一些新的领域的软件服务,例如移动服务(手机软件的开发),网络服务等。这也说明了在常规的软件人才之外,我们的教育还需要为社会提供新领域的软件开发人才。

目前软件从业人员中主要以大量的本科生为主,缺乏高端人才的同时也缺乏大量的软件“蓝领”,行业人才呈现“橄榄形”。行业的用人需求也在根据市场不断进行调整,最初对学历,工作经验要求较高,但是随着行业不断发展,现在的软件行业注重的不仅仅是学历更重要的是项目的实践能力,所有企业都希望企业员工在进入企业的时候就可以独当一面。这也正是我们职业院校培养的目标,所以随着行业的发展,计算机软件编程专业的毕业生就业率不断提高,证明我们的职业教育是十分必要的。这其中最重要的就是我们要时刻追随市场的脚步,看到用人单位对人才的需求。

那么现阶段企业对人才到底有那些需求呢,这从每家企业的招聘启事中就可以看到,以下是三家企业的人才招聘启事。

(1)某公司JAVA软件工程师招聘要求

基本要求:计算机相关专业,大专及以上学历,有互联网相关经验。职位描述:

 与项目经理,研发、评测工程师和测试工程师密切合作,开发与设计用于提

高测试和开发工作效率和质量的系统;

 能够发现内部测试的潜在测试需求并开发相应工具支持,以保证产品测试高

效与质量;

 能独立完成测试开发组内的内部工具需求。

职位要求

 熟悉Linux平台下的开发;

 熟悉网络编程,多线程和多进程编程;

 精通C/C++,Java,shell,python的一种或多种;

 精通数据结构和算法,熟悉编译器或解释器的开发,掌握至少一种编译器开

发技术(flex/bison 或 antlr);

 精通掌握自动化测试和白盒测试的工具和方法,精通一种(不限一种)主流

开源自动化测试工具,如gtest,robot framework, selenium,staf等;  熟悉SQLServer、MySql或oracle,能进行大型数据库的设计;

 精通http,xml,html,css,js,php,熟悉主流web开发技术;  良好的表达沟通能力、责任心、自我管理能力及团队精神。

(2)某公司JAVA技术开发主管招聘要求

基本要求:计算机相关专业,大专及以上学历,有10年以上相关经验。职位描述:

 从事旅游电子商务平台的分析、设计和开发工作;

 带领开发成员负责系统或子系统的分析设计和开发工作,负责核心编码;  对业务知识有清晰的理解,可以和业务人员一起梳理需求。

职位要求:

 4-5年以上工作经验(ERP系统、电子商务开发优先),本科及以上学历,计

算机相关专业;

 精通java开发技术,熟悉java开发框架,熟悉开发流程,熟悉C#语言、熟

悉面向对象的软件分析、设计方法和设计模式;

 熟悉SQLServer200020052008数据库或MySql数据库;

 有JAVA网站建设经验、B/S及多层架构开发思想、熟练掌握JavaScript、DIV+CSS、HTML者优先;

 分析设计能力强,具备良好的沟通和协调能力,有电子商务网站或大型系统

前端开发经验优先;

 责任心强,具有创业热情者优先。

(3)某公司手机软件开发工程师招聘要求

基本要求:计算机相关专业毕业,本科及以上学历,有两年以上相关工作经验; 职位描述:

从事手机软件、手机游戏的研发工作

职位要求:

 熟悉手机软件开发及流程,精通C/C++或Java编程语言,曾参与手机游戏或

软件开发工作;

 熟悉IOS、Andriod、Windows Mobile等任一手机平台开发技术者更佳;  有J2EE大型项目或者WAP手机游戏开发经验,精通掌握

SQL Server2000/2005、mysql中至少一种数据库产品;

 精通下列开发工具:Eclipse,JBuilder;

 熟悉软件技术文档的编写,具备良好的文档编制习惯和代码书写规范;  拥有良好的职业操守,学习能力强,思维敏捷,喜欢钻研;

 良好的沟通、协调能力,工作认真负责,能承受一定的工作压力。

3、职业(技工)院校培养的软件专业学生适合的岗位群

 编程岗位:如java软件工程师等。

 调试岗位:如软件调试员等。

 技术服务岗位:如:软件售后工程师等。

 软件测试:如软件测试工程师等。

 项目主管:如java技术开发主管等。

 项目构架师:如项目经理等。

六、调研感受

通过本次调研,我感触颇深,尤其是对企业软件技术岗位划分和开发程序员的技术要求两方面,希望对软件相关课程设置和人才培养方案以及学生的求职就业有些帮助。

1、软件技术岗位划分:

根据企业的软件技术岗位需求按照分工进行分类,具体为:

部门级管理层:与市场部对接、分析订单内容、订单开发难度和开发周期,核算利润和成本,并协调部门人力和物力资源进行分析、设计和实施。这一部分人既需要有着深厚的技术底蕴、又要拥有丰富的项目开发经验,同时还有对资源的组织协调能力。不过由于一个公司这样的人员仅需要一两个,而且职务高、待遇好,一般岗位也少,更不会对刚毕业的学生进行职位开放。

项目管理层:处于部门管理层下、一事一办,以项目的开始进入角色,在划定的范围内协调人力、物力,在部门管理层制定的项目开发计划内完成软件的开发和部署。目前这样的岗位需求量较上一种岗位来说较多,虽然行政级别并不高,但是在开发部门却举足轻重,属于团队的核心骨干,因此待遇也非常的优厚。此类人一般需要至少三年以上的团队项目开发经验、且技术好、具有培养团队、领导团队克服困难、实现目标的品质的程序员。此类岗位通常也不向刚毕业学生进行开放。

开发程序员:要求程序语言基础扎实,能使用程序语言算法实现程序目标;学习能力强、可以通过资料及项目经理的短期培训下掌握所需相关程序语言技术、团队开发技术、项目结构和行业背景。最后还需要具有一定的问题分析能力和设计能力,方才能成为企业所需要的开发程序员。而企业中对程序员级别的划分:一般为对项目中需求能进行数据分析和功能分析及其具体实现的,一般定为高级程序员;而仅能对具体问题进行分析、设计和实现的为普通程序员。这方面的岗位才是毕业学生真正的求职方向。

2、开发程序员的技术要求(1)建立起以程序语言为方向的逻辑思维能力,能熟练的运用各种数据结构类型存储问题数据,并设计和编写算法实现数据的加工和处理。要达到这一目的,前期的使用C语言为基础学习的《程序设计基础》课程就至关重要,学生们必须通过该课程学好if、while等控制语句,同时掌握函数、结构体等结构,并依靠以上技术设计算法实现各种问题的求解方法。另外,《数据结构》也是同学们课后的一本必修课程,重点了解各种数据结构的特点以及操作方法。另外各种排序、查找算法的理解和掌握也必须一个一个的攻关。以上内容都是未来求职中笔试考核中的重点,必须认真对待。

(2)学习面向对象程序设计方法,并深刻理解面向对象程序设计思想。能使用设计工具、如Viso绘制用户案例图、类图、对象图,实现面向对象思想下的项目分析和设计;之后运用高级程序语言完成接口、抽象类、用户类的实现和组装,最终实现软件项目。这一目标,同学们可以通过《Java面向对象程序设计》、《C++面向对象程序设计》或者《C#面向对象对象程序设计》三门课程中的一到两门完成该思想和方法的学习。

(3)学习数据库技术和数据库编程技术。按照普通软件程序员的要求,数据库技术的基本要求为掌握数据库概念、表结构概念、掌握对数据库表在各种复杂条件下的单表和多表的增、删、改、查SQL语句操作、理解视图、游标、事务等技术即可,而以未来走向高级程序员或者项目经理为目标,学生们则有必要掌握数据库建库、建表(含多种约束)、触发器、存储过程、索引的SQL语句操作,同

时还要学习数据库设计原理,包括各种范式以及数据库设计工具,如Power Designer来实现数据库及表的设计、创建和最终实施。当然作为项目经理级别的学习还要包括数据库安全配置、以及备份和恢复。以上内容学生们可以在《数据库SQL Server 2008开发技术》中学习数据库原理及SQL语言的规范和技巧以及各项技术,在《基于C#的数据库编程技术》学习高级语言的数据库编程方法和技巧,当然在《Java面向对象程序设计》中也有着数据库编程技术的学习。

(4)一到两门实用型软件开发技术及大型热门开发工具的掌握,对于企业而言,以上技术属于专业基础,属于每个软件岗位应聘者必备的知识。虽然1到3栏目中的专业知识和技能的掌握对于一些企业而言已经成为入职合格者的入场券。但是在更多的求职者的竞争下,对它们的考核还不足以使学生能确保自己的岗位优势。因此掌握一到两门实用型软件开发技术及大型热门开发工具就成为学生求职的必备利器了。当前市场上流行实用型软件开发技术有很多,但最为主流的仅仅只有两个:一是以微软公司技术为主的C#和ASP.NET技术范畴,另一个是以SUN公司技术为主的Java技术范畴。两种技术几乎统治着国内软件开发行业。其中C#和ASP.NET在开发模式和开发效率上占优、而Java则在安全性和平台无关性方面无可匹敌,在未来的竞争中谁优谁劣还无法判定,因此学生们为了扩大自己求职就业面,两个技术均需掌握。

(5)有时学生们还需要理解下软件开发的架构、模式、框架等技术,因为它们往往在面试过程中成为用人单位衡量入职者综合水平高低的题目。目前在软件开发中常用三层架构、MVC模式、SSH框架技术等都是学什么需要理解范畴。我们的学生可以在各门专业课程当中看到它们的身影,而对这些技术概念如果我们的学生能充分理解后,并写入到应聘简历中将会大大的为你的求职加分。

另外,对于其它课程而言,并不是不重要,而仅仅是在求职和入职初期,用人单位的面试和考核中不会占有太多的位置,比要如Java的JQuery和Ext。因此建议学生在以上5点内容学习完成后再进行学习其它专业课程。

软件(JAVA)专业调研报告 篇2

1.1 软件产业规模迅速壮大:

我国软件产业随着国家政策环境和市场环境的不断改善, 产业规模明显扩大, 全年共完成软件产品及系统集成收入2424亿元, 同比增长48.4%, 高出全行业增速7.2个百分点。其中, 软件产品 (含软件服务) 收入1490亿元, 同比增长35.3%, 占软件产业比重为61%;系统集成收入934亿元, 同比增长75.7%, 增速比上年提高了20个百分点以上。2010年全行业完成软件出口28亿美元, 比上年增长40%。

1.2 软件行业的在我国东部和西部地区的发展差异非常显著:

我国的经济发展区域性差异也影响了软件行业的发展, 也造成了软件行业在地区之间的发展不均衡。纵观全国软件和系统集成的收入分布情况分析, 软件行业大多集中在东部地区, 对于中西部等地区的软件行业主要依靠少数几个省市的带动。

1.3 软件行业的产品需求结构不断变化, 工具 (平台) 软件的更新和中间件的不断丰富:

从产品需求的结构来看, 和往年相比较, 软件产品的市场结构正逐渐的发生了变化:应用软件的市场份额依然占据主导地位, 工具 (平台) 软件的需求量在市场中所占的需求份额正在逐年下降, 中间件所占的比例不断上升。2012年, 在我国软件产品市场需求中, 工具 (平台) 软件的需求量已经下降到22.9%, 下降了3.1个百分点;中间件的需求则增长至12.6%, 提高了4.9个百分点, 应用软件的比重为64.5%。

2 对软件人才的需求分析

随着我国信息化进程的深入, 软件技术专业的就业行业领域也正在逐步扩大, 软件技术专业毕业生可选择从事科研活动、教育事业、企业开发、事业单位、技术岗位和管理岗位等单位和部门从事计算机方面教学、软件开发和维护、计算机信息系统的建设和维护、软件相关技术支持和监理等方面工作, 可以担任的行业岗位包括软件硬件开发人员、软件测试从业人员、软件技术支持、计算机信息管理监理工程师、计算机网络系统集成工程师、计算机系统管理等软件专业技术岗位工作。另外, 很多非软件行业的单位也有着大量的熟悉计算机及相关专业技术的从业人员。但是, 即使就业选较广的软件技术专业的应届毕业生, 也面临着一次就业的难题, 这也是我国多数高校软件技术专业毕业生的尴尬现状。

3 软件技术专业培养人才过程中的主要矛盾

按照过去对软件技术专业人才培养的认识, 软件技术学科是关于算法的学问, 培养的人才必须具有开展算法研究与应用的能力。这是一种以专业学术的发展和专业研究为导向的人才培养模式, 在此种模式之下, 学院重视学生的理论知识讲解, 而不重视实际应用的培养, 多数高校培养人才的目标更重于学研型和学术型, 缺少独立分析解决问题的能力;对软件开发、开发工具和开发方法的应用不熟练、行业经验匮乏、缺少对现实事物的抽象能力。当今的信息化社会更需要的是以职业能力为导向的人才培养模式, 社会要求培养的毕业生不仅要有扎实的基本理论知识, 还应具有较强的社会实践动手能力。用人单位要求招聘来的学生经过较短的就业培训就能够适应自己的工作岗位, 对于软件技术专业的应届毕业生, 不仅要求学生具有较强的动手能力, 而且要有实际项目开发经验、专业基础也要比较好, 还能够熟练的运用软件技术来解决日常工作中遇到的一些问题。

4 教学模式改革的建议

4.1 转变教学观念, 以市场需求为导向、培养应用技能型人才:

近些年来, 随着科技的不断进步和社会的不断发展, 计算机软件已经逐步应用到了生活的各个方面, 这样一来就需要大量大计算机软件开发和维护人员, 而当前的企业需求人才的情况是需要有一定的软件开发经验, 这样一来就能够很快的进入工作状态, 并且能够保证整个项目的开发进度和开发质量, 而当前的多数高等院校的计算机科学与技术专业以及软件技术专业往往培养的是科研型和研究性的人才, 在整个专业标准和实训环节上往往还是比较偏重于理论教学和验证性的上机操作, 这样一来毕业生往往缺乏动手能力, 很难一毕业就升任公司所给出的工作岗位。因此, 转变传统的教学观念, 引入新的课程及培养方案势在必行, 对于以学生实际就业为导向的课堂教学应加大力度。

4.2 教学标准和所学课程的改革:

对于教学标准的改变, 要从软件技术系实际情况出发, 结合当前学生的自身学习情况和所掌握的知识的情况, 及学生适应的岗位群进行剖析, 最终确定对于软件技术系整个三年的培养目标, 并且结合当前企业实际用人需求, 采取项目驱动式的方式进行教学, 加大实训力度, 将当前紧缺工种的职业技能鉴定植入课堂, 深入教学改革和课程改革, 摒弃落后的软件工具使用, 大胆创新课堂授课方式和考核方式, 是学生在学习理论的同时掌握出色的专业技能, 进而更加适合当前企业的需要, 提高学生的就业率和就专率。4.3深化校企合作, 建立真实项目为驱动的校外实训基地:在实际的教学过程中, 没门课程在最后两周都会有一个集中实训的过程, 这样一来使得学生对本门课程所学的知识掌握的更加熟练, 而在实际的企业工作过程中, 往往某一个开发的环节需要应用到多门课程的知识, 这样一来就需要将多门知识整合在一起进行系统的实训, 软件技术系应积极展开校企合作, 多多邀请企业负责人和技术能手, 为学生讲解当前的主流开发语言和技术, 并给出真实的企业项目为学生进行实际训练, 从而大大提高学生的动手能力, 实现学习与就业的无缝对接。4.4加大力度构建双师型队伍:培养高端应用型技能人才为当前的师资力量提出了更高的要求, 老师不仅要有扎实的理论知识, 丰富的教学经验, 而且应当是本行业中的技术能手, 这样一来就需要加大力度提高老师们在本领域的专业技术能力, 从而为更好的展开教学打下良好的基础。

5 总结

随着计算机的应用, 尤其是网络应用的普及, 软件技术应用的范围越来越广泛, 软件技术专业的教育也得到了发展。但现状是大部分软件技术专业毕业生缺乏实际应用开发设计能力, 不能很好地将软件技术专业的知识应用到生产生活中。软件技术业就业市场上一方面是企业急需大量的人才, 却难以选择到满意的求职者;另一方面是高校培养出来的毕业生难以满足企业的需要, 就业率持续走低。在计算机日益普及的今天, 信息化的社会需要什么样的计算机人才, 高校如何根据信息化社会的发展及时调整软件技术专业的培养方向及教学方法, 培养符合社会需求的计算机类人才是值得我们关注的一个问题。S

摘要:本文针对目前软件技术专业毕业生就业现状, 分析了信息化社会对计算机人才的需求, 并由此分析了目前软件技术专业教育教学中存在的问题, 并提出了计算机应用型人才培养的几点建议, 以培养应用型人才为目的, 改革教学体系与课程设置, 开展校企合作, 加强师资队伍建设。

关键词:实用型人才,教学改革,校企合作

参考文献

[1]王琦, 优化人才培养模式:提高计算机专业学生就业竞争力[J].计算机教育, 2007.

多个手机Java软件统一管 篇3

图1

1合并前需要注意的问题

Multime Constructor软件是一款绿色软件。不过为了保证能够顺利运行,Multime Constructor软件所在文件夹需要直接放在电脑磁盘根目录下,并且需要将准备合成的多个Java软件都放在Multime Constructor软件文件夹内(见图2)。

图2

2设置转换参数进行Java文件合并

完成准备工作后点击软件文件夹内“MULTIME.EXE”程序运行软件,在出现的窗口中点击确定后进入软件主界面。

先对合并的Java软件进行参数设置(见图3):设定集合后程序的名称如“MULTime”和保存的位置,然后选择手机Java平台如MIDP 1.0、MIDP 2.0或Motorola机型,这里一定要根据手机要求选择,否则合并的Java程序无法在手机上运行。此外,你还可以替换掉原来程序的图标,只要使用手机屏幕大小的PNG格式图片即可。

图3

点击“添加”按钮,加入需要合并的多个Java软件,注意需要保证添加的Java软件具有相同的适应性即平台一致。确认无误后点击“开始合成”,出现一个类似DOS的转换窗口,移动转换窗口右边滑块至最底端,如果显示“done”则表示已经顺利完成了合并,反之显示“failed”则表明加入的Java文件不匹配。转换完成的Java文件出现在设定目录中“output”文件夹内,只要将其装入手机安装后即可运行。

3在手机上运行合并后的Java程序

与一般Java软件安装方法一样,对合并后的Java文件进行安装。运行新的Java程序后,主界面出现合并前加入的各个Java软件,与原来各自安装的Java软件差不多。点击“选项”还可以对软件设置参数,如增加最小化功能、热键设定等。选定需要运行的Java程序,执行“选项→Run”即可运行该软件,进入软件后操作方法与原来单个程序一样,只不过多了“minimize”功能,执行后即可切换到主界面,便于运行其他Java程序。当需要退出主程序时,点击“Kill”即可关闭整个程序(见图4)。

软件(JAVA)专业调研报告 篇4

大作业总结报告

(第3组)

小组成员:曾志鑫

3131101242

3131101216

3131101243

曾海达

3131101241

潘宝坤

3131101237

一、小组作业题目

学生信息管理系统

二、功能(业务)描述及设计思想(建议UML图示辅助介绍更好)

本系统是用JAVA编写的,运行环境也是在JAVA下,所用数据库为SQL Server 2008,本系统有教师和学生两个版本,即有学生和教师两种权限。在运行了本系统后,可能通过注销来切换用户。现在登陆的为教师权限的教师版,在有这个权限时,可以添加任意想添加的学生信息。当需要删除某个学生的信息时,也可以做出想应的操作。当要为学生录入成绩时,点击相应的按钮根据界面做出相应的操作就可以完成了,删除某个学生的成绩时,也是一样的。另外还有添加选修课程名的功能,这个功能是为了实现现在学生有选修课的,当有不同的选修课时就可以自己加入即可。当某门选修课不再开时,删除对应的选修课就行了。当鼠标放在每一个按键上,界面右边就会提示并介绍这个按键的功能。

如果现在登陆的为学生权限的学生版,在有这个权限时,可以查看自己"的个人信息和成绩,学生进入的用户名为自己的学号,默认的密码为学号。学生自己可以在登陆了本系统后自行修改自己的密码。切记要修改自己的个人进入密码,并妥善保管好自己的密码。在登陆本系统后,学生就可以选课了,所有可选的课程名都可以选择,但每个人限选一门,当在有选修课后再去选课就会出现相应的提示,如需重选,则点击相应的按钮,就会出现重选界面。但要注意重选选修课是先删除已选的选修课之后再选,所以重选和删除选修课要慎重.查看个人信息,就可以看到自己的信息和成绩。

系统总体结构图如下:

三、运行结果截图

系统登入界面

系统首界面

添加信息界面

添加成功界面

删除信息界面

查询信息界面

修改信息界面

添加选课界面

删除选课界面

四、程序中存在的缺陷及解决思路

1、系统没有设计注册,账号密码是通过管理员分配的。

2、对数据库的操作是对于单表操作的,没有在多表实现同步。表与表之间没有建立起连接。

五、程序调试情况说明

1、开始的时候,数据库连接不上,上网搜索找资料后才知道是数据库在安装的时候是默认使用windows方式验证的,需要设置为window 与sql 的混合方式验证,并且启用sa账户并设置密码与应用程序匹配。

2、在数据库解决时候还是连接不上,在阅读书籍之后忽略了eclipse里需要导入相应的数据库包,比如sql的sqljdbc.jar

3、界面设计时需要根据数据的大小显示出想要的大小,以及位置。开始数据的方式不是那么的好用,上网搜索了一下电脑分辨率的获取,然后利用电脑的分辨率来进行控制。

4、在对数据库进行操作时,一开始没有考虑到数据的同步,所以表与表之间需要建立主键与外键的连接,那样的话设计到视图的操作,感觉时间上没那么多,就没有解决。

六、开发心得

一个好的团队的总体力量超过一个个体力量的总共和。

开发我们提倡团队开发,主要原因有

三、第一,软件开发过程复杂,而团队可以使问题简单许多,遇到问题可以大家一起解决。第二,团队操作可以在很大程度上实现优势的互补。第三,团队合作在很大程度上培养了人与人之间沟通的理解能力。

一直以来期望从事自己喜欢的事业的我,对软件开发有者及大的兴趣,可由说种种原因使我从事工作以来走了好几年弯路,心中的梦想迟迟不能得以实现,可程序员的梦想从来没有从我的心中抹去,但这扇大门好像并没有向我敞开,今天,贵公司给了我敲开这扇大门的机会,让我真实体验了程序员的诞生过程。早就听说,程序员的前几个月是最苦的,可从来没有感受到,海马实习基地让我提前感受到了刚刚进入软件行业的压力和困惑,再也没有在自己家里随便写段小程序后的那种“自豪”感了。要面对每天必须面对的问题,再也不可能以“逃避”而了之了。也让我感觉到做为一个程序员所应该具备的基本素质在这不到一个月的实习过程中也让我深深体会到了作为一个合格的程序员应该具备的基本素质。

团队精神和协作能力是程序员应该具备的基本素质,最近的工作中让我深深休会到了这一点,由于小组成员配合不好,使本来很方便的cvs给自己的工作带来的及大的麻烦,一不小心自己写的的东西就会被小组别的成员在上传文件的时候给覆盖掉,一整天的工作可能就这样被反工,我们小组这次就是因为协作不好,导致各模块之间不法连接,给工作带来了及大的麻烦,消耗了大量的劳动力还没有提高工作效率。这使我深深的体会到:一个成功商业性软件的开发必须有一个有强大凝聚力的团队,个人的力量是有限的,团队精神和良好的协作会使我们做出优秀的软件。

良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。这次的这个小小的项目,就因为文档上的一点点理解错误让我们花了很大的工夫去改代码,改页面。很庆幸的是,这是一个小项目,要是大项目,这种问题可能就会导致大量的代码修改,可见文档在一个项目中起者巨大的做用。

此外,良好的代码编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。作为一个程序员,对需求的理解能力也是很重要的,只有真正理解了一个模块的作用,才会写出高效率的代码,才能使整个软件项目作出来更加优秀,具备更好的安全性和稳定性,我在写代码的过程中就遇到了需求理解上的问题,使得写出来的代码功能不全,幸好不是给客户发现在,要不,这个软件的商业价值可能就会打折扣了。单元测试对于一个程序员来说是不可不做的一项工作,不做好测试就会给后期的集成工作带来麻烦,往往为了一个小问题会让我们查找好多模块,给后期工作带来很大麻烦。

这一段时间的工作也让我明白了一点:一个优秀的程序员必须不断的学习,随时总结,找到自己的不足,这样逐步提高,才能让自己很快的成长起来。

七、小组成员的工作分配,及完成情况(作为评个人成绩的依据): 曾志鑫:部分代码撰写及文档撰写

洋:主要负责代码的撰写

超:部分代码撰写及部分文档撰写

曾海达:负责代码调试及部分文档撰写 潘宝坤:负责代码调试及部分文档撰写

八、源代码清单(注:只需列出文件名,具体的项目代码和该报告一起打包上传到服务器本课程目录下的“课程大作业”子目录)

1)数据库操作函数

public boolean Method_InsertInto(String query,String number)//添加学生信息到数据库中的方法 public String Method_query(String query,String number)//查询学生信息的数据库

public boolean Method_alter(String query_message,String query_score)//修改学生信息的数据库方法 public String Method_print_all_name()//得到数据库中所有的学生姓名

public int Method_delete(String number,boolean category_delete)//删除学生信息的数据库方法 public void Method_add_curriculum(String query)//将新的选修课名添加到数据库中的方法 public void Method_del_curriculum(String query)//删除数据库中选修课名的数据库方法

public String Method_query_curriculum(String number)//查询数据中学生选修课这项是否有了选修课名 public String Method_teacher_query_all_curriculum()//得到教师所有可删除的选修课程名 public String Method_student_query_all_curriculum()//得到学生所有可以选择的选修课程名 public boolean Method_student_add_curriculum(String curriculum)//将学生的选课加入到数据库中的学生信息中

public boolean Method_student_del_curriculum()//将数据库中学生已选的选修课删除 public boolean Method_change_password(String password)//修改数据库中学生的密码

2)登录及操作函数

public void Method_Login()//用户登陆操作 public void Method_Inquire()//查询的处理

public void Method_Add_Student_Information()//添加学生信息操作

public void Method_Print_All_Name()//将得到的所有学生姓名加入到下拉菜单中 public void Method_Del_Information()//删除学生信息操作 public void Method_Add_Curriculum()//教师添加选修课程名操作 public void Method_Del_Curriculum()//教师删除选修课程名操作

3)学生操作函数

public void Method_Student_Add_Curriculum()//学生选课操作 public void Method_Student_Del_Curriculum()//学生删除选修课操作 public void Method_Change_Password()//学生修改密码操作 public void Method_Explain()//显示系统说明的操作

4)界面显示操作的部分函数

public static Point getMidDimesion(Dimension d)//获得屏幕中间的坐标 public Image getImage(String url)private JFrame getJFrame_addinformation()private JFrame getJFrame_addinformation()5)对学生信息按钮的操作的部分函数

private JButton getJButton_query()private JButton getJButton_delscore()private JButton getJButton_alterscore()private JButton getJButton_addscore()private JButton getJButton_delinformation()private JButton getJButton_addinformation()6)对菜单子项的操作的部分函数

private JMenuItem getJMenuItem_explain()private JMenuItem getJMenuItem_last()private JMenuItem getJMenuItem_query()private JMenuItem getJMenuItem_delscore()private JMenuItem getJMenuItem_alterscore()private JMenuItem getJMenuItem_addscore()private JMenuItem getJMenuItem_delinformation()private JMenuItem getJMenuItem_addinformation()private JMenuItem getJMenuItem_change()7)对菜单主目录操作的部分函数

private JMenu getJMenu_help()private JMenu getJMenu_inquiry()private JMenu getJMenu_result()private JMenu getJMenu_information()private JMenu getJMenu_file()8)对学生信息的操作,如:性别、选修课、成绩等部分函数

private JTextField getJTextField_student_result_sex()private JTextField getJTextField_student_result_curriculum()private JTextField getJTextField_student_result_NativePlace()private JTextField getJTextField_student_result_department()private JTextField getJTextField_student_result_specialty()private JTextField getJTextField_student_result_class()private JTextField getJTextField_student_result_java()private JTextField getJTextField_student_result_english()private JTextField getJTextField_student_result_math()private JTextField getJTextField_student_result_sports()9)对选修课的操作的部分函数

软件专业实习报告 篇5

B/S模式的网上购物系统的构建

本次暑期实习,通过运用以前学习过的Java,数据库知识,以及这次实习期间学习的HTML和JSP知识,开发一个简单的网上购物系统,达到理论与实践相结合,培养我们对软件编程的兴趣,给予了我们实际动手操作的机会,让我们初步了解了网站的基本构建,同时也为我们以后的学习和工作积累了经验。

二、实习目的及要求

从电子商务平台的现状和客观需求出发,建立一个方便、实用、美观、安全的网上购物系统。以便使用户能够方便的查询网站所提供的物品,并能顺利的完成购物的流程,同时也便于系统管理人员对网站的数据的管理工作。

在用户注册得到确认后,便有了查询和购买货品的权限。他们可以通过分类查找,方便的查询到自己所需的货物,并在确认要购买货物的数量后,将货物放入购物车中,再购买其他货物。完成所有购买工作后,选择付款方式,及相关信息,提交结果

系统维护人员可以方便的对所注册用户进行管理,同时方便的进行货品的添加、修改、删除工作。另外,所有的用户都可以修改、查询自己的密码,并查询自己所购买的货物。

三、实习内容

在这次小组软件实习中,我主要负责用户管理这一模块和部分界面的设计,以及图片资源的搜索。其中用到的知识,技术包括:html,jsp,Java,数据库Acce等。

其中用户管理模块部分实现的功能为:

在主页面上点击用户注册,会员登录,管理员登录链接,进入相应的页面,分别进行注册,登录操作,登录后按自己意愿选择跳转到相应的页面进行操作。具体功能如下:

1、用户注册register.jsp.jsp

用户点击“新用户注册”这个链接后,页面跳转到用户注册页面(填写用户基本信息页面),然后通过点击”注册”转到数据库信息插入页面,.jsp使用request.getParameter(“userName”);语句获取上一个页面参数,连接数据库,若该用户账号在数据库中不存在且前后输入的两个密码相同,则将用户的注册信息存入数据库,提示“注册成功”。若数据库中已经存在该用户账号,则提示“用户名已存在,重新输入”。

2、会员登录vip.jspenter.jspshowinformation

用户在主页面点击“登录”这个链接后,页面跳转到用户登录(填写账号和密码),然后通过点击”登录”转到数据库查询页面,enter.jsp使用request.getParameter(“userName”);语句获取上一个页面填写的参数,连接数据库,在数据库中查询用户账号,若数据库中不存在该用户账号或者账号密码不匹配,则提示“账号和密码错误,请重新输入”,若在数据库中存在相匹配的账号和密码,则提示“登录成功”,点击“确定”后页面显示用户的账户名,并且可以选择相关操作,如修改个人资料,查看购物车等。用户也可以不登录而返回主页面。

3、管理员登录manager.jspmanagerenter.jsp

用户在主页面点击“管理员登录”这个链接后,页面跳转到管理员登录界面(填写账号和密码),然后通过点击”登录”转到数据库查询页面,managerenter.jsp使用

request.getParameter(“masterName”);语句获取登录页面填写的参数,连接数据库,在数据库中查询管理员账号,若数据库中不存在该管理员账号或者账号密码不匹配,则提示“账号和密码错误,请重新输入”,若在数据库中存在相匹配的账号和密码,则提示“登录成功”,点击“确定”后跳转到管理页面,并且可以选择相关操作,如添加、删除货物,查看用户信息等。

4、修改个人资料showinformation.jspupdate.jspsaveupdate.jsp

在showinformation.jsp中用户点击“修改个人资料”这个链接后,页面跳转到用修改资料页面(重新填写用户基本信息),然后通过点击”确定修改”转到数据库信息插入页面,saveupdate.jsp使用request.getParameter(“paasword”);语句获取上一个页面参数,连接数据库,若修改符合要求,则将用户的信息在数据库中修改保存,并提示“修改成功”。若填写的资料不符合要求,则提示“修改失败”。

5、注销账号vip.jsp

用户点击“注销账号”这个链接后,该页面把获取的用户的信息传到数据库,然后在数据库中找到相应的用户后对其进行删除操作,这样账号被注销。

在这个操作中,要注意参数的传值问题,用户的账号登录之后,就必须在此后的每一个页面都能能够获取,因此我们使用JSP的seion这个内置对象,使用

String userName =(String)seion.getValue(“userName”);语句对用户账号进行页面间的传值。

四、实习总结

我说说自己编程期间遇到的问题和自己对软件编程的总结。

在开始的阶段,我有很多专业的知识了解得很少,例如html,jsp,等等,如何运用jsp里面的内置对象,如何运用jsp实现页面的特效,等一系列的问题;真正动手编程的时候发现所用的知识都是需要深入学习和锻炼的。

在软件系统编写的过程中学到了不少课外的东西我还是总结了不少关于编程改错的经验。

首先,一定要充分熟悉和理解老师规定的任务和需要达到的要求,若我们面对的是用户,则需要更多的交流沟通,这样才不至于脱离开发方向。

另外,若自己发现软件代码的错误,要先在网上查询是否有类似的错误,跟老师同学讨论,并思考清楚。同时,不要放过任何有疑问的地方,经常跟老师及小组成员交流,他们会给你很多很好的建议。交流会的时候要积极思考,做好记录,认真留意别人发现的错误。在实习期间,与同学的交流让我少犯了很多错误,也长得到了不少启发。

在软件开发过程中,有很多需要注意的东西。

要有团队合作的精神。现今的大中型软件的编写,分工越来越细。我们这次编写的简单网络购物系统,就分了好几部分,而每个部分又包括好几个,针对不同的功能。所以在编程过程中,一定要和组员交流,不至于最后各自的程序连接不起来。团队合作精神在软件开发中非常重要重要。

要有耐性,不要浮躁。长时间调试一个错误,没有人会觉得有趣。但是,我们应该换一个角度去思考,我们在让我们程序更完善,那也是一种成就!

要有模仿的精神。有些程序要实现的功能可能与某些曾经写过或用过的功能类似,这是我们可以吧一些好的代码拿过来,修改之后使之成为自己的代码。很多时候好的模仿能节省更多的时间,也是我们成功的方法之一。

要有创新的精神。在编写程序中,要有自己想法,赋予自己程序新的思想。

要不断地学习。对于一个想变成优秀的人,任何时候都需要学习。

要不断地实践。书本上的知识,别人的经验,你不去实践,永远不是你的。理论与实践结合才是硬道理。

通过这次编程实习,我在个人素质方面有较大的提高,包括面对和处理问题的能力、思维的创造性和全面性、交流和沟通能力、为人处事的能力等,同时克服自己的缺点。

总的来说,这次实习对我有很大意义。它第一次让我找到了成就感,虽然我负责编写的部分不是很难,自己写的代码实现功能也不是很强完善,但毕竟是我自己认真写的,终于也为小组出了一份力,当软件成型时,稍微有点成就感吧。这次的实习激起了我对软件编程的兴趣,让我不再畏惧编程,也能好好正视自己的专业。

专业仿真软件自主学习报告 篇6

专 业 仿 真 软 件 自主学习报告

建议先下载

专业

电气工程及其自动化

你老大 自不动不化 保密老师会找我的 大爱的李爱琴

2015年6月18日(日期假的)学生姓名 班学级 号

指导教师 完成日期

目录

1.概述...........................................................!1

1.1仿真软件的认识..............................................1 1.2专业仿真软件的分类..........................................1 1.3用途........................................................1 2.Keil软件.......................................................2

2.1 Keil软件简介...............................................2 2.2 Keil界面...................................................2 2.3 Keil在中国的应用情况.......................................3 2.4优点........................................................3 2.5keil操作....................................................3 3.Proteus软件....................................................8 3.1 proteus软件简介............................................8

3.2功能模块....................................................8 3.3应用领域....................................................8 3.4功能特点....................................................9 3.5proteus操作.................................................9 4.LabVIEW软件..................................................13

4.1LabVIEW简介...............................................13 4.2LabVIEW功能...............................................13 4.3Labview应用领域...........................................13 4.4 特点.....................................................14 4.5LabVIEW操作...............................................15 5.emu8086软件.................................................21

5.1emu8086 简介..............................................21 5.2功能......................................................21 5.3使用方法..................................................21 5.4emu8086操作...............................................22 6.MCS-51单片机仿真.............................................25

6.1仿真课题名称..............................................25

6.2仿真课题要求:............................................25 6.3硬件电路设计..............................................25 6.4软件设计..................................................29 6.5仿真数据及现象............................................33

7.8086仿真......................................................35

7.1 仿真课题名称.............................................35 7.2 仿真要求.................................................35 7.3硬件电路设计..............................................35 7.4软件程序设计..............................................39 7.5仿真数据及现象............................................50 8.LabView仿真..................................................52

8.1仿真课题..................................................52 8.2仿真要求..................................................53 8.3仿真设计..................................................53 9.结束语.........................................................57

9.1课程意义..................................................57

9.2感悟与体会................................................57 9.3建议......................................................58 9.4致谢......................................................58

1.概述

1.1仿真软件的认识

目前我们已经学习了关于PLC有关的博图、GX Simulator仿真软件;与自动控制、数字信号有关的Matlab;与电路、单片机有关的AutiumDesigner,Multisim、Proteus,Keil等仿真软件。具有灵活性高,易操作,能够弥补仿真硬件的不足,成本相较于硬件又很低的特点,对我们学习工作生活的帮助很大。

1.2专业仿真软件的分类

仿真软件分为仿真语言、仿真程序包和仿真软件系统三类。其中仿真语言是应用最广泛的仿真软件。仿真程序包是针对仿真的专门。应用领域建立起来的程序系统。软件设计人员将常用的程序段设计成通用的子程序模块,并设计一个主程序模块,用于调用子程序模块。仿真研究人员使用这种程序包可免去繁重的程序编制工作。仿真软件系统以数据库为核心将仿真软件的所有功能有机地统一在一起,构成一个完善的系统。它由建模软件、仿真运行软件(语言)、输出结果分析报告软件和数据库管理组成。的具体操作应用。

1.3用途

仿真软件(simulation software),专门用于仿真的计算机软件。它与仿真硬件同为仿真的技术工具。仿真软件是从50年代中期开始发展起来的。它的发展与仿真应用、算法、计算机和建模等技术的发展相辅相成。1984年出现了第一个以数据库为核心的仿真软件系统,此后又出现采用人工智能技术(专家系统)的仿真软件系统。这个发展趋势将使仿真软件具有更强、更灵活的功能、能面向更广泛的用户。

目前比较风行的是虚拟现实仿真软件,比如虚拟现实仿真平台(VR-Platform)。其目标是不断改善面向问题、面向用户的模块描述能力和对模型实验的功能。不同技术水平的用户通过仿真软件能在不同的程度上采用他们表达问题的习惯语言,方便地与计算机对话,完成建模或仿真实验。

2.Keil软件

2.1 Keil软件简介

Keil软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2.2Keil界面

2.2.1 Keil μVision2

KeilμVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到μVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。μVision2 IDE可为它们提供单一而灵活的开发环境。

2.2.2Keil μVision3

2006年1月30日ARM推出全新的针对各种嵌入式处理器的软件开发工具,集成KeilμVision3的RealView MDK开发环境。RealView MDK开发工具KeilμVision3源自Keil公司。RealView MDK集成了业内领先的技术,包括KeilμVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。

2.2.3Keil μVision4

2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的KeilμVision4,其编译器、调试工具实现与ARM器件的最完美匹配。Keil μVision5

2013年10月,Keil正式发布了KeilμVision5 IDE。

2.3Keil在中国的应用情况

Keil官网虽然没有发布中文版本,但是Keil系列软件却被中国80%以上的软硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。国内由米尔科技、亿道电子、英倍特提供Keil的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商。

2.4优点

1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

2.5keil操作

1.新建工程

2.选择工程位置

3.选择用到的CPU

4.新建文件

5.保存文件,注意后缀名

6.把文件添加到工程

7.编写程序

6.选中产生HEX文件

3.Proteus软件

3.1 proteus软件简介

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

3.2功能模块

1.智能原理图设计 2.完善的电路仿真功能 3.实用的PCB设计平台 3.3应用领域

3.3.1教学

Proteus是一个巨大的教学资源,可以用于: 1.模拟电路与数字电路的教学与实验; 2.单片机与嵌入系统软件的教学与实验; 3.微控制器系统的综合实验; 4.创新实验与毕业设计; 5.项目设计与产品开发 3.3.2技能考评

Proteus能提供考试所需所有资源;

1.Proteus能直观评估硬件电路的设计正确性; 2.Proteus能直观的对硬件原理图进行调试软件; 3.Proteus能验证整个设计的功能; 4.测试可控、易评估、易实施; 3.3.3产品开发

Proteus Design Suite集成了原理图捕获、SPICE电路仿真和PCB设计,形成一个完整的电子设计系统。对于通用微处理器,还可以运行实际固件程序进行仿真。与传统的嵌入式设计过程相比,这个软件包能极大地缩短开发时间。

1.从产品概念到设计完成的完整仿真与开发平台;2.预研设计与项目评估,减少开发风险;3.ODM的虚拟样机;·强大的分析与调试功能克服新手的经验不足;4.软硬件的交互仿真与测试大大减少后期测试工作量;5.便利项目管理与团队开发。

3.4功能特点

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

革命性的特点: 1.互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达4,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

2.仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

3.5proteus操作

1.新建项目

2.路径选择、项目名确立

10

3.选择图纸大小

11

12

4.LabVIEW软件

4.1LabVIEW简介

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。4.2LabVIEW功能

与 C 和BASIC 一样,LabVIEW[1] 也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW[2] 的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。

Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式。,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。

LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

4.3Labview应用领域

4.3.1测试测量:

LABVIEW 最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域。经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。

4.3.2控制:

控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然

13

而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。

4.3.3仿真:

LabVIEW包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以先在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。

4.3.4儿童教育:

由于图形外观漂亮且容易吸引儿童的注意力,同时图形比文本更容易被儿童接受和理解,所以LabVIEW非常受少年儿童的欢迎。对于没有任何计算机知识的儿童而言,可以把LabVIEW理解成是一种特殊的“积木”:把不同的原件搭在一起,就可以实现自己所需的功能。著名的可编程玩具“乐高积木”使用的就是LabVIEW编程语言。儿童经过短暂的指导就可以利用乐高积木提供的积木搭建成各种车辆模型、机器人等,再使用LabVIEW编写控制其运动和行为的程序。除了应用于玩具,LabVIEW还有专门用于中小学生教学使用的版本。

4.3.5快速开发:

根据笔者参与的一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。

4.3.6跨平台:

如果同一个程序需要运行于多个硬件设备之上,也可以优先考虑使用LabVIEW。LabVIEW具有良好的平台一致性。LabVIEW的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW还支持各种实时操作系统和嵌入式设备,比如常见的PDA、FPGA以及运行VxWorks和PharLap系统的RT设备。4.4特点

尽可能采用了通用的硬件,各种仪器的差异主要是软件。可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。用户可以根据自己的需要定义和制造各种仪器。未来虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE488 或 GPIB协议。未来的仪器也应当是网络化的。

14

LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足 GPIB、VXI、RS-232和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW[2] 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

利用LabVIEW[2],可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW[2] 提供了Windows、UNIX、Linux、Macintosh的多种版本。

它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索 CPUVIEW 会有更详细信息)。

4.5LabVIEW操作

15

16

1.新建项目

2.编辑前面板

17

18

3.编辑后面板

19

4.仿真

20

5.emu8086软件

5.1emu8086 简介

EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程

5.2功能

该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程。这套软件对于刚开始学习汇编语言的朋友非常有帮助.它能够编译源代码,并在模拟器上一步一步的执行。可视化界面令操作易如反掌.可以在执行程序的同时可观察寄存器,标志位和内存.算术和逻辑运算单元(ALU)显示中央处理器内部的工作情况.

这个模拟器是在一台“虚拟”的电脑上运行程序的,它拥有自己独立的“硬件”,这样你程序就同诸如硬盘与内存这样的实际硬件完全隔离开,动态调试(DEBUG)时非常方便.8086的机器代码同INTEL下一代微处理器完全兼容,包括Pentium II 和 Pentium 4,我相信 Pentium 5 同样也会支持 8086指令.这意味着8086代码具有很广泛的应用范围,它在老式的和最新的计算机系统上都能工作.

8086指令的另外一个优点是它的指令集非常小,这样学起来会容易得多.Emu8086 同主流汇编程序相比,语法简单得多,但是它能生成在任何能兼容8086机器语言的代码。注意:如果你不使用Emu8086编译程序,那你无法在运行的时候单步跟踪

5.3使用方法

5.3.1如何运行 1.在开始菜单选在它的图标,或者直接运行Emu8086.EXE

21

2.在“FILE”菜单中选择“SAMPLE” 3.点击“Compile and Emulate”按纽(或者按快捷键F5)

4.点击“Single Step”按纽(或者按快捷键F8),可以查看代码如何运行

5.4emu8086操作

1.新建项目

22

2.编译程序

23

3.调试

24

6.MCS-51单片机仿真

6.1仿真课题名称

八路抢答器

6.2仿真课题要求:

(1)用1位7段LED数码管显示选手组别;

(2)用8个LED显示抢答状态,常亮为正常答题,闪烁为犯规;(3)要求有蜂鸣器提示按键操作;

(4)要配置2个按键给裁判用,一个是开始键一个是清除键。

6.3硬件电路设计

25

6.3.1硬件搭建总图

下载后可调整图片

6.3.2各部分字电路介绍 1.单片机最小系统

2.显示抢答状态

26

27

抢答按键

4.数码管显示电路

28

3.5.裁判开始和清除按键以及声响部分

6.4软件设计

程序故意加了错误,下载文档后可见#include 3

#inclu33de #define uchar unsigned char #define uint unsigned int uchar code TAB[]= //共阳数码管的段码

{

0xc0, //“0”

0xf9, //“1”

0xa4, //“2”

0xb0, //“3”

0x99, //“4”

0x92, //“5”

0x82, //“6”

0xf8, //“7”

0x80, //“8”

0x90, //“9”

};uchari,aa,num,memary,xx;sbit START=P3^0;sbit sounder=P3^7;bit int1_flag;int play;

/***********延时程序段**********/ void Delay(uint z)

29

{ uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);

} /*******************************/ /*******INT0中断服务程序********/ void reset0()interrupt 0 //高级中断 { EX1=1;P1=0xff;P0=0xff;P2=0xff;sounder=0;int1_flag=0;} /*******************************/ /*******INT1中断服务程序********/ voidqiangda()interrupt 2 { EX1=0;int1_flag=1;//中断标准位

play=KEYscan();} /*******************************/ /*********按键扫描程序**********/ KEYscan(void){

{错误段

xx=P1;switch(xx){

case 0xfe:num=1;break;

case 0xfd:num=2;break;

case 0xfb:num=3;break;

case 0xf7:num=4;break;

case 0xef:num=5;break;

case 0xdf:num=6;break;

case 0xbf:num=7;break;

case 0x7f:num=8;break;

30

default:break;} } returnnum;} /*******************************/ /********LED灯显示程序*********/ Display2(){ //int play1;while(1){

switch(play)

{

case 1:P2=0xfe;break;

case 2:错误段 P2=0xfd;break;

case 3:P2=0xfb;break;

case 4:P2=0xf7;break;

case 5:P2=0xef;break;

case 6:P2=0xdf;break;

case 7:P2=0xbf;break;

case 8:P2=0x7f;break;

default: break;

} break;} } /*******************************/ /********数码管显示程序*********/ Display(){ //int play;while(1){

switch(play)

{

case 1:P0=TAB[1];break;

case 2:P0=TAB[2];break;

case 3:P0=TAB[3];break;

case 4:P0=TAB[4];break;

31

case 5:P0=TAB[5];break;错误段

case 6:P0=TAB[6];break;case 7:P0=TAB[7];break;

case 8:P0=错误段 TAB[8];break;

default: break;

}

break;} } /*******************************/ /***********起始LED*************/

/*******************************/ /************主程序*************/ void main(){

P1=0xff;//初始化

P0=0xff;//初始化

P2=0xff;//初始化 sounder=0;

int1_flag=0;

EA=1;//开总中断开关

EX1=1;//开INT1外部中断

IT1=1;//INT1边沿触发方式

IT0=1;//

EX0=1;// aa=0xfe;

while(1)

{

if(int1_flag==0)

{

P0=aa;

Delay(500);

aa=_crol_(aa,1);

} /////////////////////////////////////

if(int1_flag==1)

{

if(START==0)

32

{

sounder=1;

Display();

Display2();

}

/////////////////////////////////////

if(START==1)

{

sounder=1;

Display();

Display2();

Delay(200);

P2=0xff;

Delay(200);

}

}

}

} 6.5仿真数据及现象

1.仿真起始状态,数码管不断的依次点亮每个显示位

33

2有人抢答,数码管显示抢答选手序号并且LED灯闪烁、音响设备启动

3.主持人按下启动按钮后,2号选手抢答

34

7.8086仿真

7.1 仿真课题名称

基于8086的Protus仿真电子计算器 7.2 仿真要求 实现电子计算器的相关功能,如加减乘除等

7.3硬件电路设计

35

7.3.1硬件搭建总图下载后可调整图片

下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片

36

7.3.2子电路介绍(1)88086芯片部分

(2)数据锁存器部分

37

(3)与按键部分

(4)显示部分

(5)译码电路

38

7.4软件程序设计

程序故意加了错误,下载文档后可见

网上有很多类似程序都是错的!!

DATA SEGMENT

X

DB

?,?,?,?

;存放数据的每一位 X1 DW

?

;存放第一个数据值 X2 DW

?

;存放第二个数据值

Y

DW

?

;存放运算结果

S

DB

?

;存放运算符号值

E

DB

?

;按下等号键标记 CC DB ?

;存放运算数据位数

H

DB

0

;存放按键行号

L

DB

0

;存放按键列号 DISCODE DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

;段码表 DATA ENDS CODE SEGMENT

39

ASSUME

CS:CODE,DS:DATA

START: MOV

AX,DATA

MOV

DS,AX

MOV

AL,90H

;设置为A口输入,B口输出,C口输出

OUT

46H,AL

MOV

DI,OFFSET X+3

;DI指向X的高位

KKK: CALL

KEY

;扫描按键

JMP

KKK;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号 KEY PROC

CHECK: CALL

DISP

;等待按键按下的同时进行显示

MOV

AL,0F0H

;所有行输出低电平

OUT

44H,AL

IN

AL,40H

CMP

AL,0FFH

;读列值

JZ

CHECK

;若都为高电平则无键按下,等待

MOV

CX,50

LOOP

$

;延时消抖

IN

AL,DX

;重读列值

CMP

AL,0FFH

JZ

CHECK

;无键按下一直等待

MOV

H,0

;有键按下,先把行列号变量清0

MOV

L,0

MOV

BL,01H

MOV

BH,0FEH

;扫描法读键值:从第一行开始测试,即PC0输出低电平

NEXT: MOV

AL,BH

OUT

44H,AL

NEXTH: IN

AL,40H

;读列值,判断是第几列有键按下

TEST

AL,BL

;从第一列开始判断

JZ

WAIT0

ROL

BL,1

CMP

BL,20H

;当前行状态下没有任何列有键按下,则转为对下一行的测试

JZ

NEXTL

INC

H

;每判断一列,列号加1

JMP

NEXTH

;再对下一列进行判断

NEXTL: MOV

H,0

MOV

BL,01H

ROL

BH,1;对下一行测试,让下一个PC口输出低电平

CMP

BH,0EFH

JZ

EXIT

INC

L

JMP

NEXT

40

错误段

WAIT0: IN

AL,40H

;若有键按下,则等该按键松开后再计算键值

CMP

AL,0FFH

JNZ

WAIT0

MOV

CX,50

LOOP

$

;延时消抖

IN

AL,40H

CMP

AL,0FFH

JNZ

WAIT0

CALL

KEYVALUE

;调计算键值子程序

EXIT: RET KEY ENDP

;以下为计算键值子程序,通过行列号计算键值(键值=行号*5+列号)

;键值存放在DL寄存器中 KEYVALUE PROC

MOV

DL,L

MOV

DH,H

SHL

DL,1

SHL

DL,1

;列号乘4

ADD

DL,DH

CMP

DL,9

;按下的是数字键

JNG

NUM_CALL

CMP

DL,14

JL

CONT_CALL

;按下的是运算键

CMP

DL,14

JZ

OUTP_CALL

;按下的是等于键

CMP

DL,15

JZ

CLR_CALL

;按下的是清除键

NUM_CALL: CALL

NUMBER

;调数字键处理子程序

JMP

EXIT1

CONT_CALL: MOV

S,DL

;存放运算键的键值

MOV

E,0

CALL

COUNT

;调运算键处理子程序,计算第一个加数

JMP

EXIT1

OUTP_CALL: CALL

OUTP

;调等号键处理子程序

JMP

EXIT1

CLR_CALL: CALL

CLEAR

;调清除键处理子程序

EXIT1: RET错误段

KEYVALUE ENDP;以下为清除键处理子程序,按下清除键后,X变量全部清0 CLEAR PROC

41

MOV

X[3],0

MOV

X[2],0

MOV

X[1],0

MOV

X[0],0

CALL

BITP

RET CLEAR ENDP;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量

;并根据运算符号,调用相应的运算子程序 OUTP PROC

PUSH

AX

PUSH

DX

PUSH

BX

INC

E

CALL

COUNT

;调运算键处理子程序,计算第二个运算数据

CMP

S,10

JZ

ADD_CALL

;运算符为加号,则调用加法子程序

CMP

S,11

JZ

SUB_CALL

;运算符为减号,则调用减法子程序

CMP

S,12

JZ

MUL_CALL

;运算符为乘号,则调用乘法子程序

CMP

S,13

CALL

DIVP

;运算符为除号,则调用除法子程序

JMP

STORE1

ADD_CALL: CALL

ADDP

JMP

STORE1

SUB_CALL: CALL

SUBP

JMP

STORE1

MUL_CALL: CALL

MULP

STORE1: MOV

AX,Y

;以下程序将各运算子程序返回的运算结果,按位分解,送入X变量

MOV

DX,0

MOV

BX,1000

DIV

BX

MOV

X[0], AL

MOV

AX,DX

MOV

BL,100

DIV

BL

MOV

X[1],AL

MOV

AL,AH

MOV

AH,0

MOV

BL,10

42

DIV

BL

MOV

X[2],AL

MOV

X[3],AH

POP

BX

POP

DX

POP

AX

RET OUTP ENDP;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量

;或者将第二个运算数据的数值计算出来并存入X2变量;将运算符的值存入S变量 COUNT PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

CALL

BITP

;测试X中的数据是多少位

CMP

CC,4

;输入的数据是4位数?

JZ

C4

CMP

CC,3

;输入的数据是3位数?

JZ

C3

CMP

CC,2

;输入的数据是2位数?

JZ

C2

JMP

C1

;输入的数据是1位数?

C4: MOV

AX,0

MOV

AL,X[0]

MOV

BX,1000

MUL

BX错误段

MOV

DX,AX

C3: MOV

AL,X[1]

MOV

BL,100

MUL

BL

ADD

DX,AX

C2: MOV

AL,X[2]

MOV

BL,10

MUL

BL

ADD

DX,AX

C1: MOV

AL,X[3]

MOV

AH,0

ADD

DX,AX

CMP

E,1

43

JNZ

X1_S

MOV

X2,DX

;按下的是等号,则将第二个运算数据的值存入X2变量

JMP

EXIT3

X1_S: MOV

X1,DX

;按下的是运算符号,则将第一个运算数据的值存X1变量

MOV

X[3],0

;清空X变量

MOV

X[2],0

MOV

X[1],0

MOV

X[0],0

EXIT3: POP

DX

POP

BX

POP

AX

RET COUNT ENDP;以下为数字键处理子程序

;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数 NUMBER PROC

CMP

E,1

JNZ

CONTINUE

MOV

E,0

CALL

CLEAR

CONTINUE: CMP

CC,0

;目前数据为0位,即没有数据,则转到SSS

JZ

SSS;若已有数据,以下程序将X左移8位。;例如:先输入“1”,当再输入2时,;先要将“1”从个位移到十位,然后再将“2”存放到个位

PUSH

AX

PUSH

DX

MOV错误段

AL,X[3]

MOV

AH,X[2]

MOV

DL,X[1]

MOV

DH,X[0]

MOV

CX,8

LL: SHL

AX, 1

RCL

DX,1

LOOP

LL

MOV

X[3],AL

MOV

X[2],AH

MOV

X[1],DL

MOV

X[0],DH

POP

DX

44

POP

AX

SSS: MOV

[DI],DL

;将当前键入的数据存放到X的最低位

INC

CC

;数据位数加1

CMP

CC,4

;判断数据位数

JNG

EXIT2

MOV

CC,0

;如果数据超过4位,重新从最低位开始存放

MOV

X[2],0

MOV

MOV

EXIT2: CALL

RET NUMBER ENDP;加法子程序 ADDP PROC

PUSH

MOV

ADD

MOV

POP

RET ADDP ENDP;减法子程序 SUBP PROC

PUSH

MOV

SUB

MOV

POP

RET SUBP ENDP;乘法子程序 MULP PROC

PUSH

PUSH

MOV

MOV

MUL

MOV

POP

POP

RET MULP ENDP

X[1],0 X[0],0

DISP

AX AX,X1 AX,X2 Y,AX AX AX AX,X1 AX,X2 Y,AX AX AX DX AX,X1 DX,X2 DX Y,AX DX AX

;调显示子程序,显示输入的数据

45

;除法子程序 DIVP PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

MOV

AX,X1

MOV

BX,X2

DIV

BX

MOV

POP

POP

POP

RET DIVP ENDP;求幂子程序

PF

PROC

PUSH

PUSH

PUSH

MOV

MOV

MOV

DEC

LOP: MUL

MOV

LOOP

MOV

POP

POP

POP

RET

PF

ENDP;阶乘子程序

JCP

PROC

PUSH

PUSH

PUSH

MOV

MOV

MOV

DEC

DEC

BEGIN: MUL

Y,AX

DX

BX

AX AX DX CX CX,X2 DX,X1 AX,X1 CX DX DX,X1 LOP Y,AX CX DX AX AX BX CX CX,X1 AX,X1 BX,AX BX CX BX

46

DEC

BX

LOOP

BEGIN

MOV

Y,AX

POP

CX

POP

BX

POP

AX

RET

JCP

ENDP;求余子程序

QYP

PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

MOV

AX,X1

MOV

BX,X2

DIV

BX

MOV

Y,DX

POP

DX

POP

BX

POP

AX

RET

QYP

ENDP;显示子程序,将X中的数值按位显示出来 DISP PROC

PUSH

BX

PUSH

AX

MOV

BH,0

LEA

SI,DISCODE

CALL

BITP

;测试X位数

CMP

CC,4

JZ

QIAN

CMP

CC,3

JZ

BAI

CMP

CC,2

JZ

SHI

CMP

CC,1

JMP

G

JMP

NONE

QIAN: MOV

AH,11100000B

;从第4位开始显示

MOV

AL,AH

OUT

44H,AL

MOV

BL,X[0]

MOV

AL,[SI+BX]

关于Java软件的性能测试分析 篇7

1 Java软件测试系统设计

使用Java编写的应用程序和软件,可移植性和拓展性比较强,它既可以在一台单独的电脑上运行软件的功能,也可以在网络中分布在不同的服务器和客户端上运行,软件的适应能力很强,Java还具有很多其他优点,例如:其还可以在编写那些容量很小的应用程序模块的过程中得以应用,移植到其他的应用程序中,并且可以嵌入到网页中,作为网页的一部分与网页合并在一起或者单独使用,同时applet还可以帮助使用者通过ap-plet与网页进行交互式操作。

1.1 Java语言的特性

Java语言的应用十分广泛,应用它开发出的小程序,可移植性,具有相当广泛的应用前途,它的主要特性可以从Java虚拟机、Java API等相关的应用程序中体现出:首先,Java虚拟机是在电脑中采用软件模拟实现Java软件功能的抽象机器,Java小程序的开发,需要遵循Java虚拟机的规范,由指令系统、寄存器、栈、存储区、程序编辑系统构成;其次,Java API是Java软件事先预定义好的组件集合,方便Java开发调用多种功能,能够为程序员提供多种便利,该功能也是软件开发过程中的难点问题之一。

1.2 Java语言程序

Java语言的应用范围十分之广,我们可以从应用程序和小程序两个方面对Java语言的功能进行分析,首先Java小程序的功能比较强大,具备如下的功能,一是Java Apple是在客户端运行的Java小程序,功能比较简单,一般情况下主要是指用户所使用的浏览器,其次是Java Servlet工具,它的功能是满足服务器端可执行的Java工具,为了能够有效的运行Servlet,在服务器端需要安装包含有Java虚拟机的软件,才能有效地保证Serv-let运行。其次,Java应用程序在程序开发中起着十分重要的作用,即Java Application,它是一个独立完整的Java应用程序,在系统运行中,它通过命令行调用命令,采用独立的解释器对应用程序进行解释编辑,同时该过程也是各种程序的入口。

1.3程序开发

采用Java语言进行程序开发,我们首先需要对JDK的安装有所了解,这样才能充分发挥其功能。在Windows系统下不仅可以完善JDK的安装与设置工作,还可以便捷的完成对JDK设置PATH(文件路径)参数和安装路径等工作,并且由于JDK提供的实用程序都需要有一个统一的安装路径,因此都在安装目录下的bin子目录下。在开发程序的过程中,为了保证JDK文件能够在任意目录下都可以调用这些程序,就需要进行相关功能的设置,并且还需要对操作系统的文件路径参数进行合理设置,以便于能够方便地进行程序开发。此外,在使用JDK程序进行程序开发时,必须要在编译相关源代码文件后才能有效地运行源程序,在源代码编译的过程中,如果再次出现系统提示符,并且没有产生任何提示信息,则表示程序代码编译成功,如果出现错误的提示信息,这说明系统出现报错信息,表示源程序编译不成功,程序开发人员就需要修改相关源程序,直至成功编译程序。在成功编译原程序后,就会自动在源代码文件的同一目录下生成新的文件,并且源代码的文件名与新文件名相一致。

1.4线程

线程是Java程序开发中一个重要的概念,并且在开发Java程序的过程中,线程是一个单一的顺序控制流程,对程序的编译起着控制的作用,Java中的线程与传统的顺序程序基本相一致,都需要一个执行起点,在经过一系列的指令运行后,才能够到达终点,继而实现了整个程序的执行。线程在执行的过程中,只能够执行一个程序即执行点,在Java程序开发中,线程组可以将多个线程集中在一个对象中,实现程序开发过程中的多线程操作,这时该线程组是由全部的Java线程构成的。Java应用程序在执行开始程序时,Java虚拟机会自动创建一个多线程组,并且将其命名为main,在开发程序的过程中,如果没有其他程序创建线程,那么则表示全部的线程都是main的线程组成员。

2 Java软件的性能测试

在一般情况下,我们都将Java平台的测试分为三层结构的调试,分别是Java接口的调试与分析;Java虚拟机的调试与接口分析以及Java调试的联线协议的调试,对于Java性能测试, 可以通过以上三层结构中的任何一层都可进行。如果要想Ja-va程序的接口比较稳定,就可以测试其前端的部分,并且对用户来说,层次越靠前,就越表示可以有效屏蔽掉后续的繁琐测试细节,最终表明Java的性能测试就比较稳定。

Java软件开发的性能测试是保证软件能够正常使用的最后保障,因此在进行性能测试时,我们要根据Java软件的运行条件,尾气监理一个适宜的评测程序,详细地对开发的软件的各项性能进行整体的测试。结合Java程序开发和运行的基本要求,我们需要采取实时跟踪例程的方法,并肩完整的评测结果写入到一个文件中,以确保测试工作的完整性。在进行Java程序的测试过程中,我们需要严格保证评测器的稳定性,否则就会严重影响Java软件程序的正常工作,影响软件的测试效果。严重时,还会影响到Java程序后续开发的稳定性与程序正常运行的结果,导致整个程序开发出现错误。在实际测评的过程中,得出的结果往往是不容易的,这就需要为Java程序的开发有一个全面的分析和了解,并为程序的开发提供一个稳定的开发环境。在Java程序语言开发环境中,程序的调用主要是有Java.io提供的一系列的类和接口实现对程序的调用,其中包括信息的输入与输出过程。咋开发程序的过程中,标准的输入和输出主要是依靠Java.lang提供的类处理来进行的,而Java.lang的类则是基于Java.io而研发出来的。I/O类提供了从低层次一直到高层次等多种的截面处理功能,每一种介质都有一个输出出入类相对应,并且能够提供低层次的面向数据序列的截面, 以实现连接数据的目的,它与介质相关的各个类都分别与Java抽象类的之类相似,即表明其具有输入输出功能,它们绝大多数情况下都具有与介质相关的构造器及方法,能够有效的实现数据的连接,I/O抽象类面向全部与截至相关的具体类的对象全部提供了一个统一的输入和输出界面能够便于用户进行自主选择,反过来各个具体的与介质相关的输入输出类也具有拓展的功能,同时也扩展了Java的抽象类,通过对这些抽象类的操作,可以有效地实现对具体的介质的操作。

此外,在采用Java语言进行编程是,Java还能够提供一个访问控制机制,以便于对其他类进行更加直接的控制、管理,通过这种访问控制机制,能够决定Java的那些变量可以直接访问类,并且可以以介质为媒介,为开发Java程序提供一种底层此方法,能够实现调用类,并且为介质输入或输出相应介质,完成处理数据的目标,再通过Java虚拟机实现对程序的调用,并将与介质相关的对象强制类型转换为它的父类,使得程序之间的对象能够有效的建立联系,方便为Java程序构建一个对象与介质之间的相互关联,也方便采用I/O方法对介质上的数据进行读写。

3 Java软件性能评测方法

保证Java软件能够稳定运行的重要保证是对Java程序进行测试,在测试的过程中,要有具体的测试目标,然后根据测试的目标,可以将Java软件的测试分为功能测试和性能测试两种情况。

首先,在对Java软件进行评测时,要关闭掉与系统不相干的一些运行程序,由于要用到系统时钟,在其他程序运行时,如果调用时钟,有可能出现错误,要能够确保测试的结果的准确性,并对相关的程序代码的执行时间进行分析,并在测试的过程中,要对代码的执行时间进行分开测试,保证在程序测试的过程改善后,每一次的时间测试要尽可能地在完全一致的时间内完成,根据程序测试运行的效果,可以设计一个完全独立的程序测试,这样能够有效地将测试结果控制在比较精准的范围内。

其次,对Java程序的运行提速进行测试。在测试过程中, 首要问题是对开发的Java软件隔离性能瓶颈进行测试,在一般情况下,对于程序隔离性能瓶颈的测试主要有以下两种方法, 第一,就是常规手段的测试方法,这种方法就是对程序重新定义,对Java程序进行提速测试,这是一种极为现实的提速方法, 在Java程序的测试中应用比较广泛。而且,采用这种方法对Java程序进行测试,不仅对Java程序的算法比较精确,还能够大幅度的提升Java程序的运行性能,尤其是在系统的数据不断变化的过程中,这种优点体现的十分明显。第二,就是依赖语言的方法对Java程序进行测试,采用这种方法,需要对Java软件各种运算执行时间有一个全面的掌握,并需要对每个线程进行分析,保证程序测试的过程能够在同一时间段内完成,从而能够有效的对Java程序进行客观的分析和评价。

此外,Java软件测试的方法很多,例如它允许通过改变方法参数的数量和类型来重载程序运行的方法,也可以重载父类中的方法对Java程序进行测试。因此,在编写与父类方法同名的方法时,要注意程序编写的规则,一定要注意检查返回类型和参数列表的一致性和同一性,确保Java程序能够正确的重载或者覆盖,提高测试的有效性。

4结束语

总而言之,Java软件的可移植性与可拓展性比较强,而且程序的源代码使用也具有针对性,要想全面的对Java程序进行测试,就要对程序进行正确完整地检测,分析程序测试的每一个过程,并且通过现实环境,将程序测试结合在一起,着手解决Java软件的性能问题,优化Java软件程序,提高程序效率,才能达到程序软件测试的目的。

摘要:目前,Java软件在计算机语言中使用十分广泛,而且Java语言的移植性、拓展性十分强,在具体的软件开发过程中,为了保证软件开发的有效性,就需要对Java软件的性能进行测试,以满足软件开发的要求。通过对Java程序测试系统的设计进行分析,并探究了Java软件的性能测试方法,为Java软件的性能测试工作提供借鉴。

关键词:Java,性能测试,Java程序体系

参考文献

[1]荆涛.基于JPDA的Java软件性能测试[J].技术开发,2014(12).

[2]荆涛,王子强,李媛州.基于JPDA的Java软件性能测试[J].计算机工程,2015(9).

软件(JAVA)专业调研报告 篇8

【关键词】JAVA语言;WEB开发

一、JAVA简介

当今社会,编程语言种类繁多。面临着越来越高要求的客户需求,我们急需功能更加强大,语言更灵活的编辑语言。JAVA语言就在这样一个背景下应运而生。JAVA语言功能强大,优点众多。下面简要说下它的几个优点:第一、JAVA语言可适用于多种操作系统平台,支持多线程并行操作,并且多个线程可以一起进行。这样节省了大量的时间,可以让不同程序同时进行,减少了等待时间;第二、JAVA语言使用简单灵活,被人们广泛关注和运用;第三、JAVA语言很多程序,在执行操作的时候,运行效率高速度快(甚至快于C++),出错率低;第四、JAVA语言适用面广。由于这门语言的自身特点,可以使其无论是在复杂还是单一的环境中都可以方便的开发使用。如:开发设计ORACLE等环境。

由于JAVA语言的搭建,是通过框架结构来实现的,这也是为什么JAVA语言简单的一方面因素。不过这也导致了使用JAVA语言过程中,并不能很好的给编程人员带来编程语言能力的提高。在以后的发展道路上,我们还需要更加努力,不断完善JAVA语言,这样才能在种类繁多的语言当中脱颖而出,绽放光彩。

二、JAVA五大特点

1.灵活简单。C语言,C++,JAVA语言都是常见的编程语言。其中C语言的语法比较复杂且难以理解,C++应用是编程技术要求较高,因此常常令编程者感到难以学习和接受。相比之下,JAVA语言比较简单,没有太高的语法和编程技术上的要求,而且JAVA语言在集成功能程序方面也有着其他编程语言不可比拟的优势,因此常常被作为WEB开发的首选,其发展也相对成熟。

2.java语言不像c++那样只可以对函数继承,还包括各种类等属性。JAVA语言可以称得上是一种面向对象的、整体操作过程动态机制的程序设计。

3.安全方面。JAVA语言可以利用自带的机制,阻止其他恶意程序代码的攻击,并利用自带的安全预防机制对网络下载的包、类进行分析得以实现程序的运行。就是因为JAVA语言的安全性,因此常常被用于常见的网络环境中。

4.JAVA语言可并行操作。在JAVA的操作环境下,Thread类和Runnable接口的对象通过独特的编写方式和相关的类库等程序操作来创建一种特别的对象——线程。基于这样的编写方式和操作流程,JAVA语言具有更高的效率,能够多线程一同或者并行工作且互不影响。

5.动态性。我们当初是为了开发这样一门语言:可以实时的进行数据操控,能够通过语言在动态的环境中进行数据操作。JAVA语言应运而生,它不仅可以在不影响操作程序的前提下,通过动态的编辑操作将类和包调入到运行的系统环境当中,还可以实时的对包和类进行调用和下载。

三、JAVA语言开发WEB的环境

从功能上来区分的话,JAVA的开发环境可以分为Jcreator(简单环境)和像Eclipse(强大开发环境)两种。通过对目前国内外的形势来看,客户所需要开发的软件功能较为复杂,所以很多大中型的开发公司都在Eclipse和Jbuilder的环境下通过JAVA来研发软件的。如下,介绍下Eclipse和Jbuilder。

Eclipse:其本身就是一个框架,可扩展的研究开发平台,通过插件的形式来搭建集成环境。有以下几个有点供大家参考学习:第一、Eclipse不仅具备开发程序还具备调试相关程序的功能,所以在很多开发环境中我们更倾向于选择使用它;第二、方法简单高效。在Eclipse环境中,具备多种可以直接被调用的快捷键方法。这样减少了大量的人力和时间。第三、时效性强。可以在程序调试的时候,进行断电设置。这样我们可以在突发情况下,快速准确的找到并跟踪问题所在,可以任意中断程序,能达到早发现早处理的良好效果。在使用Eclipse这一集成开发环境的过程中,我们发现其存在着一些不足。比如在WEB的研发过程中并非所有的功能都能通过Eclipse实现。因此,经过进一步探索研究,增强了Eclipse的多个功能,开发出了MyEclipse工具,大大减少了WEB开发所需的时间。

Jbuilder:由BORIt1ND公司开发成功,增强了WEB开发技术。能够使得不同地域的人共同合作,同时研发同一个项目,解决了由于团队磨合上造成的大量没必要的人力和金钱损失。这一环境的开发重要是为了在JAVA的最新版本下运行,得到功能上更好更多的效果。客户通过builder的相关操作,可以实现一下几个方面:第一、可以得到所需的数据库表的JAVA类;第二、实现各种各样电子商务平台的开发;第三、结合运用JAVA语言开发动态WEB,实现图形模式窗口和线程并行操作。

四、JAVA在WEB开发中的相关技术

ava Database Connectivity:JAVA语言的这一技术操作,主要是实现访问连接数据库。当我们在程序开发过程中,很有可能会伴随着不断的调试程序,修改程序等操作,这就带来了数据库会不断中断的现象。我们如何实现这一功能。我们利用这一技术,通过一个特定的类和借口,运用更为高端的工具进行连接。随时对后台数据库进行访问连接。

Java Annotatio:这一技术将JAVA程序中的各项函数整合起来,建立一种统一的操作规范。通过这一技术我们可以让操作程序中的各类数据量(如类和变量等)进行统一,然后对其进行相关的程序操作。Java Annotatio技术当中还伴随着一个独立的控制体系,就是JavaBeans技术。这一独立技术在WEB当中被广泛应用,起着至关重要的作用。它创造了真实世界的相应内容,不仅安全系数非常高而且移植性也非常强。

Java Media Framework API:这一操作技术,可以使得我们在JAVA语言的编写过程中更好的调用使用一些视频等技术或者在Applet程序中体现出这一效果。这一操作顺应WEB动态网络平台这一现实情况,实现了动态网页的多样化,更加方便快捷的实现了多媒体效果。对于开发人员来说,这更是提供了一个很好的机会,能够使得开发人员更好的完成用户在动态网络平台上想要实现的效果。

Java Remote Method Invocation:这一技术主要是为了达到客户系统和服务器之间的连接。我们是通过应用小程序(分布式)和在JAVA中将对象和类进行调用来实现的。我们程序员在WEB的开发设计过程中,为了实现程序的安全完整性,就是采用这一技术对进行数据操作,达到整合信息资源的效果。

五、结语

对着编程语言的更新换代,客户对要实现的功能需求越来越高,编程语言在实现功能方面,也面临着越来越大的考验。在这一严峻的形势下,JAVA语言依然被人们所广泛应用。这不仅在一定程度上充分说明了JAVA语言功能强大高效实用,而且说明了当今WEB网络平台开发上,JAVA有着不可替代的地位。在JAVA语言的准确安全方面,还有更广阔的发展空间。我们可以通过更好的方法来提高利用率,以便于提高JAVA的准确安全性。当然,客户对于WEB平台的开发不断的提出更高更难以实现的要求。这就意味着我们要不断努力,完善和改进JAVA技术来处理客户的相关需求。相信,经过我们的不断探索分析,我们将把这一技术做的更加完善,做到更好。

参考文献

[1]王咸伟.Java面向对象编程语言及其应用[J].电脑技术,2010(12).

[2]徐柏燕.Java编程语言及其应用[J].电脑与信息技术,2010(6).

[3]郝蓄.基于Java的网络中文平台的研究与实现[D].西安电子科技大学,2010.

[4]郭慧萍.基于模板的动态Java字节码生成器的设计与研究[D].北京工业大学,2009.

作者简介:高飞(1982—),男,现供职于渤海船舶职业学院教育技术中心。

上一篇:小学美术《星空的联想》说课稿下一篇:海关查验的现状与对策