java实验课程教学方案大纲孙晶京.docx
- 文档编号:7823529
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:82
- 大小:45.12KB
java实验课程教学方案大纲孙晶京.docx
《java实验课程教学方案大纲孙晶京.docx》由会员分享,可在线阅读,更多相关《java实验课程教学方案大纲孙晶京.docx(82页珍藏版)》请在冰豆网上搜索。
java实验课程教学方案大纲孙晶京
山西农业大学
Java面向对象程序设计实验课程教学大纲
一、课程基本信息
课程编码:
609A2011
课程中文名称:
java面向对象程序设计课程英文名称:
javaorientedobjectprogramdesign
实验学时:
24实验学分:
3
适用专业:
信息与计算科学开课学期:
春季
大纲执笔人:
孙晶京大纲审核人:
孙晶京
编写时间:
2014-3
二、课程性质
专业必修课
三、实验教学目的与任务
通过本课程的实验,掌握Java语言的基本语法,学会利用面向对象程序设计的基本理论和思想解决实际问题,提高学生开发和调试程序的能力。
四、实验课程基本要求
在掌握理论支持的基础上,能够具备与理论相对应的实践开发能力,具体要求与理论要求相同,如下:
(1)掌握Java语言的基本语法和基本结构;
(2)掌握面向对象程序设计的基本方法;
(3)熟练使用封装、继承、多态、抽象类、接口技术;
(4)掌握javaswing图形用户界面编程;
(5)掌握jdbc数据库编程方法;
(6)掌握Java异常的处理方法;
五、实验课程内容与学时分配(请不要随意变动此表的格式):
序号
实验项目名称
类型
学时
基础
综合设计
研究创新
一
Java入门
√
2
二
基本数据类型
√
2
三
运算符、表达式与语句
√
2
四
类与对象
√
2
五
继承与接口
√
2
六
内部类与异常类
√
2
七
面向对象基本原则
√
2
八
常用实用类
√
2
九
Javaswing图形用户界面
√
2
十
对话框
√
2
十一
输入输出流
√
2
十二
Jdbc数据库操作
√
2
六、实验内容及教学要求
实验项目一:
java入门
实验1一个简单的应用程序
实验教学目标:
掌握开发java应用程序的三个步骤:
编写源文件、编译源文件和运行应用程序。
实验场地或主要设备与器材:
计算机
实验要求:
编写一个java应用程序,该程序在命令行输出两行文字:
“你好,很高兴学习java“和”Wearestudent“
实验内容:
Hello.java
publicclassHello{
publicstaticvoidmain(Stringargs[]){
System.out.printf(“你好,很高兴学习java”);//命令行窗口输出"你好,很高兴学习Java"
Aa=newA();
a.fA();
}
}
classA{
voidfA(){
System.out.printf(“Wearestudents”);//命令行窗口输出"Wearestudents"
}
}
实验内容要求:
将【代码】部分替换为java程序代码。
实验报告要求:
要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验2教室、老师和学生
实验教学目标:
熟悉java应用程序的基本结构,并能联合编译应用程序所需要的类。
实验场地或主要设备与器材:
计算机
实验要求:
编写3个源文件:
ClassRoom.java,Teacher.java和Student.java,每个源文件只有一个类。
ClassRoom.java含有应用程序的主类,并使用了Teacher和student类。
将3个源文件保存到同一目录中,然后编译ClassRoom.java
实验内容:
ClassRoom.java
publicclassClassRoom{
publicstaticvoidmain(Stringargs[]){
System.out.printf(“教学活动从教室开始”);//命令行窗口输出"教学活动从教室开始"
Teacherzhang=newTeacher();
Studentjiang=newStudent();
zhang.introduceSelf();
jiang.introduceSelf();
}
}
Teacher.java
publicclassTeacher{
voidintroduceSelf(){
System.out.printf(“我是张老师”);//命令行窗口输出"我是张老师"
}
}
Student.java
publicclassStudent{
voidintroduceSelf(){
System.out.printf(“我是学生,名字是:
奖励”);//命令行窗口输出"我是学生,名字是:
奖励"
}
}
实验内容要求:
将【代码】部分替换为java程序代码。
实验报告要求:
要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验项目二:
基本数据类型
实验1输出特殊偏旁的汉字
实验教学目标:
掌握char型和int型数据之间的互相转换,同时了解unicode字符表。
实验场地或主要设备与器材:
计算机
实验要求:
编写应用程序,在命令行窗口输出5个“石“子旁的汉字和5个”女“子旁的汉字。
实验内容:
InputChinese.java
publicclassE{
publicstaticvoidmain(Stringargs[]){
charch='研',zifu=0;
intp=22920,count=5,position=0;
System.out.printf("输出%d个石字傍的汉字:
\n",count);
for(charc=ch;c<=ch+count;c++){
intposition=(int)c;//c进行int型转换据运算,并将结果赋值给position
System.out.printf("%c(%d)",c,position);
}
System.out.printf("\n输出%d个女字傍的汉字:
\n",count);
for(intn=p;n<=p+count;n++){
【代码2】//n做char型转换运算,并将结果赋值给zifu
System.out.printf("%c(%d)",zifu,n);
}
}
}
实验内容要求:
将【代码】部分替换为java程序代码。
实验报告要求:
要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验2输入、输出学生的基本信息
实验教学目标:
掌握从键盘为简单型变量输入数据。
实验场地或主要设备与器材:
计算机
实验要求:
编写应用程序,使用Scanner对象输入学生的基本信息,并输出基本信息。
实验内容:
InputMess.java
importjava.util.Scanner;
publicclassInputMess{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
System.out.println("输入姓名(回车确认):
");
Stringname=【代码1】//从键盘为name赋值
System.out.println("输入年龄(回车确认):
");
byteage=【代码2】//从键盘为age赋值
System.out.println("输入身高(回车确认):
");
floatheight=【代码3】//从键盘为height赋值
System.out.printf("%28s\n","--基本信息--");
System.out.printf("%10s%-10s","姓名:
",name);
System.out.printf("%4s%-4d","年龄:
",age);
System.out.printf("%4s%-4.2f","身高:
",height);
}
}
实验内容要求:
将【代码】部分替换为java程序代码。
实验报告要求:
要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验3超大整数的加法
实验教学目标:
掌握使用数组处理大整数的加法。
实验场地或主要设备与器材:
计算机
实验要求:
声明3个int型数组:
a,b,c,要求三者的长度相同。
将其中的a,b初始化为大整数的表示,但大整数的数字的长度必须小于数组的长度,以便保证数组a,b的首元素为0。
将a,b的各个元素进行加法运算(需要进位时,需要改变a的元素的值),结果依次存放到数组c中,输出数组c。
实验内容:
HandleLargeNumber.java
publicclassHandleLargeNumber{
publicstaticvoidmain(Stringargs[]){
inta[]={0,9,9,7,9,4,5,6,7,2,3,4,5,6,4,7,8,9,8,7,6,9};
intb[]={0,0,5,9,1,6,4,5,6,2,3,4,5,7,2,1,3,4,0,3,2,9};
intc[]=newint[a.length];
inti=0,result=0,k=0;
for(i=0;i if(a[i]! =0){ k=i; break; } } for(i=k;i System.out.printf("%d",a[i]); } System.out.printf("\n加上: \n"); for(i=0;i if(b[i]! =0){ k=i; break; } } for(i=k;i System.out.printf("%d",b[i]); } for(i=a.length-1;i>=0;i--){ result=a[i]+b[i]; if(result>=10){ c[i]=result%10; a[i-1]=a[i-1]+1; } else c[i]=result; } System.out.printf("\n等于: \n"); for(i=0;i if(c[i]! =0){ k=i; break; } } for(i=k;i System.out.printf("%d",c[i]); } } } 实验内容要求: 将【代码】部分替换为java程序代码。 实验报告要求: 要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。 实验项目三: 运算符、表达式与语句 实验1托运行李 实验教学目标: 掌握类型转换运算符。 实验场地或主要设备与器材: 计算机 实验要求: (1)火车在计算托运行李费用时以kg为单位计算费用(12元/千克),忽略重量中的小数部分,即忽略不足1kg的部分。 (2)汽车在计算托运行李费用时以kg为单位计算费用(22元/千克),将重量中的小数部分进行四舍五入,即将不足1kg的部分进行四舍五入。 (3)飞机在计算托运行李费用时以g为单位计算费用(0.062元/克),将重量中的小数部分,即将不足1kg的部分进行四舍五入。 用double型变量weight存放行李重量,用charge存放托用费用,程序让用户从键盘输入weight的值,该值是行李的重量(kg为单位),然后程序将分别计算出用火车、汽车和飞机托运行李的费用。 实验内容: BaggageAndMony.java importjava.util.Scanner; publicclassBaggageAndMony{ publicstaticvoidmain(Stringargs[]){ inttrainCharge=12;//火车托运计费: 每公斤12元 intcarCharge=22;//汽车托运计费: 每公斤12元 doubleplaneCharge=0.062;//飞机托运计费: 每克0.062元 Scannerreader=newScanner(System.in); doubleweight,charge; System.out.printf("输入行李重量: "); weight=reader.nextDouble(); System.out.printf("行李重量: %f公斤(kg)\n",weight); System.out.printf("需要计费的重量: %d(kg)\n",(int)weight); 【代码1】//将表达式(int)weight*trainCharge的值赋值给charge System.out.printf("用火车托运(%d元/kg),费用: %f元\n",trainCharge,charge); System.out.printf("需要计费的重量: %d(kg)\n",(int)(weight+0.5)); 【代码2】】//将表达式(int)(weight+0.5)*carCharge的值赋值给charge System.out.printf("用汽车托运(%d元/kg),费用: %f元\n",carCharge,charge); System.out.printf("行李重量: %f克(g)\n",weight*1000); System.out.printf("需要计费的重量: %d(g)\n",(int)(weight*1000+0.5)); 【代码3】//将表达式(int)(weight*1000+0.5)*planeCharge的值赋值给charge System.out.printf("用飞机托运(%f元/g),费用: %f元\n",planeCharge,charge); } } 实验内容要求: 将【代码】部分替换为java程序代码。 实验报告要求: 要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。 实验2自动售货机 实验教学目标: 掌握在if-else分支语句的if操作中使用switch语句。 实验场地或主要设备与器材: 计算机 实验要求: 自动售货机为用户提供各种饮料。 饮料的价格有2种: 2元和3元。 用户投入2元,可以选择“净净矿泉水”、“甜甜矿泉水”和“美美矿泉水”之一。 用户投入3元,可以选择“爽口可乐”、“清凉雪碧”和“雪山果汁”之一。 编写程序模拟用户向自动售货机投入钱币得到一种饮料。 实验内容: MachineSell.java importjava.util.Scanner; publicclassMachineSell{ publicstaticvoidmain(Stringargs[]){ intmoney; intdrinkKind; System.out.printf("投入金额: 2或3元(回车确认): "); Scannerreader=newScanner(System.in); money=reader.nextInt(); if(money==2){ System.out.printf("选择净净矿泉水 (1),甜甜矿泉水 (2)和美美矿泉水(3)之一: \n"); System.out.printf("输入1,2或3: "); drinkKind=reader.nextInt(); switch(drinkKind){ case1: System.out.printf("得到净净矿泉水\n"); break; case2: System.out.printf("得到甜甜矿泉水\n"); break; case3: System.out.printf("得到美美矿泉水\n"); break; default: System.out.printf("选择错误"); } } elseif(money==3){ System.out.printf("选择爽口可乐 (1),清凉雪碧 (2),和雪山果汁(3)之一: \n"); System.out.printf("输入1,2或3: "); drinkKind=reader.nextInt(); switch(drinkKind){ case1: System.out.printf("得到爽口可乐\n"); break; case2: System.out.printf("得到清凉雪碧\n"); break; case3: System.out.printf("得到雪山果汁\n"); break; default: System.out.printf("选择错误"); } } else{ System.out.printf("输入的钱币不符合要求"); } } } 实验内容要求: 将【代码】部分替换为java程序代码。 实验报告要求: 要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。 实验3猜数字游戏 实验教学目标: 使用if-else分支和while循环语句解决问题。 实验场地或主要设备与器材: 计算机 实验要求: 编写一个java应用程序,在主类的main方法中实现以下功能: ●程序随即分配给用户一个1-100之间的整数。 ●用户输入自己的猜测。 ●程序返回提示信息,提示信息分别是: “猜大了”、“猜小了”或“猜对了”。 ●用户可以根据提示信息再次输入猜测,知道提示信息是“猜对了”。 实验内容: GuessNumber.java importjava.util.Scanner; importjava.util.Random; publicclassGuessNumber{ publicstaticvoidmain(Stringargs[]){ Scannerreader=newScanner(System.in); Randomrandom=newRandom(); System.out.println("给你一个1至100之间的整数,请猜测这个数"); intrealNumber=random.nextInt(100)+1;//random.nextInt(100)是[0,100)中的随机整数 intyourGuess=0; System.out.print("输入您的猜测: "); yourGuess=reader.nextInt(); while(【代码1】)//循环条件 { if(【代码2】)//猜大了的条件代码 { System.out.print("猜大了,再输入你的猜测: "); yourGuess=reader.nextInt(); } elseif(【代码3】)//猜小了的条件代码 { System.out.print("猜小了,再输入你的猜测: "); yourGuess=reader.nextInt(); } } System.out.println("猜对了! "); } } 实验内容要求: 将【代码】部分替换为java程序代码。 实验报告要求: 要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。 实验项目四: 类与对象 实验1Tank类 实验教学目标: 掌握使用类来封装对象的属性和行为。 实验场地或主要设备与器材: 计算机 实验要求: 编写一个java程序,该程序有两个类,Tank类(用于刻画坦克),Fight主类。 (1)Tank类有一个double型变量speed,用于刻画坦克的速度,一个int型变量bulletAmount,用于刻画坦克的炮弹数量。 定义了speedUp()和speedDown()方法,体现坦克有加速和减速行为;定义了setbulletAmount(intp)方法,用于设置坦克炮弹的数量;定义了fire()方法,体现坦克的开炮行为。 (2)在主类Fight的main方法中用Tank类创建坦克,并让坦克调用方法设置炮弹数量,显示坦克的加速、减速和开炮等行为。 实验内容: Tank.java publicclassTank{ 【代码1】//声明double型变量speed,刻画速度 【代码2】//声明int型变量bulletAmount,刻画炮弹数量 voidspeedUp(ints){ 【代码3】//将s+speed赋值给speed } voidspeedDown(intd){ if(speed-d>=0) 【代码4】//将speed-d赋值给speed else speed=0; } voidsetBulletAmount(intm){ bulletAmount=m; } intgetBulletAmount(){ returnbulletAmount; } doublegetSpeed(){ returnspeed; } voidfire(){ if(bulletAmount>=1){ 【代码5】//将bulletAmount-1赋值给bulletAmount System.out.println("打出一发炮弹"); } else{ System.out.println("没有炮弹了,无法开火"); } } } Fight.java publicclassFight{ publicstaticvoidmain(Stringargs[]){ Tanktank1,tank2; tank1=newTank(); tank2=newTank(); tank1.setBulletAmount(10); tank2.setBulletAmount(10); System.out.println("tank1的炮弹数量: "+tank1.getBulletAmount()); System.out.println("tank2的炮弹数量: "+tank2.getBulletAmount()); tank1.speedUp(80); tank2.speedUp(90); System.out.println("tank1目前的速度: "+tank1.getSpeed()); System.out.println("tank2目前的速度: "+tank2.getSpeed()); tank1.speedDown(15); tank2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 课程 教学 方案 大纲 孙晶京