java程序设计实验大纲(精选9篇)
1.java程序设计实验大纲 篇一
《JAVA面向对象程序设计》课程教学大纲
Oriented object Programming in JAVA 编号: 08065121
适用专业:计算机科学与技术、网络工程 学时数:32 学分数:2 执笔者:田小玲 编写日期:2009年11月
一、课程的性质和目的
本课程是为计算机科学与技术以及网络工程专业本科生开设的专业选修课,是一门面向对象的编程语言,通过本课程的学习,培养和提高学生面向对象程序设计的能力和Java语言在web开发中的应用能力。
二、课程教学内容
第一章 面向对象软件开发概述(2学时)1.内容
面向对象问题求解的提出、面向对象问题求解的概述、对象、类与实体、对象的属性与相互关系、面向对象的软件开发过程、面向对象程序设计方法的优点、开发环境设置及开发工具简介。
2.要求
(1)了解:面向对象软件开发概述,面向对象的软件开发过程及面向对象程序设计 方法的优点。
(2)掌握:对象的属性与相互关系,对象、类与实体的基本概念。(3)熟练掌握:开发环境设置及开发工具简介(补充)。3.重点
对象、类与实体的基本概念。
4.难点
面向对象程序设计方法的理解。第二章 Java概述(2学时)1.内容
Java语言的特点、Java虚拟机及垃圾回收机制、JDK目录结构、Java 的API结构及Java程序结构、第一个Java Application程序、第一个Java Applet程序、图形界面的输入输出、字符界面的输入输出。
2.要求
(1)了解:Java语言的发展历史及特点,Java Application程序及Java Applet程 序,图形界面的输入输出,字符界面的输入输出。
(2)掌握:Java语言实现机制(补充),Java体系结构(补充)。(3)熟练掌握:Java Application程序的结构。3.重点
Java Application程序的结构。
4.难点
Java语言实现机制。
第三章 Java语言基础(2学时)1.内容
数据类型、变量与常量、表达式、流程控制语句。2.要求
(1)了解:java语言的发展。
(2)掌握:数据类型、变量与常量的定义及使用。(3)熟练掌握:表达式的使用,流程控制语句。3.重点
表达式的使用,流程控制语句。
4.难点
流程控制语句的运用。
第四章 抽象、封装与类(6学时)
1.内容
抽象与封装、Java的类、类的修饰符、域、方法、访问控制符。2.要求
(1)了解:抽象、封装概念,系统定义的类。
(2)掌握:类的修饰符(abstract和final),域(包括静态域、静态初始化器、最终域和易失域),方法(包括抽象方法、静态方法、最终方法)。
(3)熟练掌握:用户程序自定义类及创建对象与定义构造函数,访问控制符(包括public、缺省访问控制符、private、protected)的运用。
3.重点
自定义类、创建对象与定义构造函数。
4.难点
四种访问控制符的运用。第五章 继承与多态(4学时)1.内容
Java的继承、多态、Java的重载、构造函数的继承与重载、包及接口的概念。2.要求
(1)了解:继承及多态的概念,Java接口的概念。(2)掌握:Java的方法重载,包的创建及引用。(3)熟练掌握:构造函数的继承与重载。
3.重点
方法的重载、类的继承。4.难点
属性的隐藏、方法的覆盖。第六章 工具类与算法(2学时)
1.内容
语言基础类库(包括Object类、数据类型类、Math类及System类)、Applet类与Applet小程序、数组。
2.要求
(1)了解:Applet类与Applet小程序。(2)掌握:Java语言基础类库。(3)熟练掌握:数组的声明及初始化。3.重点
数组的声明及初始化、数组的应用。4.难点
编写Applet小程序。
第七章 图形用户界面的设计与实现(8学时)
1.内容
图形用户界面概述、GUI标准组件概述及布局设计、Java的事件处理机制。2.要求
(1)了解:图形界面组件之间的层次关系、容器的概念和作用。(2)掌握:图形用户界面程序的基本结构。(3)熟练掌握:事件监听机制。3.重点
图形用户界面程序的基本结构。4.难点
Java的事件处理机制。
第八章 Java高级编程(6学时)
1.内容
异常处理、Java多线程机制、Swing GUI 组件、流式输入输出与文件处理、用Java实现底层网络通信、Java程序对网上资源的访问。
2.要求
(1)了解:例外的概念、Java中线程的基本概念、Java的线程类与Runnable接口及如何在程序中实现多线程、Java输入输出类库及文件的处理与随机访问、使用Java实现底层网络通信、Java程序对网上资源的访问。
3(2)掌握:例外处理机制。
(3)熟练掌握:Swing GUI组件的运用。3.重点
例外处理机制、Swing GUI组件的创建。
4.难点
自定义异常类。
三、课程教学的基本要求
课程教学的基本要求包含三项:上机环节、作业要求、考试方式。1.上机环节
根据课堂讲授的理论,并结合上机操作让学生及时掌握每章节所学的知识,通过实操可加深学生对面向对象程序设计的思想及Java程序设计的领会。
2.作业要求
(1)作业要求:独立思考完成、书写工整、按时交(2)作业量:每次课均布置作业,作业量约2~3题(3)总作业量:约30~40道题 3.考试方式
(1)考试方式:闭卷笔试(2)评定成绩要求:
总成绩=平时成绩×30%+考试成绩×70%
四、本课程与其它课程的联系与分工
1.前期课程:
程序设计基础、计算机网络、C语言程序设计、C++程序设计 2.后续课程:
软件工程、Web应用程序开发
五、建议教材与教学参考书
[1] 印旻.《Java语言与面向对象程序设计》,清华大学出版社 [2] 於东军,杨静宇.《Java程序设计与应用开发》,清华大学出版社 [3] 辛运帏.《Java程序设计》,清华大学出版社 [4] 姜刚.《Java语言程序设计》,人民邮电出版社 [5] 阎菲.《Java程序设计教程》,中国水利水电出版社
2.java程序设计实验大纲 篇二
一、《环境监测实验》课程的特点
北京建筑工程学院 (以下简称我校) 的办学定位为“立足首都, 面向全国, 依托建筑业, 服务城市化”, 培养扎实的理论知识, 具有一定的工程实践能力, 并富有实干精神和创新意识的应用型高级专门技术人才。《环境监测实验》课程先修课程为《分析化学》和《环境监测》。《分析化学》课程主要讲授化学的基本原理, 样品的采集、误差、数据分析及各种滴定方法;《环境监测》课程主要讲授水和废水、空气与废气、固废、土壤、噪声等监测技术。《环境监测实验》课程涵盖了上述两门课程的实验项目, 并增加了仪器分析实验项目, 使学生掌握环境样品的采集、保存和样品前处理的方法, 掌握化学滴定检测法、紫外-可见分光光度法、原子光谱法、气相色谱法、离子色谱法的基本理论知识、设备的基本使用方法, 选修电化学分析法、X-射线荧光法、气相色谱-质谱联用法的基本理论、仪器设备的基本使用方法, 掌握环境监测的基础操作技能和各种环境样品监测分析检测方法的选用, 全面培养学生环境样品监测的能力, 培养学生设计、组织实验方案的初步能力, 初步系统实验操作的能力, 使之养成严谨、细致、实事求是的科学作风。
二、大纲的设计思路
在设计本课程教学大纲时, 我们的设计思路包括以下几点。
第一, 时效性。课程教学大纲在设计教学目标和内容时要及时反映环境监测科学发展的最新成果和成就, 反映当代环境监测的最新水平, 反映当代社会热点问题, 将新理论、新知识和新技术充实到教学内容中。具有时效性的大纲使学生在毕业后能够迅速适应企业和社会的用人要求
第二, 内容详尽。大纲的内容应尽可能详尽, 内容详尽包括三个方面:首先为课程大纲内容, 应包括基本信息 (学时、学分及相关课程等等) 、目的与任务、要求与安排方式、课程内容即实验项目设置、考核与成绩评定、教学参考资料等;其次为教学内容, 涉及环境样品的采集、保存、样品前处理、物理性指标、生化性指标、有机物指标、生物性指标的测定;再者为样品分析方法, 包括酸碱滴定、络合滴定、氧化还原滴定、原子吸收光谱法、原子荧光光谱法、紫外-可见吸收光谱法、气相色谱法、离子色谱法、电化学法、气相色谱-质谱法等。
第三, 开放性。课程教学大纲为保证稳定的教学质量, 首先应该保持相对的稳定性, 但教学大纲也不能成为为刚性文件, 使之过于僵化, 因此教学大纲应该是稳定中具有开放性的体系, 开放性从两个方面体现:一为新的环境监测分析方法如气相色谱和质谱法联用等, 应及时反应在实验大纲中, 可以作为选做实验项目;二为实验分析方法不变, 分析检测项目可以为开放的, 如原子吸收光谱法, 可以测试不同的样品中如大气颗粒物、底质、水、食品、化妆品等, 也可以是测试同种样品中的不同金属元素。
第四, 因材施教。由于学生的基础知识状况、兴趣爱好、智力水平、潜在学习能力、学习动机、学习方法等存在差异, 教师应从实际情况出发, 因材施教, 以学生为主体, 提供适当的学习条件和必要的全新学习机会, 使大多数学生获得同样的收获。由于我们高校实行的“严进宽出”的招生、培养制度, 导致学生进入大学后, 放慢了求学的步伐。笔者认为目前我们本科教育面临的最大问题是学生的学习动机和学习动力的缺失。因材施教是提高教育质量的必要前提, 满足所有学生的学习需求。在教学大纲中实行了分层次教学, 实验内容安排见表1, 课程总学时为40学时, 必做基本实验项目为10个, 选做实验项目提供3个, 并支持学生自主实验;必做10个实验项目中演示验证性实验项目3个, 训练学生必须掌握的环境监测分析常规方法, 其他均为综合性、设计性实验项目。
第五, 可实施性。课程教学大纲的编写和执行不能仅流于形式, 且二者不能脱勾。课程大纲的编写应以少而精、量力而行为原则, 教学方法以理论与实践并重、独立操作与分组合作相结合为原则。学生工作量要适当、合理, 教学内容难易合适, 既发挥学生的现有水平, 又促进学生的创新精神和创新能力的培养。教学方法上采用以学生为主体, 教师为参与者、指导者的“勘导式”实验教学法。
三、课程教学大纲的内容
1. 实验内容。
《环境监测实验》课程内容见下表:
注:A为演示验证性实验、B为综合性实验、C为设计性实验。前10项为必做实验, 后3项为选做实验。
2. 要求与安排方式。
(1) 实验要求。实验前学生需预习有关实验内容的指导书和实验课件, 指导教师按组通过口试的形式抽查实验预习情况。实验分组原则上为4人/组, 学生在教师的指导下完成实验, 老师签字后方有效, 并在规定时间交出实验报告。 (2) 实验安排方式。课内集中讲解相关分析方法的基本理论知识, 必做实验在实验室内完成, 由指导教师统一安排时间, 部分实验尝试网上实验预约系统方式。选做实验为学生在必做实验的基础上根据自己的能力和兴趣所做的专业实验, 时间单独安排。
3. 考核与成绩评定。
(1) 考核内容。出勤情况、实验的预习情况、实验过程和实验报告。 (2) 成绩评定方法。总评成绩由实验成绩 (70%) 、平时成绩 (30%) 和选作实验加分 (不大于10) 综合确定, 按百分制记分。实验成绩包括实验过程和实验报告;平时成绩包括出勤、课堂、口试等。
4.“勘导式”实验教学法。
实验课前通过集中授课或者网络发布通知方式, 布置实验预习内容和预习思路, 如提供预监测样品种类、确定采样方案、确定样品前处理方案、采用何种检测分析方法、分析方法的发展历程、方法原理、分析方法的影响因素和解决手段、计算方案、监测污染物的治理、废物的回收利用等。提供参考书目, 学生经过自己查找准备实验预习, 分组预约汇报实验预习。在汇报预习过程中, 采用随机指定人员汇报相应问题, 其他人补充方式, 教师勘误学生准备资料、梳理内容思路, 由点及面发散提问, 根据实验内容及方法进行创新思维培养。“勘导式”实验教学方法学生分组合作准备实验内容, 采用探讨研究式授课方式, 教师的角色是勘误、引导, 学生是整个实验理论教学的中心。
《环境工程实验》课程教学大纲经过在我校环境工程专业2009级实施, 效果明显。它调动了学生学习的积极性, 提高了学生的实践能力;虽然课堂上没有讲授仪器分析方面的理论知识, 但经过学生自学, 经过“勘导式”实验教学法的实施和检验, 学生自主学习的能力提高了, 学习动力增强了。在大纲的实施过程中, 解决了分组实验一人操作, 其他人围观的问题, 每人各司其职, 分工合作, 促进了团队协作能力。通过分层次教学, 既保证了基本教学质量, 又促进了学有余力同学的需求, 达到了预期目标。
摘要:通过分析课程教学大纲和《环境监测实验》课程的特点, 提出了五点设计教学大纲的思路, 制定了课程教学大纲。通过在本科教学中实施了制定的教学大纲, 达到了预期目标。
关键词:《环境监测实验》,教学大纲,设计,教学法,改革
参考文献
[1]黄忠臣.水环境分析实验与技术[M].北京:中国水利水电出版社, 2012.
3.高考全国大纲卷物理实验题分析 篇三
【关键词】高考;物理实验;复习策略
物理是一门以实验为基础的学科,物理知识来源于实践,特别是来源于观察和实验,因此,高考十分注重对实验能力的考查。笔者对近五年高考全国大纲卷物理实验题进行了分析和研究,希望对2014年高考物理实验的复习备考工作有所帮助。
一、《考试大纲》对实验考查的要求
(1)能独立完成“知识内容表”中所列的实验,能明确实验目的,能理解实验原理和方法,能控制实验条件,会使用仪器,会观察、分析实验现象,会记录、处理实验数据,并得出结论。
(2)能灵活地运用已学过的物理理论、实验方法和实验仪器去处理问题。
二、近五年高考物理实验题的特点
(一)实验题所占的分值比例较稳定
近五年高考物理实验题的分值除了2012年是17分外,其余年份均是18分,占物理总分的15%。均为一小一大(题目分值与知识容量设置大小)的格局,其中第22题除了2009年是8分外,其余年份都是6分,属于“小实验”,2009、2012和2013年考的都是电学实验,2010年考的是力学实验,2011年考的是热学实验。第23题2009年是10分,2012年是11分,其余年份均是12分,属于“大实验”,2009、2012和2013年考的都是力学实验,2010和2011年考的都是电学实验。从命题规律来分析,2014年高考将沿袭往年力、电实验的搭配,且第22题考查力学实验,第23题考查电学实验的几率相对较大。
(二)注重基本实验仪器的使用
掌握基本仪器的使用,是做好物理实验的基础,所以高考几乎年年考查基本仪器的使用,特别是对刻度尺、螺旋测微器、游标卡尺、多用电表的正确读数高考经常考。如2009年考查了游标卡尺的读数;2010年考查了电流表的读数;2011年考查了多用电表、电流表和电阻箱的读数;2012年考查了米尺的读数。
(三)重视实验操作步骤的考查
高考有些实验题直接出自课本实验,考查实验的操作步骤,如2011年的“油膜法估测油酸分子的大小”给出了五个实验步骤,要求写出正确的顺序;2012年的“用描迹法画出电场中平面上的等势线”和2012年的“在外力一定的条件下,物体的加速度与其质量间的关系”,则要求完成实验步骤中的填空。有些实验题则是源于教材,如2009年的“用多用电表检查电路故障”要完成实验步骤中的填空,还要写出用多用表检测小灯泡是否有故障的具体步骤。
(四)注重实验电路的连接和设计
近五年,每年都有一道电学实验题,多数考查到了实物连线。如2010年的“测量电流表的实际量程”,给出了电路图,要求在实物图上画出连线;2013年的“用描迹法画出电场中平面上的等势线”,则没有给出电路图,要求用实线将实验器材正确连接。而2012年高考的电学实验题难度较大,要求学生根据题意设计电路图,画出黑箱中的电阻连接方式,得分率很低。
(五)注重实验数据的分析和处理
对实验数据的处理用得较多的是图像法,因为其比较直观、形象、误差小,由图线能够快捷地得出实验结果。一般情况下,这类实验题会得出一次函数关系式y=kx+b,图线画出后,可以用图线与坐标轴上的截距、图线的斜率或者用图线围成的面积求出相应物理量。如2012年“在外力一定的条件下,物体的加速度与其质量间的关系”的實验,如果以加速度a为纵坐标,质量m为横坐标,连接各数据点后得到一条曲线,就不好下结论了;但如果以1/m为横坐标,则可以化曲为直,画出一条过原点的直线,从而根据图线上的斜率k、截距b求出小车的质量和受到的拉力。
(六)注重实验的创新
目前高考中的物理实验题,与我们课本上实验一模一样的其实很少,但大都是源于教材,只是稍有变化,或者根本就不是课本中的特定实验,取而代之的是学生尚未接触过的要通过解读物理原理的新颖实验。因为只有创新,试题才有魅力;也只有变化,才能永葆实验考核的活力。对于这些实验题,好多同学解题时感觉无从下手,其最主要的原因往往与没有真正理解实验的原理有关。如2013年的“测量小物块与平板之间的动摩擦因数”,这个实验显然经过了命题专家精心设计,是一道很优秀的力学实验题。该题用到的知识和方法是学生非常熟悉的机械能守恒定律、平抛运动的分解、滑动摩擦定律和动能定理等,原理清晰,过程也不复杂,难度其实不大。
三、2014年高考物理实验复习策略
(一)第一轮复习时就要落实好实验复习
从每年学生高考的实际来看,实验题的得分率一般都不高,不少老师干脆把实验安排在二轮复习时再讲解。实际上,物理实验与其相关的知识是密切联系、不可分割的,在第一轮复习时,就应该穿插实验,做到实验复习与相关知识同步进行,这样才利于形成完整的知识结构。
这一阶段要加强对基本仪器的复习。要求掌握的仪器主要有:刻度尺、游标卡尺、螺旋测微器、天平、秒表、电火花计时器或电磁打点计时器、弹簧秤、温度计、电流表、电压表、多用电表、滑动变阻器、电阻箱等。学生必须了解基本仪器的构造,熟悉基本仪器主要部分的名称、明确其工作原理、掌握其操作方法,以达到熟练地、正确地对测量结果进行读数。
对考纲要求的每一个实验,复习时应确保每个环节都能得到逐一落实,对实验目的、实验原理、实验器材、实验步骤、数据处理、实验结论、实验中应该注意的问题以及误差分析等详细复习。对典型的演示实验和课后小实验也应了解其实验目的、原理、装置、现象和结论,因为高考实验题会向演示实验和小实验拓展延伸。
(二)第二轮复习时要做好实验专题复习
该阶段应进行实验的系统总结和归类。总结时,可以将物理实验按实验仪器相似的、实验方法相似的、数据处理方法相似的等等来整理分类。例如,通过打点计时器,利用纸带可以验证机械能守恒定律、探究动能定理、测定动摩擦因数、测量速度和加速度等。又比如,在教材中实验数据的处理方法有平均值法(如研究匀变速直线运动)、图像法(如测定电源电动势和内阻)、比较法(如验证机械能守恒定律)、列表法(如用单摆测定重力加速度)、描迹法(如研究平抛物体的运动)等。同一个实验又可以用不同的方法完成,如“电源电动势和内阻的测量”,可以利用电流表和电压表测量、利用电流表和电阻箱测量、利用电压表和电阻箱测量等方法。只有通过实验总结,才能在头脑中形成完整的知识体系,才有助于形成全面的实验技能。
(三)重视实验操作,高考前开放实验室让学生做一做
许多老师认为“做实验不如看实验(视频),看实验(视频)不如讲实验”,很少做实验,以至于大多数学生重结果而轻过程。学生必须亲自去做,才能够体会到该“如何做”。目前的高考,实验题虽然想考查学生的实验技能,但局限于笔试,也只能出一些与实际操作相近的题目。因此,在高考前一个月,最好开放实验室,把各个实验的仪器摆放出来,让学生再做一做课本中的基础实验,进一步规范学生的实验操作行为,往往能收到更好的效果。
最后要强调的是,对待实验仅靠死记硬背、题海战术是不行的。必须理解实验原理,活化实验练习,才能提高学生物理实验能力。
参考文献:
[1]黄黎树,方正华。高考物理实验试题结构特点分析。《物理实验》2007.05
4.java程序设计实验大纲 篇四
合肥学院计算机系
实验一 Java开发环境的安装与配置,熟悉Java程序
结构
一、实验目的:
1.掌握JDK的安装步骤。
2.理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。3.熟悉Editplus 或Eclipse(或TextPad,JCreator)编辑环境,编写简单的Application程序和Applet程序,并编译和执行。
二、实验内容:
熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息);
三、实验要求:
1.能正确地安装JDK 2.熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3.调试程序、编译,运行后得到正确的结果
4.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
四、实验步骤:
1.从http://java.sun.com 上下载最新版本的JDK,并安装。
2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。3.在Eclipse(或JCreator,Textpad)环境下编写一个HelloWorld.java程序,(1)在主方法static public void main(String[ ] args)中调用System.out.println()方法,使程序输出一条问候信息;
(2)编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用javac.exe和java.exe编译和执行程序)
4.在Eclipse(或JCreator,Textpad)环境下编写一个HelloWorldApplet.java程序。
(1)在public void paint(Graphics g)方法中调用g.drawString()方法,使 程序输出一条问候信息;
(2)编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用javac.exe编译和浏览器解释执行Applet程序)
实验二 Java语言基础
一、实验目的:
熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。
二、实验内容:
1.编写Java Application程序,输出1900年到2000年之间的所有润年。(闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.编写Java Appet 程序打印 “水仙花” 数(它的个、十、百位数字的立方的和等于该数本身,如:153=1^3+5^3+3^3)3.编写Java Application程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!...的前20项和
三、实验要求:
1.正确使用Java语言的选择语句,循环语句; 2.调试程序、编译,运行后得到正确的结果
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成示,并给出解决办法。
四、实验步骤:
1.编写主类;
2.在static public void main(String[ ] args)方法中加入实现要求功能的代码,主要步骤如下:
(第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。
(第二题)编写Java Applet, 在public void paint(Graphics g)方法中加入实现要求功能的代码, 主要步骤是:从100到1000循环,判断每个数是否符合水仙花数的特点,是则输出之。3.编译运行程序,观察输出结果是否正确。
五、自做实验
1.输出100以内的所有素数。提示: 逐个判断小于a的每个正整数x,第二重循环针对x,判断其是否是质数。
2.将所输入之正整数,以二、八、十六进制表示出来。提示: 可写三个方法分别计算输出二、八、十六进制表示。
实验三 类和对象
一、实验目的:
掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现; 掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法;
掌握类变量与实例变量,以及类方法与实例方法的区别。
三、实验内容:
1.定义一个学生类(Student),属性有private的名字(name), public的年龄(age),专业(specialty)和封装name属性的方法:setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄age)。(学生类仅包含静态成员变量和方法。)2.定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。
3.定义一个复数(z=x+iy)类Complex,包含:
两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j)显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2)求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2)求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部 交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2)比较两个复数是否相等的方法(参数是两个复数类对象,返回值是boolean类型)public boolean equalComp(Complex C1,Complex C2)在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。
三、实验要求:
1.正确地定义类、方法和属性;2.学会方法的参数传递和返回值的用法; 3.熟练使用类及其成员修饰符 4.使用构造函数创建类的对象;
5.类变量与实例变量,以及类方法与实例方法的使用 6.程序应包括各个被调用方法的执行结果的显示。
7.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)定义一个学生类(Student)及它的属性和方法;定义主类和main(),在main()方法中创建学生对象,并通过对象调用它的方法setName(),getName(),输出学生的名字name和年龄age。
2.(第2题)定义类Point及它的属性、方法和构造函数,定义主类和main(),在main()方法中创建两个坐标对象,,并通过对象调用getMiddle方法后得到一个新的点坐标,调用show()显示该对象的坐标值。3.(第3题)定义一个复数(z=x+iy)类Complex,及它的属性、方法和构造函数;定义主类和main()方法,在main()方法中创建两个复数类Complex对象,并通过复数类对象调用它们的属性和方法,输出方法执行结果。
五、自做实验
1.构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。
2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0
3.编写实现: 构造函数为 Triangle(int xx,int yy,int aa)参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示:求高的方法 h=y*Math.sin(a))注意:构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。
实验四 java继承与多态
一、实验目的:
掌握继承、多态的概念与实现方法;
掌握包和接口的定义和使用方法;
了解JAVA语言实现多继承的途径;
二、实验内容:
1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:
(1)Point2D有两个整型成员变量x, y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。
(2)Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。
(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。
(4)Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D的平移。
(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point2D的对象p3d1,p3d2,打印出他们之间的距离。
2.定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类 Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,调用showArea方法。
定义接口DiagArea,其中包含方法double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成 员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主方法里使用测试该类。
三、实验要求:
1.能实现类的继承关系;
2.用多种方法创建各个类的对象;
3.程序应包括各个被调用方法的执行结果的显示。
4.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)定义Point2D,及定义它的属性和方法;
定义子类Point3D,及定义它的属性和方法;在Point3D中的主函数main()中实例化两个Point2D的对象,并通过这两个对象调用它们的属性和方法,输出方法执行结果。
2.(第2题)定义抽象类Shape,抽象方法为showArea(),再定义矩形类Rectangle,正方形类Square,圆类 Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用showArea方法;定义接口DiagArea,其中包含方法double getDiagonal(),在主main方法中输出方法执行结果。
六、自做作实验
1.定义一个描述人的基本类,该类包括人的性别和出生日期两个数据成员,以及设置和获取这些属性值的方法成员;再定义一个大学生类,使大学生类具有人的所有属性外,还具有姓名、学号,大学入学成绩,籍贯属性以及设置和获取这些属性值的方法成员;编写完整的程序,完成一个具有班级学生信息管理功能的程序。
2创建一个接口Shape,其中有抽象方法area,类Circle、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle 10 对象;如是2,生成Rectangle对象;如是3,生成Star对象)。然后将Vector中元素依次取出,判断其是否为Star类。如是返回其是个Star。否则返回其面积。
3..学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。
1)设计两个信息管理接口StudentManageInterface和TeacherManageInterface。其中,StudentInterface接口包括setFee()方法和getFee()方法,分别用于设置和获取学生的学费;TeacherInterface接口包括setPay()方法和getPay()方法,分别用于设置和获取教师的工资
2)定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。
3)创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。提示:
1)定义两个接口,分别在其中申明两个方法。2)定义主类Graduate,实现这两个接口。3)定义主类的成员变量,和构造方法。
4)给出四个接口方法的实现。5)给出一个计算是否需要贷款的方法,在里面统计年收入和学费,并输出是否需要贷款的信息。
6)写main方法。在其中创建一个姓名为“zhangsan”的研究生,调用计算是否需要贷款的方法。4.书后练习
实验五 Java的异常处理
一、实验目的:
理解 java 语言中独特的异常处理机制;掌握异常处理方法;正确地使用捕获异常和声明抛弃异常的两种异常处理的方法;了解自定义异常类的使用;理解抛出异常和声明抛出异常的区别与联系;
二、实验内容:
1. 从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。
2.写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
3.自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
三、实验要求:
1.通过实验掌握捕获异常和声明抛弃异常的两种异常处理的方法; 2.程序必须能够捕获Integer.parseInt()产生的异常并作相应的处理; 3.程序必须能够将处理的相应的信息输出出来;
4.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)使用try„..catch„.finally语句对Integer.parseInt()产生的异常进行捕获处理;2.(第2题)定义方法void sanjiao(int a,int b,int c)中,不符合条件则抛出异常(if a+b<=c(或a+c<=b,b+c<=a)then throw new IllegalArgumentException(),),再定义main方法,调用此方法,用try„..catch„.finally语句并捕获异常;3.(第3题)定义三角形类及相应的方法, 在定义的方法中对不符合条件则抛出异常(如上题),再定义main方法,对正确的数据输出正确信息,否则捕获异常;
五、自做实验
1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。[提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试] public class StringIndexOutOf{ public static void main(String args[]){ System.out.println(“字符串索引越界异常”);String str=args[0];System.out.println(“第四个字符为 ”+str.charAt(3));int aa=Integer.parseInt(args[0]);
System.out.println(“
平
方为 ”+aa*aa);} }
实验六 Java数组、字符串及常用类应用
一、实验目的:
掌握数组的定义和使用方法;熟悉数组的排序、查找等算法。掌握字符串的使用方法。
二、实验内容:
1.编写Application程序, 从命令行参数输入10个整数并保存在数组中,求数组中最大、最小、数据的和、平均值。
2.从命令行参数一日期,如“2005-5-6”,计算与今日之间的天数间隔。3.将命令行第一个参数每个字符放入一字符数组,然后逆序输出
4.编写Application程序,接受用户输入一段英文文字后,输出其中的字符数、单词数和句子数(设句子以“?”、“!”、“.”结束)。5.打印杨辉三角的前10层。
6.编写Applet程序,使用 *画一条正弦曲线(提示:y=a* sin(x),坐标要取整)
三、实验要求:
1.熟练对象数组及创建初始化和未初始化的数组的方法;2.熟悉从命令行参数的使用;3.熟悉String 和StringBUFFER的使用方法 4.熟悉常用类库的使用;5.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1(第1题).从命令行输入10个数到数组,用循环语句分别求最大、最小、数据的和、平均值。
2.(第2题)利用String类的各种方法,分别判断字符是否为“?”、“!”、“.”,用3个计数器分别计数。
3(第3题)将命令行第一个参数字符串中的每个字符作为数组元素放入一字符数组,再循环语句逆序数组元素。
4.(第4题)定义一个二维数组,第一维的长度为所打印杨辉三角的层数(即 10),第二维为每一层的数据个数(也就是其所在的层数)。(第5题)利用Math类中sin函数,在Paint()方法中用Graphics类drawString()画一条正弦曲线.五、自做实验
1.求Fibonacci序列的前n项,要求:
在main方法中定义一数组,数组的长度n为一final定义的常量,使用一单独方法,无返回值,参数为一数组,在方法中给数组赋予序列的值,在main方法中调用该方法,然后打印结果数组的内容
2.声明一个矩阵类Matrix,成员变量是一个二维数组,设数组元素类型为int,请设计方法:(1)构造方法:
Matrix()//构造一个10X10个元素的矩阵,没有数据
Matrix(int n,int m)//构造一个nXm个元素的矩阵,数据由随机数产生 Matrix(int table[][])//以一个整型的二维数组构造一个矩阵 要求使用 this(2)实例方法:
public void output()//输出Matrix类中数组的元素值 public void transpose()//输出一个矩阵的转置矩阵 2.随机数求法:
Math.random()返回0-1的小数,由上题中的Matrix类派生出正方形Square类,在构造方法中调用父类的构造方法(使用super)。
3.编写一个Java程序,完成以下功能:
(1)声明一个名为s的String对象,并使它的内容是“My name is Carrol”;(2)打印整个字符串;(3)打印字符串的长度;(4)打印字符串的第一个字符;(5)打印最后一个字符;(6)打印字符串的第一个单词。
*4.编写一个程序,用散列表实现学生成绩单的存储和查询,并将若干个查 15 询结果存放到一个向量中,通过循环将向量对象内容逐个输出。*5.从命令行读入一浮点数值,将其转化为中文金额的大写方式,如123.45,转化为:壹佰贰拾叁元肆角伍分,中间有多个0只要一个零。*6.利用Vector对象改写上面的程序,输入元素个数由用户自由确定。
实验七 图形用户界面与事件处理机制
(一)一、实验目的:
掌握Java图形组件和布局管理器的使用; 掌握使用Java事件处理机制的使用。
掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。
二、实验内容:
1.编写Application程序,在Frame中加入2个按钮(Button)和1个标签(Label),单击两个按钮,显示按钮的标签于Label。
2.在Applet中加入1个文本框,1个文本区,每次在文本框中输入文本,回车后将文本添加到文本区的最后一行。
3.在Applet中加入2个复选框,显示标题为“学习”和“玩耍”,根据选择的情况,分别显示“玩耍”、“学习”、“劳逸结合”。
4.在Applet中加入1个滚 动列表框List、1个下拉列表框Choice和1个按钮,点击按钮将List中的项目移到Choice组件中,5.编写Application程序,在Frame中加入80个按钮,分20行4列,用GridLayout布局方式,按钮背景为黄色(Color.yellow),按钮文字颜色为红色(Color.red)。
6.设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
三、实验要求:
1.采用布局管理器进行界面的布局; 2.学会对不同的事件用相应的事件处理器;
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.运用一种或多种布局管理器,绘制出一个简单的计算器;
2.为按钮注册事件监听器,使其点击按钮,并在显示区域同步显示当前输入或运算结果;
3.编译运行程序,检查计算器的正确性;
五、自做实验
1.学生可以视个人情况完成更复杂更完善的计算器功能,通过多种布局管理方法实现更美观的界面布局。
2.编写Applet程序,在控制按钮程序中,实现播放音乐,显示图片等操作。3.编写Java Applet程序,使它在浏览器中通过响应功能按钮的点击事件绘制各种简单的几何图形(矩形、圆形、扇形、多边形和他们的填充效果),并且能够通过接收传递参数控制图形的绘制。
4.在Applet中做2个按钮,点击它们,分别画一个填充的蓝矩形和粉红色圆,位置随机,并统计每个按钮点击的次数
实验七 图形用户界面与事件处理机制
(二)一、实验目的:
掌握菜单、弹出式菜单设计。会处理事件以及设置输入对话框。
了解对文本域JTextArea中字符进行复制和粘贴的操作。
二、实验内容:
1.在窗口中建立菜单和弹出式菜单,”文件”中有”打开”项目,点击后弹出文件对话框,在界面中的1个文本框中显示打开的文件名。
*2.设计一个JAVA程序模仿记事本(NotePad)的部分功能,界面如下图。
三、实验要求:
1.学会建立菜单和弹出式菜单;
2.学会文件对话框的使用;对不同的事件用相应的事件处理器; 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)从打开文件对话框中获取文件名,将文件名放入文本框。2.(第2题)新建文件时,文本域为空;打开文件和保存文件时要给出输入对话框,输入相应文件名后进行操作;选择退出菜单将退出整个程序。
再对文本域中选中的字符能够进行复制和粘贴操作。3.编译运行以上程序
五、自做实验:
1.利用所学的Java语言知识,完成一个实现秒表功能的Applet程序。它的GUI界面如下所示: 利用所学的Java语言知识,完成一个实现秒表功能的Applet程序。它的GUI界面如下所示:
要求该程序能够完成以下功能:
(1)在界面上方的文本框中,按照“小时:分钟:秒”的顺序实时显示系统时间;
(2)当按下界面中间的“Current Time:”按钮时,当前系统时间能够在界面下方的文本框中显示出来。
提示:可以通过调用java.util.Data类的方法,获得系统时间。Data类的接口如下所示,public class Date {
// 返回当前系统时间的小时值
public String getHours(){ „}
// 返回当前系统时间的分钟值
public String getMintues(){ „ }
// 返回当前系统时间的秒钟值
public String getSeconds(){ „}
„
} 2.编写一个计算器程序,只有加减乘除功能,当作Applet运行。
3.编写一个Applet程序:画图
要求:界面上有2个按钮,一个为标签为“椭圆”,另一个为“矩形”,点击后分别画红色的椭圆和蓝色的矩形,其宽度为100、高度为60,左上角顶点坐标为(50,50),试写出完整程序,并且要写出其对应的HTML文件代码。
实验八 Applet类及应用
一、实验目的:
掌握applet的程序结构和运行方式;掌握从html文档向Java Applet传递参数的方法;了解applet程序的生命周期;掌握在Applet中对字体、颜色、播放声音、显示图像和动画控制方法;
二、实验内容:
1.编写Applet程序,改变applet窗口大小,使其最大化、最小化,查看init()、start()、paint()、和destroy()方法的执行情况(执行顺序和执行次数)。2. 编写Applet显示字符串,显示字符串及其显示位置,字体、字体大小和颜色通过HTML文件中的参数来传递。
3.编写Applet(大小140*60),其背景色为蓝色,画一个长方形(其填充色为pink,各边离边小于10像素)和一个在填充的长方形中左右移动的小球(半径15)。
4.实现一个Applet,显示一幅图片。不停地运行一个动画。
三、实验要求:
1.必须编写成Java Applet程序;
2.能够通过传递参数控制一种或者几种图形的绘制;
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)在paint()方法中,绘制init()、start()、paint()、和destroy()方法的执行次数的直方图。
2.(第2题)在HTML文件中添加参数传递的代码:
„„
在init()方法中,调用getParameter()获取由HTML传递的参数,再按照要求,在paint()方法中调用Graphics类中drawString()函数显示 字符串。
3.(第3题)在paint()方法中调用Graphics类中drawString()函数时,X坐标定义成变量(10〈=X〈=120),4.(第4题)在init()方法中,根据指定的位置获取一系列图片类对象放入数组,再循环显示系列图片就形成动画。5.运行、检查和调试 以上各程序。
五、自做实验
1.编写Applet,访问并显示指定URL地址处的图像和声音资源。2.编写Applet,访问并显示指定URL地址处的一组图像构成的动画。3.编写Applet,接收用户输入的网页地址,并与程序中事先保存的地址相比较,若存在则打开网页,并在新打开的浏览器窗口显示*编写一个Applet程序,显示一个圆心在Applet的中心,半径从0到100像素不断变大的绿色球的动画。
4.在Applet中画矩形,要求矩形做上角点坐标(20,20),高度为400*200,上下左右边设为蓝色、矩形填充色为绿色,并在居中的位置写上文字“面向对象程序设计”,字体为楷体_gb2312,大小自定。
5.自定义椭圆(或圆)的方法,画一组椭圆(最大半径200),以圆心处为参考点,半径依次增加2个像素,圆周的颜色随机。
6.给定数组data[]={1,2,3,4}分别画出圆饼图、条形图(宽随意给定,高代表所占百分比),颜色任意。
7.找一幅图像,显示在Applet中,要求按原图大小显示,再放大或缩小一倍显示,或者放大显示右下部的1/4块
实验九 Java多线程
一、实验目的:
熟悉利用Thread类建立多线程方法。熟悉利用Thread接口建立多线程方法。
二、实验内容:
1.阅读下列程序,分析并上机检验其功能。class DelayThread exends Thread{ private static int count=0;private int no;private int delay;public DelayThread(){ count++;no=count;} public void run(){ try{ for(int i=0;i<10;i++){ delay=(int)(Math.random()*5000);sleep(delay);System.out.println(“Thread ”+no+” with a delay ”+delay);} }catch(InterruptedException e){}}} public class MyThread{ public static void main(String args[]){ DelayThread thread1=new DelayThread();DelayThread thread2=new DelayThread();thread1.start();thread2.start();try{ Thread.sleep(1000);}catch(InterruptedException e){ System.out.println(“Thread wrong”);}}} 2.讲上列程序利用Runnable接口改写,并上机检验。
3.利用多线程 编写一个模拟时钟(AWT程序、Runnable接口),有时分秒 针 编写一个应用程序,创建三个线程分别显示各自的时间。
三、实验要求:
1.通过实验掌握Thread、Runnable使用方法; 2.程序必须能够实现多线程; 3.程序必须能够完成题目要求; 4.写出实验报告。
四、实验步骤:
首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。
通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
四、自做实验
课本:P262 12,13,14 25
实验十 输入输出流
一、实验目的:
熟悉Java的文件读写机制,练习输入输出流的使用。
二、实验内容:
1、键盘输入10个整数,从小到大进行排序。
2、接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用FileOutputStream类读出文件内容显示在屏幕上。
3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。
三、实验要求:
1.通过实验掌握文件输入输出流的使用方法; 2.程序必须能够从键盘接收字符串并保存在文件中; 3.程序必须能够读出文件内容显示在屏幕上; 4.写出实验报告。
四、实验步骤:
1.(第1题)接收键盘输入字符串,再转化整数;
2.(第2、3题)编写主方法main(),其中实现接收键盘输入功能、文件操作功能和文件内容输出功能; 3.调试运行程序,观察输出结果。
五、自做实验
课本:P300,7、10
实验十一
Java网络编程
一、实验目的:
1、熟悉掌握Java的相对高级别(简单的)网络通讯
2、熟悉掌握URL类访问Web页面的操作流程
3、学会JAVA的Socket类和ServerSocket类的使用
二、实验内容:
1、编程实现同一Web页面两个Applet之间的通讯
2、编程实现显示URL中的Html文件
*
3、参照例程编写一个简单的聊天室程序(P411,2)
三、实验要求:
1.通过实验掌握的URL类、Socket类和ServerSocket类的使用方法; 2.程序必须完成题目要求的功能; 3.写出实验报告。
四、实验步骤:
1.(第1题)参照例程两个Applet分别加上按钮,互相控制对方的线程 2.(第2题)通过URL类中方法,实现通讯,获取Html文件 3.(第3题)参照例程增加多客户端,实现聊天室 4.调试运行程序,观察输出结果。
五、自做实验 P411,8
实验十二
Java与数据库连接
一、实验目的:
熟悉SQL命令集。
学会编写加载数据库驱动和连接数据库的JAVA程序。应用Java.sql包中的类和接口编写操作数据库的应用程序。
二、实验内容:
编程实现如下功能:在数据库中建立一个表,表名为学生,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。在表中输入多条记录。将表每条记录按照总分大到小的顺序显示在屏幕上。查找并显示姓名为“张三”的记录。(要求图形界面)
三、实验要求:
1.通过实验掌握SQL命令的使用;
2.使用J2SDK中提供的JDBC-ODBC桥连接数据库; 3.使用的数据库系统不受限制,比如可以用Access。4.调试运行程序,观察输出结果。5.写出实验报告。
四、实验步骤:
1、首先设计一个图形界面
2、首先建立一个数据库,在此基础上通过编程实现一下功能:
在数据库中建立一个表,表名为职工,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。1)在表中输入多条记录。
2)将每条记录按照总分大到小的顺序显示在屏幕上。
3)查找并显示姓名为“张三”的记录
五、自做实验
课本:P411,2
实验十三
实现C/S应用
一、实验目的:
熟悉综合运用图形用户界面与事件处理机制、Java的文件读写机制、输入输出流的使用、多线程、Java的异常处理、Java网络编程知识,编写一个综合程序
二、实验内容:
利用Socket编程实现C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个 TextField用于显示传来的计算结果;Server端用于监听连接请求、计算发送过来的两数的和、送回数据结果。
三、实验要求:
1.有良好的图形用户界面; 2.多个用户能同时操作; 3.要有异常处理机制
4.调试运行程序,观察输出结果。5.写出实验报告。
四、实验步骤:
1、编写服务器端程序
2、客户端首先设计一个图形界面
3、实现客户端程序
五、自做实验
5.java程序设计实验大纲 篇五
学分:4
实验学时:16
实验个数: 6个实验学分:1分 课程性质:专业必修课适用专业:计算机类专业 教材及参考书:《C++语言程序设计(第四版)》,郑莉、董渊编著,北京:清华大学出版社,2011 大纲执笔人:杨军
大纲审定人:
一、实验课的性质与任务
本课程实验大纲是面向计算机专业学生开设的《C++程序设计》实验课计划指导大纲,是依据《面向对象程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用C++进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本实验大纲力求结合该课程教学计划大纲的相应内容,由浅入深的指导学生了解和掌握如何利用C++程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。
二、实验目的与要求 1.实验目的
通过本课程的学习,使学生掌握面向过程的程序设计思想和编程思路,初步掌握面向对象的程序设计思想,学会调试程序,能独立编写实用的小型程序。2.实验要求
学生应该自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯; 应独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序,学生应事先设计好程序。
三、实验项目及内容提要
面向对象程序设计实验课程(071016)
序号
实验编号
实验名称
学时
必做
选做
学分数 实验类型
内容提要
基本操作
验证
综合设计 1
类与对象
√
√
函数重载,类的设计与使用 2 2
C++程序的结构
√
√
作用域与生存期,静态成员
3
数组、指针与字符串 √
√ 三种常见编程元素的使用
4
继承与派生 √
√
派生类的设计与使用
5 多态性 √
√
运算符重载、动态多态
6
模板和文件 √
√
模板,异常处理机制的设计
四、实验内容安排: 实验一类与对象
(设计性实验
4学时)目的要求:
掌握类的定义和使用;掌握类对象的声明;练习具有不同访问属性的成员的访问方式;观察构造函数和析构函数的执行过程; 学习类组合使用方法;
使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。实验内容:
编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
写一个函数,具有一个引用作为形参参数,在函数中改变引用变量的值,观察实参变量的变化。
定义一个CPU类,包含等级(Rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU__Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,观察组合类和内嵌类的构造函数和析构函数的调用顺序。
为题目2)的类编写复制构造函数,在主函数中利用复制构造的方式创建新的对象,观察对象的状态。
思考并回答以下概念:函数重载,引用,类,对象,数据成员,函数成员,访问属性,构造函数,析构函数,类的组合,内嵌对象,初始化列表,复制构造函数。主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验二
C++程序的结构(设计性实验
2学时)目的要求:
观察程序运行中变量的作用域、生存期和可见性; 学习类的静态成员的使用;
学习多文件结构在C++程序中的使用。实验内容:
实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。
利用多文件结构实现题目1),在头文件client.h中定义类,在文件client.cpp中实现该类,在文件test.cpp 中测试这个类,观察相应的成员变量取值的变化情况,要求ClientNum能够实时记录客户机对象的数量。
思考并回答以下概念:类的静态数据成员,类的静态函数成员,多文件结构,文件包含。主要仪器设备及软件:Windows 2000+VC 6.0 实验三数组、指针与字符串实验(设计性实验
4学时)目的要求:
学习使用数组;学习字符串数据的组织和处理;学习标准C++库的使用; 掌握指针的使用方法;练习通过debug观察指针的内容及其所指的对象的内容;练习通过动态内存分配实现动态数组,并体会指针在其中的作用; 分别使用字符数组和标准C++库练习处理字符串的方法。实验内容:
编写一个类用于处理3×3矩阵转置,测试转置的效果,输出转置前后的矩阵。
定义一个具有构造函数和析构函数的类,如实验一的CPU类,定义一个CPU的对象数组,观察构造函数的析构函数的调用过程。利用动态内存分配的方式重新完成题目2)。
使用系统提供的string类定义字符串对象并初始化,实现从原始字符串中提取一个子串。选做:定义一个Point(二维点类)的对象数组,利用该数组实现直线的线性拟合。选做:定义一个动态数组类。
思考并回答:数组,指针,对象数组,动态内存分配,默认构造函数,标准类库,字符串类 string,线性拟合。
3.主要仪器设备及软件:Windows 2000+VC 6.0 实验四继承与派生
(设计性实验
2学时)目的要求:
学习定义和使用类的继承关系,定义派生类;熟悉不同继承方式下对基类成员的访问控制; 学习利用虚基类解决二义性问题。实验内容:
定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把 age改为公有成员变量,还会有问题吗?编程试试看。
定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,定义该派生类的对象,观察构造函数和析构函数的执行情况。
定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcycle)类有座位数(SeatNum)等属性。从bicycle和motorcycle派生出摩托车(Motorcar)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问?编程实验及分析原因。
思考并回答:继承,派生,子类对基类成员的访问权限,继承方式,继承时的构造函数和析构函数的调用顺序,虚基类
主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验五多态和运算符重载(设计性实验
2学时)目的要求:
掌握运算符重载的方法;学习使用虚函数实现动态多态性。实验内容: 定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p;cout<
定义一个车(vehicle)基类,有虚函数Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,它们都有Run、Stop等成员函数。在主函数中用不同的方法调用Run、Stop成员函数,观察这些函数的执行结果,思考如何实现动态多态性,如果Run、Stop没有被定义为虚函数,执行结果会怎样,把结果和分析写入实验报告。选做,利用类完成求函数的积分(参考教材)。
思考并回答:多态,实现多态性的方法,虚函数,运算符重载,前++,后++,实现运算符重载的方式。
主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验六模板和文件
(设计性实验
2学时)目的要求:
理解模板的作用和语法。
学习掌握C++文件处理类的基本用法。实验内容:
使用函数模板实现一个求3个数最大值的函数,并完成测试。
编写程序,用二进制方式打开指定的一个文件,在每一行前加行号。选做,练习使用STL中的vector模板类。选做,定义一个异常类CException,有成员函数Reason(),用来显示异常的类型。在子函数中触发异常,在主程序中处理异常,观察程序的执行过程。思考并回答:模板,函数模板,类模板,文件,文件读写,文件流类,文件操作方式,文件存储方式; STL,容器,异常处理。
3.主要仪器设备及软件:PC+Windows 2000+VC 6.0
五实验报告的格式(本部分要求各学院设计成表格作为教学大纲附件)
实验完毕,应用专门的实验报告本,根据预习和实验中的现象及数据记录等,及时而认真地写出实验报告。实验报告一般包括以下内容: 实验(序号)实验名称
(一)实验目的
(二)仪器工具及材料列出实验中所使用的主要仪器工具及材料。
(三)内容及程序应简明扼要地写出实验步骤流程。
(四)结果及分析应用文字、表格、图形等形式将数据表示出来。根据实验要求对数据进行分析和误差处理。
(五)问题讨论结合有关理论对实验中的现象、产生的误差等进行讨论和分析,以提高自己的分析问题、解决问题的能力,并提出应注意的事项,也为以后的科学研究打下一定的基础。
六、考核方式、方法及实验成绩评定方法
1、考核方式、方法:
面向对象程序设计实验课成绩占面向对象程序设计总成绩的15%,即共15分。考核方法为采用实验课随堂检查学生完成情况及现场提问让学生回答,根据学生完成情况及答辩情况给分次给出平时成绩,共5分。学生在完成实验后应将自己的实验过程,结果,经验写入实验报告并提交实验报告,实验报告成绩占10分,根据学生实验报告的书写质量及实验出勤情况打出。
2、实验成绩评定方法:
评定各级成绩时,可参考以下标准:
(一)优秀(很好)14-15 能正确理解实验的目的要求,能独立、顺利而正确地完成各项实验操作,会分析和处理实验中遇到的问题,能掌握所学的各项实验技能,能较好地完成实验报告及其它各项实验作业,有一定创造精神和能力。有良好的实验工作作风和习惯。
(二)良好(较好)13-14 能理解实验的目的和要求,能认真而正确地完成各项实验操作,能分析和处理实验中遇到的一些问题。能掌握所学实验技能的绝大部分,对难点较大的操作完成有困难。能一般完成实验报告和其它实验作业。有较好的实验习惯和工作作风。
(三)中等(一般)11-12 能粗浅理解实验目的要求,能认真努力进行各项实验操作,但技巧较差。能分析和处理实验中一些较容易的问题,掌握实验技能的大部分。有30%掌握得不好。能一般完成各项实验作业和报告。处理问题缺乏条理。工作作风较好。能认真遵守各项规章制度。学习努力。
(四)及格(较差)8-9 只能机械地了解实验内容,能一般性地按实验步骤完成实验操作,能完成60%所学的实验技能,有些虽作但不准确。遇到问题常常缺乏解决的办法,在别人启发下能作些简单处理,但效果不理想。能一般完成实验报告,能认真遵守实验室各项规章制度,工作中有小的习惯性毛病(如工作无计划,处理问题缺乏条理)。
(五)不及格(很差)0-7 盲目地操作,只掌握50%的所学实验技能。有些实验虽能作,但一般效果不好,操作不正确。工作忙乱无条理。一般能遵守实验室规章制度,但常有小的错误。实验报告较多的时候有结果,遇到问题时说不明原因,在教师指导下也较难完成各项实验作业。或有些小聪明但不努力,不求上进。
七、实验主要应配套仪器设备及台(套)数(以一个实验教学班40人为标准)序号
仪器设备名称
数量
备注
计算机
40台
C++开发工具软件
1套
网络版
八、主要教材及参考书
6.java程序设计实验大纲 篇六
一、教材名称:<
二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]
三、适用专业和开课学期:软件技术专业,第2学期。
四、实验的目的与任务:
《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。
五、主要仪器设备及台(套)数
安装Windowsxp,TC2.0等软件的计算机,每生一台。
六、主要实验教材(指导书)及参考用书:
谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。
七、成绩考核方式及评分标准
实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。
八、实验开出率:100%
九、实验项目与要求
实验一:C程序的运行环境和运行一个C程序的方法(2学时)
实验性质:验证性实验
一、实验目的
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?
2.输入并运行教材第一章中例1.2。
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二 数据类型、运算符和表达式(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容
1.输入并运行教材第三章例3.6.即: #include
printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。
2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。
3.输入并运行习题3.10。即: #include
printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}
实验三 最简单的C程序设计(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。
二、实验内容
1.输入并运行以下程序:
#include
void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;
unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;
f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;
f=3157.890121;g=0.123456789; d=f;e=g;
p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。
② 在①的基础上将printf语句改为:
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);
printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。
2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
实验四 选择结构程序设计(2学时)
实验性质:设计性实验
一、实验目的
1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。
二、实验内容
先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~
10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
实验五 循环控制(4学时)
实验性质:设计性实验
一、实验目的
1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、实验内容
编程序并上机调试运行。
1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
实验六 数组(4学时)
实验性质:设计性实验
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容
编程序并上机调试运行。
1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)
实验性质:设计性实验
一、实验目的
1.掌握定义函数的方法;
2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。
二、实验内容
编程序并上机调试运行。
1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。
(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。
(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。
实验八 预处理命令(2学时)
实验性质:设计性实验
一、实验目的
1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。
二、实验内容
编程序并上机调试运行。
1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。
实验九 指针(4学时)
实验性质:设计性实验
一、实验目的
1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;
二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。
2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:
1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。 实验十 结构体和共用体(4学时) 实验性质:设计性实验 一、实验目的 1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。 要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。 2.输入和运行以下程序: #include union data {int i[2]; float a; long b; char c[4]; }; void main(){union data u; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。 然后将scanf语句改为: scanf(“%ld”,&u.b); 输入60000给b。分析运行结果。 实验十一 位运算(1学时) 实验性质:设计性实验 一、实验目的 1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 二、实验内容 编写程序,上机调试并运行。 1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。 实验十二 文件(1学时) 实验性质:设计性实验 一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时) 实验性质:综合性设计性实验 一、实验目的 1.综合运用C程序设计知识,解决实际问题。 二、实验内容 1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。 2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。 3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 学生的原有数据为: 91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为: 91108 Xin 90,95,60 制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人: 一、非项目驱动的Java实验教学方法 传统的非项目驱动的Java实验教学通常有“读、改、填、写”四种方式。 读———选择一个和实验目的紧密结合,且具有一定代表性的正确无误的程序,让学生来阅读并上机验证阅读结果。这可使学生对课上理解不够透彻、不够全面的知识点加深理解和记忆。 改———给出一个在相关的知识点上故意设置了错误的程序,让学生在上机实验过程中去改。在学生已经能够读懂程序、对实验相关的知识点有了一定的理解和把握的基础上,设置一个有错误的程序,让学生去查找其中的错误,并进行修改。这样可以使学生更进一步理解理论知识,并在理解的基础上学会简单的应用,而且能防止设计程序中类似错误的发生。 填———给出一个在重要知识点上留下空白的不完整程序,让学生在理解程序整体结构的基础上补充完整。这样不仅可以使学生对知识点的应用更加熟练,而且可以加深学生对于程序整体结构的把握。 写———给出程序功能的文字叙述,要求学生完成该程序的编写。通常对程序的功能要求不太强大,以能够运用到本实验知识点为宜。 总体来讲,非项目驱动的Java实验是围绕Java知识点和程序体系结构进行的,以掌握Java基本知识和程序基本结构为目标。学生没有主动思考的机会,而是被动接受知识,学生没有自主地感官体验,所学知识主要是应付考试。 二、项目驱动的Java实验教学方法 1、项目驱动教学法概述 项目驱动教学法是在建构主义学习理论下形成的一种教和学的模式,它集中关注于某一学科的中心概念和原则,旨在把学生融入到有意义的项目任务完成的过程中,让学生积极地学习、自主地进行知识的建构。 项目驱动教学法的核心是项目,师生通过实施一个相对完整的项目工作而进行教学活动。通过教师多媒体教学演示、学生分工实践、小组讨论、团队协作学习的方式,完成课程知识体系的学习。学生学习的过程就是一个探究的过程,学生通过项目的实现,了解并把握项目整个过程及每一个环节中的基本要求。学习过程是一个人人参与的创造实践活动,学生在项目实践过程中,理解和掌握课程要求的知识和技能,体验创新的艰辛与乐趣,培养分析问题和解决问题的能力。 2、项目驱动教学法教学过程 (1)明确任务 通常由教师本着规模适度、难度适中、实用性强、趣味性强的原则,提出项目任务设想,然后同学生一起讨论,最终确定项目的目标和任务。 (2)制定计划 由学生对项目的内容进行详细的规划和分析,以了解项目的功能和设计要求。制定出项目工作计划,确定工作步骤和程序,并最终得到教师的认可。 (3)实施计划 学生确定各自在小组中的分工以及小组成员合作的形式,然后按照已确立的工作步骤和程序工作。最终完成项目的Java代码设计。 (4)项目评价 完成项目的设计之后,首先,要在项目组内部进行自我评价,检查是否按照项目计划完成项目中的功能;其次,项目组之间进行互评,以发现各自的优点和不足,进而取长补短相互进步;最后,教师客观的对项目组的设计进行评价,要充分肯定每位同学的成绩和付出并给予恰当的评价。 (5)归档应用 项目工作结果应该归档或应用到企业、学校的生产教学实践中。 3、项目教学法的优势与不足 (1)项目教学法的优势 (1)促进了知识向能力的转化。项目教学法在实施中,要求学生能在解决实际问题或完成具体任务的过程中进行学习,学生获取的新知识和新技能也能在实践中得到充分的检验,学生时常感受到成功的喜悦,学生的学习积极性和主动性得到充分发挥,从而激发起学生的学习兴趣,提高了自主学习的能力。 (2)发挥了学生的创造潜能。项目教学法是一种教学战略,教师通过项目引导学生对现实生活中的问题进行深入地学习,摆脱了传统教育形式中唯一的标准答案对学生创造性思维的束缚。教师在实施项目教学时,适时引导学生寻找解决问题的办法,深入挖掘学生的创造潜能。 (3)培养和提高了团队合作精神。项目教学大多要分小组完成,通过小组内及小组间的充分交流、讨论、决策等,提高了学生的合作能力,强化了学生的团队意识。而合作能力和团队意识恰恰是软件开发人员要求的基本素质。 (2)项目教学法的不足之处 (1)学生获取知识的系统性不够。项目教学法的运用淡化了理论知识学习的系统性,学生在项目活动中获得的知识往往是零散的,专业知识学习的深入程度有一定局限,若学生的学习能力不足,则学生的可持续发展将无法保证。 (2)课堂组织、管理的难度增加。项目教学法没有特定的结构或一成不变的教案或教学材料,它是一个复杂但灵活的框架,它给学生提供了创造的空间,也给教师带来了课堂组织、管理的难题。项目教学中,教师已从课堂的权威转换为学生学习的引领者,这一角色的转换,往往会使教师难以把握课堂纪律,管得太多,不利于学生开展活动;管得太少,又会造成学生的放任自流,甚至影响项目任务的完成。 三、非项目驱动与项目驱动的Java实验教学学习效果比较 研究表明,非项目驱动与项目驱动的Java实验教学学生学习效果如表1所示。 四、结论 采用项目驱动的Java实验教学可以培养学生在Java语言程序设计中的分析问题、团队协作精神以及组织交往能力和自我管理的能力,更能够提高学生的实际操作能力。通过对项目的合理拆解,将项目分步骤划分,结合课堂上对项目从简单的结构分析到最后整体系统的分析,实现学生在实验上从简单的项目单元实现到最后的整体系统实现,每次实验甚至课堂均围绕这个项目来实施或者进行案例分析,让学生从开始就围绕着项目进行实践训练,组织学生分组讨论,提高学生对实验的兴趣,培养学生团队合作意识,体验项目开发的整体过程,从而培养学生的动手能力。 参考文献 [1]贺平.项目教学法的实践探索[J].中国职业技术教育,2006(3):41-44. [2]迟全勃.项目教学法在高职实践教学中的尝试与探索[J].北京农业职业学院学报,2009(3):61-65. [3]朱小英.以项目方式驱动Java实验课程教学的创新[J].成都大学学报(教育科学版),2008(8):93_96. [4]朱剑锋.项目教学法在Java程序设计课程教学中的应用[J].琼州学院学报,2011(2):82_84. 关键词:数据包;TCP协议;UDP协议 中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 10-0098-01 计算机网络是计算机技术和通信技术紧密结合的产物,对如今社会发展有着深远的影响。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要问题:一个是如何准确地定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效地进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 一、TCP和UDP协议 TCP和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS、SNMP、DNS、TFTP等。 二、网络通信中Java的网络类和接口 Java中有关网络方面的功能都定义在java.net程序包中。Java所提供的网络功能可大致分为三大类: (一)URL和URLConnection:使用Socket类进行网络编程相当麻烦。对已经存在的协议,程序员应当了解它的每一段代表的含义,改而使用URL类可以很大程度上免去这些麻烦。 1.URL类 URL是类URL表示统一资源定位器,即指向网上某处资源的指针。一个URL包括协议名和主机名,有些还包括特定的端口号。 2.URLConnection类 通过URL的方法openStream(),只能从网络上读取数据,如果同时还想输出数据,例如向服务器的CGI程序发送一些数据,则必须先与URL建立连接,然后才能对其进行读写,这时就要用到URLConnection类了。CGI是公共网关接口的简称,它是用户浏览器和服务器端的应用程序进行连接的接口。 URLConnection类可以由两种方式构建:一种是通过一个URL实例openConnection()方法返回一个,另一种是直接通过new URLConnection(URL ul)来创建。URLConnection实例不仅可以实现接收消息,还可以发送消息。 (二)Socket:又称套接字,是网络编程中最原始的通信方式之一。一个套接字通常包含一个IP地址和一个端口地址,后者一般对应着某个应用程序。因此如果要进行Socket编程,首先要确定端口。一般来说,1024以下的端口已经被指定为固定的服务类型,如果用户要开发自己的交流平台,必须使用之后的端口地址。 套接字(Socket)允许程序把网络连接当成一个流,可以向这个流写字节,也可以从这个流读取字节。Java的Socket类提供了丰富的功能。服务器使用的一般是ServerSocket,通过连接使双方都会产生一个实例,对实例进行操作来实现通信。大部分工作都是在抽象类SocketImpl中定义的。 任何一个网络程序都离不开连接的建立、读写操作、关闭,程序还分为客户和服务器两种类型。除了关闭操作可以简单地使用Close()方法外,读写操作都不是一句话说得完的。 (三)Datagram:是一种面向无连接的通信方法。它基于UDP协议,不需要建立和释放连接,每次通信时只要构造一个DatagramPacket实例发送出去,对方同样构造一个DatagramPacket实例接收。以Datagram方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以送到。 三、Java实现加密 Java的网络功能十分强大,还体现在作用它可以轻松实现各种加密算法。如今加密算法大致可分为两类:对称加密和公钥加密。 对称加密,发送方和接收方使用同样的密钥,前者用它来加密,后者则用它解密。这样做本来是很安全的,例如3DES的密钥为112位,这样的组合数大约是5×1033,几乎不可能被攻破。但是密钥总要在双方交换,因此交换途径的保密性就很关键,使用人工固然安全却麻烦,在网络上传输虽方便但危险。故如今网络上大多使用公钥加密方式。 公钥加密的优点在于,加密和解密的密钥是不同的,前者称为公钥,后者称为私钥。公钥,顾名思义,是可以公开的,一台电脑里可能存放了很多远程通讯方提供的公钥。 公钥解密还可以用在数字签名上,这时的动作是相反的:用私钥加密,和用公钥解密。Java里用于实现这方面功能的是java.security软件包。 综上所述,Java网络编程主要基于TCP协议和UDP协议,TCP协议提供高可靠性服务,适用于一次要传输交换大量报文的情况,信道上传递的包不需要源地址和目的地址,UDP协议提供高效率服务,适用于依次传输交换少量报文的情形,每个数据包含目的的地址和端口号,Java支持网络通信的类在java.net包中。 参考文献: [1]印旻.Java语言与面向对象程序设计[M].北京:清华大学出版社,2007 [2]朱福喜.Java语言程序设计[M].北京:清华大学出版社,2007 [3]李明才.Java语言程序设计案例教程[M].北京:中国水利水电出版社,2010,8 [4]张渝.Java语言程序设计[M].北京:北京大学出版社,2008 q、jshtmlcss 这是基础 l、尚学堂科技_马士兵_轻松愉快linux视频教程 n、oracle.马士兵 r、mysql_avi.马士兵 这些单独的数据库和系统模块可以在任何时候都可以,建议在学j2ee之前学 j、尚学堂马士兵视频教程_scm_cvs_svn cvs是存档工具,建议在学j2ee当中学习 p、junit4 这个是测试工具,建议在学j2ee中学习 s、设计模式.马士兵 j2ee中会提到这块的 f、马士兵jsp_servlet视频 这个是j2ee的基础 a、ejb3.0李腾飞 ejb现在用的真的不多了 d、struts马士兵 b、hibernate马士兵 c、spring马士兵 struts是学习j2ee的第一个框架,简单易上手,也可以考虑struts2,这个跟struts没啥关系,是webwork的升级版 hibernate对于懒人来说很好用,但是不适合面对大客户量的访问,那样机器会死的很惨 spring还不错,就是要适应繁琐的配置文件 g、尚学堂科技_马士兵_java_网上商城项目视频讲解 h、尚学堂09年drp项目 i、尚学堂科技_马士兵_jdbc_mysql_bbs项目课堂实录视频教程 k、尚学堂科技_马士兵_java_系列视频教程_bbs_2007 o、尚学堂马士兵视频教程_xml_ajax_dom4j_javadb_metadata 学完三大框架之后就可以做上面的项目了,然后ajax的学习也用不了太久,可以边学边学着做 e、oa项目 最好是在有以上项目经验的基础上,加上学完了ajax再做oa项目,因为oa项目涉及到的技术太多 m、网络课堂.尚学堂马士兵_flex_0100_actionscript 这个跟上面的不是一个体系,建议当做扩展来学习 第一部分:j2se学习视频内容包括: 尚学堂科技_马士兵_java视频教程_jdk5.0_下载-安装-配置 尚学堂科技_马士兵_java视频教程_j2se_5.0_第01章_java简介_源代码_及重要说明 尚学堂科技_马士兵_java视频教程_j2se_5.0_第02章_递归补充 尚学堂科技_马士兵_java视频教程_j2se_5.0_第02章_基础语法 尚学堂科技_马士兵_java视频教程_j2se_5.0_第03章_面向对象 尚学堂科技_马士兵_java视频教程_j2se_5.0_第04章_异常处理 尚学堂科技_马士兵_java视频教程_j2se_5.0_第05章_数组 尚学堂科技_马士兵_java视频教程_j2se_5.0_第06章_常用类 尚学堂科技_马士兵_java视频教程_j2se_5.0_第07章_容器 尚学堂科技_马士兵_java视频教程_j2se_5.0_第08章_io 尚学堂科技_马士兵_java视频教程_j2se_5.0_第09章_线程 尚学堂科技_马士兵_java视频教程_j2se_5.0_第10章_网络 尚学堂科技_马士兵_java视频教程_j2se_5.0_第11章_gui 尚学堂科技_马士兵_java视频教程_j2se_5.0_专题_日期处理 尚学堂科技_马士兵_java视频教程_j2se_专题_正则 反射avi 第二部分:j2se练习项目视频内容包括: 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战图片版 尚学堂科技_马士兵_java_坦克大战网络版视频教程 尚学堂科技_马士兵_snake_贪吃蛇内部视频 第三部分数据库视频 oracle视频内容包括:01——53讲avi格式 第四部分:jdbc和mysql视频,内容包括: 1_lomboz_eclipse_jdbc 2_mysql_avi 3_连接池的设计思路.avi 第五部分:html & css & js 视频: html & css 视频内容简介: 01_html简单介绍和meta标签.avi 02_a_路径问题等等.avi 03_学习方法_其他常用标签.avi 04_1_note.avi 04_表格和表单_1.avi 05_表格和表单_2.avi 06_frame.avi 07_dreamweaver.avi 08_css_1.avi 09_css_2_选择方式.avi 10_css_3.avi 11_css_4.avi js 视频简介: 01_js初步及调试.avi 02_js基本语法.avi 03_函数_事件处理_1.avi 04_事件处理_2.avi 05_内置对象_dom_bom.avi 06_趣味.avi 07_实用.avi 08_表单验证.avi 09_表单验证_new.avi 10_后台框架.avi 11_后台框架_2.avi 12_tree.avi 第六部分:servlet & jsp视频——内容包括: tomcat的安装使用,配置 servlet & jsp 视频 1——30节 jsp的练习项目内容包括: 简单bbs项目 2007美化bbs项目 网上商城项目视频 网上商城项目视频讲解视频 第七部分:j2ee学习视频包括: drp项目 框架视频学习: struts视频 hibernate视频 spring视频 提高部分: uml统一建模语言视频 ssh项目视频: oa办公自动化系统视频 crm项目视频 银行系统视频 ejb3.0视频 j2me_3g简介资料 面试材料: 面试题大汇总+笔记+技巧 路线图明细 下面给出第二节《java自学路线图》中知识点的明细: 一:j2se 面向对象-封装、继承、多态 内存的分析 递归 集合类、泛型、自动打包与解包、annotation io 多线程、线程同步 tcp/udp awt、事件模型、匿名类 正则 反射机制 2:数据库(oracle或者mysql)sql语句 多表连接,内外连接,子查询等 管理表、视图、索引、序列、约束等 树状结构存储 存储过程、触发器 数据库设计三范式、3:jdbc jdbc基础 连接池 树状结构存储与展现 datasource & rowset jdbc连接oracle及mysql 4:html_css_js html、css、js基础语法 js form判断 dom编程基础(事件处理等)js常用效果如treeview、下拉联动等 js学习方法 js调试方法 dreamweaver初步(建立html、table、form、css)等 5:servlet & jsp tomcat基础 servlet基础 web.xml配置基础 web application的结构 servlet生命周期 request response等常用方法 servletcontext类 http协议基础(get post)cookie session application jsp的几种语法(包括jstl等)注意在项目中练习,不要拘泥于语法细节而裹步不前。 6:struts 多层架构理论 model 1 and model 2 struts基本概念 mvc action与业务逻辑类的关系 在struts与jsp之间传递数据 struts处理流程(控制流) struts taglib(了解常用的) jstl actionform 字段收集 上传文件 类型转换 dto 动态action form 验证框架 actionforward 转发与重定向 动态生成actionforward 全局与局部的actionforward action forward scope unknownactionmapping action的线程安全 i18n 怎样切换语言环境 struts异常处理机制 程序处理 自动处理 自定义异常处理器 struts的多模块配置 7:xml(xml/xsl、xslt/dtd、schema等基础的概念、关于java的编程可以暂时扔在一边) 8:hibernate or mapping原理 hibernate基础开发步骤 hibernate基本接口(重点session)普通属性映射 关联关系映射 native sql inverse lazy cascade 继承关系映射 hql 性能优化 一级缓存 二级缓存 查询缓存 事务与并发 悲观锁、乐观锁 opensessioninview currentsession (至于jta、联合主键、自然主键、动态主键、any类型 creteria queries intercepter and event 自定义类型等,可以暂时扔在一边) 9:spring ioc/di spring配置 spring架构 aop及spring aop 声明式事务(aop) spring + hibernate spring支持web scope (其他的spring模块对于自学来说可以暂时扔在一边) 10:ejb3.0 j2ee架构基础(jta jms等) ejb基础(地位及基本理论、分类等)annotation ant编译与部署ejb session bean ejb的依赖注入 persistence api (可以用jboss学习ejb3.0) 11:至于soa,对于自学的同学来说,暂时不用特别关注。 尚学堂教学安排 第一部分学习总周期26天: 1.--j2se(chat + tank + snake)-----------------------13 days 2.--oracle--4 days 3.--jsp+jdbc+mysql 1 days 4.--html+css+js---------------------------3 days 5.--html+css+js---------------------------3 days 6.--bbs----2 days 第二部分学习总周期27天 7.--drp----12 days 8.--struts--6 days 9.--hibernate-6 days 10.--spring--3 days 第三部分学习总周期26天 11.--uml----2 days 12.--oa----15 days 13.--crm----5 days 14.--ejb 3.0--3 days 15.--bankproject(简介)---------------------------1 days 16.--面试技巧+3g+j2me(简介)-------------------------1 days 【java程序设计实验大纲】推荐阅读: java程序设计教学大纲12-06 《Java程序设计基础》教学总结06-25 java面向对象程序设计教案12-27 程序设计教学大纲01-14 教学大纲c程序设计08-23 《C程序设计》教学大纲02-16 面向对象程序设计-教学大纲-信管01-20 VC++程序设计 课程教学大纲02-27 C语言程序设计2教学大纲09-067.java程序设计实验大纲 篇七
8.浅谈Java程序设计的网络编程 篇八
9.java程序设计实验大纲 篇九