java实验题要点.docx
《java实验题要点.docx》由会员分享,可在线阅读,更多相关《java实验题要点.docx(37页珍藏版)》请在冰豆网上搜索。
java实验题要点
实验一基本程序设计
(1)编写一个程序,读入一笔费用与酬金率,计算酬金和总钱数。
例如,如果用户输入10作为费用,15%作为酬金率,计算结果显示酬金为¥1.5,总费用为¥11.5。
publicclassExercise2_5{
publicstaticvoidmain(String[]args){
//Readsubtotal
java.util.Scannerinput=newjava.util.Scanner(System.in);
System.out.print("Entersubtotal:
");
doublesubtotal=input.nextDouble();
//Readsubtotal
System.out.print("Entergratuityrate:
");
doublerate=input.nextDouble();
doublegratuity=subtotal*rate/100;
doubletotal=subtotal+gratuity;
System.out.println("Gratuityis"+gratuity);
System.out.println("Totalis"+total);
}
}
(2)(求ASCII码对应的字符)编写程序接受一个ASCII码(从0到128的整数),然后显示它所代表的字符。
例如用户输入的是97,程序显示的是俄字符a。
publicclassExercise2_8{
publicstaticvoidmain(Stringargs[]){
java.util.Scannerinput=newjava.util.Scanner(System.in);
//EnteranASCIIcode
System.out.print("EnteranASCIIcode:
");
intcode=input.nextInt();
//Displayresult
System.out.println("ThecharacterforASCIIcode"+code+"is"+(char)code);
}
}
(3)(计算一个三角形周长)编写程序,读取三角形的三条边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。
如果任意两条边的和大于第三边,那么输入值都是合法的。
publicclassExercise3_25{
publicstaticvoidmain(String[]args){
java.util.Scannerinput=newjava.util.Scanner(System.in);
//Enterthreeedges
System.out.print(
"Enterthreeedges(lengthindouble):
");
doubleedge1=input.nextDouble();
doubleedge2=input.nextDouble();
doubleedge3=input.nextDouble();
//Displayresults
booleanvalid=(edge1+edge2>edge3)&&
(edge1+edge3>edge2)&&(edge2+edge3>edge1);
if(valid){
System.out.println("Theperimeterofthetriangleis"+
(edge1+edge2+edge3));
}
else
System.out.println("Inputisinvalid");
}
}
(4)(解一元二次方程)求一元二次方程ax2+bx+c=0的两个根,b就有*b-4ac称作一元二次方程的判别式。
如果它是正值,那么一元二次方程俄就有两个正根。
如果它为0,方程就只有一个根。
如果它是负值,方程无实根。
编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。
如果判别式为正,显示两个根,如果判别式为0,显示一个根,如果判别式为负,显示方程无实根。
(4)importjava.util.Scanner;
publicclassExercise3_1{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.print("Entera,b,c:
");
doublea=input.nextDouble();
doubleb=input.nextDouble();
doublec=input.nextDouble();
doublediscriminant=b*b-4*a*c;
if(discriminant<0){
System.out.println("Theequationhasnoroots");
}
elseif(discriminant==0){
doubler1=-b/(2*a);
System.out.println("Therootis"+r1);
}
else{//(discriminant>0)
doubler1=(-b+Math.pow(discriminant,0.5))/(2*a);
doubler2=(-b-Math.pow(discriminant,0.5))/(2*a);
System.out.println("Therootsare"+r1+"and"+r2);
}
}
}
(5)(统计正数和负数的个数,然后计算这些数的平均值)编写程序,读入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值的总和及其平均值(不对0计数)。
当输入为0时,表示程序结束。
将平均值以浮点数显示。
(5)importjava.util.Scanner;
publicclassExercise4_1{
publicstaticvoidmain(String[]args){
intcountPositive=0,countNegative=0;
intcount=0,total=0,num;
Scannerinput=newScanner(System.in);
System.out.print(
"Enteranintvalue,theprogramexitsiftheinputis0:
");
num=input.nextInt();
while(num!
=0){
if(num>0)
countPositive++;
elseif(num<0)
countNegative++;
total+=num;
count++;
//Readthenextnumber
num=input.nextInt();
}
if(count==0)
System.out.println("Youdidn'tenteranynumber");
else{
System.out.println("Thenumberofpositivesis"+countPositive);
System.out.println("Thenumberofnegativesis"+countNegative);
System.out.println("Thetotalis"+total);
System.out.println("Theaverageis"+total*1.0/count);
}
}
}
试验二方法
(1)一个五角数被定义为n(3n-1)/2,其中n=1,2,…。
所以,开始的几个数字就是1,5,12,22…,编写下面的方法返回一个五角数:
publicstaticintgetPentagonaNumber(intn)
编写一个测试程序显示前100个五角数,每行显示10个。
提示:
通过for循环语句打印前100个五角数。
(1)//Exercise5_1.java:
publicclassExercise5_1{
publicstaticvoidmain(String[]args){
for(inti=1;i<=100;i++)
if(i%10==0)
System.out.println(getPentagonalNumber(i));
else
System.out.printf("%10d",getPentagonalNumber(i));
}
publicstaticintgetPentagonalNumber(intn){
returnn*(3*n-1)/2;
}
}
(2)编写一个方法,计算一个整数各位数字之和:
publicstaticintsumDigits(longn)
例如:
sumDigits(234)返回9(2+3+4)。
提示:
使用求余运算符%提取数字,用/去掉提取出来的数字。
例如:
使用234%10(=4)提取4。
然后使用234/10(=23)从234中去掉4。
使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止。
编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。
Remainder(余数)
(2)
publicclassExercise5_2{
publicstaticvoidmain(String[]args){
java.util.Scannerinput=newjava.util.Scanner(System.in);
System.out.print("Enteranumber:
");
intvalue=input.nextInt();
System.out.println("Thesumofdigitsfor"+value+
"is"+sumDigits(value));
}
publicstaticintsumDigits(longn){
inttemp=(int)Math.abs(n);
intsum=0;
while(temp!
=0){
intremainder=temp%10;
sum+=remainder;
temp=temp/10;
}
returnsum;
}}
(3)(回文整数)编写下面两个方法:
//Returnthereversalofaninteger,i.e.reverse(456)returns654
publicstaticintreverse(intnumber)
//Returntrueifnumberispalindrome
publicstaticbooleanispalindrome(intnumber)
使用reverse方法实现ispalindrome。
如果一个数字的反向倒置数和它的顺向数一样,这个数就称作回文数。
编写一个测试程序,提示用户输入一个整数值,然后报告这个整数是否是回文数。
(3)
importjava.util.Scanner;
publicclassExercise5_3{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.print("Enterapostiveinteger:
");
intnumber=input.nextInt();
if(isPalindrome(number))
System.out.println(number+"ispalindrome");
else
System.out.println(number+"isnotpalindrome");
}
publicstaticbooleanisPalindrome(intnumber){
returnnumber==reverse(number);
}
publicstaticintreverse(intnumber){
intresult=0;
while(number!
=0){
intremainder=number%10;
result=result*10+remainder;
number=number/10;
}
returnresult;
}
}
(4)创建一个名为MyTriangle的类,它包含如下两个方法:
/**Returntrueifthesumofanytwosidesis
*greaterthanthethirdside.*/
publicstaticbooleanisValid(doubleside1,doubleside2,doubleside3)
/**Returnstheareaofthetriangle.*/
publicstaticdoublearea(doubleside1,doubleside2,doubleside3)
编写一个测试程序,读入三角形三边的值,若输入有效,则计算面积;否则显示输入无效.
(4)
publicclassExercise5_19{
/**Mainmethod*/
publicstaticvoidmain(String[]args){
java.util.Scannerinput=newjava.util.Scanner(System.in);
System.out.print(
"Enterthefirstedgelength(double):
");
doubleedge1=input.nextDouble();
System.out.print(
"Enterthesecondedgelength(double):
");
doubleedge2=input.nextDouble();
System.out.print(
"Enterthethirdedgelength(double):
");
doubleedge3=input.nextDouble();
if(MyTriangle.isValid(edge1,edge2,edge3)){
System.out.println("Theareofthetriangleis"+
MyTriangle.area(edge1,edge2,edge3));
}
else
System.out.println("Inputisinvalid");
}
}
classMyTriangle{
publicstaticbooleanisValid(doubleside1,doubleside2,doubleside3){
return(side1+side2>side3)&&
(side1+side3>side2)&&(side2+side3>side1);
}
publicstaticdoublearea(doubleside1,doubleside2,doubleside3){
doubles=(side1+side2+side3)/2;
returnMath.sqrt(s*(s-side1)*(s-side2)*(s-side3));
}
}
试验三数组
(1)编写程序,读取10个整数,然后按照和读入顺序相反的顺序将它们显示出来。
提示:
int[]num=newint[10]。
(1)
publicclassExercise6_2{
publicstaticvoidmain(String[]args){
java.util.Scannerinput=newjava.util.Scanner(System.in);
int[]num=newint[10];
for(inti=0;i<10;i++){
//Readanumber
System.out.print("Readanumber:
");
num[i]=input.nextInt();
}
//Displaythearray
for(inti=9;i>=0;i--){
System.out.println(num[i]);
}
}
}
(2)(指定等级)编写一个程序,读入学生成绩,获取最高分best,然后根据下面的规则赋等级值:
如果分数>=best–10,等级为A
如果分数>=best–20,等级为B
如果分数>=best–30,等级为C
如果分数>=best–40,等级为D
其他情况下,等级为F
程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级得出结论。
(2)
importjava.util.Scanner;
publicclassExercise6_1{
/**Mainmethod*/
publicstaticvoidmain(String[]args){
//CreateaScanner
Scannerinput=newScanner(System.in);
//Getnumberofstudents
System.out.print("Enternumberofstudents:
");
intnumberOfStudents=input.nextInt();
int[]scores=newint[numberOfStudents];//Arrayscores
intbest=0;//Thebestscore
chargrade;//Thegrade
//Readscoresandfindthebestscore
System.out.print("Enter"+numberOfStudents+"scores:
");
for(inti=0;iscores[i]=input.nextInt();
if(scores[i]>best)
best=scores[i];
}
//Declareandinitializeoutputstring
Stringoutput="";
//Assignanddisplaygrades
for(inti=0;iif(scores[i]>=best-10)
grade='A';
elseif(scores[i]>=best-20)
grade='B';
elseif(scores[i]>=best-30)
grade='C';
elseif(scores[i]>=best-40)
grade='D';
else
grade='F';
output+="Student"+i+"scoreis"+
scores[i]+"andgradeis"+grade+"\n";
}
//Displaytheresult
System.out.println(output);
}
}
(3)(计算数字的出现次数)编写程序,读取在1到100之间的整数,然后计算每个数出现的次数。
假定输入是以0结束的。
(3)publicclassExercise6_3{
publicstaticvoidmain(String[]args){
java.util.Scannerinput=newjava.util.Scanner(System.in);
int[]counts=newint[100];
System.out.print("Entertheintegersbetween1and100:
");
//Readallnumbers
intnumber=input.nextInt();//numberreadfromafile
while(number!
=0){
counts[number-1]++;
number=input.nextInt();
}
//Displayresult
for(inti=1;i<100;i++){
if(counts[i]>0)
System.out.println((i+1)+"occurs"+counts[i]
+((counts[i]==1)?
"time":
"times"));
}
}
}
(4)编写一个方法,使用下面的方法头求出一个整数数组中的最小元素:
publicstaticdoublemin(double[]array)
编写测试程序,提示用户输入10个数字,调用这个方法,返回最小元素值。
(4)publicclassExercise6_9{
//Mainmethod
publicstaticvoidmain(String[]args){
double[]numbers=new