文天学院JAVA课程实践设计题 张亦辰.docx
《文天学院JAVA课程实践设计题 张亦辰.docx》由会员分享,可在线阅读,更多相关《文天学院JAVA课程实践设计题 张亦辰.docx(21页珍藏版)》请在冰豆网上搜索。
文天学院JAVA课程实践设计题张亦辰
文天学院JAVA课程实践题
教师:
张亦辰
一、编程求出自然数101~205中的所有素数。
1、算法设计
2、流程图
3、程序清单
publicclassLianXi1{
publicstaticvoidmain(String[]args){
System.out.println("101~205内的素数为:
");
intk=0;
loop:
for(inti=101;i<205;i++){
for(intj=2;j
if(i%j==0){
continueloop;
}
}
k++;
if(k/5==k/5.0)
{
System.out.println(""+i);
}else{
System.out.print(""+i);
}
}
}
}
4、调试结果
5、结果的分析
二、百鸡百钱问题。
公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡、母鸡、小鸡应各买多少?
1、算法设计
2、流程图
3、程序清单
publicclassSheJi2{
publicstaticvoidmain(String[]a){
for(inti=0;i<=33;i++){//公鸡
for(intj=0;j<=20;j++){//母鸡
intk=100-i-j;//小鸡
if(3*i+5*j+k/3==100&&k%3==0){
System.out.println("百鸡百钱问题:
公鸡"+i+"母鸡"+j+"小鸡"+k);
}
}
}
}
}
4、调试结果
5、结果的分析
三、编程输出如下图所示的图形。
*
***
*****
*******
*********
1、算法设计
2、流程图
3、程序清单
importjava.io.*;
publicclassSheJi3
{
publicstaticvoidmain(Stringargs[])
{
chars1[][]=newchar[6][10];
for(inti=1;i<6;i++)
for(intj=1;j<10;j++)
{
if(j-i<5&&j>5-i)
s1[i][j]='*';
}
for(inti=1;i<6;i++)
for(intj=1;j<10;j++)
{
if(j==9)
System.out.println(""+s1[i][j]);
else
System.out.print(""+s1[i][j]);
}
}
}
4、调试结果
5、结果的分析
四、定义一个复数类complex,内有两个成员变量:
实部和虚部,还有两个方法:
求两个复数和以及求两个复数差。
编程验证该程序的复数加减运算是正确的。
1、算法设计
2、流程图
3、程序清单
importjava.io.*;
publicclassComplex
{
privateintshibu;
privateintxubu;
Complex()
{
}
Complex(intm,intn)
{
shibu=m;
xubu=n;
}
publicComplexplus(Complexc)
{
Complexresult=newComplex();
result.shibu=this.shibu+c.shibu;
result.xubu=this.xubu+c.xubu;
returnresult;
}
publicComplexminus(Complexc)
{
Complexresult=newComplex();
result.shibu=this.shibu-c.shibu;
result.xubu=this.xubu-c.xubu;
returnresult;
}
publicStringoutput()
{
if(this.xubu<0)
{
returnthis.shibu+(this.xubu+"i");
}
elseif(this.xubu>0)
{
returnthis.shibu+"+"+this.xubu+"i";
}
else
{
returnthis.shibu+"";
}
}
publicstaticvoidmain(Stringargs[])
{
intm=Integer.valueOf(args[0]).intValue();
intn=Integer.valueOf(args[1]).intValue();
inta=Integer.valueOf(args[2]).intValue();
intb=Integer.valueOf(args[3]).intValue();
Complexcom1=newComplex(m,n);
Complexcom2=newComplex(a,b);
System.out.print("两个复数之和:
");
System.out.println(com1.plus(com2).output());
System.out.print("两个复数之差:
");
System.out.println(com1.minus(com2).output());
}
}
4、调试结果
5、结果的分析
五、编写Applet程序,在指定大小的屏幕界面上使用不同颜色绘制如下图形:
(1)直径为100像素点的圆;
(2)两个半轴长分别为50像素点和100像素点的椭圆;
(3)长和宽都为150像素点的矩形;
(4)使用红色填充(3)中的矩形;
(5)大小由读者指定的填充圆弧。
1、算法设计
2、流程图
3、程序清单
importjava.applet.Applet;
importjava.awt.*;
publicclassSheJi5extendsApplet
{
Colorcolor[]={Color.yellow,Color.blue,Color.pink,Color.red,Color.green};
publicvoidpaint(Graphicsg)
{
intx=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、调试结果
5、结果的分析
六、编写Applet程序,选择3种不同字体写出字符串“ILOVEBEIJING!
”。
1、算法设计
2、流程图
3、程序清单
importjava.applet.Applet;
importjava.awt.*;
publicclassSheJi6extendsApplet
{
Fontfnt1=newFont("TimesRoman",Font.ITALIC,25);
Fontfnt2=newFont("Braggadcoio",Font.BOLD,40);
Fontfnt3=newFont("MonotypeCorsiva",Font.BOLD,20);
publicvoidpaint(Graphicsg)
{
Stringstr=newString("ILOVEBEIJING!
");
g.setFont(fnt1);
g.drawString(str,30,40);
g.setFont(fnt2);
g.drawString(str,50,80);
g.setFont(fnt3);
g.drawString(str,0,80);
}
}
4、调试结果
5、结果的分析
七、使用JavaApplication编写满足下列要求的程序:
(1)使用GridLayout布局;
(2)设计一个简单的计算器。
包括数字按钮0~9,以及加、减、乘、除、清零、等于运算按钮和一个显示计算结果的文本区。
1、算法设计
2、流程图
3、程序清单
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassJiSuanQiextendsAppletimplementsActionListener
{
Button[]buts;
Stringnames[]={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","Zhiling"};
TextAreatext;
publicvoidinit()
{
text=newTextArea("",20,2);
add(text);
setLayout(newGridLayout(9,4,5,5));
buts=newButton[names.length];
for(inti=0;i{
buts[i]=newButton(names[i]);
buts[i].addActionListener(this);
add(buts[i]);
}
}
staticinty=0;
staticfloatj=0;
staticintz=0;
publicvoidactionPerformed(ActionEvente)
{
for(inti=0;i<10;i++)
if(e.getSource()==buts[i])
{
charx;
x=(char)(i+'0');
text.append(""+x);
y=y*10+i;
}
if(e.getSource()==buts[10])
{
inti=y;
y=0;
j=j+i;
z=1;
text.append("+");
}
if(e.getSource()==buts[11])
{
inti=y;
y=0;
if(j==0)
j=j+i;
else
j=j-i;
z=2;
text.append("-");
}
if(e.getSource()==buts[12])
{
inti=y;
y=0;
if(j==0)
j=j+i;
else
j=j*i;
z=3;
text.append("*");
}
if(e.getSource()==buts[13])
{
inti=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;
elseif(z==2)
j=j-y;
elseif(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();
}
}
4、调试结果
5、结果的分析
八、编写一个图形用户界面的Application程序:
(1)有一个菜单条;
(2)菜单条中有3个菜单;
(3)每个菜单有2个菜单项,其中一个菜单项又具有2个菜单子项。
1、算法设计
2、流程图
3、程序清单
importjava.awt.*;
importjava.awt.event.*;
publicclassSheJi8extendsFrameimplementsActionListener,ItemListener
{
publicSheJi8()
{
super("我的窗口");
setSize(450,250);
}
publicvoidinit()
{
MenuBarmyB=newMenuBar();
setMenuBar(myB);
Menum1=newMenu("文件");
m1.add("新建");
Menum12=newMenu("打开");
m12.add("Word");
m12.add("Ppt2");
m12.addActionListener(this);
m1.addActionListener(this);
m1.add(m12);
myB.add(m1);
Menum2=newMenu("编辑");
m2.add("撤销");
Menum21=newMenu("剪切");
m21.add("Ppt3");
m21.add("Ppt4");
m21.addActionListener(this);
m2.addActionListener(this);
m2.add(m21);
myB.add(m2);
Menum3=newMenu("格式");
m3.add("结束");
Menum31=newMenu("字体");
m31.add("大小");
m31.add("颜色");
m31.addActionListener(this);
m3.addActionListener(this);
m3.add(m31);
myB.add(m3);
}
publicstaticvoidmain(Stringargs[])
{
SheJi8myMenu=newSheJi8();
myMenu.init();
myMenu.setVisible(true);
}
publicvoiditemStateChanged(ItemEvente)
{
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getActionCommand()=="结束")
System.exit(0);
}
}
4、调试结果
5、结果的分析
九、定义一个circle类,其中有求面积的方法,当圆的半径小于0时,抛出一个自定义的异常。
编程实现之。
1、算法设计
2、流程图
3、程序清单
classMyExceptionextendsException
{
privateintnum;
MyException(intx)
{
num=x;
}
publicStringtoString()
{
return"MyException:
"+num;
}
}
importjava.io.*;
publicclassCircle
{
privateintradius;
staticdoublearea(intr)throwsMyException
{
System.out.println("调用方法:
area("+r+")");
doubleArea;
finaldoublePi;
Pi=3.1415927;
if(r<0)
{
MyExceptione=newMyException(r);
throwe;
}
Area=Pi*r*r;
returnArea;
}
publicstaticvoidmain(Stringargs[])
{
inti=Integer.valueOf(args[0]).intValue();
try
{
doublearea1=area(i);
System.out.println("\t圆面积="+area1+"\n");
}
catch(MyExceptione)
{
System.out.println("\t捕捉异常:
"+e.toString()+"\n");
}
}
}
}4、调试结果
5、结果的分析
十、分析程序的输出结果题。
7-1程序实例1
publicclassDaemonextendsThread{
publicstaticvoidmain(String[]args){
Threadthread=newDaemon();
System.out.println("ThePriorityofCurrentThreadis"+thread.getPriority());
thread.start();
for(inti=1;i<=5;i++){
System.out.println("MainThread:
"+i);
sleep(2000);
}
System.out.println("MainThread:
done");
}
publicvoidrun(){
Stringname=null;
for(inti=1;i<=10;i++){
if(isDaemon())
name="DaemonThread:
";
else
name="UserThread:
";
System.out.println(name+i);
sleep(2000);
}
System.out.println(name+"done");
}
publicstaticvoidsleep(intmsec){
try{
Thread.currentThread().sleep(msec);
}catch(InterruptedExceptione){
System.out.println(e);
}
}
}
调试结果
7-2程序实例2(注:
该程序用到了java.util包中的两个类:
Timer类和TimerTask类,TimerTask类实现了Runnable接口)
importjava.util.*;
importjava.io.*;
publicclassTestTimers{
publicstaticvoiddoMain()throwsException{
Timert=new Timer(true);
t.schedule(newPing("Fixeddelay"),0,1000);
Thread.currentThread().sleep(12000);
}
publicstaticvoidmain(String[]args){
try{
System.out.println("MainThread:
done");
}
publicvoidrun(){
Stringname=null;
for(inti=1;i<=10;i++){
if(isDaemon())
name="DaemonThread:
";
else
name="UserThread:
";
System.out.println(name+i);
sleep(2000);
}
System.out.println(name+"done");
}
publicstaticvoidsleep(intmsec){
try{
Thread.currentThread().sleep(msec);
}catch(InterruptedExceptione){
System.out.println(e);
}
}
}
调试结果
7-2程序实例2(注:
该程序用到了java.util包中的两个类:
Timer类和TimerTask类,TimerTask类实现了Runnable接口)
importjava.util.*;
importjava.io.*;
publicclassTestTimers{
publicstaticvoiddoMain()throwsException{
Timert=new Timer(true);
t.schedule(newPing("Fixeddelay"),0,1000);
Thread.currentThread().sleep(12000);
}
publicstaticvoidmain(String[]args){
try{
publicvoidrun(){
while(tick<400000){
tick++;
if(tick%50000==0)
System.out.println("Thread#"+num+",tick="+tick);
}
}
}
调试结果