JAVA实验二.docx
《JAVA实验二.docx》由会员分享,可在线阅读,更多相关《JAVA实验二.docx(16页珍藏版)》请在冰豆网上搜索。
JAVA实验二
上海电力学院
Java程序设计实验
题目实验二Java基本数据类型与控制语句
学号20133010
姓名郭昕班级2013221
院系计算机科学与技术学院专业软件工程
§2.1.1实验目的、内容及性质
1掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;
2掌握使用if…elseif多分支语句;
3使用if…else分支和while循环语句解决问题。
§2.2.3实验指导
1.输出希腊字母表。
(代码补充完整,并完成调试,将运行结果截图)
✧实验要求:
编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
GreekAlphabet.java
publicclassGreekAlphabet
{
publicstaticvoidmain(Stringargs[])
{
intstartPosition=0,endPosition=0;
charcStart='α',cEnd='ω';
【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition
【代码2】//cEnd做int型转换运算,并将结果赋值给endPosition
System.out.println("希腊字母\'α\'在unicode表中的顺序位置:
"+(int)c);
System.out.println("希腊字母表:
");
for(inti=startPosition;i<=endPosition;i++)
{
charc='\0';
【代码3】//i做char型转换运算,并将结果赋值给c
System.out.print(""+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
2.回文数。
(代码补充完整,并完成调试,将运行结果截图)
✧实验要求:
编写一个Java应用程序。
用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。
回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
Number.java
importjavax.swing.JOptionPane;
publicclassNumber
{
publicstaticvoidmain(Stringargs[])
{
intnumber=0,d5,d4,d3,d2,d1;
Stringstr=JOptionPane.showInputDialog("输入一个1至99999之间的数");
number=Integer.parseInt(str);
if(【代码1】)//判断number在1至99999之间的条件
{
【代码2】//计算number的最高位(万位)d5
【代码3】//计算number的千位d4
【代码4】//计算number的百位d3
d2=number%100/10;
d1=number%10;
if(【代码5】)//判断number是5位数的条件
{
System.out.println(number+"是5位数");
if(【代码6】)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(【代码7】)//判断number是4位数的条件
{
System.out.println(number+"是4位数");
if(【代码8】)//判断number是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(【代码9】)//判断number是3位数的条件
{
System.out.println(number+"是3位数");
if(【代码10】)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d2!
=0)
{
System.out.println(number+"是2位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d1!
=0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d不在1至99999之间",number);
}
}
}
源程序:
importjavax.swing.JOptionPane;
publicclassEx2_2{
publicstaticvoidmain(Stringargs[])
{
intnumber=0,d5,d4,d3,d2,d1;
Stringstr=JOptionPane.showInputDialog("输入一个1至99999之间的数");
number=Integer.parseInt(str);
if(number>=1&&number<=99999){
d5=number/10000;
d4=number%10000/1000;
d3=number%1000/100;
d2=number%100/10;
d1=number%10;
if(d5!
=0){
System.out.println(number+"是5位数");
if(d1==d5&&d2==d4)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d4!
=0)//判断number是4位数的条件
{
System.out.println(number+"是4位数");
if(d1==d4&&d2==d3)//判断number是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d3!
=0)//判断number是3位数的条件
{
System.out.println(number+"是3位数");
if(d1==d3)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d2!
=0)
{
System.out.println(number+"是2位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d1!
=0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.println("\n%d不在1至99999之间");
}
}
}
§2.2.4实践编程
1、古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
源代码:
importjava.util.*;
publicclassEx2_04{
//斐波那契数列,Sn=Sn-1+Sn-2
publicstaticvoidmain(String[]args){
longs1,s2;//定义这个月和下个月兔子的数量
s1=1;//第一个月为1对
s2=1;//第二个月为1对
inti=1;//定义一个控制变量
intm;//月份数
Scannerin=newScanner(System.in);//从控制台输入想要查看的月份
System.out.println("请输入你想要查看的月数:
");//输入提示
m=in.nextInt();//输入的整数月份赋值给m
//while循环
while(true){
//第一个月和第二个月兔子的数量都为1对
if(i==1||i==2){
System.out.println(i+"month:
"+s1);
i++;//控制变量i加1
}
//i大于3并且小于我们需要查看的月份
elseif(is1=s1+s2;
s2=s1+s2;
System.out.println(i+"month:
"+s1);
i++;//月份加1
System.out.println(i+"month:
"+s2);
i++;//朋份加1
}else{
break;//不符合条件就退出
}
}
}
}
2.输入整数a和b,如果a能被b整除,就输出算式和商,否则输出算式、整数商和余数。
源代码:
importjava.util.*;
publicclassEx2_03{
publicstaticvoidmain(String[]args){
inta,b;
Scannerin1=newScanner(System.in);//从控制台输入a
Scannerin2=newScanner(System.in);//从控制台输入b
System.out.println("请输入a和b:
");
a=in1.nextInt();
b=in2.nextInt();
intc,d;
c=b%a;//取余数
d=b/a;//取商
if(c==0)//可以整除时
System.out.println("b%a的商:
"+d);
else//不能整除时
System.out.println("b%a整数商:
"+d+"余数:
"+c);
}
}
3.判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
源代码:
importjava.util.*;
publicclassEx2_05{
publicstaticvoidmain(String[]args)
{
intx=0;
Vectorv=newVector();//集合,用来装所有的素数
for(inti=101;i<=200;i++)
{
booleanb=true;//标签为b为真
for(intj=2;j
{
if(i%j==0)//求余数是否为0
{
b=false;//如果为0,将标签设置为false
break;//可以整除就跳出这个循环
}
}
if(b==true)//
{
v.add(i);//将符合要求的i加到集合里
x++;//素数个数加1
}
}
System.out.println("100到200中间有"+x+"个素数");
System.out.println("素数为:
/n"+v);
}
}