《Java程序设计》实验指导书马程.docx
- 文档编号:4976766
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:32
- 大小:44.25KB
《Java程序设计》实验指导书马程.docx
《《Java程序设计》实验指导书马程.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》实验指导书马程.docx(32页珍藏版)》请在冰豆网上搜索。
《Java程序设计》实验指导书马程
《Java程序设计》
实
验
指
导
书
计算机科学与技术系
2014年4月
实验介绍
一、本实验课程的性质、特点和发展现状
课程的性质:
Java程序设计是计算机本科相关专业的必修课程,实验课程是整个学习过程中的一个重要的环节。
在理论学习的基础上结合上机实验,才能够真正掌握Java编程的技巧。
课程的特点:
Java程序设计实验是以实践为基础,通过课堂教学及上机实验相结合,加深学生对面向对象程序编程的理解,熟悉并熟练使用一些开发工具,掌握Java程序设计的基本知识,为以后的深入学习Java程序打下坚实基础。
发展现状:
实验的教学在计算机专业的教学过程中是非常重要的。
Java程序设计的实验教学也不例外,贯穿了整个教学过程。
由于学生编程技能和对知识的掌握程度差别较大,而本大纲所要求的实验为每个学生必须完成的实验,即最低要求。
其它上机内容由学生在教师指导下自选,内容可以是习题中编写的程序,也可以是学生解决实际问题中所编写的程序。
二、本实验课程的目的、任务和主要内容
实验课程是程序设计相关课程的一个十分重要的环节,其主要目的概括为以下几点:
1、帮助学生加深对抽象、枯燥的语法结构和语义现象及程序执行过程的理解。
2、使学生较为容易理解Java程序的运行的整个流程,掌握编程环境的使用方法,包括程序的编辑、编译、调试与测试等技能都能得到严格的训练和提高。
3、培养学生的编程能力和阅读、分析程序的能力。
属于验证性实验项目中的编程题目,一般要求以上机测验的形式在实验室内当场完成;属于综合性实验项目的编程题目,除了规定的实验时数之外,允许学生增加一些课外时数。
本课程使学生熟悉Java语言的基本语法特性,了解C++与Java的区别;理解面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性—类;掌握如何使用帮助来查找Java的开发工具包中的一些类及方法,从而能够提高编程的效率。
了解Java的网络编程的技巧。
三、教学方法和手段
教学方法:
采用理论加实践的方法,实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
教学手段:
实验课教学可通过教师演示软件给学生进行示范。
然后让学生独立的练习完成作业,最后验收作业。
让学生真正的掌握每个知识点。
四、考核方式与成绩评定
1、考核方式:
本课程采用理论考试与实验(上机)操作相结合的方式进行考核。
其中,实验考核包括平时上交的作业和期末考试及最后上交的软件项目。
2、课程考核的成绩评定:
成绩五级制计分,最终成绩的构成为平时成绩占20%、期末考试成绩占60%、上交的软件项目成绩占20%(注:
最终成绩的构成比例以有关教学管理制度的规定为依据)。
五、实验学时分配
序号
实验项目名称
学时
实验类型
1
建立Java开发环境
2
基础性
2
Java语言基础
2
基础性
3
Java面向对象编程基础
2
基础性
4
图形用户界面的设计
2
基础性
5
字符和字节流输入/输出
2
基础性
6
异常处理
2
基础性
7
网络编程
2
基础性
8
多线程
2
基础性
六、实验内容安排(附后)
七、实验教材与参考书
1、《基于JDK6和NetBeans实现》,宋波等,清华大学出版社出版社,2011,第1版。
2、《Java程序设计教程》,杨文军,董玉涛,清华大学出版社出版社,2010,第1版。
3、《Java2参考大全》,HerbertSchildt,清华大学出版社出版社,2011,第1版。
4、《Java编程思想》,BruceEckel,候捷译,机械工业出版社,2002,第2版。
实验一建立Java开发环境
一、实验目的与要求
1、熟悉安装和配置JDK开发环境。
2、熟悉安装和配置IDE开发工具。
3、掌握Java程序编辑、编译和运行的过程。
4、掌握Java程序的构成特点。
5、总结在调试过程中的错误。
二、实验环境
1、计算机硬件:
需满足显存526M,cpu奔四2.0,内存1G,硬盘40G以上。
2、计算机软件:
安装winXP或win2003操作系统,JDK1.6版本,NeatBean6.9.1版本,Eclipse3.1。
三、实验内容和步骤
1、下载、安装并设置JavaSDK软件包。
2、安装JavaIDE软件,解压到jdk安装目录。
3、编写一个简单的Java程序,运行结果为在屏幕上输出“HELLOWORLD!
”。
publicclassHello{
publicstaticvoidmain(Stringargs[]){
System.out.println("HELLOWORLD!
");}
}
4、编写一个JavaApplet程序实现功能为:
在屏幕上显示HELLOWORLD!
。
四、思考题
1、什么是Java虚拟机?
它的作用是什么?
2、如何在不同的环境下设置环境变量?
实验二Java语言基础
一、实验目的与要求
1、掌握Java基本数据类型、运算符与表达式、数组和字符串的使用方法。
2、掌握各种变量的声明方式。
3、理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
4、通过以上内容,掌握Java语言的编程规则。
5、了解Java程序文件名和类名的说明方法。
二、实验环境
1、计算机硬件:
需满足显存526M,cpu奔四2.0,内存1G,硬盘40G以上。
2、计算机软件:
安装winXP或win2003操作系统,JDK1.6版本,NeatBean6.9.1版本,Eclipse3.1。
三、实验内容和步骤
1、编写声明不同数据类型变量的程序文件Java2_1.java,源代码如下:
publicclassJava2_1{
publicstaticvoidmain(Stringargs[]){
byteb=0x55;
shorts=0x55ff;
inti=;
longl=0xffffL;
charc='a';
floatf=0.23F;
doubled=0.7E-3;
booleanB=true;
StringS="这是字符串类数据类型";
System.out.println("字节型变量b="+b);
System.out.println("短整型变量s="+s);
System.out.println("整型变量i="+i);
System.out.println("长整型变量l="+l);
System.out.println("字符型变量c="+c);
System.out.println("浮点型变量f="+f);
System.out.println("双精度变量d="+d);
System.out.println("布尔型变量B="+B);
System.out.println("字符串类对象S="+S);
}
}
编译并运行该程序。
2、建立Java2_2.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassJava2_2{
staticinti=10;
publicstaticvoidmain(Stringargs[]){
{
intk=10;
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);//编译时将出错,已出k的使用范围
}
}
编译Java2_2.java,此时会出现错误提示。
因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。
修改上面的程序,并成功运行该程序。
如程序修改为:
publicclassJava2_2{
staticinti=10;
intk=10;
publicstaticvoidmain(Stringargs[]){
{
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);}
}
编译Java2_2.java,此时会出现错误提示。
如何修改?
3、编程采用冒泡法实现对数组元素由小到大排序,冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
提示:
关键代码如下:
for(i=0;i for(j=i+1;j if(intArray[i]>intArray[j]){ t=intArray[i];intArray[i]=intArray[j];intArray[j]=t;} 4、运行下面的程序Java2_3.java,理解String类常用方法的使用。 publicclassJava2_3{ publicstaticvoidmain(Stringargs[]){ Stringstr="Ilikejavaprogramming"; inti1=str.indexOf(´j´); Strings1=str.substring(i1); Strings2=str.substring(i1,i1+4); inti2=str.lastIndexOf(´j´); Strings3=str.substring(i2+5); System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("s3="+s3); } } 5、有一组数,1、2、3、4、5、6、7、8、9、10,要求通过数组移动的方法将其变为6、7、8、9、10、1、2、3、4、5,请编程实现。 四、思考题 1、定义变量的作用是什么? 2、&和&&有什么区别? 3、break和continue在流程控制中的作用是什么? 实验三Java面向对象编程基础 一、实验目的与要求 1、理解Java语言是如何体现面向对象编程基本思想。 2、了解类的封装方法,以及如何创建类和对象。 3、掌握成员变量和成员方法的特性及构造方法和析构方法的使用。 4、熟练掌握面向对象程序设计的方法,理解类的继承性和多态性的作用。 二、实验环境 1、计算机硬件: 需满足显存526M,cpu奔四2.0,内存1G,硬盘40G以上。 2、计算机软件: 安装winXP或win2003操作系统,JDK1.6版本,NeatBean6.9.1版本,Eclipse3.1。 三、实验内容和步骤 1、多态在工资系统中的应用。 下面给出一个根据雇员类型利用多态性完成工资单计算的程序。 定义一个类Employee作为超类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。 对所有雇员类型都使用earnings()方法完成其工资单的计算,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派出生的。 所以在超类中声明earnings()方法,该方法没有实质性工作,而是在每个子类都提供恰当的earnings()方法的重写。 为了计算雇员的工资,程序仅使用雇员对象的一个超类引导并调用earnings()方法。 classEmployee{ privateStringfirstName; privateStringlastName; publicEmployee(Stringfirst,Stringlast){ firstName=first; lastName=last; } publicStringgetEmployeeName(){ returnfirstName; } publicStringgetLastName(){ returnlastName; } publicStringtoStrings(){ returnfirstName+''+lastName; } publicdoubleearnings(){ System.out.println("Employ'ssalaryis0.0"); return0.0; } } //定义Boss类,为Employee的子类 classBossextendsEmployee{ privatedoubleweeklySalary; publicBoss(Stringfirst,Stringlast,doubles){ super(first,last); setWeeklySalary(s); } publicvoidsetWeeklySalary(doubles){ weeklySalary=(s>0? s: 0);} publicdoubleearnings(){ returnweeklySalary; } publicStringtoStrings(){ return"Boss: "+super.toStrings(); } } //定义PieceWorker类,为Employee的子类 classPieceWorkerextendsEmployee{ privatedoublewagePiece; privateintquantity; publicPieceWorker(Stringfirst,Stringlast,doublew,intq){ super(first,last); setWage(w); setQuantity(q); } publicvoidsetWage(doublew){ wagePiece=(w>0? w: 0); } publicvoidsetQuantity(intq){ quantity=(q>0? q: 0); } publicdoubleearnings(){ returnquantity*wagePiece; } publicStringtoStrings(){ return"PieceWoeker: "+super.toStrings(); } } //定义HourlyWorker类,为Employee的子类 classHourlyWorkerextendsEmployee{ privatedoublewage; privatedoublehours; publicHourlyWorker(Stringfirst,Stringlast,doublew,doubleh){ super(first,last); setWage(w); setHours(h); } publicvoidsetWage(doublew){ wage=(w>0? w: 0); } publicvoidsetHours(doubleh){ hours=(h>=0&&h<168? h: 0); } publicdoubleearnings(){ returnwage*hours; } publicStringtoStrings(){ return"HourlyWorker: "+super.toStrings(); } } publicclassTestEmployee{ publicstaticvoidmain(Stringargs[]){ //使用超类声明ref Employeeref;Stringout=""; //分别定义各子类 Bossb=newBoss("Hohn","Smith",800.00); PieceWorkerp=newPieceWorker("Bob","Lewis",2.5,200); HourlyWorkerh=newHourlyWorker("Karen","price",13.75,40); //使用子类分别实例化 ref=b; out+=ref.toStrings()+"earned$"+ref.earnings()+"\n"+b.toStrings()+ "earned$"+b.earnings()+"\n"; System.out.print(out); ref=p; out+=ref.toStrings()+"earned$"+ref.earnings()+"\n"+p.toStrings()+ "earned$"+p.earnings()+"\n"; System.out.print(out); ref=h; out+=ref.toStrings()+"earned$"+ref.earnings()+"\n"+h.toStrings()+ "earned$"+h.earnings()+"\n"; System.out.print(out); } } 2、编程让一个类实现对个自定义的接口。 要求定义两个接口收费和调节温度。 分别定义公交汽车、出租车、电影院,实现以上定义的两个接口。 interfaceCharge{ publicvoidcharging(); } interfaceAdapt{ publicvoidcontrolTemperature(); } classBusimplementsCharge{ publicvoidcharging(){ System.out.println("公共汽车: 一元/张,不计算公里数"); } } classTaxisimplementsCharge,Adapt{ publicvoidcharging(){ System.out.println("出租车: 1.60元/公里,起价3公里"); } publicvoidcontrolTemperature(){ System.out.println("安装了Hair空调"); } } classCinemaimplementsCharge,Adapt{ publicvoidcharging(){ System.out.println("电影院: 门票,十元/张"); } publicvoidcontrolTemperature() {System.out.println("安装了中央空调"); } } classExample{ publicstaticvoidmain(Stringargs[]){ Busbusofline7=newBus(); Taxi天宇=new出租车(); 电影院红星=new电影院(); 七路.收取费用(); 天宇.收取费用(); 红星.收取费用(); 天宇.controlTemperature(); 红星.controlTemperature(); } } 四、思考题 1、如何继承一个类? 2、为什么说构造函数是一种特殊的方法? 特殊在哪里? 构造函数什么时候执行? 被谁调用? 3、同名的不同方法共存的情况称为什么? 如何区分这些同名方法? 4、内部类innerclass和外部类的区别? 5、抽象类和接口的区别? 实验四图形用户界面的设计 一、实验目的与要求 1、掌握GUI编程中的主要概念: AWT、Swing、窗口、面板、容器布局、布局管理器。 2、掌握GUI编程。 3、掌握事件编程机制。 二、实验环境 1、计算机硬件: 需满足显存526M,cpu奔四2.0,内存1G,硬盘40G以上。 2、计算机软件: 安装winXP或win2003操作系统,JDK1.6版本,NeatBean6.9.1版本,Eclipse3.1。 三、实验内容和步骤 1、创建一个黄色面板,通过add()方法在面板中添加了一个按钮,然后将该面板添加到一个JFrame的实例中,JFrame实例的背景被设置为蓝绿色。 importjava.awt.*; importjavax.swing.*; publicclassFrameWithPanel{ publicstaticvoidmain(Stringargs[]){ JFrameframe=newJFrame("FramewithPanel"); ContainercontentPane=frame.getContentPane(); contentPane.setBackground(Color.CYAN); JPanelpanel=newJPanel(); panel.setBackground(Color.yellow); JButtonbutton=newJButton("Pressme"); panel.add(button); contentPane.add(panel,BorderLayout.SOUTH); frame.setSize(300,200); frame.setVisible(true); } } 2、ActionEvent事件的监听程序定义在组件类中.在Frame中添加一个自定义的命令按钮类(mybutton)对象,让它为注册事件的监听程序。 importjava.awt.*; importjavax.swing.*; importjava.awt.event.*; publicclassActionEventDemo2{ publicstaticvoidmain(Stringargs[]){ JFrameframe=newJFrame("ActionEventDemo2"); //创建自定义组件MyButton的实例 MyButtonb=newMyButton("Close"); frame.getContentPane().add(b,BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } } //下面是MyButton类的定义: classMyButtonextendsJButtonimplementsActionListener{ publicMyButton(Stringtext){ super(text); //注册事件的监听程序 addActionListen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 实验 指导书