Java课后作业
姓名:周杰学号:3100717102 班级:计算机2010-1
★1-1★百鸡百钱问题
【程序要求】
【程序清单】
package javaapplication1;
public class Main {
public Main() {
}
public static void main(String[] args) {
int g,m,x;
for(g=1;g<100;g++)
{
for(m=1;m<100;m++)
{
for(x=1;x<100;x++)
{
if(g+m+x==100&&3*g+5*m+x/3==100&&x%3==0)
System.out.println("公鸡:"+g+" 母鸡:"+m+"小鸡:"+x);
}
}
}
}
}
★1-2★输出101-205的所有素数
【程序要求】
【程序清单】
package javaapplication1;
public class Main {
public static void main(String[] args) {
for(int i=101;i<206;i++)
{
int xx=1;
for(int n=2;n
{
if (i%n==0)
{
xx=0;break;
}
}
if(xx!=0)
{System.out.println(i);}
}
}
}
1-3Do-while日期计算
【程序要求】
【程序清单】
package javaapplication1;
public class Main {
public Main() {
}
public static void main(String[] args) {
int year=2003,month=12,day=12;
int[]MonthDay={0,31,28,31,30,31,30,31,31,30,31,30,31};
int total=0;
int i=1;
do{
total+=MonthDay[i];i++;
}while(i if((year%4==0&&year%100!=0)||(year%400==0)) total++; total+=day; System.out.println("Total="+total); } } 1-4输出三角形星号 【程序要求】 编程输出如图所示的图形: * * * * * * 【程序清单】 public class OutputAsterisk { public static void main(String[] args) { for(int hang=1;hang<5;hang++) { for(int bl=1;bl<=4-hang;bl++) { System.out.print(" ") ; } for(int xh=1;xh<=hang;xh++) { System.out.print("*"+" "); } System.out.println(); } } } 1-5使用switch语句输出相应成绩级别 【程序要求】 使用switch语句输出相应成绩级别 A 085-100 B 070-084 C 060-069 D <60 【程序清单】 package main; import java.util.Scanner; public class Main { public static void main(String[]args){ Scanner s=new Scanner(System.in); System.out.println("Please Input Y our Grade Level:"); String str=s.nextLine(); char c=str.charAt(0); switch(c){ case 'A':System.out.println("085-100");break; case 'B':System.out.println("070-084");break; case 'C':System.out.println("060-069");break; case 'D':System.out.println("<60");break; default:System.out.println("您的输入有误!"); } } } 1-6输出三角形星号2 【程序要求】 编程输出如图所示的图形: * *** ******* ********* 【程序清单】 public class OutputAsterisk { public static void main(String[] args) { for(int hang=1;hang<5;hang++) { for(int bl=1;bl<=4-hang;bl++) {System.out.print(" ") ;} for(int xh=1;xh<=hang;xh++) {System.out.print("*"+" ");} System.out.println(); } } } 3-1swap()交换A类的两个对象的成员变量的值 【程序要求】 已知如下一个类: class {int a1,a2; A(int i,int j) {a1=i;a2=j;}} 要求编一个方法swap()用来交换A类的两个对象的成员变量的值。 【程序清单】 class A{ int a1,a2; public A(int i,int j){ a1=i;a2=j; } public void swap(){ a1=a1+a2;a2=a1-a2;a1=a1-a2; } public String toString(){ return a1+" "+a2;}} public class SwapClass{ public static void main(String srgs[]){ A a=new A(4,5); System.out.println(a.toString()); a.swap(); System.out.println(a.toString()); } } 3-2计算圆面积的方法area() 【程序要求】 已知一个类如下所示: class S{ double r; } 编写S类的一个子类,改子类中包含一个计算圆面积的方法area()和一个使用super()初始化S类成员的构造 【程序清单】 class S{double r;} public class Circle extends S{ private final double PI=3.14; public Circle(double r){ super(); super.r=r; } public void area(){ System.out.println(r*r*PI); } public static void main(String[] args) { Circle c=new Circle(2.5); c.area(); } } 3-3 编写抽象类 【程序要求】 按照如下要求编程: (1)编写一个抽象类,至少有一个常量和一个抽象方法。(2)编写两个抽象类的子类,重写定义抽象类中的抽象方法。(3)编写一个主类连起上述三个类,进行某种计算。 【程序清单】 public class Test { public static void main( String [] args ){ A b,c; b = new B(); System.out.println( b.getName() ); c = new C(); System.out.println( c.getName() ); } } abstract class A{ public String name = "A"; public String getName() {return name;} } class B extends A{ public String getName() {name = "B"; return name;} } class C extends A{ public String getName() {name = "C"; return name;} } 3-4 验证复数加减是正确的 定义一个复数类complex,内有两个成员变量:实部和虚部,还有两个方法:求两个复数和以及求两个复数差。编程验证改程序的复数加减运算是正确的。 【程序清单】 import java.util.Scanner; public class Complex { private int realPart; private int imagPart; public int getRealPart() { return realPart; } public void setRealPart(int realPart) { this.realPart = realPart; } public int getImagPart() { return imagPart; } public void setImagPart(int imagPart) { this.imagPart = imagPart; } public Complex plus(Complex c){ int real=this.realPart+c.realPart; int imag=this.imagPart+c.imagPart; Complex result=new Complex(); result.setRealPart(real); result.setImagPart(imag); return result; } public Complex minus(Complex c){ int real=this.realPart-c.realPart; int imag=this.imagPart-c.imagPart; Complex result=new Complex(); result.setRealPart(real); result.setImagPart(imag); return result; } public String format(){ if(this.imagPart<0){return this.realPart+(this.imagPart+"i"); }else{return this.realPart+"+"+this.imagPart+"i"; } } public static void main(String[] args) { System.out.println("请输入第一个复数(格式:a+bi):"); Scanner in=new Scanner(System.in);String complex1=in.nextLine(); System.out.println("请输入第二个复数(格式:a+bi):"); String complex2=in.nextLine();Complex c1=new Complex(); Complex c2=new Complex();String[] c1Arr=complex1.split("\\+"); int real1=Integer.parseInt(c1Arr[0]); int imag1=Integer.parseInt(c1Arr[1].substring(0, 1)); c1.setRealPart(real1);c1.setImagPart(imag1); int real2=Integer.parseInt(c2Arr[0]); int imag2=Integer.parseInt(c2Arr[1].substring(0, 1)); c2.setRealPart(real2);c2.setImagPart(imag2); System.out.println("第一个复数+第二个复数:"+c1.plus(c2).format()); System.out.println("第一个复数-第二个复数:"+c1.minus(c2).format()); } } 4-1 使用不同颜色绘制以下图形 【程序要求】 编写Applet程序,在指定大小的屏幕界面上使用不同颜色绘制如下图形:(1)直径为100像素点的圆。 (2)两个半轴长分别为50像素点和100像素点的椭圆 (3)长和宽都为150像素点的矩形 (4)使用红色填充(3)中的矩形 (5)大小自定的填充圆弧 【程序清单】 import java.applet.Applet; import java.awt.*; public class SheJi5 extends Applet{ Color color[] = { Color.yellow,Color.blue,Color.pink,Color.red,Color.green }; public void paint(Graphics g) { int x = 100; g.setColor(color[0]); g.drawOval(40,20,100,100); g.setColor(color[1]); g.drawOval(150,30,100,50); g.setColor(color[2]); g.drawRect(10,120,150,150); g.setColor(color[3]); g.fillRect(10,120,150,150); g.setColor(color[4]); g.fillArc(150,120,100,100,0,180); } } 4-2用三种字体写“I LOVE BEIJING” 【程序要求】 编写Applet程序,选择三种不同字体写出字符串“I LOVE BEIJING”【程序清单】 import java.applet.Applet; import java.awt.Font; import java.awt.Graphics; public class BeColor extends Applet{ public void paint(Graphics g){ g.setFont(new Font("黑体",Font.BOLD,20)); g.drawString("I LOVE BEIJING", 0, 20); g.setFont(new Font("SansSerif", Font.ITALIC, 20)); g.drawString("I LOVE BEIJING", 0, 50); g.setFont(new Font("Monotype Corsiva", Font.CENTER_BASELINE, 20)); g.drawString("I LOVE BEIJING", 0, 80); } 4-3在椭圆内填写一个字符串 【程序要求】 编写Applet程序,在一个椭圆内填写一个字符串,大小,位置以及字符串内容和字体自定。【程序清单】 package pro4_3; import java.applet.Applet; import java.awt.*; public class Pro4_3 extends Applet{ public void paint(Graphics g) { int x0=30,y0=35,W=300,H=100; g.setColor(Color.blue); g.drawOval(x0,y0,W,H); g.setColor(Color.red); g.setFont(new Font("Helvetica",Font.BOLD,45)); g.drawString("桂林理工~",50,100); } } 5-1按钮和文本框 【程序要求】 使用Java Applet编写满足下列要求的程序 (1)含有两个按钮和两个标签 (2)含有文本框和文本区 (3)含有一个按钮具有退出功能 【程序清单】 import java.applet.*; import java.awt.*; import java.awt.event.*; public class SmallApplet extends Applet implements ActionListener { Label lb1,lb2; Button btn1,btn2; TextField tf1; TextArea ta1; public void init() { lb1=new Label("请在文本框中输入内容!"); lb2=new Label("文本区显示的内容为:"); btn1=new Button("提交"); btn2=new Button("退出"); tf1=new TextField(20); ta1=new TextArea(); add(lb1); add(tf1); add(lb2); add(ta1); add(btn1); setLayout(new FlowLayout()); setSize(600,400); setVisible(true); btn1.addActionListener(this); btn2.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==btn1) {ta1.setText(tf1.getText()); } if(e.getSource()==btn2) {System.exit(0); } } } 5-2布局和计算器 【程序要求】 使用Java Application编写满足下列要求的程序: (1)使用GridLayout布局 (2)设计一个简单的计算器。包括数字按钮0-9,以及加、减、乘、除、清零、等于运算按钮和一个显示计算结果的文本区。 【程序清单】 import java.applet.*; import java.awt.*; import java.awt.event.*; public class JiSuan extends Applet implements ActionListener { Button []buts; String names[] = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","置零"}; TextArea text; public void init() {text = new TextArea(" ",20,2); add(text); setLayout(new GridLayout(9,4,5,5)); buts = new Button[names.length]; for(int i = 0;i < names.length;i++) { buts[i] = new Button(names[i]); buts[i].addActionListener(this); add(buts[i]); } } static int y = 0; static float j = 0;static int z = 0; public void actionPerformed(ActionEvent e) { for(int i = 0;i < 10;i++) if(e.getSource() == buts[i]) x = (char)(i + '0'); text.append(""+x); y = y * 10 + i; } if(e.getSource() == buts[10]) { int i = y;y = 0; j = j + i;z = 1; text.append(" + "); } if(e.getSource() == buts[11]) { int i = y;y = 0;if(j == 0)j = j + i; else j = j - i;z = 2;text.append(" - "); } if(e.getSource() == buts[12]) {int i = y;y = 0; if(j == 0)j = j + i; else j = j * i;z = 3;text.append(" * "); } if(e.getSource() == buts[13]) {int i = y;y = 0; if(j == 0) j = j + i; else j = j / i;z = 4;text.append(" / "); } if(e.getSource() == buts[14]) { if(z == 1) j = j + y; else if(z == 2)j = j - y; else if(z == 3)j = j * y; else j = j / y; text.append(" = "+j); y = 0; } if(e.getSource() == buts[15]) { text.replaceRange(" ",0,50); y = 0; j = 0; } repaint(); } } 5-3 菜单条和菜单项 【程序要求】 编写一个图形用户界面的Application程序: (1)有一个菜单条 (2)菜单条中有一个菜单 (3)每个菜单有两个菜单项,其中一个菜单项又具有2个菜单子项。 mportjava.awt.*; import java.awt.evnt.*; public class Exam5_19 extends Frame implements ActionListener.Itemlistener { TextField text; public Exam5_19() { super("周杰的菜单窗口"); setSize(300,200); } public void init() { MenuBar myB=new MenuBar(); setMenubar(myB); Menu m1=new Menu("文件"); m1.add(new MenuItem("打开")); MenuItem m11=new MenuItem("保存"); m11.setEnabled(false); m1.add(m11); m1.add("打印"); m1.addSeparator(); m1.add("退出"); ma.addActionListener(this); myb.add(m1); Menu m2=new Menu("编辑"); m2.add("复制"); Menu m21=new Menu("颜色"); m21.add("前景色"); m21.add("背景色"); m21.addActionListener(this); m2,add(m21); m2.addSeparator(); CheckboxMenuItem mycmi=new CheckbocMNenuItem("全选"); mycmi.addItemListener(this); m2.add(mycmi); m2.addActionListener(this); myB.add(m2); Menu m3=new Menu("帮助"); m3.add("关于"); m3.adActionListener(this); myB.sethelpMenu(m3); text=new TextField(); add("South",text); } public static void main(String args[]) Exam5_19 myMenu=new Exam5_19(); myMenu.init(); myMenu,setVisible(true); } public void itemStateChanged(ItemEvent e) { text,setText("状态改变"); } public void actionPerformed(ActionEvent e) { text.setText(e.getActionCommand()); if(e.getActionCommand()=="退出") System.exit(0); } } m1.add("退出"); ma.addActionListener(this); myb.add(m1);