Java习题答案.doc

上传人:s****u 文档编号:12739155 上传时间:2020-05-20 格式:DOC 页数:25 大小:196KB
返回 下载 相关 举报
Java习题答案.doc_第1页
第1页 / 共25页
Java习题答案.doc_第2页
第2页 / 共25页
Java习题答案.doc_第3页
第3页 / 共25页
点击查看更多>>
资源描述
项目一 学生管理系统(结构化设计方法实现)任务一 程序的运行环境(三)简答题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(c1.intPower(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(saveasfileItem);fileMenu.addSeparator();fileMenu.add(exitItem);editMenu.add(cutItem);editMenu.add(copyItem);editMenu.add(pasteItem);editMenu.add(deleteItem);editMenu.addSeparator();editMenu.add(findItem);editMenu.add(replaceItem);formatMenu.add(linewrapItem);formatMenu.add(fontItem);bar.add(fileMenu);bar.add(editMenu);bar.add(formatMenu);setJMenuBar(bar);/ 快捷菜单popMain = new JPopupMenu();popMain.add(cutItem);popMain.add(copyItem);popMain.add(pasteItem);popMain.add(deleteItem);/ *添加多行文本框*JScrollPane jsp = new JScrollPane(ta);add(jsp);/ *关闭窗口时*addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););setExtendedState(JFrame.MAXIMIZED_BOTH); / 窗口最大化setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public class lx3_1_1_1 public static void main(String args) Myjsb win = new Myjsb();2查看JDK帮助文档,了解javax.swing.JRadioButtonMenuItem和javax.swing.JCheck BoxMenuItem两种菜单项的用法,并编写测试程序。子任务二 登录界面(三)编程题1设计一个图形界面的猜数游戏程序。答案:package pr3;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;class Win1 extends JFrame implements ActionListener int number;JTextField t1 = new JTextField(10);JLabel mess = new JLabel( );JButton b1 = new JButton(点击产生一个1-100之间的随机数), b2 = new JButton(确定);public Win1() super(猜数游戏);setLayout(new FlowLayout();add(b1);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!