西电计算机Java上机实验报告.docx
- 文档编号:13477585
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:38
- 大小:181.20KB
西电计算机Java上机实验报告.docx
《西电计算机Java上机实验报告.docx》由会员分享,可在线阅读,更多相关《西电计算机Java上机实验报告.docx(38页珍藏版)》请在冰点文库上搜索。
西电计算机Java上机实验报告
西安电子科技大学
Java课程上机练习题
(2016年度)
上
机
报
告
班级:
姓名:
学号:
一、Java语言根底
1、实验目标:
掌握Java语法;掌握Java程序结构;掌握Java编译、调试、运行的方法。
2、实验要求:
编写一个程序,程序提供两种功能:
〔1〕用户输入一个整数,程序计算并输出从1开始到该整数的所有整数之和;同时,计算并输出不大于该整数的所有素数的数目。
〔2〕用户输入一个数字串,程序判断该数字串各位上数字的奇偶性,并分别输出奇、偶数位的计数值及各位的加和值。
3、题目分析:
判断整数是素数要构建一个测试类,然后统计是素数的个数;数字串需要判断每位的数字的奇偶性,那么要将数字串转化为数组的形式,然后进行奇偶判断,进行统计。
4、题目设计实现:
分别设计判断素数、整数求和、格式转变、判断奇偶性、各位求和的函数。
5、实现过程:
//判断一个数是否是素数
publicstaticbooleanisPrime(inta){
booleanflag=true;
if(a<2)
returnfalse;
else
for(inti=2;i<=Math.sqrt(a);i++){
if(a%i==0)
flag=false;
}
returnflag;
}
//在main函数计算求和及判断
publicstaticvoidmain(String[]args){
intsum=0,j=0;
Scannersc=newScanner(System.in);
System.out.println("请输入一个数计算他的和");
intnum=sc.nextInt();
for(inti=1;i<=num;i++){
sum=sum+i;
if(isPrime(i))
j++;
}
System.out.println("这个数的和为"+sum+"\n素数有"+j+"个");
//输入一个字符串并转化为数字存放到数组中
publicstaticvoidmain(String[]args){
System.out.println("请输入一串数字串");
Scannerscan=newScanner(System.in);
Stringline=scan.next();
intodd=0,even=0,sumo=0,sume=0;
char[]c=line.toCharArray();
//求和
for(inti=0;i if((int)c[i]%2==0){ even++; sume=sume+(int)c[i]-48; } else{ sumo=sumo+(int)c[i]-48; odd++; } } System.out.println("奇数共有"+odd+"个\n"+"奇数和为"+sumo); System.out.println("偶数共有"+even+"个\n"+"偶数和为"+sume); } 6、实验结果: 7、个人总结: 通过这次根底练习,对Java的各种标准和函数调用有了一定的熟悉,因为之前的编过类似的,所以用Java上手没有很陌生,算是一个很好的入门根底。 8、源代码: 1.整数 importjava.util.Scanner; publicclasstest{ publicstaticvoidmain(String[]args){ intsum=0,j=0; Scannersc=newScanner(System.in); System.out.println("请输入一个数计算他的和"); intnum=sc.nextInt(); //System.out.println("helloworld! "); for(inti=1;i<=num;i++){ sum=sum+i; if(isPrime(i)) j++; } System.out.println("这个数的和为"+sum+"\n素数有"+j+"个"); sc.close(); } publicstaticbooleanisPrime(inta){ booleanflag=true; if(a<2) returnfalse; else for(inti=2;i<=Math.sqrt(a);i++){ if(a%i==0) flag=false; } returnflag; } } 2.数字串 importjava.util.Scanner; publicclasstest{ publicstaticvoidmain(String[]args){ System.out.println("请输入一串数字串"); Scannerscan=newScanner(System.in); Stringline=scan.next(); intodd=0,even=0,sumo=0,sume=0; char[]c=line.toCharArray(); //System.out.println((int)c[0]); for(inti=0;i if((int)c[i]%2==0){ even++; sume=sume+(int)c[i]-48; } else{ sumo=sumo+(int)c[i]-48; odd++; } } System.out.println("奇数共有"+odd+"个\n"+"奇数和为"+sumo); System.out.println("偶数共有"+even+"个\n"+"偶数和为"+sume); scan.close(); } } 二、Java的面向对象特性 1、实验目标: 掌握面向对象的编程方法;掌握Java的面向对象特性;掌握采用面向对象技术构建系统的一般方法。 2、实验要求: 编写一个程序,程序提供对图形的绘制功能〔模拟绘制,采用文本输出的形式表现绘制内容〕: 1.构建所有图形的父类: Shape,该类中定义图形的根本属性及方法。 2.构建根本图形类: 矩形(Rectangle)、圆(Circle)、正三角形(Triangle)。 3.可通过多态实现对任意图形的绘制。 //上塑型 4.定义静态方法,该方法可以对传入的对象实例进行判断,并输出该对象实例的类型。 //输入输出 5.定义静态方法,该方法可以输出传入的对象实例的中心点坐标。 6.构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。 //用户输入画的图形 3、题目分析: 首先需要构建一个关于图形的类,然后要构建三个特殊的子类,使用继承的思想,实现对图形得绘制和实现 4、题目设计实现: 设计父类,和子类,然后能对输出的类进行判断和选择,并且定义它的中心坐标 5、实现过程: //定义父类及它的方法 publicclassShape{ intlength=0; intwide=0; intline=0; intlist=0; publicShape() { } publicShape(intline,intlist) { this.line=line; this.list=list; } publicvoiddraw() { System.out.println("draw"); } } //定义三个子类 //矩形 classRectangleextendsShape{ publicRectangle(){ super(3,3); } publicvoiddraw(){ System.out.println("drawarectangle"); } } //圆 classCircleextendsShape{ publicCircle(){ super(4,2); } publicvoiddraw(){ System.out.println("drawaCircle"); } } //三角 classTriangleextendsShape{ publicTriangle(){ super(1,3); } publicvoiddraw(){ System.out.println("drawaTriangle"); } } //输出类的定义 classprintData{ staticvoidprintClass(Objectobj){ System.out.println("theclassoftheShapeis: "+obj.getClass()); }//输出类名 staticvoidprintrank(Shapestr){ System.out.println("thecoordinateofthecentreis: x: "+str.line+"y: "+str.list); }//输出中心点坐标 } //main函数中进行交互和判断 publicstaticvoidmain(String[]args){ intnum=-1; Scannersr=newScanner(System.in); //交互选择 while(num! =3){ System.out.println("pleaseinputthenumberoftheshapeyouwant"); System.out.println("0: Rectangle1: Circle2: Triangle3: exit"); num=sr.nextInt(); Shapes=newShape(); switch(num) { case0: { s=newRectangle();//向上转型 s.draw(); printData.printClass(s); printData.printrank(s); break; } case1: { s=newCircle(); s.draw(); printData.printClass(s); printData.printrank(s); break; } case2: { s=newTriangle(); s.draw(); printData.printClass(s); printData.printrank(s); break; } case3: break; default: System.out.println("it'swrong! "); break; } } System.out.println("youhaveexit"); sr.close(); } 6、实验结果: 7、个人总结: 通过这次作业,学会了Java继承的根底用法,并在定义中使用静态方法和重构等一些用法来实现转型,可能是用的不熟,过程中出现了大量的错误,经过几次修改终于做了出来,收获很大。 8、源代码: importjava.util.Scanner; publicclassShape{ intlength=0; intwide=0; intline=0; intlist=0; publicShape() { } publicShape(intline,intlist) { this.line=line; this.list=list; } publicvoiddraw() { System.out.println("draw"); } } classRectangleextendsShape{ publicRectangle() { super(3,3); } publicvoiddraw() { System.out.println("drawarectangle"); } } classCircleextendsShape{ publicCircle() { super(4,2); } publicvoiddraw() { System.out.println("drawaCircle"); } } classTriangleextendsShape{ publicTriangle() { super(1,3); } publicvoiddraw() { System.out.println("drawaTriangle"); } } classprintData{ staticvoidprintClass(Objectobj){ System.out.println("theclassoftheShapeis: "+obj.getClass()); } staticvoidprintrank(Shapestr){ System.out.println("thecoordinateofthecentreis: x: "+str.line+"y: "+str.list); } } classTestShape{ publicstaticvoidmain(String[]args){ intnum=-1; Scannersr=newScanner(System.in); while(num! =3){ System.out.println("pleaseinputthenumberoftheshapeyouwant"); System.out.println("0: Rectangle1: Circle2: Triangle3: exit"); num=sr.nextInt(); Shapes=newShape(); switch(num) { case0: { s=newRectangle();//向上转型 s.draw(); printData.printClass(s); printData.printrank(s); break; } case1: { s=newCircle(); s.draw(); printData.printClass(s); printData.printrank(s); break; } case2: { s=newTriangle(); s.draw(); printData.printClass(s); printData.printrank(s); break; } case3: break; default: System.out.println("it'swrong! "); break; } } System.out.println("youhaveexit"); sr.close(); } } 三、Java的高级语言特征 1、实验目标: 熟悉Java的泛型;了解Java的泛型特点;初步掌握Java的泛型编程方法。 2、实验要求: 编写一个程序,程序提供记事本功能: 1.构建记事本类,该类能存储不定数量的记录;能获得已经存储的记录数量;能追加记录;能展示已经存储的全部记录或其中任何一条记录;能删除已经存储的全部记录或其中任何一条记录。 2.构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。 3、题目分析: 构建一个记事本类,要存储不定量的记录,需要用链表数组存放,利用链表数组的功能可以查询、添加、显示、删除记录。 进行与用户交互,建立测试类。 4、题目设计实现: 记事本类,用泛型ArrayList,建立测试类isTest(),进行与用户交互,再构建一个显示类showText()和删除类deleteText()。 5、实现过程: staticArrayList //建立显示类,显示选择的记录 publicstaticvoidshowText(ArrayList if(list.isEmpty()) System.out.println("尚无记录\n"); else{ if(n==0) for(intj=0;j System.out.println((j+1)+": "+diaryText.get(j)); elseif(n>0&&n<=list.size()) System.out.println(n+": "+diaryText.get(n-1)); else System.out.println("输入错误,请重新输入\n"); } } //建立删除类,删除选择的记录 publicstaticvoiddeleteText(ArrayList if(list.isEmpty()) System.out.println("尚无记录\n"); else{ if(n==0){ list.clear(); System.out.println("已去除全部记录\n"); } elseif(n>0&&n<=list.size()){ list.remove(n-1); System.out.println("已删除第"+n+"条数据\n"); } else System.out.println("输入错误,请重新输入\n"); } } //建立测试类,与用户进行交互 publicstaticvoidisTest(){ intnum=0,i=0; Stringstr; Scannerinput=newScanner(System.in); System.out.println("记事本功能"); System.out.println("请输入想要执行的功能"); while(true){ System.out.println("1——记事"); System.out.println("2——已记录数"); System.out.println("3——追加记录"); System.out.println("4——显示已存储记录〔0为全部记录〕"); System.out.println("5——删除记录〔0为全部记录〕"); System.out.println("6——退出"); num=input.nextInt(); if(num==6){ System.out.println("您已退出程序\n"); input.close(); System.exit(0); } elseswitch(num){ case1: { System.out.println("请输入内容"); input.nextLine(); str=input.nextLine(); diaryText.add(str); System.out.println("已保存\n"); break; } case2: { System.out.println("已记录数为: "+diaryText.size()+"\n"); break; } case3: { System.out.println("请输入修改的记录号"); i=input.nextInt(); System.out.println("请输入修改内容"); input.nextLine(); str=input.nextLine(); diaryText.set(i-1,str); System.out.println("已修改\n"); break; } case4: { System.out.println("请输入要显示第几条的内容"); i=input.nextInt(); showText(diaryText,i); break; } case5: { System.out.println("请输入要删除第几条的内容"); i=input.nextInt(); deleteText(diaryText,i); break; } default: { System.out.println("输入错误,请重新输入! \n"); break; } } } } 6、实验结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 Java 上机 实验 报告