![java课后大题答案_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/24/e8bf255c-7406-48ee-b7f0-abf5c1725e36/e8bf255c-7406-48ee-b7f0-abf5c1725e361.gif)
![java课后大题答案_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/24/e8bf255c-7406-48ee-b7f0-abf5c1725e36/e8bf255c-7406-48ee-b7f0-abf5c1725e362.gif)
![java课后大题答案_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/24/e8bf255c-7406-48ee-b7f0-abf5c1725e36/e8bf255c-7406-48ee-b7f0-abf5c1725e363.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章8. 编写一个 Java应用程序,输出全部的希腊字母。答 :public class XLWordspublic static void main(String args)for(int i=913;i<930;i+)System.out.print(char)i+" ");for(int j=931;j<938;j+)System.out.print(char)j+" ");for(int k=945;k<962;k+)System.out.print(char)k+" ");for(int t=963;t&
2、lt;=969;t+)System.out.print(char)t+" ");第三章3. 编写应用程序,求 1! +2!+ +10!。答 :class Factpublic static void main(String args)int fact,sum=0;for(int i=1;i<=10;i+)fact=1;for(int j=1;j<=i;j+)fact*=j;sum+=fact;System.out.println("1到10的阶乘之和是 :"+sum);4. 编写一个应用程序,求 100以内的全部素数。答 :class Pri
3、mespublic static void main(String args)int w=1;for(int i=2;i<=100;i+)for(int j=2;j<i;j+)w=i%j;if(w=0)break;if(w!=0)System.out.println(i+"是素数 ");5. 分别用 dowhile 和for 循环计算 1+1/2 !+1/3 !+1/4 !+ 的前 20项和。答 : for 循环class Sumpublic static void main(String args)int fact; double sum=0; for(int
4、 i=1;i<=20;i+)fact=1;for(int j=1;j<=i;j+) fact*=j; sum+=1.0/fact;System.out.println(sum); dowhile 循环 class Sumpublic static void main(String args)int i=1; int fact;double sum=0;dofact=1;int j=0;while(+j<=i)fact*=j;sum+=1.0/fact;while(+i<=20);System.out.println(sum);6. 一个数如果恰好等于它的因子之和,这个数
5、就称为“完数”。编写应用程序,求 1000之内的所有完数。答 :class Wanshupublic static void main(String args)int x,i,sum;for(x=1;x<=1000;x+)sum=0;for(i=1;i<x;i+)if(x%i=0)sum+=i;if(x=sum)System.out.println(x+"是完数 ");7. 编写应用程序,分别使用 while 和for 循环计算 8+88+888+ 前 10项之和。答 : for 循环class TheSumpublic static void main(Str
6、ing args)long sum=0,data=8;for(int i=1;i<=10;i+)sum=sum+data;data=data*10+8;System.out.println(sum); while 循环class TheSumpublic static void main(String args)long sum=0,data=8,i=0;while(+i<=10)sum=sum+data;data=data*10+8;System.out.println(sum);8. 编写应用程序,输出满足 1+2+3+ +n<8888的最大正整数 n。答 :class
7、Maxnpublic static void main(String args)int k=1,sum=0; while(sum+=k)<8888) k+;k-;System.out.println("最大能取到 :"+k);第四章15. 使用接口有哪些注意事项?模仿例子 4.27 ,编写一个类实现两个接口的程序。答 : 一个类使用接口时,要有 implements 关键字,当一个类使用多个接口时,接口名要用逗号“,”隔开;使用接口的类除 abstract 类外,必须实现接口的所有方法,并且实现接口的方法时,方法名字、返回类型、参数个数及类型必须与接口中的完全一致;
8、类在实现接口时, 方法体一定要用 public 修饰,如果接口方法的返回类型不是 void 型,在类中实现接口时,方法体至少有一个 return 语句。 interface 表面积double allArea(double r);interface体积double volu(double r);class Sph implements表面积 , 体积double PI=3.14159;public double allArea(double r)return 4*PI*r*r;public double volu(double r)return 4.0/3*PI*r*r*r;public cl
9、ass Testpublic static void main(String args)double r=5.0;Sph a=new Sph();System.out.println("半径为 5的球的表面积是 :"+a.allArea(r);System.out.println("半径为 5的球的体积是 :"+a.volu(r);16. 编写一个类 A,该类创建的对象可以调用方法 f 输出英文字母表,然后再编写一个该类的子类 B,要求子类 B必须继承 A类的方法 f( 不允许重写 ) ,子类创建的对象不仅可以调用方法 f 输出英文字母表,而且调用子类新
10、增的方法 g输出希腊字母表。答 : class Aint m;void f()for(m=65;m<91;m+)System.out.print(char)m+" ");for(m=97;m<123;m+)System.out.print(char)m+" ");System.out.println(" ");class B extends Aint i;void g()for(i=913;i<930;i+)System.out.print(char)i+" ");for(i=931;i<9
11、38;i+)System.out.print(char)i+" ");for(i=945;i<962;i+)System.out.print(char)i+" ");for(i=963;i<970;i+)System.out.print(char)i+" ");System.out.println(" ");public class Testpublic static void main(String args)B b=new B();System.out.println(" 我调用方法 f
12、输出英文字母表 :"); b.f();System.out.println("我调用方法 g输出希腊字母表 :");b.g();17. 编写一个异常类 MyException ,再编写一个类 Student ,该类有一个产生异常的方法 publicvoid speak(intm) throws MyException ,要求参数 m的值大于 1000时,方法抛出一个 MyException 对象。最后编写主类,在主类的 main方法中用 Student 创建一个对象,让该对象调用 speak方法。答 : class MyException extends Exce
13、ptionString str1;MyException(int m)str1=m+" 出现错误可能造成的原因是取值大于1000"public void showStr1()System.out.println(str1);class Studentpublic void speak(int m) throws MyExceptionif(m>1000)MyException exception=new MyException(m);throw exception;elseSystem.out.println(m);public class Testpublic st
14、atic void main(String agrs)int m;Student stu1=new Student();m=987;trystu1.speak(m);m=1234;stu1.speak(m);catch(MyException e)e.showStr1();18. 编写一个类,该类有一个方法public int f(int a,int b),该方法返回 a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f ,而且重写的方法将返回 a和b的最小公倍数。要求在重写的方法的方法体中首先调用被隐藏的方法返回 a和 b的最大公约数 m,然后将乘积 (a*b)/m 返回。要求在
15、应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f 计算两个正整数的最大公约数和最小公倍数。答 : class Apublic int f(int a,int b)if(a<b)int temp=0;temp=a;a=b;b=temp;int r=a%b;while(r!=0)a=b;b=r;r=a%b;return b;class B extends Apublic int f(int a,int b)int m;m=super.f(a,b);return (a*b)/m;public class Testpublic static void main(String args
16、)A a=new A();System.out.println("18 和102的最大公约数是 :"+a.f(18,102); B b=new B();System.out.println("18和102的最小公倍数是 :"+b.f(18,102);第六章1. 用 Data类不带参数的构造方法创建日期,要求日期的输出格式是 : 星期 小时分 秒。答 : import java.util.*; import java.text.*; class Testpublic static void main(String args)Date 时间 =new Dat
17、e();SimpleDateFormat s=new SimpleDateFormat("E HH时 mm分 ss 秒 ");System.out.println(s.format(时间 );2. 输出 2006年2月的日历页,程序需处理闰年问题。答 : import java.util.*;class Testpublic static void main(String args)int year=2006,month=2;int allDay;if(year%4=0&&year%100!=0)|(year%400=0)allDay=29;elseallD
18、ay=28;Calendar feb=Calendar.getInstance();feb.set(2006,1,1);int dat=feb.get(Calendar.DAY_OF_WEEK)-1;String a=new Stringdat+allDay;for(int i=0;i<dat;i+)ai=" "for(int i=dat,n=1;i<(dat+allDay);i+)if(n<=9)ai=String.valueOf(n)+" "elseai=String.valueOf(n)+" "n+;Syste
19、m.out.println(" "+year+"年 "+month+" 月");System.out.println("日一二三四五六");for(int j=0;j<a.length;j+)if(j%7=0)System.out.println(" ");System.out.print(aj);3. 计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过 main方法的参数传递到程序中。答 : import java.util.*; class Testpublic
20、static void main(String args)Calendar c=Calendar.getInstance();c.set(2000,0,1);long time1=c.getTimeInMillis();c.set(2008,7,8);long time2=c.getTimeInMillis();long dayCous=(time2-time1)/(1000*60*60*24);System.out.println("2008年8月8日和 2000年 1月 1日相隔 "+dayCous+"天 ");4. 编程练习 Math 类的常用方法
21、。答 : import java.text.*;public class Testpublic static void main(String args)double a=Math.abs(-10);System.out.println("-10的绝对值是 :"+a);double maxNum=Math.max(123.456,-5.4321);System.out.println("123.456与-5.4321 中的最大值是 :"+maxNum);double minNum=Math.min(123.456,-5.4321);System.out.
22、println("123.456与-5.4321 中的最小值是 :"+minNum);int randomNum=(int)(Math.random()*10)+1;System.out.println("输出一个 1到 10的随机数是 :"+randomNum);double powNum=Math.pow(2,10);System.out.println("2的10次幂是 :"+powNum);double sqrtNum=Math.sqrt(10);System.out.println("10的平方根是 :"
23、+sqrtNum);double logNum=Math.log(2);System.out.println("2的对数是 :"+logNum);double sinNum=Math.sin(-10);System.out.println("-10的正弦值是 :"+sinNum);double asinNum=Math.asin(0.5);System.out.println("0.5的反正弦值是 :"+asinNum);System.out.println("格式化之前的数是 :"+sqrtNum);Number
24、Format f=NumberFormat.getInstance();f.setMaximumFractionDigits(10);f.setMinimumIntegerDigits(4);String s=f.format(sqrtNum);System.out.println("格式化后 :"+s);5. 使用 BigInteger 类计算 1!+3!+5! +7!+ 的前 30项的和。答 : import java.math.*;public class Testpublic static void main(String args)BigInteger sum=n
25、ew BigInteger("0"),jieCheng=new BigInteger("1"),ONE=new BigInteger("1"),i=ONE;int k=0;while(+k<=30)sum=sum.add(jieCheng);i=i.add(ONE);jieCheng=jieCheng.multiply(i);i=i.add(ONE);jieCheng=jieCheng.multiply(i);System.out.println(sum);第七章4. 编写应用程序,有一个标题为“计算的窗口”的窗口,窗口的布局为
26、 FlowLayout 布局。窗口中添加两个文本区, 当我们在一个文本区中输入若干个数时, 另一个文本区,同时对输入的数进行求和运算并求出平均值, 也就是说随着输入的变化,另一个文本区不断地更新求和及平均值。答 : import java.awt.*;import java.awt.event.*; import java.util.*;class Calculated extends Frame implements TextListenerTextArea text1,text2; /定义了 2个文本区Calculated(String s) /标题为“计算的窗口”的窗口super(s);
27、setLayout(new FlowLayout(); /窗口布局为 FlowLayouttext1=new TextArea(5,23);text2=new TextArea(5,23);add(text1);add(text2);text2.setEditable(false); /显示求和结果和平均值的文本区禁止编辑text1.addTextListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setBounds(100,10
28、0,400,160);setVisible(true);validate();public void textValueChanged(TextEvent e)String s=text1.getText();StringTokenizer geshu=new StringTokenizer(s);int n=geshu.countTokens();double a=new doublen;for(int i=0;i<n;i+)String temp=geshu.nextToken();double date=Double.parseDouble(temp);ai=date;double
29、 sum=0,average;for(int i=0;i<n;i+)sum=sum+ai;average=sum/n;text2.setText(null);text2.append("和:"+sum+"n"+"平均数 :"+average);public class Testpublic static void main(String args)Calculated calc=new Calculated("计算的窗口 ");5. 文本区可以使用 getSelectedText() 方法获取该文本区通过拖动
30、鼠标选中的文件。编写应用程序,有一个标题为“挑单词”的窗口,窗口的布局为 BorderLayout 布局。窗口中添加两个文本去和一个按钮组件,要求文本区分别添加到窗口的东部区域和西部区域; 按钮添加到窗口的南部区域,当单击按钮时, 程序将东部区域的文本区中鼠标选中的内容尾加到西部区域的文本区中。答 : import java.awt.*; import java.awt.event.*;class WindowSelectedText extends Frame implements ActionListenerTextArea text1,text2; /定义 2个文本区Button but
31、ton; /定义一个按钮WindowSelectedText(String s) /窗口名字为“挑单词”super(s);setLayout(new BorderLayout(); /窗口布局是 BorderLayout 布局text1=new TextArea(6,15);text2=new TextArea(6,15);button=new Button("确定 ");add(text1,BorderLayout.EAST);add(text2,BorderLayout.WEST);add(button,BorderLayout.SOUTH);button.addAct
32、ionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););text2.setEditable(false);setBounds(100,100,350,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button)String s=text1.getSelectedText()+"n&q
33、uot;String str=text2.getText();text2.setText(str+s);public class Testpublic static void main(String args)new WindowSelectedText(" 挑单词 ");6. 编写一个应用程序, 有一个标题为 “计算”的窗口, 窗口的布局为 FlowLayout布局。设计 4个按钮,分别命名为“加”、“差”、“积”、“除”,另外,窗口中还有 3个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理 NumberFormatException
34、 。答 : import java.awt.*; import java.awt.event.*;class Calculated extends Frame implements ActionListenerTextField text1,text2,text3; /3个文本框Button buttonH,buttonC,buttonJ,buttonS; /4个按钮Calculated(String s)super(s);setLayout(new FlowLayout(); /FlowLayout布局text1=new TextField(10);text2=new TextField(1
35、0);text3=new TextField(17);buttonH=new Button("加 ");buttonC=new Button("差 ");buttonJ=new Button("积 ");buttonS=new Button("除 ");add(text1);add(text2);add(text3);text3.setEditable(false);add(buttonH);add(buttonC);add(buttonJ);add(buttonS);buttonH.addActionListen
36、er(this);buttonC.addActionListener(this);buttonJ.addActionListener(this);buttonS.addActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setBounds(100,100,160,180);setVisible(true);validate();public void actionPerformed(ActionEvent e)doub
37、le num1=0,num2=0,totle=0;trynum1= Double.parseDouble(text1.getText();num2= Double.parseDouble(text2.getText();if(e.getSource()=buttonH)totle=num1+num2;text3.setText("和"+totle);else if(e.getSource()=buttonC)totle=num1-num2;text3.setText("差"+totle);else if(e.getSource()=buttonJ)tot
38、le=num1*num2;text3.setText("积"+totle);else if(e.getSource()=buttonS)totle=num1/num2;text3.setText("商"+totle);catch(NumberFormatException event)text3.setText("请输入数字字符 !");public class Testpublic static void main(String args)Calculated calc=new Calculated("计算 ")
39、; /标题为“计算”的窗口7. 改进例子 7.16 ,在程序中增加一个名称为“确定”的按钮和一个文本区。当单击按钮时,程序验证用户是否输入了合法的 E-mail 地址格式,如果合法就将用户输入的姓名、 E-mail 和职业尾加到文本区中, 否则在输入 E-mail 的文本框中提示用户输入了非法格式的 E-mail 地址。答 : import javax.swing.*; import javax.swing.border.*; import java.awt.*;import java.awt.event.*;class WindowBox extends Frame implements A
40、ctionListenerTextField text1,text2,text3; TextArea textarea;Box baseBox,boxV1,boxV2; Button button; WindowBox()button=new Button(" 确定 "); textarea=new TextArea(6,12); text1=new TextField(12);text2=new TextField(12);text3=new TextField(12);boxV1=Box.createVerticalBox();boxV1.add(new Label(&
41、quot;姓名 ");boxV1.add(Box.createVerticalStrut(8);boxV1.add(new Label("email");boxV1.add(Box.createVerticalStrut(8);boxV1.add(new Label("职业 ");boxV2=Box.createVerticalBox();boxV2.add(text1);boxV2.add(Box.createVerticalStrut(8);boxV2.add(text2);boxV2.add(Box.createVerticalStrut
42、(8);boxV2.add(text3);baseBox=Box.createHorizontalBox();baseBox.add(boxV1);baseBox.add(Box.createHorizontalStrut(10);baseBox.add(boxV2);setLayout(new FlowLayout();add(baseBox);add(button);add(textarea);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););texta
43、rea.setEditable(false);button.addActionListener(this);setBounds(100,100,210,250);setVisible(true);validate();public void actionPerformed(ActionEvent e)boolean a;int b;String s;if(e.getSource()=button)s=text2.getText();a=s.endsWith(".com");b=s.indexOf("");if(a&&b>0)Stri
44、ngstr1=text1.getText()+"n"+text2.getText()+"n"+text3.getText()+"n"String str2=textarea.getText();textarea.setText(str2+str1);elsetext2.setText("输入了非法格式的 E-mail 地址 ");public class Testpublic static void main(String args)new WindowBox();8. 写一个应用程序, 要求编写一个 Panel
45、的子类 MyPanel,MyPanel中有一个文本框和一个按钮, 要求 MyPanel的实例作为其按钮的 ActionEvent 事件的监视器, 当单击按钮时,程序获取文本框中的文本,并将该文本作为按钮的名称。然后在编写一个 Frame的子类,即窗口。窗口的布局为 BorderLayout 布局。窗口中添加两个 MyPanel面板,分别添加到窗口的东部区域和西部区域。答 : import java.awt.*; import java.awt.event.*;class MyPanel extends Panel implements ActionListenerString name; Te
46、xtField text; Button button; MyPanel()text=new TextField(10); button=new Button(" 确定 "); add(text);add(button);button.addActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public void actionPerformed(ActionEvent e)if(e.getSour
47、ce()=button)name=text.getText();button.setLabel(name);class MyFrame extends FrameMyPanel panel1,panel2;MyFrame()panel1=new MyPanel();panel2=new MyPanel();add(panel1,BorderLayout.EAST);add(panel2,BorderLayout.WEST);setBounds(100,100,400,100);setVisible(true);validate();public class Testpublic static
48、void main(String args)MyFrame win=new MyFrame();9. 参照例子 7.18 编写一个应用程序, 要求有一个画布, 在画布上绘制一个矩形,用户通过文本框输入矩形的宽和高以及矩形左上角的位置坐标。答 : import java.awt.*; import java.awt.event.*;class Mycanvas extends Canvasint x,y,w,h;Mycanvas()setBackground(Color.cyan);public void setX(int x)this.x=x;public void setY(int y)th
49、is.y=y;public void setW(int w)this.w=w;public void setH(int h)this.h=h;public void paint(Graphics g)g.drawRect(x,y,w,h);class WindowCanvas extends Frame implements ActionListenerMycanvas canvas;TextField text1,text2,text3,text4;Button button;WindowCanvas()canvas=new Mycanvas();text1=new TextField(4)
50、;text2=new TextField(4);text3=new TextField(5);text4=new TextField(5);Panel pNorth=new Panel(),pSouth=new Panel();button=new Button("确定 ");button.addActionListener(this);pNorth.add(new Label("矩形的宽 : ");pNorth.add(text3);pNorth.add(new Label("矩形的高 : ");pNorth.add(text4);pSout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3-1-Carboxyvinyloxy-benzoic-acid-生命科学试剂-MCE-7834
- 二零二五年度船舶入股船舶船员培训合作协议
- 2025年度时尚产品销售总额提成与时尚趋势合作合同
- 2025年度离职员工保密协议及竞业禁止条款合同
- 二零二五年度班组承包市场营销合作协议
- 2025年度酒店客房装修风格设计与施工合同
- 施工现场施工防生物毒素泄漏制度
- 施工日志填写中的常见错误及避免方法
- 现代科技下的学生心理发展研究
- 学校如何实施绿色化教学与管理
- 《宫颈癌筛查》课件
- 2024年联勤保障部队第九四〇医院社会招聘考试真题
- 第二章《有理数的运算》单元备课教学实录2024-2025学年人教版数学七年级上册
- DB31-T 596-2021 城市轨道交通合理通风技术管理要求
- 华为智慧园区解决方案介绍
- 2022年江西省公务员录用考试《申论》真题(县乡卷)及答案解析
- 【招投标管理探究的国内外文献综述2600字】
- 一例蛇串疮患者个案护理课件
- DB63-T 2269-2024 公路建设项目安全生产费用清单计量规范
- 低压电工理论考试题库低压电工考试题
- 国家电网培训课件
评论
0/150
提交评论