Java开发环境实验报告(通用12篇)
Java开发环境实验报告 篇1
浙江大学城市学院实验报告
课程名称
面向对象程序设计
实验项目名称
Java开发环境实验
学生姓名
专业班级
学号
一.实验目的和要求
1. 建立并熟悉Java开发环境,熟悉Eclipse集成开发环境 2. 能够编写简单的Java应用程序
二.实验内容
1.安装和配置Java SDK
2.安装和配置Eclipse集成开发环境
3.编写在屏幕上输出信息的Java应用程序
三.实验结果与分析(可将程序运行结果截屏,也可简单分析运行结果)
1.用Java SDK开发屏幕输出“Hello World”的程序。程序运行结果如下:
2.用Eclipse开发屏幕输出“Hello World”的程序。程序运行结果如下:
3.用Java SDK开发屏幕输出“你好,我开始学OOP了”的程序。程序运行结果如下:
4.用Eclipse开发屏幕输出“你好,我开始学OOP了”的程序。程序运行结果如下:
四.讨论、心得(可写遇到的问题及解决方法,或者对技术的理解等)
1.public类有何特点?
有public的类可以在包外使用,否则不可以,与此同时,源文件名必须和类名相同。
2.Java语言是否区分大小写?
JAVA语言本身是区分大小写的,但是在用文件路径、文件名对文件进行操作时,这里的文件名和路径是不区分大小写的,这是因为文件系统不区分大小写。
3.JVM和JRE都是什么?
JVM是Java Virtual Machine(Java 虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,JRE可以让电脑系统运行Java应用程序(Java Application)。
JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类函数库(Class Library)。
4.Java如何做到平台无关的?
Java 可执行程序并不是直接在操作系统平台上运行,而是在Java运行环境JRE中运行的。Java运行环境是一个软件系统,能够屏蔽底层软硬件平台的差异性。
Java开发环境实验报告 篇2
使用emacs (本文使用emacs来代表GNU emacs或XEmacs) 来开发程序显然是个很好的选择, 其效率、高度的可配置性和极其强大的功能足以让任何人爱不释手。由于Java的特性一些特性, 使用emacs这样的纯编辑器来进行Java开发也有其不方便之处, 对于较大的项目, 源文件经常分布在繁多的目录中 (/com/foo/bar/…) , 如果使用emacs进行开发, 需要频繁的敲入冗长的目录名, 这是一大不方便之处。其次, 在Java编译和运行调试, 我们需要向编译器, 虚拟机传递一些参数, 当然, 可以使用Makefile来实现, 但这些参数大多并不复杂, 使用make这样功能强大的工具有些破费了。还有, 对于一些经常使用的功能或语句如 (System.out.println, implements) 每次使用都自己敲显然太烦琐。最后, 对于一个OO语言来说, 有一个类浏览器也是很方便的。
现在, 使用jde可以基本克服所有这些缺点, 将IDE的功能和emacs的优点完美地结合起来。jde是一个使用emacs-lisp编写的ide软件包, 主要部分有Paul Kinnucan开发, 在emacs中安装jde后可以基本实现大多数商业IDE系统所提供的功能。由其主要特性有以下几点。
针对Java的语法高亮显示和缩进。
关键字及类方法等的自动补全 (SourceInsight?, 目前还不很成熟) 。
编译错误定位。
框架代码自动产生 (Listener, println等) 。
工程文件 (记录编译运行调试参数) 。
树状类和文件浏览器显示。
集成帮助 (javadoc) 及调试功能 (jdb+gud) 。
除了这些特征外, jde当然具有emacs的一切优秀特征, 如可移植性 (几乎一切OS) , 可配置性。下面将具体介绍jde的安装及使用。
1 安装
由于jde是一个emacs-lisp语言包, 它的安装是非常方便的, 当然, 需要具有emacs配置的基本知识。首先, 需要满足其安装要求, emacs, GNU Emacs或XEmacs 19版以上, 软硬件平台不限。
确认安装了jde需要的一些emacs-lisp包 (package) , 有speedbar (类浏览器) , semantic (语法分析) , eieio (OO lisp) , elib (Emacs lisp Utilities) , 另外, 有些功能需要beanshell, 在XEmacs下运行需要安装FSF-compat包
将jde包解开到某目录, 当然也要修改相应的.emacs配置文件增加一些内容。
如果安装无误的话, 使用emacs打开java文件时将自动进入jde-mode, 过程可能需要几秒钟, 因为jde将调用semantic对整个文件进行语法分析。
2 使用Jde
进入jde-mode后, 我们自然可以发现与普通Java-Mode有一些不同, 首先是语法的高亮显示更加“Java”化, 一目了然。xemacs顶部的菜单也有了一些变化多了三个菜单项, “JDE”, “Classes”, “Senator”, JDE菜单里包括了JDE提供的所有功能, 下面将详细介绍, “Classes”是JDE对Java文件进行语法分析后生成的, 包括了当前文件中的所有类, 变量, 方法, 可以通过选择菜单的方式访问相应的代码。而Senator菜单是由semantic包生成的, 可以通过token的方式对源文件进行搜索定位。下面我们来看看emacslisp为我们提供了什么样的功能:
JavaDoc支持:JavaDoc是JDK提供的文档生成工具, 通过遵循一定的规范对源代码进行注释, JavaDoc可以生成整个程序的Java风格文档。在jde中, 我们只需要将光标定位在某method的开始, 按C-c C-v j, jde将自动生成Javadoc框架注释, 在相应的部分写好说明后, 可以使用javadoc工具生成Java风格的文档。
自动补全:将变量jde-enable-abbrevmode变量设置为t, jde可以实现自动补全的功能, 避免我们手工输入的烦琐和易错, 补全主要有三种类型, 首先关键字补全, 即可以自动补全Java语言的关键字, 如我们敲入“impl”, jde就会自动补全成为implements.其他的如abstract可以用“ab”来补全, 当然, 这只是emacs-lisp雕虫小技罢了, 但重要的是你可以通过对变量jde-mode-abbrevations变量的修改来自己定义那些关键字应补全应怎样补全。
下面介绍对控制流结构的补全, 即ifelse等结构的补全, 可以避免控制结构写大了以后结构发生错误, 不过本人体会只要你有良好的编程习惯, 这个东西用处不是太大。比较有用的还有变量名的补全, 如我们在某Java文件中定义了名字较长的变量名为“variablenametoolong”, 在后面需要引用时, 我们不必记住变量的名字, 在输入头几个字母后, 按M-/键, jde将自动补全为相应的变量名, 如果有多个选择, 多次按M-可以找到你需要的。SourceInsight式的全局method补全功能目前jde通过beanshell实现还不够成熟。
代码框架:jde可以自动生成特定类和代码段的框架代码, 不需要用户多次重复输入, 目前支持的有。
import自动生成, 即不需要知道某class到底是在什么package里, 敲入其名字后按C-c C-v C-z, jde会自动调用beanshell找到相应的package并自动加入impor t;method重载自动生成, 即可以根据当前继承的类来自动生成重载函数的框架。
interface自动生成, 根据所implements的interface, 自动生成所需要的重载的函数根据模版生成某特定类型类的框架, 目前有WindowListener, ActionListener, Get/Se等等。以上这些模版都可以根据需要自己来修改。
项目文件:将所有编译, 运行参数一次存储起来, 设置好classpath, sourcepath mainclass...之后我们可以在任一文件的Buffer中按C-c C-v C-c对当前文件进行编译, 按C-c C-v C-r可以自动运行项目或按C-c C-v C-d进行调试。
集成帮助:设置好帮助文件的URL后可以使用C-c C-v C-n自动运行启动B r o w s er来查看帮助, 最好安装e m a c sw3m, 这样看帮助非常方便, 更方便的是设置好Class的帮助文件后可以实现上下文敏感的帮助。在某符号上调用jde-helpsymbol, 可以自动显示该符号的帮助。
类和文件的浏览:jde提供了三种方法第一种即我们已提过的Class菜单, 第二种是使用etags, 第三种最强大的是使用speedbar实现的树状浏览器。几乎和商业IDE使用的没有任何区别, 可以用图形方式快速地访问文件, 类的方法及变量及其所依赖的包等等。
3 结语
jde拥有几乎无限的可配置性, 最基础可以修改与jde相关的变量和key-binding等, 深入一些的可以修改模版等, 当然最深入的就是直接Hack其源码了。
参考文献
[1]Debra Cameron, Bill Rosenblatt, HricRaymond.学习GNU Emacs[M].北京:机械工业出版社, 2003, 5.
[2] (美) Robert J.Chassell.GNU Emacs Lisp编程入门[M].北京:机械工业出版社, 2 00 1, 5.
Java开发环境实验报告 篇3
关键词:企业实践 Java软件项目开发岗位 职业能力 教学改革
笔者积极响应学校号召,暑期期间到济南维库软件科技有限公司进行了一个月的企业实践,顺利完成企业的工作任务,现将一个月的实践收获总结如下。
一、转化角色,虚心、耐心、专心做一线有责任心的企业员工
1.遵守企业制度,认真承担并履行责任
在一个月的企业实训中,笔者谨记学校领导的嘱托,严格要求自己,认真遵守企业制度,从未发生迟到、请假、早退现象,进入公司后将自己由受人尊重的老师转变为一名初到公司的企业员工,做到慎独、慎微、慎初,强化工作责任心,主动处理好分内与分外的相关工作,勤奋扎实地工作,不敷衍应付,认真对待工作中的每一个问题,完成企业交给的每一个工作任务。
2.不畏工作困难,耐心解决项目开发中的各种问题
企业实训为真实软件开发项目:山东高速集团采购系统。由于项目庞大复杂,涉及知识点琐碎,项目开发工作困难重重,笔者认真细致学习企业教师讲解的知识点,分析需求说明书,钻研软件算法和代码的实现,面对项目中遇到的各种错误代码和异常,耐心查错排错,认真解决软件开发过程中出现的各种错误,并及时记录解决方案和问题,为下一步软件开发工作和教学实训积累了丰富的经验。
3.放下教师架子,虚心向企业有经验老师请教
学校主要工作是教书育人,企业工作是开发高质量软件产品。工作任务的不同,使笔者慢慢放下了教师的架子,主动地向实践操作能力较强的“小兄弟”请教。虽然他们年龄较小,学历不高,却有丰富的项目开发经验。笔者向他们虚心请教,反复讨教工作中不明白的问题,从他们那里学到了课本上没有的工作技巧和技术,更领略了他们一丝不苟、沉着耐心和认真细致的工作作风。
二、企业实践锻炼内容
企业实训内容主要基于目前软件公司的热点需求——Java软件开发岗位进行设计和选取,包括相关知识内容的培训和山东高速集团采购系统项目的实训两部分内容,具体知识包括:Java知识(JDK的安装配置、Myeclipse开发工具使用、数据类型和运算符、流程控制、面向对象开发)、HTML知识、MYSQL知识和SSM知识(JSP应用、Sevlet应用、Spring-MVC应用、Spring依赖注入、Mybats框架应用及整合)。
三、企业实践锻炼收获与心得
1.课程设置应与岗位需求相匹配
高等职业院校人才培养模式定位于技术技能型人才的培养,为地方区域经济服务,为地方社会经济发展提供人才保障和智力支持,因此专业课程的设置应该以岗位工作任务和岗位能力需求为出发点。以Java软件开发岗位为例,目前学校开设的都是传统的数据库知识和web前端知识课程,但是IT技术发展迅速,真正的软件开发大多通过相关框架实践,如SSM框架、SSH框架等,因此,学校要适应目前社会的需求,与时俱进,及时更新课程标准和授课内容。
2.教师实践操作水平是培养高素质技术技能性人才的重要因素之一
目前企业对参加职业技能大赛获奖学生毕业生比较青睐,所以企业高职院校的评价主要通过高职院校技能大赛进行,而学生技能大赛成绩的结果反映了教师的实践操作水平。俗话说“老师要给学生一杯水,自己首先要有一桶水”,因此教师应首先提高个人实践操作水平,而提高教师实践操作水平的主要方式之一就是通过企业实践锻炼。据悉,山东省在不久的将来将启动高职院校教师职业技能大赛,因此教师要将提高实践操作水平作为自己以后工作的努力方向。
四、未来的努力方向
1.基于企业岗位需求进行教学改革
(1)教学模式和教学方法遵循职业发展规律。高职院校推行“工学结合、知行合一”的人才培养模式,因此要基于企业工作岗位和工作任务进行教学改革。
第一,推行教、学、做一体化教学模式。在教学中,应该以培养学生的职业能力为主,师生双方边教边学边做,理论和实践交替进行,直观和抽象交错出现,理中有实,实中有理,突出学生动手能力和专业技能的培養,充分调动和激发学生学习的兴趣,使学生真正变成学习的主人。要培养学生的终生学习和持续发展能力,推行教、学、做一体化教学模式对加强学生的动手操作能力和解决实际问题的能力有很大好处。
第二,推行翻转课堂教学方法。为提高学生的主动性和创新能力,在教学过程中,推行翻转课堂的教学方法,将学习任务布置给学生课下完成。学生利用信息化技术查阅需要的材料,还可以在网络上与别的同学讨论,完成老师分配的任务,并在课上分享任务完成过程和心得体会。由老师进行评论,师生间还可以进行充分的交流,这样可以满足学生的个性需要,有利于学生创新能力的培养。
(2)教学过程基于软件开发工作过程。将教学过程与企业软件开发过程相结合,教学过程围绕企业真实的软件开发项目展开,将要学习和掌握的知识技能,转化为一项项工作任务,学生分组按照行动导向的六个步骤(资讯-计划-决策-实施-检查-评估)进行,使学习任务既是一个完整的学习过程,又是一个工作过程,教师成为学生学习的引导者和促进者。
2.技能操作的提升与社会岗位前沿技术的了解
(1)技能操作的提升。以后,笔者将会继续积极参加企业实践锻炼,参加省级培训,完成每5年必须累计不少于6个月到企业或生产服务一线实践的目标,通过企业真实工作过程提高自己的实践操作水平和职业能力,并将其应用到教学过程、实验实训过程和学生技能大赛中。
(2)社会岗位前沿技术的了解。为推导社会技术的变化和教学知识的更新,在以后的工作中要经常深入企业,了解企业的生产组织方式、工艺流程、产业发展趋势等基本情况,熟悉企业岗位职责、操作规范、技能要求、用人标准、管理制度、企业文化等,学习所教专业在生产实践应用中的新知识、新技术、新工艺、新材料、新设备、新标准等,及时更新人才培养方案、课程标准,适应社会岗位对教学知识的需求。
五、小结
Java EE实验报告 篇4
课程名称:
学生学号:
所属院部:
(理工类)
J2EE程序设计 专业班级:
学生姓名:
信息技术学院 指导教师: 13 ——20 14 学年 第 2 学期
金陵科技学院教务处制 实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:Java编程基础 实验学时: 4 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序的方法;
(2)熟练掌握Java常用工具类的使用;(3)熟练掌握Java集合框架编程;
(4)调试程序要记录调试过程中出现的问题及解决办法;
(5)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(6)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。
三、实验内容及过程
(1)设计一个类Student,类的属性有:姓名,学号,出生日期,性别,所在系等。并生成学生类对象数组,按照学生的姓名将学生排序输出。(注意:使用String类的compareTo方法)
(2)使用日历类等相关方法,按截图做出一个日历。参照书本示例,研究其中代码,回顾与复习利用Java Swing编程。
(3)将本学期开设的课程名称加入到HashSet中,并使用迭代器遍历输出。
(4)完成以下实验:(1)定义一个学生类:属性有学号、姓名、专业、高数成绩、外语成绩、Java课程成绩。(2)在测试类中生成多个学生类的对象,放入TreeSet中,要求按照三门课总成绩从高到低排序,总成绩相等按学号排序输出排序结果。(注意:实现Comparator接口的compare(Object obj1,Object obj2)函数)
(5)以List接口对象(ArrayList)为基础建立一个通讯录,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。
要求:
(1)编译调试程序之前应配置好环境变量;
(2)要掌握用JDK命令行和Eclipse集成开发环境调试Java程序;(3)熟练掌握Java常用工具类和集合框架的使用;
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验一程序清单续1)
(实验一程序清单续2)
四、实验结果与分析
实验项目名称: JSP编程基础 实验学时: 6 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDOM对XML编程的使用;(2)熟练掌握HTML编程基础;
(3)熟练掌握JSP环境配置以及编程基础;(4)熟练掌握JavaBean编程;
(5)调试程序要记录调试过程中出现的问题及解决办法;
(6)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(7)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,Tomcat6.0和Eclipse软件。
三、实验内容及过程
(1)通过JDOM技术实现对以下XML文件的操作:
显示整个XML文件内容
显示第二个客户节点内容
增加一个节点:如
<客户 性别=“男”> <姓名>张三
<电子邮件>Zhangsan@magicactor.com
删除客户名称为张三的节点
修改客户名称为张三的节点的电子邮件为Zhangsan@126.com
(2)使用HTML与JavaScript完成一个简单的四则运算,界面功能如下:
(3)使用JSP与JavaBean实现一个简易计算器.注意:仿照(2)HTML代码编写网页,使用request对象接收值,在JavaBean中计算,JSP页面调用该JavaBean,实现数字计算。
(4)使用application内置对象实现一个简易的网站计数器,界面如教材P288图15.7所示。
(5)使用session内置对象实现一个简易的购物车功能。利用session保存用户选购的商品信息,本购物车程序至少包含两个页面:显示商品页面showbooks.jsp;显示购物车页面showcarts.jsp。
要求:
(1)学会配置JSP编程环境;
(2)学会使用Eclipse的各种调试方法;(3)熟练掌握JSP的编程基础。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验二程序清单续1)
(实验二程序清单续2)
四、实验结果与分析
实验项目名称: Servlet与JSP综合编程 实验学时: 6 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDBC数据库编程的使用;(2)熟练掌握Servlet编程基础;(3)熟练掌握JSP综合编程;
(4)调试程序要记录调试过程中出现的问题及解决办法;
(5)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(6)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,MySQL,Tomcat6和Eclipse软件。
三、实验内容及过程
(1)在数据库中建立一个表,表名为学生,其结构为:学号、姓名、性别、年龄、成绩。编程实现以下功能:
编写方法向学生表中增加记录;
编写方法将每条记录按成绩由大到小的顺序显示到界面; 编写方法删除成绩不及格的学生记录。
(2)使用JSP与JavaBean实现用户登录功能,要求实现以下功能:
创建数据库MyDB,创建一个表Users(用户名、密码),用户日志表userLog; 创建一个JavaBean;UserDao主要包含两个函数:验证函数、日志函数; 创建登录页面JSP页面(login.jsp),构建表单Form,使用Servlet实现验证码功能。当用户输入提交后,调用JavaBean验证其合法性,如果验证不通过导向登录页面,验证通过导向欢迎页面。不管是否通过验证都应该向userLog表中添加成功登录或失败登录信息。; 创建成功页面JSP页面(success.jsp)。
(3)使用JSP、Servlet以及JavaBean实现MVC架构计算圆面积,要求实现以下功能:
编写JSP页面View; 编写JavaBean实现业务逻辑;
编写一个Servlet,从JSP界面接收用户输入的半径,调用JavaBean实现圆面积计算; 在web.xml文件中配置Servlet的Mapping URL。
(4)参考书本上关于Filter的描述,编写一个用于用户认证的过滤器。如果管理员即后台所有页面都有“/admin”,如管理员登陆页面http://localhost:8088/admin/login.jsp,要求拦截/admin的页面进行认证(登陆界面除外),如果用户没有认证则跳转到登陆页面。要求:
(1)学会配置JDBC编程环境;(2)学会使用Eclipse的各种调试方法;
(3)熟练掌握JSP、JavaBean与Servlet综合编程的使用。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验三程序清单续1)
(实验三程序清单续2)
(实验三程序清单续3)
四、实验结果与分析
实验项目名称: SSH框架编程 实验学时: 8 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握Hibernate框架编程技术;(2)熟练掌握Struts2框架编程技术;(3)熟练掌握Spring框架编程技术;(4)熟练掌握以上三种框架综合编程技术;
(5)调试程序要记录调试过程中出现的问题及解决办法;
(6)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(7)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,MySQL,Tomcat6和Eclipse软件。
三、实验内容及过程
(1)使用Hibernate将顾客表中的内容输出到JSP页面中,要求实现以下功能:
将如下的数据库脚本在MySQL中执行,数据库为MyDB; create table customers(customerid char(8)primary key, name char(40)default null, phone char(16)default null); 在项目中加入Hibernate支持并生成映射文件,映射类以及HibernateSessionFactory类。再创建一个Dao类读取顾客表中所有记录返回集合List
(2)使用Hibernate对多表进行关联操作。对数据库脚本中的职工表与部门表进行级联操作。要求实现以下功能: 可以根据部门编号查询部门及其查询该部门下的所有职工信息;
删除部门时级联删除部门下的所有职工。考虑当删除部门时不想删除该部门的职工而只将职工中的部门编号置为空,应该怎么设置。
(3)使用Struts2实现以下用户登陆功能:
完成一个用户登录,用户名以及密码为必填项。使用 Action中的validate函数进行验证。体会Struts2基本流程; 当用户输入的用户名不是 admin或密码不是 12345时要求用户重新登录,并给出错误提示。当用户填写正确时,导向一个成功页面显示用户登录成功; 结合使用Hibernate将用户信息保存到数据库中; 利用Struts标签 bean 以及logic标签,将数据库中的表Customer中的内容输出,在页面中输出成表格,使用Hibernate读写数据库。
(4)Struts国际化试验,改造上述实验。当用户名或密码未输入,在中文环境下显示中文,在英文环境下显示英文错误信息。注意:编写两个资源文件。
(5)编写图形接口Shape,该接口中有抽象函数计算面积double area();编写圆类Circle与矩形类Rectange实现该接口。再编写一个ShapeDao类,将Shape接口作为其属性。通过Spring配置JavaBean,实现Bean的动态注入。即只需改变注入的Bean就可以计算不同图形的面积。
(6)完成网上成绩录入系统综合实验。实验要求读取数据库中学生表、课程表和选课表中的内容,动态形成表单;教师可以登陆系统录入学生成绩。其中总评成绩=平时成绩*30% +期末成绩*70%,各项成绩为百分制。 教师登陆界面;
图14.16 教师登陆界面参考
登陆成功后选择所要录入的课程;
图14.17 教师选择课程界面参考
录入成绩界面;
图14.18 教师录入成绩界面参考 点击“保存成绩”,则向数据库中写入输入的成绩。要求:
(1)学会SSH框架编程环境;
(2)学会使用Eclipse的各种调试方法;
(3)熟练掌握Hibernate、Struts与Spring综合编程的使用。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验四程序清单续1)
(实验四程序清单续2)
java上机实验心得体会报告 篇5
“面向对象程序设计”课程上机实验报告
题目:
JAVA上机实验心得体会 姓名(学号):
专业:计算机科学与技术
编制时间:
2012年12月19日
版本:
1.0.0
指导教师:
北京联合大学-信息学院编制 实验1 熟悉Java运行环境
实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。
心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。实验2 选择语句练习
实验目的:正确理解并能够熟练操作和使用Java的if和switch语句。
心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。
实验3 迭代练习
实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。心得体会:在该实验中,我学会了为具体操作选择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量command,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。实验4 方法的实现练习
实验目的:声明、定义和调用方法,理解实参和形参的含义。
心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。
实验5 简单类型数组练习
实验目的:学习创建简单类型的数组,并能用循环语句处理数组。
心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0;i<6;i++){ n[i] = aa%10;//aa%10的结果是aa的末尾数,将多位数aa的末尾数赋给a[i] aa =(int)aa/10;//对aa/10的结果强制取整,去掉了aa的末尾数,以便对下一位数的存数。}
实验6 类和对象的练习
实验目的:正确理解并能够熟练操作和使用Java的类、对象和方法。心得体会:我学会了如何建立类和对象,分别输出其中包含的成员值;以及分别引用各方法,实现不同的操作。在该程序中,我进一步了解了如何定义成员方法和成员属性以及相关方法的调用。特别是我掌握了利用构造方法对成员属性赋初始值。值得一提的是,我在相应的程序中运用了toUpperCase方法,经查看JDK文档知道该方法的作用是返回一个所有字母都被转化为大写字母字符串。实验7 类的实现
实验目的:使用统一建模语言(UML)设计类,并实现类。
心得体会:通过该实验,我学会了使用public、private控制访问及其访问权限;体会了static关键字的作用。并对JAVA程序中的类及面向对象的编程思想有了更进一步的了解。实验8 继承的练习
实验目的:正确理解并能够熟练操作和使用Java类的继承关系。
心得体会:理解了继承的含义,并使用UML符号设计了继承结构;掌握了用Java实现继承关系;学会了区分方法重写和方法重载;并深入理解了abstract 和 final修饰符的作用。用final标记的变量只能赋值一次,标记的类不可被继承,方法不可被子类重写。用关键字extends表继承,例如子类A继承了父类B则可写作 class A extends B。在这些概念性知识点弄明白后,在解决实际问题时,碰到了输入年月日计算车龄的问题,我的解决办法如下: public int age(int year){
int age;
int a1 =(int)(time/10000);//(int)time/10000是将8位数表示的生产年月日强制转换成四位数表示的年
int a2 =(int)(year/10000);//将当前年月日转换为年
age = a2-a1 +1;//计算车龄
return age;} 实验9 抽象类、接口练习
实验目的:综合运用接口,类的知识。
心得体会:在该实验中,我掌握了接口定义,以及类实现接口。接口用interface关键字定义,在接口中,可以用abstract是修饰方法的,也可以去掉abstract,编译时会默认为抽象方法。类实现接口可用implements表示,例如class Circle implements Shape表示,Circle类实现了接口Shape。实验10 多态练习
实验目的:理解并使用面向对象的特征:多态。
心得体会:在实验10中,我基本掌握了多态的句柄、多态方法的定义。在改程序中,我遇到了要求随机产生一个图形的难题,通过网上查阅资料,利用系统函数Math.random()经一系列的运算处理来随机产生一个图形解决了该难题,具体的程序如下: public static void main(String[] args)
{
Circle cir = new Circle(9);
Square squ = new Square(4);
Shape shape;
int r;
r =(int)(Math.random()*2);//用Math.random()方法产生0.00到1.00的随机数,乘2取整后非0即1
if(r == 0)
shape = cir;
else
shape = squ;
} shape.testShape(shape);//同一条语句产生不同的执行结果,多态性。
实验11 多线程处理
实验目的:理解线程的基本概念。
心得体会:通过该实验,基本能够理解线程的运行了。学会调用Thread类中的系统函数以及掌握这些函数的作用是难点,setName()是设置线程名字,start()是开辟一条新线程,Thread.currentThread().getName()是获得正在执行的线程的名字,Thread.currentThread().getId()是thread类中返回该线程的标识符的方法,Thread.currentThread().getPriority()是thread类中返回线程的优先级的方法。
实验12 I/O及文件处理
实验目的:掌握并使用Java中的I/O和文件。
心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周JAVA实训时继续攻坚克难。
Java开发环境实验报告 篇6
班级:
学号:
姓名:
实验题目:猜拳小游戏
实验要求:
用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。
实验内容:
1、问题分析过程:
(1)首先分析猜拳游戏本身的玩法:
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。(2)用面向对象的思想来分析:
在游戏过程中有几个对象组成人
电脑
游戏规则
抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢?
属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst()
选择性
Computer类有哪些属性和行为呢?
属性:名字name,输赢次数(比分)score 行为:出拳showFist()
随机
Game类有哪些属性和行为呢?
属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计
比赛结果calcResul()
2、主要实现代码:
import java.util.*;public class StartGame { public static void main(String[]args){
Game start = new Game();//实例化游戏类
start.initial();//调用初始化方法
start.startGame();//调用游戏开始方法
start.showResult();//调用游戏结果显示方法
} } import java.util.*;public class Person { String name;//名字属性
int score;//积分属性
//出拳方法
public int showFist(){
System.out.print(“n请出拳:1.剪刀2.石头3.布(输入相应数字):”);
Scanner input = new Scanner(System.in);
int num = input.nextInt();
String fist = “";//保存出拳
switch(num){ case 1:
fist = ”剪刀“;
break;
case 2:
fist = ”石头“;
break;
case 3:
fist = ”布“;
break;
}
System.out.println(name + ”出拳:“ + fist);
return num;} } import java.util.*;public class Game { //Person person;
//甲方
//Computer computer;//乙方
int count;
//对战次数
Person person = new Person();//实例化用户类
Computer computer = new Computer();//实例化计算机类
//初始化方法
public int initial(){
count = 0;
return count;} //游戏开始方法
public void startGame(){
//显示游戏开始界面
System.out.println(”---------------欢
迎
进
入
游
戏
世
System.out.println(“tt******************************”);
System.out.println(“tt**
^_^ 猜拳,Start ^_^
**”);
System.out.println(“tt*****************************”);
界--------------n“);
System.out.println(”nn出拳规则:1.剪刀 2.石头 3.布“);//选择计算机角色
System.out.print(”请选择对方角色:1.刘备 2.孙权 3.曹操:“);Scanner input = new Scanner(System.in);int num = input.nextInt();switch(num){ case 1: computer.name = ”刘备“;break;case 2: computer.name = ”孙权“;break;case 3:
} computer.name = ”曹操“;break;//输入用户角色名
System.out.print(”请输入你的姓名:“);person.name = input.next();
//显示对战双方
System.out.print(person.name + ” VS “ + computer.name + ” 对战n“);//开始游戏
System.out.print(”n要开始吗?(y/n)“);String con = input.next();int perFist;//用户出的拳 int compFist;//计算机出的拳
if(con.equals(”y“)){//判断是否开始
String answer = ”y“;
while(”y“.equals(answer)){//循环条件是是否开始下一轮
//出拳
perFist = person.showFist();//调用用户出拳方法
compFist = computer.showFist();//调用计算机出拳方法
//裁决
if((perFist == 1 && compFist == 1)||
(perFist == 2 && compFist == 2)||
(perFist == 3 && compFist == 3)){
System.out.println(”结果:和局,真衰!n“);//平局
}
else if((perFist == 1 && compFist == 3)||
(perFist == 2 && compFist == 1)||
(perFist == 3 && compFist == 2)){
System.out.println(”结果:恭喜, 你赢了!n“);//用户赢
person.score++;
//累计用户积分
}
else{
}
} System.out.println(”结果说:^_^,你输了,真笨!n“);//计算机赢
computer.score++;
//累计计算机积分 } count++;//累计对战次数
System.out.print(”是否开始下一轮(y/n):“);answer = input.next();}
//比较得分情况的方法 public void showResult(){ System.out.println(”-----------------------“);System.out.println(computer.name + ” VS “ + person.name);
System.out.println(”对战次数:“ + count);System.out.println(”n姓名t得分n“ + person.name + ”t“ + person.score
+ ”n“ + computer.name + ”t“ + computer.score + ”n“);
//比较积分
if(computer.score == person.score){
System.out.println(”结果:打成平手,下次再和你一分高下!“);
}
else if(computer.score < person.score){
System.out.println(”结果:你果然是高手,“ + computer.name + ”佩服!“);
}
else{
System.out.println(”结果:呵呵,笨笨,下次加油哦!“);
}
System.out.println(”-----------------------“);} } public class Computer {
String name;//名字属性 int score;//积分属性 //出拳方法
public int showFist(){ int num =(int)(Math.random()*3)+ 1;String fist = ”“;switch(num){ case 1:
fist = ”剪刀“;
break;case 2:
fist = ”石头“;
break;case 3:
fist = ”布“;
break;
}
System.out.println(name + ”出拳:" + fist);
return num;} } 运行界面:
3、实验心得体会:
从本次课程设计的完成中,我发现我有很多不足的地方,最突出的是所掌握的知识太少,学到的知识应用不到实践中。后来通过看书查找相关资料,完成课程设计任务。
Java开发环境实验报告 篇7
一、实验目的
熟悉VC++6.0的集成开发环境,学会用它编写、调试、运行程序。
二、实验要求
对VC++6.0集成开发环境进行操作,用它编写、调试和运行常用的程序,初步掌握使用方法;在课后编程题目中任选一题,编好程序,上机进行调试和运行,同时养成好的程序书写风格。
三、实验报告要求
1.写出编程题目;
2.写出题目分析(提取出算法和设计思路); 3.写出源代码;
4.写出多次运行的记录或出错调试信息(上机时写); 5.写出实验后的心得体会(上机后写)。
四、上交源代码要求
1.从网络提交;
环境化学实验报告简版 篇8
实验1水溶液中染料浓度的测定
一 实验目的:熟悉染料浓度的测定原理、方法和分光光度计的使用。
二 实验原理:各种染料均有一定的吸光波长,而且在一定浓度范围内吸光值与浓度之间成线性关系,根据这一原理作出标准曲线,测定未知溶液的染料浓度。
三 实验仪器与试剂
仪器
722S分光光度计、恒温振荡器、离心机
试剂
刚果红,亚甲基蓝,C.P.级。
四 实验步骤标准曲线的绘制
分别称取2.500g上述染料于1000ml容量瓶中,用水稀释至刻度,配成2500g/ml的上述染料标准溶液。准确吸取该溶液0.2、0.4、0.6、0.8、1.0ml分别于50ml比色管中,用水稀释至刻度,在494nm(刚果红)、572nm(亚甲基蓝)处测定吸光度。未知溶液的浓度测定
吸取一定量的未知溶液或其稀释液,在相应的波长下测定其吸光
度。
五 实验计算标准曲线中的吸光度对浓度作图并回归成线性方程,计算方差。
2对照标准曲线或线性方程确定未知样浓度。
六 实验结果与讨论
讨论浓度测定的过程及其注意事项;注意标准曲线回归方程的方差。
实验2活性炭吸附法处理色度废水
一 实验目的测定活性炭的吸附等温线
二 实验原理
吸附法是处理废水常用的方法,吸附剂的吸附能力常用吸附量G表示,在一定温度下它与溶液中吸附溶质的平衡浓度有关。G(mg/g)= x/m,x为吸附溶质的质量(g),m为吸附剂的质量(g)。
关于吸附等温线有H、Freundlich、Langmiur等类型:
H型: G = kc
Freundlich型:G = kc1/n,lgG = lgk + 1/n lgc,k、n为常数。
Langmiur型:G = G0c/(A+c),1/G = 1/ G0 +(A/ G0)(1/c),A为常数,G0 为表面上吸附饱和时的最大吸附量。
三 实验仪器与试剂
仪器
722S分光光度计、恒温振荡器、离心机
试剂
活性炭:
粉末状活性炭0.076mm(200目),将活性炭过筛,取小于0.076mm筛孔以下的样品,水洗后105-110C烘干3h。
颗粒状活性炭2.0mm(10目)。碱性品红,C.P.级。
四 实验步骤
(一)标准曲线的绘制
分别称取2500g上述染料于1000ml容量瓶中,用水稀释至刻度,配成2500g/ml的上述染料标准溶液。准确吸取该溶液0.0、0.2、0.4、0.6、0.8、1.0、1.5ml分别于50ml比色管中,用水稀释至刻度,在540nm(刚果红)处测定吸光度,以吸光度对浓度作图。
(二)振荡吸附
取7个250ml锥形瓶,分别加入300mg的粉末活性炭或颗粒活性炭和2.5、5.0、7.5、10.0、15.0、20.0ml浓度为2500g/ml的上述染料溶液并稀释至100ml,置锥形瓶在恒温振荡器上(20C)振荡1h。过滤后取滤液于1cm比色皿中,用722S分光光度计在相应波长处测定吸光度。
五 实验计算与作图
根据实验原理,绘制吸附等温线,并计算相应的常数值。
六 实验结果与讨论
讨论吸附等温线的特征和相应的吸附条件。
注意:由于上述染料溶液放置时间长会褪色,因此,在测定被吸附溶液的吸光度时,需同时测定原溶液的吸光度,以作浓度校正。
实验3高锰酸钾指数的测定
一 实验目的:掌握用酸性高锰酸钾法测定化学需氧量的原理和方法
二 实验原理:水中有机物以及还原性物质在酸性条件下加热至沸,能被高锰酸钾所氧化,过量的高锰酸钾用过量的草酸处理,再用高锰酸钾回滴过量的草酸,通过计算求出水样所消耗高锰酸钾的量来测定化学需氧量。
当水样中氧离子含量超过300mg/L时,酸性高锰酸钾法由于氯离子的还原作用而不能得到正确的结果,遇此情况,可加蒸馏水稀释,使氯离于浓度降低,或采用碱性高锰酸钾法。
三 实验仪器与试剂:
仪器
(1)250mL锥形瓶。
(2)50mL酸式滴定管。
试剂
(1)c(1/2Na2C204)=0.1000mol/L草酸溶液精确称取O.6705g草酸(H2C204·2H2O)溶于水中,并移入100mL容量瓶中,加水至标线,置于暗处保存。
(2)c(1/2Na2C204)=0.01000mol/L草酸溶液将上述草酸溶液准确稀释10倍,置于冰箱中保存。
(3)c(1/5KmnO4)=0.1000mol/L高锰酸钾溶液称3.2g高锰酸钾,溶液1.2L水中,加热煮沸15min,使体积减少到约1L,静置过夜,用虹吸管小心地将上层清液移人棕色瓶内,并按下法标定。
取10.0mL高锰酸钾溶液,于250mL锥形瓶内,加80mL水,5mL的1:3硫酸溶液,加热煮沸10min,再迅速滴加高锰酸钾溶液,不停震荡,直至发生微红色为止,不必记录用量,然后将锥形瓶继续加热煮沸,加入10.00mL的0.1000mol/L草酸标准溶液,迅速用高锰酸钾溶液滴定至微红色为止,记录用量。计算高锰酸钾溶液地准确当量浓度,并校正至0.1000mol/L。
(4)c(1/5KMn04)=0.0100mol/L高锰酸钾溶液将上述标定好的高锰酸钾溶液(0.1000mol/L)准确稀释lO倍。
(5)l:3硫酸溶液将l份化学纯浓硫酸慢慢加到3份水中,煮沸,滴加高锰酸钾溶液至硫酸溶液保持微红色。
四 实验步骤
(1)于250mL锥形瓶内,加人100mL水样或已稀释的水样,加5mL的1:3硫酸,混匀,用移液管准确加入0.0100mol儿的高锰酸钾溶液10mL,沸水浴中加热30min。
(2)取下锥形瓶后,立刻准确加入10mL的0.0100mol/L草酸标准溶液,并用0.0100mol/L的高锰酸钾标准溶液滴定至微红色,记录高锰酸钾的用量(V)。
五 计算:
c8100010VK10化学需氧量O2,mg/LV0
式中V——滴定水样时所用高锰酸钾体积,mL;
Vo——水样体积,mL;
c——草酸标准溶液浓度,mol/L;
K——高锰酸钾溶液的校正系数。
溶液的浓度校正:这是由于高锰酸钾浓度易于改变,因此每次做样品时,必须进行校正,求出校正系数K。
校正系数的求法如下:于滴定水样的烧瓶中趁热(70—80℃)加入10mL的0.01mol/L草酸标准溶液,再用0.01mol/L高锰酸钾标准溶液滴至微红色,所用高锰酸钾体积为V1(mL),则高锰酸钾之校正系数K=10/V1。
六 注意事项:
(1)应严格控制操作条件一致,高锰酸钾不能过早加好放在那里不加热,常规监测中,可直接加热煮沸10min代替水浴,加热30min,加热时火力应使样品迅速煮沸,时间不能太长,且应尽可能相同,通常要求准确煮沸l0min。
(2)煮沸10min后应残留40%~60%高锰酸钾。倘若煮沸过程中红色消失或变黄,即说明有机物或还原性物质过多,需将水样稀释后重做,或者用0.1mol/L高锰酸钾和草酸标准溶液测定。回滴过量的草酸标准溶液所滴耗的高锰酸钾溶液的体积在4-6mL左右,否则需重新再取适量水样测定.
(3)由于一般蒸馏水中常含有若干可以被氧化的物质,因此采用水稀释时,必须测定稀
释用水的耗氧量,并在最后结果中减去此部分。
七 思考题:
(1)高锰酸钾滴定草酸时应注意哪些反应条件?在什么情况下应用碱性高锰酸钾法测化学需氧量?为什么?
(2)配制硫酸亚铁铵标准溶液时,为何要加浓硫酸?
(3)试推导高锰酸钾法和重铬酸钾法测化学需氧量的计算公式。
(4)为什么要做空白实验?在做空白实验时应注意哪些问题?
java开发面试题 篇9
题目:古典问题:有一对公母猪,从出生后第3个月起每个月都生一对猪,小猪长到第三个月后每个月又生一对猪,假如猪都不死,问每个月的猪总数为多少?
答案:
public class lianxi01 {
public static void main(String[] args){
System.out.println(“第1个月的兔子对数: 1”);
System.out.println(“第2个月的兔子对数:1”);
int f1 = 1, f2 = 1, f, M=24;
for(int i=3;i<=M;i++){
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println(“第” + i +“个月的兔子对数: ”+f2);
}
}
}
2、是非题
2.1 Java程序中的起始类名称必须与存放该类的文件名相同。()
答案:正确
2.2 原生类中的数据类型均可任意转换。()
答案:错误
3、问答题
3.1 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答案:
会执行,在return前执行。
3.2 sleep()和 wait()有什么区别:
答案:
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会 释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
4、数据库题
聚集函数的应用
编写一条sql语句,希望从艺术家表artist_tab中,看到只有一个专长specialty的是哪些专长
Java开发环境实验报告 篇10
课题中期阶段报告
青铜峡市第三小学赵志兴
一、课题进展情况:
课题自立项以来,课题组受到学校领导的高度重视,学校为课题研究过程给予了人力物力方面极大的支持,同时借2010年“全区中小学综合实践活动教学观摩研讨会”的春风,使课题组成员充分认识到综合实践活动课程资源建设,是保证综合实践活动课程有效落实的重要前提,是引导学生自主探究、创造性学习的重要条件。两年来,我校以学生为核心,以学生的兴趣爱好为出发点,从学生日常生活中的问题和需求选取学习课题,按照社会实践类和学科综合类两大类型,围绕人与自然的关系,人与他人和社会的关系,人与文化的关系,人与自我的关系四条线索,利用环境教育资源、生活教育资源、科技、文化教育资源、品德教育资源选择和组织综合实践活动的内容,已初步编写具有本校特色的综合实践活动的校本教材。
一是开发环境教育资源。为使学生全面正确地认识环境,自觉自主地保护环境,我们组织开展环境教育资源的开发和利用,把临近学校的清秀园、银河广场、北苑社区等作为环境教育基地,通过组织观察、进行采访、专题研究、参与植树造林等形式,让学生感受环境与生活、与社会、与人类的紧密联系,获取环境保护的初步知识,增强环境保护的意识。
二是开发生活教育资源。“生活的过程就是教育的过程,教育应该在种种生活中进行。”我们努力挖掘生活教育资源,让学生在父母的帮助下,利用周末寻找一个岗位,参与一项工作,体验一种生活,学习一项技能,得到一种感悟。引领学生走进家庭学当家,走上岗位学技能,走进社区学服务,让学生在充满各种信息的社会生活中,用自己的眼睛观察生活,用自己的劳动体验生活,用自己的心灵感悟生活,用自己的方式去研究生活,在活动中获得快乐和愉悦的同时获得发展。
三是开发科技教育资源。我们通过建立科技阅读小组、科技试验小组、科技制作小组,通过图书阅读、上网查询、调查访问、实验研究、创新制作等多种形式的综合实践,向学生打开科技的大门,让他们接受科技新信息、了解科技新成果、认识科技新发展、参与科技新发明等,使学生认识科学技术、了解科学技术、探究科学技术、运用科学技术,从中体验发明创造的乐趣,培养科学思维的方法。
四是开发文化教育资源。临近学校的市图书馆、学校的图书室、班级的图书角,都是我校综合实践活动的重要资源。为此,我们开展了“我读书我快乐”的综合实践系列活动,以坚持多年的“读书月”活动为载体,让学生去了解、去接触、去感受、去开启中华文化宝库,了解中华历史,认识中华名人,感受中华文化魅力,充实人文内涵,增加文化含量,让学生在丰富多彩的读书活动中提高人文素养。
五是开发品德教育资源。我们把青镇烈士陵园、青铜峡市第一敬老院及公安局道德教育基地等作为品德教育综合实践基地,通过参观、访问、服务等形式开展系列化的综合实践活动,不但让学生感受英雄、了解英雄、学习英雄,尊敬老人,而且使学生从反面人物的身上全面了解生活,从小树立正确的人生观、价值观,坚定自己的人生理想与信念,做对社会有用的人。
六是开发学校资源。我校一贯以来,重视艺术教育特色管理,开展以书法、绘画、剪纸、舞蹈、合唱、器乐演奏、赏诗配画、手抄小报、动画制作、电脑绘画、图书阅读等系列综合实践活动,从基础抓起,加强培养,丰富学生的文化底蕴,形成了良好的艺术氛围。
二、目前课题研究过程中存在的问题:
因我校于2011年12月被列入校安工程建设项目学校,2012年元月中旬就迁入原二小旧教学楼,由于教学功能室、活动区域严重受限,课题研究也因此受到了影响,尤其第二阶段的方法指导课、实验课数量上不能得到保障,随即调整了研究内容,重点进行了“综合实践活动课程资源开发”,初步编写了6本教材。原定计划的各类研究课只能在本月12日迁回新学校后实施,学校专门为本学科设置了综合实践活动室,更为课题后期的实施提供了强有力的保障。
三、下一阶段的研究设想:
java上机实验 篇11
实验目的:学会使用多线程进行并发程序设计
实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。
2、实验二:数据库编程:书目信息管理
实验目的:掌握数据库编程技术。能正确连接数据库,能对数据库中信息进行查询、插
入、删除、修改。
实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书
号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
3、实验三:Applet编程:鸭子的移动
实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。能在Applet中实现动画的平滑显示,避免闪烁现象。
实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。
4、实验四:网络编程:聊天室的实现
实验目的:会编写客户端和服务器程序实现C/S模式下的通信,会使用多线程进行网络编程。
百度java开发面试题 篇12
简评
百度的主要业务是搜索,搜索的基本原理如下
1.编写爬虫程序到互联网上抓取网页海量的网页。
2.将抓取来的网页通过抽取,以一定的格式保存在能快速检索的文件系统中。
3.把用户输入的字符串进行拆分成关键字去文件系统中查询并返回结果。
由以上3点可见,字符串的分析,抽取在搜索引擎中的地位是何等重要。
因此,百度的笔试面试题中,出现这样的题就变得理所当然了。
以下是该题的java实现,代码如下:
程序代码 程序代码
import java.net.*;
import java.io.*;
import java.util.*;
/** * @author tzy * 在j2sdk1.4.2下测试通过 */
public class FileNameStat{
private String srcPath;//要统计的文件路径
private Map statMap;//用于统计的map
public FileNameStat(String srcPath)
{
this.srcPath=srcPath; 软件开发网 www.mscto.com
statMap=new TreeMap;
}
/*获得要统计的URL的文件名*/
public String getFileName(String urlString)
{
URL url=null;
String filePath=null;
String fileName=null;
try
{
url=new URL(urlString);
filePath=url.getPath();
int index=0;
if ((index=filePath.lastIndexOf(“/”))!=-1)
{
fileName=filePath.substring(index+1);
}
else
{
fileName=”“;
}
}
catch(MalformedURLException e)
{
}
return fileName;
}
/*统计指定文件名的个数*/
public void stat(String filename)
{
Integer count=null;
if(statMap.get(filename)!=null)
{
count=(Integer)statMap.get(filename);
count=new Integer(count.intValue()+1);
}
else
{
count=new Integer(1);
}
statMap.put(filename,count);
}
/*统计的主方法*/
public void start() throws FileNotFoundException,IOException
{
BufferedReader bfin=new BufferedReader(new FileReader(this.srcPath));
String temp=null;
while((temp=bfin.readLine())!=null)
{
stat(getFileName(temp));
}
}
/*输出统计结果*/
public void result()
{
Iterator it=statMap.entrySet().iterator();
while(it.hasNext())
{
Map.Entry entry=(Map.Entry)(it.next());
System.out.println((entry.getKey().equals(“”)?”空文件名”:entry.getKey()) + “的个数是” + entry.getValue());
}
}
public static void main(String[] args) throws Exception
{
FileNameStat fns=new FileNameStat(“src.txt”);//指定成待统计文件
fns.start();
fns.result();
}
}
第二题
简评:
这道题也与百度的业务有关,百度现在除了搜索外,还有贴吧,知道,博客等重要产品。 同时也在积极的探索社区化,包括前不久宣布进军电子商务领域,搜索之外的这些产品,其主要功能的实现主要是对数据库的操作。 因此,想进入百度,也需要对数据库有一定的认识。 实现思路及数据库设计: 1,该论坛主要有两个实体对象,用户和帖子;对于帖子对象,有一个问题:回复的帖子是否应该跟主题帖子存放在同一个表里?
考虑到每天更新10万帖子,说明帖子数比较多,为了方便主题的呈现,我一般都把主题贴和回帖分别放在不同的表中,把主题贴和回帖分开可以提高查询效率(300万的访问量每天)。
2,按照1中的思路,该论坛由两个对象(用户和帖子)变成三个实体对象,分别是用户,主题帖子,回复帖子;
3,上述三个对象存在三个关系,分别是:
用户C主题帖,一个用户可以发0个或多个帖子,一个帖子对应一个用户(一对多关系),
主题帖C回复帖:一个主题有0个或多个回复帖子,一个回复帖子对应一个主题(一对多关系);
用户C回复贴:一个用户可以回0个或多个帖,一个帖子对应一个用户(一对多关系)。
还存在对回复贴的回复,这个考虑用fatherId来表示。
4,由于三个关系 “用户C主题帖,主题帖C回复帖,用户C回复贴” 都是一对多关系,根据表设计一般原则,可以将这两个关系独立建立表,也可以不另外建表而将一对多的关系体现在实体表中;然而,表间的连接查询是非常耗资源的,所以应尽量减少表间连接,那么对三个关系不应该分别建表,而是把用户的id作为主题表和回帖表的外键,把主题贴id作为回帖表的外键。
5,鉴于以上考虑,该论坛的三个表如下所示
表名:t_user_info (用户信息表)
字段名 类型 缺省值 中文含义 约束 备注
id Int 用户编号 PRI Auto_increment
Name Varchar(30) 用户名
Email Varchar(50)
Phone Varchar(30)
Addr Varchar(200)
其他字段略,根据需要添加 表名:main_content_info (主题帖信息表)
字段名 类型 缺省值 中文含义 约束 备注
id Int 贴编号 PRI Auto_increment
Title Varchar(200) 发帖标题
Content Text 发帖内容
UserID Int 用户编号 外键
其他字段略,根据需要添加
表名:sub_content_info (回复贴信息表)
字段名 类型 缺省值 中文含义 约束 备注
id Int 贴编号 PRI Auto_increment
Title Varchar(200) 发帖标题
Content Text 发帖内容
UserID Int 用户编号 外键
FatherID Int 父编号
MainID Int 主题帖编号 外键
其他字段略,根据需要添加
6,符合范式分析:
上述表中每个字段不可再分,首先满足1NF;
然后数据库表中的每个实例或行都是可以被惟一地区分(id),不存在部分依赖,因此满足2NF;
t_user_info (用户信息表)和main_content_info (主题帖信息表)不存在任何传递依赖,至少属于BCNF;
但是sub_content_info (回复贴信息表)不满足3NF,因为存在如下传递依赖:idC>FatherID,FatherIDC>MainID。
范式并不是越高越好,sub_content_info表只满足2NF却更有效率,也是当今论坛较主流的设计。
第三题
简评:
如何对海量数据进行快速检索,这是搜索引擎的必需考虑的问题。这又涉及到数据结构和算法。 因此,要想进入百度,就必须熟悉一些基本的算法和数据结构。 思路及解决方案如下:
1: 设计用TRIE树实现关键词到其对应id的快速词典查找
TRIE树的每一个节点为一个包含256个元素的数组,同时指针指向其下一级节点
节点定义如下:
struct trienode
{
int id;
struct trienode *child[256];
}TRIENODE;
如果TRIE树的某个节点的指针为NULL,说明从跟节点到当前节点的路径构成文件B中的一个关键词,
在其节点的id保存该关键词的id;如果指针不为NULL,则id对应为0或者一个无穷大的整数,标志从根节点
到当前节点的路径不是一个完整的关键词。
将关键词转化为二进制无符号char型数组,即对于汉字等双字节字符视为两个无符号char型整数,
每个元素的取值范围在0到255之间。
2:生成文件b的TRIE树
步骤1:依次读取文件b的每一行,对每一行执行步骤2到步骤5
步骤2:读取关键词id和关键词,令为key
步骤3:依次读取key的每一个字符,对每一个字符,执行步骤4;
步骤4:如果该字符对应的指针为NULL,则创建其儿子节点;
步骤5:为当前节点的对应字符id置为关键词id
3:根据A文件生成C文件
步骤1:依次读取文件A的每一行,对每一行执行步骤2到步骤5
步骤2:分别获取当前行关键词、ip地址和时间
步骤3:令关键词key=c1c2…cm,对c1到cm每个字符,执行步骤4
步骤4:获取根节点的第c1个元素指针,转移到节点node1,
根据node1的第c2个元素指针,转移到node2…
根据nodem的第cm个元素,获取关键词的id
步骤5:往文件c中写入一行数据,格式为关键词的id、ip地址和时间
4:复杂度分析
生成文件B的TRIE树过程时间复杂度为O(n*m),其中n为文件b行数,m为文件b关键词的最大长度。TRIE的空间复杂度为O(n*m),n和m含义同上,但由于实际应用中关键词之间可能会有很多前缀相同现象,所以实际耗费空间并不会很高。
【Java开发环境实验报告】推荐阅读:
Java集成开发环境07-05
java开发述职报告07-16
java软件开发实习报告11-02
java软件开发专业实习报告10-13
环境开发08-06
区域开发环境08-05
开发环境搭建10-28
开发环境模型02-10
动画开发环境03-27