收藏 分销(赏)

Java程序设计上机作业(一).doc

上传人:xrp****65 文档编号:6549212 上传时间:2024-12-13 格式:DOC 页数:17 大小:621.50KB 下载积分:10 金币
下载 相关 举报
Java程序设计上机作业(一).doc_第1页
第1页 / 共17页
Java程序设计上机作业(一).doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
《Java程序设计》上机作业(一) 学号: 姓名: 上机作业要求: 请根据题目的要求,将题目答案、程序源代码、运行结果截图统一填入本word文档中,并将本文档更名为“Java_学号_姓名_Lab1.doc”在第3周周日24:00之前以附件的形式发送到ustblili@,邮件的题目设置为“Java_学号_姓名_上机(1)” 。 请严格按照以上名称发送邮件,否则邮箱自动拒收,视为未交该次作业。 《Java程序设计》上机题(一) 1. Java为什么能跨平台运行?请简述原理。 答:因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。 2. 请尝试安装和配置JDK,并给出安装、配置JDK的步骤。 答: (1)双击下载的安装文件启动安装程序,安装程序会开始准备安装 (2)准备好后,会看到“许可证协议”对话框,单击“接受”按钮弹出“自定义安装”对话框。 (1) (2) (3) 可以更改安装位置,单击“下一步”按钮继续。然后会看到安装进度对话框。 (4) 中途出现JRE自定义安装对话框,单击下一步按钮继续。 (5) 之后是安装进度对话框。 (6) 安装结束。 (7) 配置环境变量,首先右击“我的电脑”,在弹出的快捷菜单中选择“属性” 命令,弹出“系统属性”对话框。选择“高级”标签,进入“高级”选项卡找到“环境变量”按钮。 (8) 单击“系统变量”面板下的“编辑”按钮,在弹出的“编辑系统变量”对话框中,将光标移到“变量值”文本框的最前端,将“JDK安装目录\bin;”添加到里面。 (9) 修改完毕后单击“确定”按钮。这是会回到“环境变量”对话框。单击“系统变量”面板中的添加按钮,在弹出的“新建系统变量”对话框中添加CLASSPATH变量,变量的值为“.;C:\Program Files\Java\jdk1.6.0_14\lib”,也就是“.”+“;”+“JDK安装目录”+“\lib”。 (10) 添加完毕后单击“确定”按钮,回到“环境变量”对话框。然后再单击“系统变量” 面板中的“添加”按钮,在弹出的“编辑系统变量”对话框中添加JAVA_HOME变量,变量值为“C:\Program Files\Java\jdk1.6.0_14”,也就是“JDK安装目录”。 (11)添加完毕后单击“确定”按钮,回到“环境变量”对话框。单击“环境变量”对话框最下方的“确定”按钮完成对环境变量的修改和添加。 3. 请问配置JDK时环境变量path和CLASSPATH的作用是什么? 答:1. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。 2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 以下4-7题请在JDK环境下编译和运行。 4. 利用文本编辑器输入课件《第一节 Java语言简介》中的MyJavaApplication.java,并在JDK环境下编译和运行。请将程序编译、运行的结果截图,填入下框中。 5. 如果第4题中在DOS命令下输入:java MyJavaApplication 出现以下结果:Bad command or the file name 可能是什么原因?请说明理由。 答:错误的命令或文件名,说明输入的命令有问题,有可能是因为没有设置环境变量,而导致系统找不到java的编译软件 6. 如果第4题中在DOS命令下输入:java MyJavaApplication 出现以下结果:Exception in thread “main” java.lang.NoClassDefFoundError: MyJavaApplication 可能是什么原因?请说明理由。 答:如果出现了以上错误提示,常见问题有如下两种:1 大小写写错了, 2 路径不正确。 7. 在第4题中MyJavaApplication.class所在路径下, 输入命令:java MyJavaApplication.class,会出现什么结果,为什么? 答:编译完生成.class文件,要执行须输入java MyJavaApplication 以下题目请在Eclipse环境下编译和运行。 8. 编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。 注:系统类Math位于java.lang包中,圆周率π可以由Math类的静态属性PI得到,其定义为“public static final double PI = 3.14159265358979323846;”。 请将源程序文本填入下框: public class Test { public static void main(String[] args) { double I=3.0; double perimeter=2*Math.PI*I; double area=I*I*Math.PI; System.out.println("周长"+perimeter); System.out.println("面积"+area); } } 运行结果截图: 9. 编写一个Java程序,计算一下1,2,…,9这9个数字可以组成多少个互不相同的、无重复数字的三位偶数。 请将源程序文本填入下框: public class Three{ private int i; private int j; private int k; public int counter() { int count=0; for(i=1;i<=9;i++) for(j=1;j<=9;j++) for(k=2;k<=8;k++) { if(i!=j&&j!=k&&i!=k&&(k%2)==0) { count++; } } return count; } } class countIt{ public static void main(String[]args){ Three myThree=new Three(); System.out.println("总共有"+myThree.counter()+"个互不相同无重复数字的三位偶数。"); } } 运行结果截图: 10. 求m+mm+mmm+…+m…m(n个)的和,其中m为1~9之间的整数。 例如,当m=3、n=4时,求3+33+333+3333的和。 要求:将m和n定义为类的属性,在构造函数中对m和n进行赋值。 请将源程序文本填入下框: import java.util.Scanner; public class repeatNumber { private int m; private int n; public repeatNumber(){ Scanner scan=new Scanner(System.in); System.out.println("请输入一个m(1~9之间的整数)"); m =scan.nextInt(); System.out.println("请输入一个数n(n>=1)作为加数的个数:"); n =scan.nextInt(); } public int Sumer(){ int sum=0; int i=0,j=0,k=0; for(i=1;i<=n;i++) { for(j=1;j<=i;j++) { if(j==1) { k=m; } else k+=k*10; } sum+=k; k=0; } return sum; } } class myRepeatNumber{ public static void main(String[] args) { repeatNumber TheRepeater = new repeatNumber(); System.out.println("求和得到的结果是:"+TheRepeater.Sumer()); } } 运行结果截图: 11. 给定一个正整数m,统计m的位数,分别打印每一位数字,再按照逆序打印出各位数字。 要求:m定义为类的属性,需定义构造函数为m赋值;当m大于99999时,输出错误信息“the number is too large”,不再执行。 请将源程序文本填入下框: import java.util.Scanner; public class printTheNumber { private long m; public printTheNumber(){ Scanner scan=new Scanner(System.in); System.out.println("请输入一个正整数m:"); m=scan.nextInt(); } public void PrintIt(){ int[] a; long x=m; a=new int[100]; int i=0,j,k=0; long h; if(m>99999) System.out.println("Sorry ,the number is too large!"); else{ for(j=1;;j++) { h=x/10; x=h; if(h==0) { System.out.println("m的位数为:"+j); break; } } for(k=j-1;k>=0;k--) { a[k]=(int)m%10; m=m/10; } System.out.println("正序输出为:"+'\n'); for(i=0;i<j;i++) { System.out.println("第"+i+"个数字是"+a[i]+'\n'); } System.out.println("逆序输出为:"+'\n'); for(i=j-1;i>=0;i--) { System.out.println("第"+i+"个数字是"+a[i]+'\n'); } } } } class myPrintTheNumber{ public static void main(String[] args){ printTheNumber PrintItOut=new printTheNumber(); PrintItOut.PrintIt(); } } 运行结果截图: 12. 给定一个正整数m,统计m的位数,分别打印每一位数字,再按照逆序打印出各位数字。 要求:m定义为类的属性,需定义构造函数为m赋值; m的值无限制。 请将源程序文本填入下框: import java.util.Scanner; public class printTheNumber { private long m; public printTheNumber(){ Scanner scan=new Scanner(System.in); System.out.println("请输入一个正整数m:"); m=scan.nextInt(); } public void PrintIt(){ int[] a; long x=m; a=new int[100]; int i=0,j,k=0; long h; for(j=1;;j++) { h=x/10; x=h; if(h==0) { System.out.println("m的位数为:"+j); break; } } for(k=j-1;k>=0;k--) { a[k]=(int)m%10; m=m/10; } System.out.println("正序输出为:"+'\n'); for(i=0;i<j;i++) { System.out.println("第"+i+"个数字是"+a[i]+'\t'); } System.out.println("逆序输出为:"+'\n'); for(i=j-1;i>=0;i--) { System.out.println("第"+i+"个数字是"+a[i]+'\t'); } } } class myPrintTheNumber{ public static void main(String[] args){ printTheNumber PrintItOut=new printTheNumber(); PrintItOut.PrintIt(); } } 运行结果截图: 13. 编写一个学生类,该类具有属性“姓名”name、学号id、综合成绩total、体育成绩sports,构造方法、以及查询学生的综合成绩和体育成绩的方法;生的构造方法带有四个参数,分别设置学生的姓名、考号、综合成绩和体育成绩。 编写一个学校类,该类具有属性“录取分数线”line、构造方法、对该属性进行设置和查询的方法,以及一个判断判断某个学生是否符合该学校的录取条件的方法。录取条件为:综合成绩在录取分数线以上,或者体育成绩在95以上并且综合成绩大于300。在该类的main()方法中,新建若干个学生对象(5个以上,应覆盖各种情况),对符合录取条件的学生,输出其相关信息及“被录取”。 请将源程序文本填入下框: import java.util.Scanner; import java.io.*; public class Student { public String name; public String id; private int sports; private int total; public Student() throws IOException{ Scanner scan=new Scanner(System.in); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入该学生的姓名:"+'\t'); name=br.readLine(); System.out.println("请输入该学生的学号:"+'\t'); id=br.readLine(); System.out.println("请输入该学生的总成绩:"+'\t'); total=scan.nextInt(); System.out.println("请输入该学生的体育成绩:"+'\t'); sports=scan.nextInt(); } public int TotalScore(){ int Tscore; Tscore=total; return Tscore; } public int SportScore(){ int Sscore; Sscore=sports; return Sscore; } } class School{ private static int line=600; private static int k=0; private static String code="123456"; private static String YourCode; public School(){ Scanner scan=new Scanner(System.in); System.out.println("请输入本校录取分数线:"); line=scan.nextInt(); } public static void CheckAndChange() throws IOException{ int i=0,m; boolean j; System.out.println("请选择执行的操作:"+'\t'+"1、查询录取分数"+'\t'+"2、修改录取分数"+'\t'); Scanner scan=new Scanner(System.in); i=scan.nextInt(); if(i==1) { System.out.println("本校的录取分数线是:"+line); } if(i==2) { BufferedReader bi=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入管理员密码:"); YourCode=bi.readLine(); m=YourCpareTo(code); if(m!=0) j=true; else j=false; while(j) { System.out.println("您输入的密码错误!请重新输入") ; k++; if(k==3) { System.out.println("输入次数已达三次!"); k=0; break; } System.out.println("请输入管理员密码:"); YourCode=bi.readLine(); m=YourCpareTo(code); if(m!=0) j=true; else j=false; } if(!j) { System.out.println("请输入新的录取分数线:"); line=scan.nextInt(); } } } public static void Admission(Student Someone){ if(Someone.SportScore()>95&&Someone.TotalScore()>300) { System.out.println("恭喜你!"+Someone.name+"同学,"+"你被本校录取了!"+'\t'); } else if(Someone.TotalScore()>=line) { System.out.println("恭喜你!"+Someone.name+"同学,"+"你被本校录取了!"); } else System.out.println("非常抱歉!您没被本校录取。"); } public static void main(String[] args) throws IOException{ int i,p; Scanner scan=new Scanner(System.in); System.out.println("请选择要查询的人名:1.zhang3 2.li4 3.xiaoming 4.xiaohu 5.xiaozhao"); p=scan.nextInt(); switch (p) { case 1: { Student zhang3=new Student(); System.out.println("请选择您需要的服务:"+"1.查询是否被录取"+"2.查询或修改本校录取分数线"); i=scan.nextInt(); switch (i) { case 1: Admission(zhang3);break; case 2: CheckAndChange();break; } }break; case 2: { Student li4=new Student(); System.out.println("请选择您需要的服务:"+"1.查询是否被录取"+"2.查询或修改本校录取分数线"); i=scan.nextInt(); switch (i) { case 1: Admission(li4);break; case 2: CheckAndChange();break; } }break; case 3: { Student xiaoming=new Student(); System.out.println("请选择您需要的服务:"+"1.查询是否被录取"+"2.查询或修改本校录取分数线"); i=scan.nextInt(); switch (i) { case 1: Admission(xiaoming);break; case 2: CheckAndChange();break; } }break; case 4: { Student xiaohu=new Student(); System.out.println("请选择您需要的服务:"+"1.查询是否被录取"+"2.查询或修改本校录取分数线"); i=scan.nextInt(); switch (i) { case 1: Admission(xiaohu);break; case 2: CheckAndChange();break; } }break; case 5: { Student xiaozhao=new Student(); System.out.println("请选择您需要的服务:"+"1.查询是否被录取"+"2.查询或修改本校录取分数线"); i=scan.nextInt(); switch (i) { case 1: Admission(xiaozhao);break; case 2: CheckAndChange();break; } }break; default: System.out.println("查无此人,请核对后再查!"); break; } } } 运行结果截图:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服