Java语言程序设计实验大纲.docx
《Java语言程序设计实验大纲.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计实验大纲.docx(44页珍藏版)》请在冰点文库上搜索。
Java语言程序设计实验大纲
《Java语言程序设计》实验教学大纲
一、课程说明:
通过本课程的学习,使学生了解并掌握Java语言的基本概念、语法和面向对象的重要特性,培养学生使用Java语言进行编程序的基本技巧和方法,为今后进行网络程序设计打下良好的基础。
二、教学目的及要求:
教学目的:
本课程的任务是通过实验系统地向学生讲授Java语言程序设计方法,并通过实验上机验证和分析Java语言的特点及其功能,使学生熟练掌握面向对象程序设计的基本方法和技巧。
培养学生较强的动手实践能力,严密的逻辑思维能力和严格的工程素养。
教学要求:
要求学生能编写Java语言的源程序,学会编制流程框图,具备利用Java语言编制和调试一个结构合理、清晰易懂、层次分明、算法正确的实用程序的能力。
通过每一个实验,学习和养成良好的编辑程序的习惯,具备基本的程序员素养。
三、教学重点及难点:
重点:
Java编程,面向对象的编程,网络编程
难点:
面向对象的编程,网络编程
四、与其它课程的关系:
先修课程:
《计算机应用基础》,《C语言程序设计》
后续课程:
《JavaEE程序设计》、《Java企业级项目实训》
五、学时、学分:
18学时,0.5学分
1、实验一简单Java程序调试1学时
掌握Java程序设计编程环境Jcreator的参数设置与掌握运行一个Java程序设计的基本步骤,包括编辑、编译、连接和运行。
掌握Java语言程序设计的基本框架,能够编写简单的c程序。
2、实验二Java符号与表达式使用1学时
掌握Java语言的运算符和表达式的正确使用以及Java语言的基本数据类型和基本表达式的使用方法。
掌握Java转义字符、自动类型转换和强制类型转换,输出语句的使用,容易出错的运算符等。
3、实验三分支程序设计1学时
掌握Java语言if语句的使用和嵌套的特点,掌握条件的表达技巧,掌握switch语句的使用和从键盘上获取数据的方法。
4、实验四循环程序设计1学时
熟练掌握三种循环语句的使用,掌握break和continue语句的使用,了解如何利用求余和删除一个整除获取和删除一个整数的最低位,掌握累加和累乘的处理方法;掌握技术问题的编程技巧,如何控制每行输出元素个数。
5、实验五方法设计2学时
熟练方法的定义与调用关系,理解方法定义的优势,加深对方法的参数传递与返回类型的理解,了解递归的概念及实现特点。
6、实验六数组的使用2学时
熟练掌握一维和二维数组的定义存储分配方法,数组赋值的方法,熟悉利用循环实现数组的赋值、输出及处理的编程方法,了解命令行数组的使用,熟悉数组参数的传递方法。
7、实验七类与对象编程2学时
了解类的成员设计,掌握类与对象的关系,理解静态方法和实例方法的使用差异。
8、实验八继承与多态1学时
理解类的继承,掌握变量的隐藏、方法覆盖的概念,理解引用类型的变量的赋值转换原则,理解多态概念、掌握方法的匹配调用原则,理解抽象类与接口的使用,理解this和super的含义和使用,理解访问控制符的使用。
9、实验九常用系统类的使用1学时
掌握字符串处理方法,了解Math类的数学方法的使用,熟悉各种数据类型包装类的使用,了解Vector类的使用。
10、实验十Applet编程1学时
熟悉Applet的生命周期及其方法执行特点,掌握Applet图形绘制方法,如何控制图形输出的坐标位置变化,掌握Applet参数传递方式,熟悉字体和颜色的控制方法,了解Applet图像显示和声音传播方法,了解双缓冲区的应用,改进图像显示效果。
11、实验十一图形用户界面编程1学时
掌握图形用户界面的布局设置;掌握事件驱动编程的特点,如何区分事件源;掌握文本框、文本域、标签、按钮等部件的操作方法;掌握鼠标与键盘事件编程;了解菜单等其他图形部件的使用。
12、实验十二异常处理1学时
掌握异常处理的编程特点;了解Java异常类分类层次,常见系统异常;了解自定义异常的定义方法及方法异常抛出与处理。
13、实验十三流式输入输出与文件处理1学时
掌握字节流和字符流的特点和处理差异;掌握过滤流的使用;掌握File类的使用;掌握随机文件的使用;掌握对象系列化的概念以及访问文件时对象读写方法。
14、实验十四多线程编程1学时
掌握多线程编程的特点;了解多线程的调度和执行过程;掌握资源共享访问的实现方法。
15、实验十五数据库应用1学时
了解JDBC驱动程序、ODBC配置方法方法;掌握常见JDBCAPI的使用,Connection接口,Statement接口,ResultSet接口;掌握JDBC实现数据库基本操作,数据查询,select语句,记录集的遍历,数据库的更新;了解PreparedStatement类的使用。
六、教学内容:
实验一简单Java程序调试
实验目的:
1、掌握Java程序设计编程环境Jcreater的参数设置与掌握运行一个Java程序设计的基本步骤,包括编辑、编译、连接和运行。
2、掌握Java语言程序设计的基本框架,能够编写简单的Java程序。
实验内容:
1、设置环境变量。
以XP为例,在“我的电脑”上点鼠标右键,打开“属性”→“高级”→“环境变量”→“系统变量”,选中变量“Path”进行编辑,在后面加入“C:
\j2sdk1.4.2\bin”,注意:
这里的目录“C:
\j2sdk1.4.2”是安装Java的目录。
2、打开命令提示符窗口,输入“Javac”命令按回车键,如果出现命令的使用参数说明,则表示设置正确,如果出现非法命令的错误提示,则应该重新设置。
3、编程应用程序输出如下三角形。
并显示一个短句“thisismyfirstJavaprogram.”。
*
***
*****
*******
publicclassStar
publicstaticvoidmain(Stringa[])
{
System.out.println(“*”);
System.out.println(“***”);
System.out.println(“******”);
System.out.println(“*********”);
System.out.println(“thisismayfistJavaprogram.”);
4、编写Applet程序绘制一个红色三角形,三角形中央绘制蓝色文字“三角形”。
Applet程序
importjava.awt.*;
importjava.applet.Applet;
publicclasstriangeextendsApplst{
publicvoidpaint(Graphicsg){
g.setColor(Color.red);\\设置画笔颜色为红色
g.drawLine(80,20,20,100);
g.drawLine(20,100,140,100);
g.drawLine(140,100,80,20);
g.setColor(Color.blue);\\设置画笔颜色为蓝色
g.drawString(“三角形”,65,80);
}
}
HTML文件
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验二Java符号与表达式使用
实验目的:
1、掌握Java语言的运算符和表达式的正确使用以及Java语言的基本数据类型和基本表达式的使用方法。
2、掌握Java转义字符、自动类型转换和强制类型转换,输出语句的使用,容易出错的运算符等。
实验内容:
1、调试分析以下程序的运行结果:
publicclasstest{
publicstaticvoidmain(Stringa[]){
intm=10;
System.out.println(“m++=”+m++);
System.out.println(”++m=”+(++m));
Booleanx;
x=(5>3)&&(4==6);
System.out.println(”x=”+x);
m=rn%2;
System.out.println(”result=”+m+1);
inty=m*m+2*m-1;
System.out.println(”m=”+m+",y=”+y);
}
}
2、已知梯形的上底为3,下底为5,高为2.4,求其面积。
publicclassArea{
publicstaticvoidmain(Stringa[]){
doublex=3;//上底
doubley=5;//下底
doublez=2.4;//高
doubles=(x+y)*z/2;//计算面积
system.out.println(“面积=”+s);
}
}
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验三分支程序设计
实验目的
1、掌握Java语言if语句的使用和嵌套的特点;
2、掌握条件的表达技巧;
3、掌握switch语句的使用和从键盘上获取数据的方法。
实验内容
1、从键盘输入X,根据以下情形求y的值:
y=0;当x<=0时
y=2x+1;当0y=x2-1;当x>=5时
程序1:
importjava.io.*;
publicclassFxy{
publicstaticvoidmain(Stringargs[])
{
doublex=0,y;
BufferedReaderbr=newBufferedReader(newInputStreamRcader(System,in));
try{
Strings=br.readLine();
x=Double.parseDouble(s);
}catch(IOExcetione){}
if(x<=0)
y=0;
e1se
if(x<5)
y=2*x+1;
else
y=x*x-1;
system.out.println(“y=”+y);
}
}
程序2:
publicclassFxy{
publicstaticvoidmain(Stringargs[])
{
doublex,y;
x=Double.parseDouble(args[0]);
if(x<=0)
y=0;
if(x>0&&x<5)
y=2*x+1;
if(x>5)
y=x*x-1;
system.out.println(“y=”+y);
}
}
2、输人一个学生的成绩,给出相应的等级(分别用if和、witch语句实现)。
85分及以上为A级;70分及以上为B级;60分及以上为C级;60分以下为D级。
程序3:
PublicclassScore{
publicstaticvoidmain(Stringargs[]){
ints=Integer.paresInt(args[]);
if(s<60)
System.out.println(“D”);
elseif(s<70)
System.out.println(“C”);
elseif(s<85)
System.out.println(“B”);
else
System.out.println(“A”);
}
}
程序4:
PublicclassScore{
publicstaticvoidmain(Stringargs[]){
ints=Integer.paresInt(args[0]);
intx=s/10;
switch(x)
case0:
case1:
case2:
case3:
case4:
case5:
System.out.println(“D”);break;
case6:
System.out.println(“C”);break;
case7:
case8:
if(s<85){System.out.println(“B”);break;}
case9:
case10:
System.out.println(“A”);break;
}
}
}
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验四循环程序设计
实验目的
1、熟练掌握三种循环语句的使用;
2、掌握break和continue语句的使用;
3、了解如何利用求余和删除一个整除获取和删除一个整数的最低位;
4、掌握累加和累乘的处理方法;
5、掌握技术问题的编程技巧,如何控制每行输出元素个数。
实验内容
1、输入一批学生成绩,以-1作为结束标记:
(1)统计这批学生中,不及格、及格、中等、良好、优秀的人数。
(2)求这批学生的平均分。
程序1:
importJava.io.*;
publicclassScore{
publicstaticvoidmain(Stringargs[])throwsIOException{
ints=0,b=0,c=0,d=0,e=0,f=0;//变量赋初值
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
inta=Integer.parselnt(br.readLine());//读取一个整数
while(a!
=-1){
s+=a;//累加
switch(a/10){
case0:
casel:
case2:
case3:
case4:
case5:
b++;break;//计数增1
case6:
c++;break;
case7:
d++;break;
case8:
e++;break;
case9:
f++;break;
}
a=Integer.parseInt(br.readLine());
}
system.out.println(“优秀人数:
”+f);
system.out.println(“良好人数:
”+e);
system.out.println(“中等人数:
”+d);
system.out.println(“及格人数:
"+c);
system.out.println(“不及格人数:
"+b);
intaverage=s/(b+c+d+e+f);//求平均成绩
System.out.println(“平均分="+average);
}
}
2、找10~100之间能被3或5整除的数,每行输出5个数。
程序:
publicclassA{
publicstaticvoidmain(Stringarge[]){
intk=10;//循环控制变量,从10变化到100
intm=0;//用于统计输出数的个数
while(k<=100){//循环的终值为100
if(k%3==0||k%5==0){//被3或5整除
m++;
System.out.print(k+”\t”);
if(m%5==0)//控制每隔5个输出数换一行
System.out.println();
}
k++;//循环控制变量增值
}
}
}
3、计算算式:
1+21+22+23+…+2n。
(注:
n由键盘输入)
程序1
publicclassTwoadd{
publicstaticvoidmain(Stringargs[]){
intn=Integer.parseInt(args[]);
longsum=l;
for(intk=1;k<=n;k++){
sum=sum+(long)Math.pow(2,k);//用Math类的pow方法求2k
}
System.out.println(“result=”+sum);
}
}
程序2
publicclassTwoadd{
publicstaticvoidmain(Stringargs[]){
intn=Integer.parselnt(args[0]);//从命令行输入n
longsum=1;//保存累加和
longx=1;//被加项
for(intk=l;k<=n;k++){
x=x*2;//求下一个被加项时,只要在前一项的基础上乘2
sum=sum+x;
}
System.out.println(“result=”+sum);
}
4、从键盘输入一个长整数,求其各位数字之和。
publicclassfang{
publicstaticvoidmain(Stringargs[])
inta,m=0;
a=Integer.parselnt(args[0]);//从命令行输入a
while(a>0){
m+=a%10;//累加计算各位数字
a=a/10;
System.out.print(a+“的各位数字之和=”+m);
}
}
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验五方法设计
实验目的
1、熟练方法的定义与调用关系;
2、理解方法定义的优势,加深对方法的参数传递与返回类型的理解;
3、了解递归的概念及实现特点。
实验内容
1、编制一个按参数提示从键盘获取一个字符串的方法,利用该方法读取两个整数,求这两个整数之间具有最多因子的数。
注:
一个数的因子是指能除尽该数的数,包括1和自身。
程序
importjava.io.*;
publicclassmanyfactor{
publicstaticvoidmain(Stringa[]){
intx=Integer.parselnt(inputString(“整数l:
”));
inty=Integer.parselnt(inputString(“整数2:
”));
if(x>y){//交换x,y的值
inttemp=x;
x=y;
y=temp;//让x中存放小者,y中存放大者
}
/*以下找x到y之间拥有因子最多的数*/
intnumber=count(x);//记录因子的最多数量,先假设x的因子数最多
intn=x;//记录拥有最多因子的那个数
for(intk=x+1;k<=y;k++){//循环求各个数的因子,看谁因子数最多
intm=count(k);//求k的因子数
if(numbern=k;
number=m;
}
}
System.out.println(“最多因子的数是:
”+n+”,有因子”+number+“个”);
}
/*统计n的因子数量*/
publicstaticintcount(intn){
intfactor=1;//1是n的因子,所以数量初值为1
for(intk=2;k<=n;k++)
if(n%k==0)
factor++;//找到一个因子,则因子个数增1
returnfactor;
/*从键盘输入一个字符串的方法,在输入数据前先显示参数规定的提示信息*/
publicstaticStringinputString(Stringhint){
Stringx=null;
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
System.out.print(hint);
try{
x=br.readLine();
}Catch(IOExceptione){}
returnx;
}
}
2、编写一个程序找出100一1000之间的所有姐妹素数。
注:
姐妹素数是指相邻两个奇数均为素数。
程序
publicclassSisterPrime{
publicstaticvoidmain(Stringargs[]){
for(intn=101;n<=1000;n+=2)
if(isPrime(n)&&isPrime(n+2))//相邻两个数均为素数
System.out.println(“\t”+n+”\t”+(n+2));
}
/*判断一个数n是否为素数的方法
如果n为素数,则方法返回结果为true,否则返回false*/
staticbooleanisPrime(intn){
for(intk=2;kif(n%k==0)
returnfalse;只要遇到一个数能够整除即判断不是素数
}
returntrue;//循环结束,说明没有数能除尽n
}
}
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验六数组的使用
实验目的
1、熟练掌握一维和二维数组的定义存储分配方法,数组赋值的方法;
2、熟悉利用循环实现数组的赋值、输出及处理的编程方法;
3、了解命令行数组的使用,熟悉数组参数的传递方法。
实验内容
1、利用随机函数产生16个随机整数给一个4*4的二维数组赋值。
(l)按行列输出数组。
(2)求最外一圈元素之和。
(3)求主角线中最大元素的值及其位置。
程序
publicclasssum{
publicstaticvoidmain(Stringargs[]){
inta[][]=newint[4][4];
ints=O;//计算和
/*用随机函数给数组赋值,*/
for(inti=O;ifor(intj=0;ja[i][j]=(int)(Math.random()*10);
/*按行列输出数组*/
for(inti=O;ifor(intj=O;jSystem.out.print(“\t”+a[i][j]);
System.out.println();
}
/*求最外一圈元素之和*/
for(inti=O;ifor(intj=0;j