Java习题答案.doc_第1页
Java习题答案.doc_第2页
Java习题答案.doc_第3页
Java习题答案.doc_第4页
Java习题答案.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一 学生管理系统(结构化设计方法实现)任务一 程序的运行环境(三)简答题1Java语言有哪些特点?答:简单,面向对象,与平台无关,解释型,多线程,安全,动态。2JDK安装完成后,如何设置环境变量?答:主要设置环境变量JAVA_HOME,path,classpath。详见教材第6页。3简述Java应用程序和小应用程序的区别。 答:Java应用程序是由用户系统就地装入的可独立运行的Java程序,可以是基于窗口或控制台的。而Java小应用程序需要嵌入到网页在浏览器中运行。4简述Java应用程序的开发过程。 答:(1)建立源程序。可利用任何文本编辑器建立,文件扩展名为.java。(2)编译源程序。命令为javac 程序名.java(3)解释运行程序。命令为java 程序名任务三 成绩的判断和统计 (三)编程题1输入4个数,将这4个数按从小到大输出。package pr1;import java.util.Scanner;public class lx1_3_1 public static void main(String args)Scanner scan=new Scanner(System.in);int a,b,c,d,t;System.out.println(请输入三个整数:);a=scan.nextInt();b=scan.nextInt();c=scan.nextInt();d=scan.nextInt(); if (ab)t=a;a=b;b=t;if (ac)t=a;a=c;c=t;if (ad)t=a;a=d;d=t;if (bc)t=b;b=c;c=t;if (bd)t=b;b=d;d=t;if (cd)t=c;c=d;d=t;System.out.println(a+,+b+,+c+,+d);2输入一个年份值,判断是否是闰年,输出相应的信息。import java.util.Scanner;public class Exam24 public static void main(String args) Scanner input=new Scanner(System.in);int year;year=input.nextInt();if (year%4=0 & year%100!=0 | year%400=0)System.out.println(year+年是闰年);else System.out.println(year+年不是闰年);3输入一元二次方程系数,若有实数根,求根并输出,否则输出“不是二次方程或没有实数根”的信息。package pr1;import java.util.Scanner;public class lx1_3_3 public static void main(String args)double a,b,c,d,x1,x2;Scanner scan=new Scanner(System.in);System.out.println(请输入一元二次方程的系数:);a=scan.nextDouble();b=scan.nextDouble();c=scan.nextDouble();d=b*b-4*a*c;if (d=0)x1=(-b+Math.sqrt(d)/(2*a);x2=(-b-Math.sqrt(d)/(2*a);System.out.println(方程的实数根为:x1=+x1+ x2=+x2);elseSystem.out.println(方程没有实数根!);4编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。package pr1;import java.util.Scanner;public class lx1_3_4 public static void main(String args) Scanner input=new Scanner(System.in);double je,hf;je=input.nextDouble();if (je100)hf=1;else if (je500)hf=je*0.01;elsehf=50;System.out.println(汇款金额:+je+汇费:+hf);5求某年某月的天数.package pr1;import java.util.Scanner;public class lx1_3_5 public static void main(String args) Scanner input = new Scanner(System.in);int year, month, day;year = input.nextInt();month = input.nextInt();switch (month) case 2:if (year % 4 = 0 & year % 100 != 0 | year % 400 = 0)day = 29;elseday = 28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;default:day = 30;break;System.out.println(year + 年 + month + 月的天数: + day);6求从1到100之间所有奇数的平方和(用for、while和dowhile编写程序)。public class lx1_3_6 public static void main(String args) int i,sum;sum=0;for(i=1;i1000)break;System.out.println(i-1);8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。public class lx1_3_8public static void main(String args) double a,b,s;int i;s=0;a=2;b=1;for(i=1;i= 1; i-) x = 2 * (x + 1);System.out.println(x);10输出九九乘法表。package pr1;public class lx1_3_10 public static void main(String args) int i, j;for (i = 1; i = 9; i+) / 行for (j = 1; j = i; j+) / 列System.out.print(i + * + j + = + i * j + );System.out.println(); / 换行11输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。package pr1;public class lx1_3_11 public static void main(String args) int x, y, i;for (x = 1; x = 1000; x+) y = 0;for (i = 1; i = x / 2; i+) if (x % i = 0)y = y + i;if (x = y) System.out.println(x);12输出100以内的全部素数。package pr1;public class lx1_3_12 public static void main(String args) int x, i, k;for (x = 2; x = 100; x+) k = (int) Math.sqrt(x);for (i = 2; i k)System.out.println(x);13求1!+2!+3!+10!package pr1;public class lx1_3_13 public static void main(String args) double sum = 0, t;for (int i = 1; i = 10; i+) t = 1;for (int j = 1; j = i; j+) t = t * j;sum = sum + t;System.out.println(1!+2!+3!+10!= + sum);14求2+22+222+2222+22222。package pr1;public class lx1_3_14 public static void main(String args) int sum, x, v, n = 5;v = 0;x = 2;sum = 0;for (int i = 1; i = n; i+) v = v * 10 + x;sum += v;System.out.println(2+22+222+2222+22222= + sum);任务四 学生成绩管理系统功能的实现(三)编程题1编写一个程序,计算一维数组中的最大值、最小值及其差值。package pr1;public class lx1_4_1 public static void main(String args) int a = 34, 65, 79, 50, 30, 40, 65, 23, 8, 10 ;/ 数组名.length a.lengthint i, max, min;int n = a.length;/ a0 a1 an-1max = a0;min = a0;for (i = 1; i n; i+) if (max ai) max = ai; else if (min ai) min = ai;System.out.println(最大数: + max + 最小数: + min + 差值: + (max - min);2将一个数组中的数逆序重新存放。package pr1;public class lx1_4_2 public static void main(String args) int a = 3, 15, 28, 11, 34, 78, 95, 27, 18 ;int i, length, temp;length = a.length;for (i = 0; i (length / 2); i+) / 以下将数组元素ai和alength -1 - i的值互换temp = ai;ai = alength - 1 - i;alength - 1 - i = temp;for (i = 0; i length; i+) System.out.print(ai + );3已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。package pr1;import java.util.Scanner;public class lx1_4_3 public static void main(String args) int a = 12, 23, 26, 45, 58, 60, 0 ;int x, i, j, n;Scanner scanner = new Scanner(System.in);System.out.println(请输入要插入的数x:);x = scanner.nextInt();n = 6;for (i = 0; i n; i+) if (x i; j-) aj = aj - 1;ai = x;n+;for (i = 0; i n; i+) System.out.print(ai + );4输出杨辉三角形。如:1 1 1 1 2 11 3 3 11 4 6 4 11 5 10 10 5 1package pr1;public class lx1_4_4 public static void main(String args) int a = new int1010;for (int i = 0; i a.length; i+) ai0 = aii = 1;for (int j = 1; j i ; j+) aij = ai - 1j - 1 + ai - 1j;for (int i = 0; i a.length; i+) for (int j = 0; j =i; j+) System.out.print(aij + );System.out.println();5求一个二维数组的每行最大数。package pr1;public class lx1_4_5 public static void main(String args) int a = 34, 23, 45, 78 , 2, 24, 16, 20 , 43, 56, 22, 12 ;int max;for (int i = 0; i a.length; i+) max = ai0;for (int j = 0; j ai.length; j+) if (max = 0; i-) System.out.print(ai);项目二 学生成绩管理系统(面向对象设计方法实现)任务一 用类来表示学生成绩信息(二)编程题1某公司正进行招聘工作,被招聘人员需要填写,做“个人简历”的封装类。class jianli String xm;/ 姓名String xb;/ 性别int nl;/ 年龄String jtzz;/ 家庭住址String xl;/ 学历public String getXm() return xm;public void setXm(String xm) this.xm = xm;public String getXb() return xb;public void setXb(String xb) this.xb = xb;public int getNl() return nl;public void setNl(int nl) this.nl = nl;public String getJtzz() return jtzz;public void setJtzz(String jtzz) this.jtzz = jtzz;public String getXl() return xl;public void setXl(String xl) this.xl = xl;2编写程序,提供实现各种数学计算的方法。包括如下几项。(1)两个数的加、减、乘、除。(2)求某数的相反数、倒数、绝对值。(3)取两数中较大的和较小的。(4)对浮点数(double型)的计算功能。如:给定浮点数d,取大于或等于d的最小整数,取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数log(d)等。(5)计算以double型数a为底数,b为指数的幂。package pr2;class MyMath public int add(int a, int b) return a + b;public int sub(int a, int b) return a - b;public int mul(int a, int b) return a * b;public int div(int a, int b) return a / b;public int xianfan(int a) return -a;public double daoshu(int a) return 1.0 / a;public int abs(int a) if (a = 0)return a;elsereturn -a;public int max(int a, int b) if (a b)return a;elsereturn b;public int min(int a, int b) if (a b)return a;elsereturn b;3编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。(1)抽象类定义package pr2;abstract class Shape public abstract double area();(2)Circle类定义public class Circle extends Shape double r;public Circle() r = 0;public Circle(double r) this.r = r;public double area() return 3.14 * r * r;(3)Rectangle类定义public class Rectangle extends Shape double w, h;public Rectangle() w = h = 0;public Rectangle(double w, double h) this.w = w;this.h = h;public double area() return w * h;4定义一个接口,接口中有3个抽象方法如下。(1)“long fact(int m);”方法的功能为求参数的阶乘。(2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。(3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和是否大于100。定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出。答案:(1)接口定义package pr2;public interface MyInterface public long fact(int m);public long intPower(int m, int n);public boolean findFactor(int m, int n);(2)类定义package pr2;public class MyClass implements MyInterface public long fact(int m) long f;f = 1;for (int i = 1; i 100)return true;elsereturn false;public long intPower(int m, int n) long v;v = 1;for (int i = 1; i = n; i+) v = v * m;return v;(3)主类package pr2;public class lx2_1_4 public static void main(String args) MyClass c1;c1 = new MyClass();System.out.println(c1.fact(10);System.out.println(Power(2, 10);System.out.println(c1.findFactor(2, 10);5创建一个接口IShape,接口中有一个求取面积的抽象方法“public double area()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。答案:(1)接口定义package pr2;public interface IShape public abstract double area();(2)类定义package pr2;public class Square implements IShape double a;public Square() a = 0;public Square(double a) this.a = a;public double area() return a * a;(3)主类:package pr2;public class lx2_1_5 public static void main(String args) Square s1 = new Square(4);System.out.println(s1.area();6定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。(1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作是学习)。(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是自己想吧)。(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。(4)编写主函数分别对上述3类具体人物进行测试。答案:(1)人类package pr2;public class People String xm;String xb;int nl;String gj;public void chifan() System.out.println(正在吃饭);public void shuijiao() System.out.println(正在睡觉);public void gongzuo() System.out.println(正在工作);(2)学生类:package pr2;public class Xuesheng extends People String xx;int xh;public void gongzuo() System.out.println(正在学习);(3)工人类:package pr2;public class Gongren extends PeopleString dw;int gl;public void gongzuo() System.out.println(正在生产汽车);(4)干部类:package pr2;public class Ganbu extends XueshengString zw;public void kaihui() System.out.println(正在开会);(5)主类:package pr2;public class lx2_1_6 public static void main(String args) Xuesheng xs = new Xuesheng();xs.chifan();xs.shuijiao();xs.gongzuo();Gongren gr=new Gongren();gr.chifan();gr.shuijiao();gr.gongzuo();Ganbu gb=new Ganbu();gb.chifan();gb.shuijiao();gb.gongzuo();gb.kaihui();任务二 用动态数组存储学生成绩信息(一)填空题 1hello world 2s1+=s2 3s1.equals(s2) 4edcba 5new Date()(二)选择题1C 2B 3B 4A(三)编程题1实现把“I Love Java!”的字符全部转换为小写并输出到控制台。答案:package pr2;public class lx2_2_1 public static void main(String args) String str1, str2;str1 = I Love Java!;str2 = str1.toLowerCase();System.out.println(str1);System.out.println(str2);2使用String类中的split()函数,统计出“this is my homework! I must finish it!”中单词的个数。(注意:单词之间用一个空格来分隔。)答案:package pr2;public class lx2_2_2 public static void main(String args) String str1;str1=this is my homeword! I must finish it!;String str2=str1.split( );System.out.println(单词个数为:+str2.length);3给出两个日期,计算它们之间相隔的天数。答案:package pr2;import java.util.Calendar;import java.util.Date;public class lx2_2_3 public static void main(String args) Calendar calendar = Calendar.getInstance();calendar.setTime(new Date();/ 用当前时间初始化日历时间calendar.set(2000, 10, 1); / long time1 = calendar.getTimeInMillis();calendar.set(2010, 10, 1);long time2 = calendar.getTimeInMillis();long num = (time2 - time1) / (1000 * 60 * 60 * 24);System.out.println(相隔 + num + 天);4实现将当前日期信息以4位年份、月份全称、两位日期形式输出。答案:package pr2;import java.text.SimpleDateFormat;import java.util.Date;public class lx2_2_4 public static void main(String args) Date nowDate = new Date();SimpleDateFormat sdf=new SimpleDateFormat(yyyy年MM月dd日);System.out.println(当前日期是:+sdf.format(nowDate);任务三 学生成绩信息的保存与读取(三)编程题1使用随机文件流RandomAccessFile类将一个文本文件倒置读出。答案:package pr2;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;public class lx2_3_1 public static void main(String args) String filename = D:abc.txt;File f1 = new File(filename);try RandomAccessFile raf1 = new RandomAccessFile(filename, r);byte b = new byte(int) f1.length();StringBuffer sb = new StringBuffer();for (int i = 0; raf1.read(b) != -1; i+) sb.append(new String(b, utf-8);System.out.println(sb.reverse().toString();raf1.close(); catch (IOException e) e.printStackTrace();2编写一个Java应用程序,可以实现DOS中的TYPE命令,并加上行号。即将文本文件在控制台上显示出来,并在每一行的前面加上行号。答案:package pr2;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class lx2_3_2 public static void main(String args) FileReader fr;BufferedReader br;File file = new File(d:abc.txt);String str;int n = 0;try fr = new FileReader(file);br = new BufferedReader(fr);while (str = br.readLine() != null) n+;System.out.println(n + . + str); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();项目三 学生信息管理系统(图形界面设计应用)任务一 界面设计子任务一 主界面设计(一)填空题 1setVisible 2Graphics User Interface 3add(二)选择题 1C 2C 3B 4D(三)编程题1仿照Windows记事本,制作记事本的窗口和菜单。package pr3;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;class Myjsb extends JFrame JTextArea ta = new JTextArea();JMenuBar bar = new JMenuBar();JMenu fileMenu, editMenu, formatMenu;JMenuItem newfileItem, openfileItem, savefileItem, saveasfileItem,exitItem, cutItem, copyItem, pasteItem, deleteItem, findItem,replaceItem, selectallItem, linewrapItem, fontItem;JPopupMenu popMain;public Myjsb() super(我的记事本);/ *添加菜单*fileMenu = new JMenu(文件);editMenu = new JMenu(编辑);formatMenu = new JMenu(格式);newfileItem = new JMenuItem(新建);openfileItem = new JMenuItem(打开);savefileItem = new JMenuItem(保存);saveasfileItem = new JMenuItem(另存为);exitItem = new JMenuItem(退出);cutItem = new JMenuItem(剪切);copyItem = new JMenuItem(复制);pasteItem = new JMenuItem(粘贴);deleteItem = new JMenuItem(删除);findItem = new JMenuItem(查找);replaceItem = new JMenuItem(替换);selectallItem = new JMenuItem(全选);linewrapItem = new JCheckBoxMenuItem(自动换行);fontItem = new JMenuItem(字体);fileMenu.add(newfileItem);fileMenu.add(openfileItem);fileMenu.add(savefileItem);fileMenu.add(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论