JAVA实验报告模板.docx
《JAVA实验报告模板.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告模板.docx(22页珍藏版)》请在冰豆网上搜索。
JAVA实验报告模板
本科实验报告
课程名称:
Java语言程序设计
实验地点:
明相校区软件学院机房
专业班级:
软件1406学号:
2014005649
学生姓名:
杜向楠
指导教师:
李君婵
2015年11月26日
实验名称
实验一:
JAVA语言基础
实验目的和要求
(1)通过实验,掌握Java语言程序设计的基本方法。
(2)学会Java语言中标示符的命名、运算符和表达式的应用。
(3)熟练地掌握Java程序流程控制语句的应用。
实验内容
(1)编写应用程序,计算100(含100)以内所有偶数的和。
(2)“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。
编写程序,求所有的水仙花数。
(3)编写一个程序,求1-100间的素数。
(4)有一函数:
x(x<1)
Y=3x-2(1≤x<10)
4x(x≥10)
写一程序,给定x值,输出y值。
(5)使用for循环语句,编写程序输出以下图案。
☆
☆☆☆
☆☆☆☆☆
☆☆☆☆☆☆☆
☆☆☆☆☆
☆☆☆
☆
主要仪器设备
台式或笔记本电脑
实验记录
实验一:
package判断偶数;
publicclass求和{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=0;i<=100;i=i+2)
sum=sum+i;
System.out.println(sum);
//TODOAuto-generatedmethodstub
}
}
实验结果
实验2
package水仙花;
publicclassflower{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
for(inti=100;i<=999;i++)
{
intg,s,b;
b=1/100;
s=(i-b*100)/10;
g=i-b*100-s*10;
if(i==g*g*g+s*s*s+b*b*b)
{
System.out.println(i);
}
}
//TODOAuto-generatedmethodstub
}
}
实验结果
实验3
实验4
实验5
packagefor循环1;
importjava.io.*;
publicclassfor循环3{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsIOException{
for(inti=0;i<9;i++){
if(i>1&&i%2==0);
else{
System.out.print("\n");
for(intk=9;k>i/2;k--)
System.out.print("");
for(intj=0;j
System.out.print("*");
}
}
}
for(inti=5;i>0;i--){
if(i>1&&i%2==0);
else{
System.out.print("\n");
for(intk=9;k>i/2;k--)
System.out.print("");
for(intj=0;j
System.out.print("*");
}
}
}
//TODOAuto-generatedmethodstub
}
}
实验结果
遇到的问题和解决方法
心得体会
实验名称
实验三简单程序、分支程序和循环程序设计
实验四数组应用程序设计
实验目的和要求
1.理解C语言程序的基本结构和实现基本结构的语句;
2.熟练应用赋值、输入和输出语句;
3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;
4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;
5.掌握数组的定义、初始化和数组元素的引用方法;
6.掌握与数组有关的算法,如:
求最大(小)值,排序等;
7.理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数。
实验内容
1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:
π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6的偶数都可以表示为两个素数之和,如:
100=3+97。
7.有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中。
8.输入一个英文句子,统计单词的个数。
主要仪器设备
台式或笔记本电脑
实验记录(写出实验内容中3,5,6,8的程序代码和运行结果)(可分栏或加页)
3.#include
#definepi3.14
voidmain()
{
floatr=1.5,h=3,c,s,v;
c=2*pi*r;
s=pi*r*r;
v=s*h;
printf("c=%f,s=%f,v=%f\n",c,s,v);
}
4.#include
voidmain()
{
ints;
scanf("%d",&s);
if(s<=100&&s>=0)
{
if(s>=90)
printf("A\n");
elseif(s<=90&&s>=80)
printf("B\n");
elseif(s<=80&&s>=70)
printf("C\n");
elseif(s<=70&&s>=60)
printf("D\n");
else
printf("E\n");
}
else
printf("error\n");
}
5.#include
voidmain()
{
inti=-1,s=-1;
floatt=1,n=1.0/3,k=1;
for(k=2;n>=1e-6;k+=1)
{
t+=s*n;
n=1.0/(2*k+1);
s*=i;
}
printf("pi=%f\n",4*t);
}
6.#include
#include
#defineN65534
intpn(intx)
{
inti,k;
k=(int)sqrt(x);
for(i=2;i<=k;i++)
if(x%i==0)
break;
if(i>k)
return1;
else
return0;
}
voidmain()
{
inta,b,c;
for(a=8;a{
for(b=3;b<(a+1)/2;b++)
{
if(pn(b)&&pn(a-b))
{
c++;
break;
}
}
//printf("%d=%d+%d\n",a,b,a-b);
}
if(a==N)
printf("Allture\n");
else
printf("Noall\n");
}
7.#include
voidmain()
{
inta[10]={10,20,30,40,50,60,70,80,90},*p,i,j,x;
p=a;
printf("Pleaseinputanumber:
\n");
scanf("%d",&x);
for(i=0;i<10;i++)
if(*(p+i)x)
{
j=i;
break;
}
for(i=9;i>j;i--)
*(p+i)=*(p+i-1);
*(p+j+1)=x;
for(i=0;i<10;i++)
printf("%5d",*(p+i));
printf("\n");
}
8.#include
voidmain()
{
inti,n=1;
charstr1[100],*p=str1;
printf("pleaseinputasentence:
\n");
gets(str1);
for(i=1;*(p+i)!
='\0';i++)
if(*(p+i)=='')
n++;
printf("%d\n",n);
}
遇到的问题和解决方法
做5题时,π的值总是出错,开始π的值总是0,经检查后发现是算法无法进入循环,后改进后发现值仍有错误,最后发现是应从第二项开始,改正后输出正确结果。
在验证哥德巴赫猜想时开始一直输出2+n【n有时是非素数】,后发现是仅仅判断b是否为素数,未判断a-b是否为素数,经改正后输出正确结果,但较为繁复,后改进为如果有错,输出Noall,如果全部的证,输出allyes,输出正确。
心得体会
“/”除号左边如果是整型,则输出结果仍为整型,只有当除号左边为实型时,才能输出正确实型答案。
实验名称
实验五指针应用程序设计
实验六函数应用程序设计
实验目的和要求
1.理解指针的概念,掌握指针变量的定义和赋值,掌握使用指针变量访问数据的方法;
2.学会使用指针处理数组中的数据,学会用指针处理字符串;
3.了解指针数组和指向指针的指针;
4.掌握C语言函数的定义、调用和声明方法,掌握函数的参数传递方式;
5.了解变量的作用域和存储类别。
实验内容
1.输入并运行第5章例5-1、例5-3中的程序,观察输出结果,理解指针变量的用法。
2.输入并运行第5章例5-5中的程序,掌握使用指针变量访问数组元素的方法。
3.编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。
(使用指针)
4.设计一函数,判断一个字符串是否是回文。
“回文”是一种顺序读和反序读都一样的字符串,例如:
“121”“abcba”“ABCCBA”。
在主函数中输入字符串并输出判断结果。
5.编写一个程序,由主函数和如下函数构成。
⑴设计函数:
input(),输入n个无序的整数存储在一个数组中;
⑵设计函数:
sort(),用起泡法对数组中的n各数据从大到小排序;
⑶设计函数:
search(),用折半查找法在已排序的n个数种查找指定的数据,若存在,返回其所处的位置,否则,将其插入适当位置使数据仍有序。
在主函数中调用上述函数,验证函数的功能。
6.输入并运行第6章例6-27中的程序,根据输出结果总结局部静态变量的特点。
主要仪器设备
台式或笔记本电脑
实验记录(写出实验内容中3,4,5的程序代码和运行结果)(可分栏或加页)
3.#include
voidmain()
{
chara[100],*p;
inti;
printf("Pleaseinputasentence:
\n");
gets(a);
p=a;
if(*p<='z'&&*p>='a')
*p-=32;
for(i=0;*(p+i)!
='\0';i++)
if(*(p+i)==''&&*(p+i+1)<=122&&*(p+i+1)>=97)
*(p+i+1)-=32;
printf("%s\n",p);
}
4.#include
inthw(char*p)
{
inti,n;
for(i=0;*(p+i)!
='\0';i++)
;
n=i;
for(i=0;i<=n/2;i++)
if(*(p+i)!
=*(p+n-i-1))
break;
if(i>n/2)
return1;
elsereturn0;
}
voidmain()
{
chara[80];
intk;
printf("Pleaseinputacharactor:
\n");
gets(a);
k=hw(a);
if(k)
printf("Yes\n");
elseprintf("No\n");
}
5.#include
voidinput(intn,inta[])
{
inti;
printf("Pleaseinput%dnumbers:
\n",n);
for(i=0;iscanf("%d",&a[i]);
}
voidsort(intn,inta[])
{
inti,j,m,t;
for(i=0;i{
m=i;
for(j=i+1;jif(a[j]>a[m])
m=j;
t=a[i];
a[i]=a[m];
a[m]=t;
}
}
intsearch(intx,inta[],intn)
{
intmax=n-1,min=0,mid,i;
while(min+1!
=max)
{
mid=(min+max)/2;
if(x>a[mid])
min=mid;
elseif(xmax=mid;
else
{
returnmid;
break;
}
}
if(x==a[max])
returnmax;
elseif(x==a[min])
returnmin;
elseif(x!
=a[mid])
{
for(i=1;i<10;i++)
if(a[i-1]>x&&x>a[i])
{
n=i;
break;
}
for(i=9;i>=n;i--)
a[i+1]=a[i];
a[n]=x;
return-1;
}
}
voidmain()
{
intn,a[100],i,k,x;
printf("Pleaseinputaquantity:
\n");
scanf("%d",&n);
input(n,a);
for(i=0;iprintf("%5d",a[i]);
printf("\n");
sort(n,a);
for(i=0;iprintf("%5d",a[i]);
printf("\n");
printf("Pleaseinputanumber:
\n");
scanf("%d",&x);
k=search(x,a,n);
if(k==-1)
{
for(i=0;iprintf("%5d",a[i]);
printf("\n");
}
else
printf("%d\n",k);
}
遇到的问题和解决方法
4题中程序总是停止响应,后经发现是k=hw(a)出错,写成了k=hw(a[]),导致程序无法正确运行出结果,修改后恢复正常。
5题中先是无法正确排序,总是错序或输出错误结果,检查后发现是a[m]写成了m,导致循环无法正确进入,修改后正常输出。
心得体会
调用函数时如果函数中实际参数为数组,调用函数时括号中只写其数组名。
实验名称
实验七结构体应用程序设计
实验八文件操作程序设计
实验目的和要求
1.理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义;
2.掌握结构体变量和结构体数组的初始化方法;
3.掌握结构体变量和结构体成员的引用方法;
4.理解文件、文件类型、文件类型指针,熟悉文件的操作过程。
5.掌握文件打开、关闭和文件读写等文件操作函数的手机用。
实验内容
1.输入并运行第7章例7-1中的程序。
理解结构体类型、变量和结构体成员。
2.编写一个程序实现如下功能:
定义一个点的结构数据类型,实现下列功能:
⑴输入点的坐标值。
⑵求两个点中点坐标。
⑶求两点间距离。
3.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
主要仪器设备
台式或笔记本计算机
实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页)
2.#include
#include
voidmain()
{
inta[2],b[2],x[2];
floatd;
printf("Pleaseinputaposition:
\n");
scanf("%d,%d",&a[0],&a[1]);
printf("Pleaseinputanotherposition:
\n");
scanf("%d,%d",&b[0],&b[1]);
x[0]=(a[0]+b[0])/2;
x[1]=(a[1]+b[1])/2;
d=sqrt((a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1]));
printf("x(%d,%d)\nd=%d\n",x[0],x[1],d);
}
3.#include
#include
structstudent
{
intnumber;
charname[10];
intscore[3];
floatave;
}a[5];
voidmain()
{
inti,j,sum[5]={0,0,0,0,0};
floatave[5];
FILE*fp;
structstudenta[5];
for(i=0;i<5;i++)
{
printf("Pleaseinputthestudentnumber:
\n");
scanf("%d",&a[i].number);
printf("Pleaseinputthestudentname:
\n");
scanf("%s",&a[i].name);//gets(a[i].name);
for(j=0;j<3;j++)
{
printf("Pleaseinputascore:
\n");
scanf("%d",&a[i].score[j]);
}
}
for(i=1;i<5;i++)
{
for(j=1;j<3;j++)
sum[i]+=a[i].score[j];
ave[i]=(float)sum[i]/3;
}
if((fp=fopen("d:
\\stud.txt","wb"))==NULL)
{
printf("Cannotopenfile\n");
exit(0);
}
for(i=0;i<5;i++)
if(fwrite(&a[i],sizeof(structstudent),1,fp)!
=1)
printf("writeerror\n");
fclose(fp);
}
遇到的问题和解决方法
输出时无法正确完成输出的过程,后发现是格式有误,改正后正确运行。
心得体会
涉及文件的部分总是一个固定的程序,其语句多是较为固定的。