计科1141广东海洋大学java实验二详解.docx
《计科1141广东海洋大学java实验二详解.docx》由会员分享,可在线阅读,更多相关《计科1141广东海洋大学java实验二详解.docx(9页珍藏版)》请在冰豆网上搜索。
计科1141广东海洋大学java实验二详解
GDOU-B-11-112
广东海洋大学学生实验报告书(学生用表)
实验名称
实验二Java流程控制
课程名称
Java程序设计与开发技术
课程号
学院(系)
数学与计算机学院
专业
计算机科学与技术
班级
计科
学生姓名
邓超荣
学号
201411621110
实验地点
钟海楼
04017
实验日期
2016.10.15
一实验目的:
掌握Java流程控制语句
掌握字符串的定义与使用
二实验内容:
1、超级素数:
一个n位超级素数是指一个n位正整数,它的前1位,前2位,...,前n位均为素数,例如,7331是个4位超级素数,因为7,73,733,7331均为素数。
由键盘输入n(n<9),然后输出全部的1---n位超级素数.
可参考下面的类
classPrime{
publicbooleanisPrime(longnum){//输入:
一个长整数,若为素数则返回true,否则返回false;
if(num==1)returnfalse;
for(longi=2;i<=Math.sqrt(num);i++){
if(num%i==0)
returnfalse;
}
returntrue;
}
publicbooleanfindPrime(longa){//判断一个数是否为超级素数
booleanflagPrime=true;
longb;
b=a;
while(b>=10)b=b/10;
if(b==1)returnfalse;
b=a;
flagPrime=true;
while(b>0)
{
flagPrime=flagPrime&&isPrime(b);
if(flagPrime==true)
b=b/10;
else
break;
}
if(flagPrime==true)
returntrue;
else
returnfalse;
}
}
实验代码:
Test_01.java
packageeclipse_test5;
Prime.java
importjava.util.Scanner;
publicclasstest_01{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intn;
Primeprime=newPrime();
Scannerscan=newScanner(System.in);
System.out.println("请输入N的值(N<9)");
n=scan.nextInt();
System.out.println("超级素数是:
");
System.out.println(""+2);
for(inti=3;iif(prime.findPrime(i)==true)
System.out.println(""+i);
}
scan.close();
}
staticlongexp(intx){//产生10^x这样的数
longnum=1;
if(x>9)x=9;
for(inti=1;i<=x;i++){
num=num*10;
}
returnnum;
}
}
importjava.util.Scanner;
//超级素数
classPrime{
publicbooleanisPrime(longnum){//输入:
一个长整数,若为素数则返回true,否则返回false;
if(num==1)returnfalse;
for(longi=2;i<=Math.sqrt(num);i++){
if(num%i==0)
returnfalse;
}
returntrue;
}
publicbooleanfindPrime(longa){//判断一个数是否为超级素数
booleanflagPrime=true;
longb;
b=a;
while(b>=10)b=b/10;
if(b==1)returnfalse;
b=a;
flagPrime=true;
while(b>0)
{
flagPrime=flagPrime&&isPrime(b);
if(flagPrime==true)
b=b/10;
else
break;
}
if(flagPrime==true)
returntrue;
else
returnfalse;
}
}
运行结果
2.编写一加密程序,要求从键盘上输入一个字符串,然后输出加密后的字符串。
加密规则为对每个字母的转换为下一个字母,如对小写字母:
a->b,b->c…..,y->z,z->a,对大写字母:
A->B,B->C,….,Y->Z,Z->A,对数字:
0->1,1->2,…,8->9,9->0,对于空格或其它字符则不进行变换.
如一串字符:
Hellophoneis2320119加密后就为:
Ifmmpqipofjt3431220
并编写相应的解密程序,即输入密文,输出明文。
实验代码:
packageeclipse_test6;
importjava.util.Scanner;
publicclasstest_02{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("请输入一个字符串:
");
Stringstr=sc.nextLine();
System.out.println("原来的字符串是:
"+str);
StringBufferss=newStringBuffer(str);
for(inti=0;icharc=ss.charAt(i);
if(c>='0'&&c<='9'){
if(c=='9'){
c=(char)(c-9);
}else{
c=(char)(c+1);
}
}elseif(c>='A'&&c<='z'){
if(c=='z'||c=='Z'){
c=(char)(c-25);
}
else{
c=(char)(c+1);
}
}else{
c=(char)c;
}
ss.setCharAt(i,c);
}
System.out.println("加密后的字符串为:
"+ss);
StringBufferss2=ss;
for(inti=0;icharc=ss2.charAt(i);
if(c>='0'&&c<='9'){
if(c=='0'){
c=(char)(c+9);
}else{
c=(char)(c-1);
}
}elseif(c>='A'&&c<='z'){
if(c=='a'||c=='A'){
c=(char)(c+25);
}
else{
c=(char)(c-1);
}
}else{
c=(char)c;
}
ss2.setCharAt(i,c);
}
System.out.println("解密后的字符串为:
"+ss2);
sc.close();
}
}
运行结果:
成绩
指导教师
甘元驹
日期
2016年9月28日
注:
请用A4纸书写,不够另附纸。
第 页,共 页