西南交通大学JAVA期末作业.docx

上传人:b****6 文档编号:3695923 上传时间:2022-11-24 格式:DOCX 页数:16 大小:133.70KB
下载 相关 举报
西南交通大学JAVA期末作业.docx_第1页
第1页 / 共16页
西南交通大学JAVA期末作业.docx_第2页
第2页 / 共16页
西南交通大学JAVA期末作业.docx_第3页
第3页 / 共16页
西南交通大学JAVA期末作业.docx_第4页
第4页 / 共16页
西南交通大学JAVA期末作业.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

西南交通大学JAVA期末作业.docx

《西南交通大学JAVA期末作业.docx》由会员分享,可在线阅读,更多相关《西南交通大学JAVA期末作业.docx(16页珍藏版)》请在冰豆网上搜索。

西南交通大学JAVA期末作业.docx

西南交通大学JAVA期末作业

平时程序期末提交

一、题目

提交内容:

在本学期布置的作业中任选五题,每章只能选择1题,提交源程序(含必要注释)。

另写一份word文档,注明所做题目题号,内容,对应文件名称,并绘制其中任意2个程序对应的UML图。

二、第2章选题

题目:

PP2.5Writeanapplicationthatconvertsmilestokilometers.Readthemilesvaluefromtheuserasafloatingpointvalue.

运行结果:

源程序见miles2kilometers.java。

//********************************************************************

//miles2kilometers.javaAuthor:

//

//

//

//********************************************************************

importjava.util.Scanner;

publicclassmiles2kilometers

{

publicstaticvoidmain(String[]args)

{

Scannerscan=newScanner(System.in);//创建新Scanner

System.out.print("请输入英里数(miles):

");

System.out.print("转换为公里数(kilometers)为:

"+scan.nextFloat()*1.60953+"\n\n");//直接获取计算后结果

}

}

三、第3章选题

题目:

PP3.7Writeanapplicationthatdisplaysaframecontainingtwolabelsthatdisplayyourname,oneforyourfirstnameandoneforyourlast.Experimentwiththesizeofthewindowtoseethelabelschangetheirorientationtoeachother.

运行结果:

源程序见Name.java。

//********************************************************************

//Name.javaAuthor:

//

//

//********************************************************************

importjava.awt.*;

importjavax.swing.*;

publicclassName

{

publicstaticvoidmain(String[]args)

{

JFrameframe=newJFrame("PP3.7");//标题意为第四版(我用的第四版)教材第3.7题

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭动作操作

//设置第一个JPanel

JPanelsubPanel1=newJPanel();

subPanel1.setPreferredSize(newDimension(150,100));

subPanel1.setBackground(Color.green);

JLabellabel1=newJLabel("XX");

subPanel1.add(label1);

//设置第二个JPanel

JPanelsubPanel2=newJPanel();

subPanel2.setPreferredSize(newDimension(150,100));

subPanel2.setBackground(Color.blue);

JLabellabel2=newJLabel("XXXX");

subPanel2.add(label2);

//设置母面板包含两个子JPanel

JPanelprimary=newJPanel();

primary.setBackground(Color.yellow);

primary.add(subPanel1);

primary.add(subPanel2);

frame.getContentPane().add(primary);//JPanel只能以此函数载入JFrame

frame.pack();

frame.setVisible(true);

}

}

四、第4章选题

题目:

PP2.5Writeanapplicationthatconvertsmilestokilometers.Readthemilesvaluefromtheuserasafloatingpointvalue.

运行结果:

源程序见Counter.java。

//********************************************************************

//Counter.javaAuthor:

//

//经过不懈努力,将Panel类和main主函数整合到了一个java文件中。

//是为作业第二题。

//

//********************************************************************

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassCounterextendsJPanel

{

inti=50;

JPanelpanel1=newJPanel();

JButtonbutton1=newJButton("Increment");

JButtonbutton2=newJButton("Decrement");

JLabellabel1=newJLabel("50");

publicCounter()//构造方法

{

add(button1);

add(button2);

add(label1);

button1.addActionListener(newinevent());

button2.addActionListener(newdeevent());//将事件加入按钮中

}

publicstaticvoidmain(String[]args)

{

Counterpanelc=newCounter();//创建Counter对象

JFrameframe1=newJFrame("XXXXXXX");

frame1.getContentPane().add(panelc);

frame1.pack();

frame1.setVisible(true);//只有将JFrame创建于main函数中才能成功地将类与引用类的文件整合为一个java

}

privateclassineventimplementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

i++;

label1.setText(Integer.toString(i));

}

}

privateclassdeeventimplementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

i--;

label1.setText(Integer.toString(i));

}

}

}

五、第5章选题

题目:

PP5.16Developasimpletoolforcalculatingbasicstatisticsforasegmentoftext.Theapplicationshouldhaveasinglewindowwithascrollingtextbox(aJTextArea)andastatsbox.Thestatsboxshouldbeapanelwithatitledborder,containinglabeledfieldsthatdisplaythenumberofwordsinthetextboxandtheaveragewordlength,aswellasanyotherstatisticsthatyouwouldliketoadd.Thestatsboxshouldalsocontainabuttonthat,whenpressed,recomputesthestatisticsforthecurrentcontentsofthetextfield.

运行结果:

以HansChristianAndersen的《ACHEERFULTEMPER》统计

特别在被引用的PCount类中加入提示信息

源程序。

//********************************************************************

//CountText.javaAuthor:

//

//

//

//

//********************************************************************

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassCountText

