面向对象与java程序设计实验内容文档格式.docx
《面向对象与java程序设计实验内容文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象与java程序设计实验内容文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
![面向对象与java程序设计实验内容文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/28/8d7fbbcd-f198-43c0-a867-4e52c8c72886/8d7fbbcd-f198-43c0-a867-4e52c8c728861.gif)
=20;
arr[i]=arr[i-1]*i;
sum=sum+1.0/(arr[i]);
//这是以DOWHILE循环处理的
/*
i=1;
do
i++;
}while(i<
=20);
sum=sum+1.0/arr[i];
*/
System.out.println("
"
+sum);
3、一个数如果恰好等于除它本身外的因子之和,这个数就称为“完数”。
编写应用程序求1000以的所有完数并输出。
publicclassEg23
inti,j,sum;
=1000;
sum=0;
for(j=1;
j<
i;
j++)
if(i%j==0)
{
sum=sum+j;
}
if(sum==i)
System.out.printf("
%4d"
i);
System.out.println();
实验三
1、编写一个程序来计算10000以的素数之和并输出
publicclassEg2611
intsum=0;
for(i=2;
=10000;
for(j=2;
break;
if(j==i)
sum=sum+i;
System.out.println("
2、创建一个程序把输入字符串的大小写互换。
字符的输入用例1.3中的方法。
importjava.util.*;
publicclassEg2615
Scannerreader=newScanner(System.in);
StringanStr=reader.next();
char[]anArr=anStr.toCharArray();
inti;
for(i=0;
anArr.length;
if(anArr[i]>
='
A'
&
&
anArr[i]<
Z'
)
anArr[i]+=32;
elseif(anArr[i]>
a'
z'
anArr[i]-=32;
System.out.printf("
%c"
anArr[i]);
3、创建一个简单的成绩单程序,帮助老师评估学生的表现。
该程序用double数组存放成绩来计算平均成绩和标准方差。
成绩通过键盘输入字符串,然后转换成double类型的数据。
publicclassEg2620
请输入学生各科成绩,以空格区别!
);
Scannerreader=newScanner(System.in);
Stringtext=reader.nextLine();
char[]arr=text.toCharArray();
inti,gs=0,js=1,mg=10;
doublesum=0,kg=1,germ=0,aver=0,sd=0;
arr.length;
if(arr[i]=='
'
||arr[i]=='
\0'
germ=germ*kg;
sum=sum+germ;
js=1;
kg=1;
germ=0;
gs++;
elseif(arr[i]=='
.'
js=0;
else
germ=germ*mg+(arr[i]-'
0'
if(js==0)
kg=kg/10;
if((arr.length-1>
=0)&
(arr[arr.length-1]!
))
germ=germ*kg;
sum=sum+germ;
gs++;
double[]gArr=newdouble[gs];
gs=0;
js=1;
mg=10;
kg=1;
germ=0;
gArr[gs]=germ;
gArr[gs]=germ;
if(gs!
=0)
aver=sum/gs;
for(i=0;
gs;
sd=sd+(gArr[i]-aver)*(gArr[i]-aver);
sd=sd/gs;
sd=Math.sqrt(sd);
平均值:
+aver+"
"
+"
标准方差:
+sd);
试验四
1、定义一个表示学生的类Student,包括域:
学号、、性别、年龄;
方法:
获得学号、、性别、年龄;
修改年龄。
书写JAVA程序创建Student类的对象及测试其方法的功能。
classStudent
privateintnomber;
privateStringname;
privateStringsex;
privateintage;
Student(intnomber,Stringname,Stringsex,intage)
this.nomber=nomber;
this.name=name;
this.sex=sex;
this.age=age;
voidshow()
show函数被调用"
学号:
+nomber+"
名字:
+name+"
性别:
+sex+"
年龄:
+age);
voidreage(intage)
修改年龄函数被调用"
publicclassEg484
Scannerreader=newScanner(System.in);
请输入学号:
intnomber=reader.nextInt();
请输入:
Stringname=reader.next();
请输入性别:
Stringsex=reader.next();
请输入年龄:
intage=reader.nextInt();
Studentobj=newStudent(nomber,name,sex,age);
obj.show();
请修改年龄:
age=reader.nextInt();
obj.reage(age);
实验五
1、成员方法的参数传递
classF{
intm=3;
intn=4;
classTestVarPass{
publicvoidchangeInt(intx,inty){//方法参数是基本数据类型
inttemp;
temp=x;
x=y;
y=temp;
数据交换后:
x="
+x+"
y="
+y);
publicvoidchangeArray(int[]z){//方法参数是数组
temp=z[0];
z[0]=z[1];
z[1]=temp;
publicvoidchangeObject(Fff){//方法参数是对象
inttemp;
temp=ff.m;
ff.m=ff.n;
ff.n=temp;
publicstaticvoidmain(Stringargs[]){
int[]c=newint[2];
c[0]=1;
c[1]=2;
Ff=newF();
TestVarPasst=newTestVarPass();
//创建测试类对象
System.out.println("
调用changeInt方法前:
c[0]="
+c[0]+"
c[1]="
+c[1]);
t.changeInt(c[0],c[1]);
调用changeInt方法后:
[0]="
调用changeArray方法前:
t.changeArray(c);
调用changeArray方法后:
调用changeObject方法前:
f.m="
+f.m+"
f.n="
+f.n);
t.changeObject(f);
调用changeObject方法后:
2、举一个包含静态变量与非静态变量的例子,说明静态成员变量的特征
classStaticTest
publicintx=1;
publicstaticinty=1;
classStaticTester{
publicstaticvoidmain(Stringargs[])
StaticTest.y+=1;
StaticTestt1=newStaticTest();
StaticTestt2=newStaticTest();
t1.x+=1;
t1.y+=1;
t2.x+=2;
t2.y+=2;
T1:
X="
+t1.x+"
y="
+t1.y);
T2:
+t2.x+"
+t2.y);
3、以矩形的面积计算为例,编写一个方法将引用类型作为参数
classRefTypePara{
doublewidth,height,area;
RefTypePara(doublew,doublel){
width=w;
height=l;
voidcalculateArea(RefTypeParap){//引用类型参数
p.area=p.width*p.height;
classPassObj{
publicstaticvoidmain(Stringargs[]){
RefTypePararr=newRefTypePara(10,10);
rr.calculateArea(rr);
矩形面积为"
+rr.area);
实验六
1、静态变量的应用
classAccount{
StringAccountNumber;
StringAccountName;
doublebalance;
staticdoublelixi=0.1;
publicAccount(Stringnumber,Stringname){
AccountNumber=number;
AccountName=name;
balance=0.0;
publicvoidprint(){
账号:
+AccountNumber);
名:
+AccountName);
年利率:
+lixi);
publicclassTestAccount{
publicstaticvoidmain(Stringargs[]){
Accounta=newAccount("
3454523314"
"
三"
Accountb=newAccount("
3454524315"
四"
a.print();
b.print();
b.lixi=0.9;
修改年利率后:
2、静态方法的应用
classSuperClass{
publicstaticvoidmethod1(){
这里调用的是:
父类的静态方法method1"
publicvoidmethod2(){
父类的非静态方法method2"
classSubClassextendsSuperClass{
子类的静态方法method1"
子类的非静态方法method2"
publicclassTestStaticMethod{
SubClasssub=newSubClass();
SuperClasssup;
sup=sub;
sup.method1();
sub.method1();
sup.method2();
sub.method2();
3、抽象方法的应用
abstractclassEmployee{
Stringname;
Stringsex;
publicEmployee(Stringn,Strings){
name=n;
sex=s;
publicabstractStringgetDetail();
classHourlyEmployeeextendsEmployee{
privatedoublewageRate;
privatedoublehours;
publicHourlyEmployee(Stringn,Strings,doubler,doubleh){
super(n,s);
//调用父类的构造方法
wageRate=r;
hours=h;
publicStringgetDetail(){
returnname+"
每小时工资"
+wageRate+"
元,工作了"
+hours+"
小时,共收入"
+wageRate*hours+"
元"
;
}
classSalariedEmployeeextendsEmployee{
privatedoublesalary;
publicSalariedEmployee(Stringn,Stringse,doublesa){
super(n,se);
salary=sa;
returnname+"
每月工资"
+salary+"
publicclassTestAbstract{
Employeee;
HourlyEmployeehe=newHourlyEmployee("
伟"
男"
50,20);
e=he;
System.out.println(e.getDetail());
SalariedEmployeese=newSalariedEmployee("
娜"
女"
3000);
System.out.println(se.getDetail());