学生实验报告(理工类)课程名称:Java实验专业班级:13软件工程2班学生学号:1305104061学生姓名:葛石所属院部:软件工程指导教师:陈圣国2014——2015学年第1学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:Java编程基础实验学时:2同组学生姓名:实验地点:A205实验日期:实验成绩:批改教师:批改时间:一、实验目的(1)熟练掌握JDK编写调试Java应用程序及Java小程序的方法。(2)熟练掌握Java应用程序及小程序的结构。(3)了解Java语言的特点,基本语句、运算符及表达式的使用方法。(4)熟练掌握常见数据类型的使用。(5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法。二、实验要求(1)调试程序要记录调试过程中出现的问题及解决办法;(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(3)做完实验后给出本实验的实验报告。三、实验设备、环境奔腾以上计算机,Windows2000、J2SDK、IE浏览器三、实验过程(1)输入并用JDK编译运行下面的程序classHelloWorld{publicstaticvoidmain(String[]args){System.out.println(“Hello,world”);}}(2)2-18publicclass素数判断{publicstaticvoidmain(String[]args){//自动生成的方法存根intmymin=1;intmymax=100;inti,j;for(i=mymin;i=mymax;i++){if(i==1){continue;}for(j=2;j=i;j++){if((i%j)==0){break;}}if(j==i){System.out.print(+i);}}}}(3)2-19publicclass等腰杨辉三角{publicstaticvoidmain(String[]args){intn=9,j,i,k;inta[]=newint[n+1];a[0]=a[1]=1;for(i=0;in*10+2;i++)System.out.print();System.out.println(a[0]);for(i=0;i10*n;i++)System.out.print();System.out.println(a[0]++a[1]);for(i=1;in;i++){a[i+1]=a[i];for(j=i;j0;j--){a[j]=a[j-1]+a[j];}for(k=0;k(10*n-i*2);k++)System.out.print();for(j=0;ji+2;j++){System.out.print(a[j]+);}System.out.println();}}}(4)2-28publicclass判断回文字符串{publicstaticbooleanpdhw(Strings){inti;chara,b;for(i=0;is.length()/2;i++){a=s.charAt(i);b=s.charAt(s.length()-i-1);if(a!=b){returnfalse;}}returntrue;}publicstaticvoidmain(String[]args){Stringa=321321123123;if(pdhw(a))System.out.println(yse!);elseSystem.out.println(no!);}}(5)2-32publicclassMyDouble{//返回实数字符串表示的浮点数值publicstaticdoubleparseDouble(Strings){inti=0,sign=s.charAt(0)=='-'?-1:1;//sign记住符号位if(s.charAt(0)=='+'||s.charAt(0)=='-')//跳过符号位i++;doublevalue=0,power=0.1;//power表示底数为10的幂while(is.length()&&(s.charAt(i)='0'&&s.charAt(i)='9'))//获得整数部分值value=value*10+s.charAt(i++)-'0';if(is.length()&&s.charAt(i)=='.')//若是小数点{i++;while(is.length()&&s.charAt(i)='0'&&s.charAt(i)='9')//获得小数部分值{value+=(s.charAt(i)-'0')*power;i++;power*=0.1;}}value*=sign;if(is.length()&&(s.charAt(i)=='E'||s.charAt(i)=='e'))//处理阶码{i++;power=(s.charAt(i)=='-')?0.1:10;//阶码的符号位决定指数的正负及其运算if(s.charAt(i)=='+'||s.charAt(i)=='-')i++;intexp=0;while(is.length()&&s.charAt(i)='0'&&s.charAt(i)='9')exp=exp*10+s.charAt(i++)-'0';//获得指数的绝对值for(intj=0;jexp;j++)value*=power;}returnvalue;}publicdoubletoDouble(Strings)//返回实数字符串表示的浮点数值{intj=s.indexOf('.'),k=s.indexOf('E');//寻找小数点和Eif(k==-1)k=s.indexOf('e');if(j==-1&&k==-1)returnInteger.parseInt(s);//s中没有小数和阶码部分,获得整数值返回inti=0,sign=s.charAt(0)=='-'?-1:1;//sign记住符号位if(s.charAt(0)=='+'||s.charAt(0)=='-')//跳过符号位i++;doublevalue=0,power=0.1;//power表示底数为10的幂if(j!=-1)//s中有小数部分{value=Integer.parseInt(s.substring(i,j));//获得正整数部分值j++;//跳过小数点while(js.length()&&s.charAt(j)='0'&&s.charAt(j)='9')//获得小数部分值{value+=(s.charAt(j)-'0')*power;j++;power*=0.1;}}value*=sign;if(k!=-1)//处理阶码{if(j==-1)//s中没有小数部分value=Integer.parseInt(s.substring(0,k));//获得整数部分值k++;power=(s.charAt(k)=='-')?0.1:10;//阶码的符号位决定指数的正负及其运算if(s.charAt(k)=='+'||s.charAt(k)=='-')k++;intexp=Integer.parseInt(s.substring(k));//获得指数部分的正整数值for(j=0;jexp;j++)value*=power;}returnvalue;}}四、实验结果与分析(1)比较Java语言与C的程序结构Java是一种面向对象的程序设计语言而C语言则是一种面向过程的程序设计语言(2)Java语言中的数组与C语言中的数组相比有什么不同,它的优点是什么?c的数组名是指向该数组首地址的指针,而JAVA的数组名,是一个引用而已。(3)比较Java各种流程控制语句的特点,它们的适用场合if语句是java中的条件分支语句,它能让程序在两个不同的路径中执行。if语句的执行过程如下:如果条件为真,就执行语句1(statement1),否则就执行语句2(statement2)(如果它存在),不存在两条语句都执行的情况。在使用if语句时,利用花括号是很方便的,甚至当有每条子句中仅有一条语句时也如此。嵌套(nested)的if语句是指另一条if或else的目标,当使用嵌套if语句时要记住,else语句总是对应着和此else在同一个块内的最近的if语句,而且该if语句没有和其它else语句相关联。Switch语句是java的多路分支语句。它提供了一种简单的方法,使程序根据表达式的值来执行不同的程序部分,是一个比if—else—if语句更好的选择。表达式expresson必须是byte,shout,int,或char类型,在case语句中指定的每个值value必须是和表达式兼容的类型(枚举值也可用于控制switch),将在以后讨论,每case值必须是惟一的字面量(即它必须是一个常量,而不是一个变量),不允许重复使用case值。Switch语句的执行过程如下:表达式的值与case语句中的每个字面量值相比,如果发现一个与之相匹配的,则执行该case语句后的代码,如果不存在匹配表达式值的常量,那么执行default语句,当然,default语句是可选的,如果没有相匹配的case语句,也没有default语句,则什么也不执行。有3个重要的特征需要注意:1、switch语句与if语句不同之处在于:switch语句仅能测试相等的情况,而if语句能够计算任何类型的布尔表达式,也就是switch语句仅能查找表达式值与某个case常量是否匹配。2、在任何一个switch语句中不能有两个相同的case常量,当然嵌套的是可以的。3、switch语句比一组嵌套的if语句更高效。while循环是java的最基本的循环语句,当控制条件为真时,它重复执行一条语句或一个语句块。当有时我们希望至少执行一次while循环时,即使表达式在开始时就为假也如此,即在循环的末尾而不是循环的开始处测试终止表达式,java提供了这样的循环:do—while.do—while循环至少执行它的循环体一次,因为它的条件表达式在循环的结尾。for循环的执行过程是:当循环第一次开始时,执行循环的初始化部分(initialization)。这是一个设置循环控制变量值的表达式,其中的循环控制变量作为控制循环的计数器使用(即初始化只执行一次)。接下来,计算条件(condition)的值,这必须是一个布尔表达式,它通常依据一个目标值来测试循环控制变量。如果表达式为真,那么执行循环体,如果为假,则循环终止。接下来,执行循环的迭代(iteration)部分。这通常是一个表达式,该表达式可增加或减小循环控制变量。然后迭代循环:首先计算条件表达式,执行循环体,然后在每次传递时执行迭代表达式,重复该过程,直到控制表达式为假。控制for循环的变量通常只用于该循环,而不在程序其他地方使用,,当for语句结束时,该变量的作用域也就结束了,(即变量的作用域限定在fo