if(a[j]>a[j+1]){
inttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
}
程序运行结果截图如下:
41用程序实现24点游戏,让用户输入4个数字(1-10),程序给出如何计算得
到24。
例如输入1、2、3、4,程序要输出1*2*3*4=24,例如输入7、8、9、10,
输出8*9/(10-7)=24。
六、实验总结与体会:
实验三Java面向对象基础
一、实验目的与要求
(1)掌握面向对象的基本概念,掌握类定义的方法、对象的创建、访问;
(2)掌握几个关键字的特征及用法:
static、this;
(3)了解类的权限、成员的权限;
(4)字符串与整型、实型的转换;
(5)String、StringBuffer、StringBuilder的差别及用法;
(6)几个常用工具类的使用,主要有Math、Random、date、Calendar等。
二、实验原理
三、预习与准备
掌握基本的概念及原理,明确实验任务和目的,准备实验的源代码。
四、实验内容
56789(综合组织成一个程序)、19、21、35、36、38
五、实验过程:
5、定义一个表示学生的类,要求如下:
1)类名是Student。
2)该类包含3个属性:
sid(表示学号)、sname(表示姓名)、sage(表示年龄)。
3)为3个属性提供set和get方法。
4)编写一个无参数的构造方法,把年龄设置为18。
5)编写有一个参数的构造方法,参数为学生学号,把年龄设置为18。
6)编写有两个参数的构造方法,第一个参数表示学号,第二个参数表示姓名,把年龄
设置为18。
7)编写有3个参数的构造方法,第一个参数表示学号,第二个参数表示姓名,最后一
个参数表示年龄。
8)编写一个toSting方法,把学生信息转换成一个字符串,字符串的格式为“学号‐姓
名‐年龄”。
6、编写一个测试类Test,在Test中编写main方法,main方法中的主要代码如下:
1)调用无参数的构造方法创建Student对象s1;
2)通过setSid把学号设置为“2013030101”。
3)通过setSname把姓名设置为“杨光”。
4)通过setSage把年龄设置为19。
5)调用s1的toString方法把得到的结果赋值给String类型的info变量。
6)输出info的值。
7、编写一个测试类Test,在Test中编写main方法,main方法中的主要代码如下:
1)调用有一个参数的构造方法创建Student对象s2,学号为“2013030102”。
2)通过setSname把姓名设置为“李玲”。
3)通过setSage把年龄设置为20。
4)调用s2的toString方法把得到的结果赋值给String类型的info变量。
5)输出info的值。
8、编写一个测试类Test,在Test中编写main方法,main方法中的主要代码如下:
1)调用有两个参数的构造方法创建Student对象s3,学号为“2013030103”,姓名为
“王宾”。
2)调用s3的toString方法把得到的结果赋值给String类型的info变量。
3)输出info的值。
9、编写一个测试类Test,在Test中编写main方法,main方法中的主要代码如下:
1)调用有3个参数的构造方法创建Student对象s4,学号为“2013030104”,姓名为
“杨路”,年龄为18。
2)调用s4的toString方法把得到的结果赋值给String类型的info变量。
3)输出info的值。
源代码如下:
packagemaileku7;
publicclassStudent{
Stringsid;
Stringsname;
intsage;
//构造方法
publicStudent(){
super();
sage=18;
}
publicStudent(Stringsid){
super();
this.sid=sid;
sage=18;
}
publicStudent(Stringsid,Stringsname){
super();
this.sid=sid;
this.sname=sname;
sage=18;
}
publicStudent(Stringsid,Stringsname,intsage){
super();
this.sid=sid;
this.sname=sname;
this.sage=sage;
}
//toSting方法
publicStringtoString(){
return"Student[sid-"+sid+",sname-"+sname+",sage-"+sage
+"]";
}
//get/set方法
publicStringgetSid(){
returnsid;
}
publicvoidsetSid(Stringsid){
this.sid=sid;
}
publicStringgetSname(){
returnsname;
}
publicvoidsetSname(Stringsname){
this.sname=sname;
}
publicintgetSage(){
returnsage;
}
publicvoidsetSage(intsage){
this.sage=sage;
}
}
packagemaileku7;
publicclassTestStudent{
publicstaticvoidmain(String[]args){
//调用无参数构造方法
Students1=newStudent();
s1.setSid("2013030101");
s1.setSname("杨光");
s1.setSage(19);
Stringinfo=s1.toString();
System.out.println(info);
//调用一个参数的构造方法
Students2=newStudent("2013030102");
s2.setSname("李玲");
s2.setSage(20);
Stringinfo1=s2.toString();
System.out.println(info1);
//调用两个参数的构造方法
Students3=newStudent("2013030103","王宾");
Stringinfo2=s3.toString();
System.out.println(info2);
//调用三个参数的构造方法
Students4=newStudent("2013030104","杨路",18);
Stringinfo3=s4.toString();
System.out.println(info3);
}
}
运行结果截图如下:
19、编写一个方法对学生数组进行排序,方法参数是学生数组,学生使用Student类表
示,包括姓名、学号和成绩。
要求按照成绩高低进行排序。
源程序如下:
publicclassStudent{
publicstaticvoidmain(String[]args){
Stringsid;
Stringsname;
intscore;
ScannerScore=newScanner(System.in);
int[]student=newint[10];
System.out.println("亲输入学生成绩:
!
!
!
");
for(inti=0;istudent[i]=Score.nextInt();
}
System.out.println("排序后的成绩为:
");
Arrays.sort(student);
for(inti=0;iSystem.out.print(student[i]+"");
}
}
}
运行结果如下截图:
21、编写方法实现字符串压缩的功能,连续的n个字符x表示为xn,例如aaaa表示为
a4,如果只出现一次直接输出即可。
例如输入aaaaaaaabbbccdddeeebbba,输出
a7b3c2d3e3b3a。
packagecom.demo;
publicclassDemo01{
publicstaticvoidmain(String[]args){
Strings=comp("aaaaaaaabbbccdddeeebbba");
System.out.println(s);
}
publicstaticStringcomp(Stringstr){
inti=1;
StringBuilderbuf=newStringBuilder();
intcount=1;
charch=str.charAt(0);
for(;;){
charc=i==str.length()?
'\10':
str.charAt(i);
if(c==ch){
count++;
}else{
if(count==1)
buf.append(ch);
else
buf.append(ch).append(count);
count=1;
ch=c;
}
i++;
if(i==str.length()+1){
break;
}
}
returnbuf.toString();
}
}
六、实验总结与体会:
实验四深入面向对象
一、实验目的与要求
(1)深刻理解面向对象的三大特征;
(2)熟练掌握关键super、final的含义及用法;
(3)理解什么是抽象类、抽象方法,以及两者间的关系;
(4)深刻理解接口的概念、作用,以及与抽象类的差别;
(5)类类型的转换(向上和向下转换),运算符instanceof使用;
(6)深刻理解、掌握动态性;
(7)Object、Class这2个系统类的常用方法,了解反射的概念及目的。
(8)初步了解对象间进行消息传递的方式(两种一是乙类对象作为甲类的成员,对象作为方法的参数)。
二、实验原理
(1)面向对象三大特征:
面向对象的3大特征是封装、继承、多态。
封装:
在定义一个类时都需要认真思考,类是现实世界中事物的属性和对这些属性进行操作的方法的集合体。
因此一个类应该包括数据成员和函数成员,仅仅只含一种成员的类很少(