{

publicstaticvoidmain(String[]args)

{

JFrameFMain=newJFrame("第5章作业第2题");

FMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

FMain.getContentPane().add(newPCount());

FMain.pack();

FMain.setVisible(true);

}

}

//********************************************************************

//PCount.javaAuthor:

//

//此class全面封装,可独立运用于其余application。

//

//

//********************************************************************

importjava.util.Scanner;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassPCountextendsJPanel

{

privateJPanelPA,PB;

privateJTextAreaTArea;

privateJLabelLCouText,LAveText;

privateJButtonBCount;

privateStringtext;

publicPCount()

{

PA=newJPanel();

PB=newJPanel();

TArea=newJTextArea();

LCouText=newJLabel("单词总数:

");

LAveText=newJLabel("\n\n平均单词长度:

");

BCount=newJButton("统计");

ButtonListenerlistener=newButtonListener();

PA.setPreferredSize(newDimension(150,400));

PA.add(TArea);

TArea.setAutoscrolls(true);//不知为何此句无效

TArea.setPreferredSize(newDimension(150,400));

//欲图使JTextArea布满整个JPanel,但未找到途径,此为无奈之举

PB.setPreferredSize(newDimension(150,400));

PB.add(LCouText);

PB.add(LAveText);

PB.add(BCount);

BCount.addActionListener(listener);

add(PA);

add(PB);

}

publicstaticvoidmain(String[]args)

{

System.out.print("请运行CountText.class。

ByXXX\n");

}

privateclassButtonListenerimplementsActionListener

{

privateintcount/*单词总数*/,al/*单词总长度*/;

privatedoubleavel/*单词平均长度*/;

privatebooleanshowword;

//此事件中可判断英文字符出现频率等数据

//连贯英文被任意字符分割(不光是空格)均认为是单词间间隔

publicvoidactionPerformed(ActionEventevent)

{

count=0;

al=0;

avel=0.0;

showword=false;

text=TArea.getText();

text=text.toUpperCase();//转换为大写以便判断

for(inti=0;i

{

if((text.charAt(i)>=65)&&(text.charAt(i)<=90))//若当前字符为大写英文

{

al++;

if(showword==false)//若出现新单词,则计数+1

{

count++;

showword=true;

}

}

else

showword=false;

}

if(count!

=0)avel=al/(double)count;

LCouText.setText("单词总数:

"+count);

LAveText.setText("平均单词长度:

"+avel);

}

}

}

UML类图:

六、第7章选题

题目:

1.Designandimplementaprogramthatdisplaysanumerickeypadthatmightappearonaphone.Abovethekeypadbuttons,showalabelthatdisplaysthenumbersastheyarepicked.Totherightofthekeypadbuttons,includeanotherbuttontoclearthedisplay.Useaborderlayouttomanagetheoverallpresentation,andagridlayouttomanagethekeypadbuttons.Putaborderaroundthekeypadbuttonstogroupthemvisually,andaborderaroundthedisplay.

运行结果:

源程序。

//********************************************************************

//Keypad.javaAuthor:

//

//

//

//

//********************************************************************

importjava.awt.*;

importjavax.swing.*;

publicclassKeypad

{

publicstaticvoidmain(String[]args)

{

JFrameFMain=newJFrame("第7章作业第1题");

FMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

FMain.getContentPane().add(newPKeypad());

FMain.pack();

FMain.setVisible(true);

}

}

//********************************************************************

//PKeypad.javaAuthor:

//

//此class全面封装,可独立运用于其余application。

//

//

//********************************************************************

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassPKeypadextendsJPanel

{

privateJPanelPNum;

privateJLabelLNum;

privateJButtonB1;

privateJButtonB2;

privateJButtonB3;

privateJButtonB4;

privateJButtonB5;

privateJButtonB6;

privateJButtonB7;

privateJButtonB8;

privateJButtonB9;

privateJButtonBX;

privateJButtonB0;

privateJButtonBJ;

privateJButtonBClr;

publicPKeypad()

{

PNum=newJPanel();

LNum=newJLabel("",JLabel.RIGHT);//向右对齐

LNum.setPreferredSize(newDimension(200,30));//若不设置Label大小则无数据时不显示

B1=newJButton("1");

B2=newJButton("2");

B3=newJButton("3");

B4=newJButton("4");

B5=newJButton("5");

B6=newJButton("6");

B7=newJButton("7");

B8=newJButton("8");

B9=newJButton("9");

BX=newJButton("*");

B0=newJButton("0");

BJ=newJButton("#");

BClr=newJButton("清屏");

ButtonListenerlistener=newButtonListener();

//所有元件构造结束

PNum.add(B1);

PNum.add(B2);

PNum.add(B3);

PNum.add(B4);

PNum.add(B5);

PNum.add(B6);

PNum.add(B7);

PNum.add(B8);

PNum.add(B9);

PNum.add(BX);

PNum.add(B0);

PNum.add(BJ);//小键盘按钮面板加入按钮

PNum.setLayout(newGridLayout(4,3));

this.setLayout(newBorderLayout());

this.add(LNum,BorderLayout.NORTH);

this.add(PNum,BorderLayout.CENTER);

this.add(BClr,BorderLayout.EAST);//主面板加入元件

LNum.setBorder(BorderFactory.createLineBorder(Color.GRAY,2));

PNum.setBorder(BorderFactory.createMatteBorder(0,2,2,2,Color.GRAY));//添加边框

B1.addActionListener(listener);

B2.addActionListener(listener);

B3.addActionListener(listener);

B4.addActionListener(listener);

B5.addActionListener(listener);

B6.addActionListener(listener);

B7.addActionListener(listener);

B8.addActionListener(listener);

B9.addActionList

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1