Java实验报告副本.docx
- 文档编号:7742211
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:52
- 大小:308.52KB
Java实验报告副本.docx
《Java实验报告副本.docx》由会员分享,可在线阅读,更多相关《Java实验报告副本.docx(52页珍藏版)》请在冰豆网上搜索。
Java实验报告副本
Java实验报告
姓名:
桂大有
班级:
网103班
学号:
109074360
实验一、安装JDK并熟悉java的运行环境
1、编写一小程序实现上述功能:
在屏幕上显示“HELLOWORLD”。
程序源代码如下:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
System.out.println("HelloWorld!
");
}
}
实验结果截屏如下:
实验二、基本语法练习
⒈编写一个应用程序求若干个数的平均数,原始数字要求从键盘输入。
程序源代码如下:
importjava.util.Scanner;
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//System.out.println("HelloWorld!
");
System.out.println("请输入2个数:
");
Scannerscan=newScanner(System.in);
floatt1=scan.nextInt();
floatt2=scan.nextInt();
floataverage=(t1+t2)/2;
System.out.println("这两个数的平均值是:
"+average);
}
}
实验结果截屏如下:
⒉编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。
程序源代码如下:
importjava.util.Scanner;
publicclassAccept{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannerscan=newScanner(System.in);
System.out.println("请输入一个摄氏温度值:
");
intcel=scan.nextInt();
doublef=cel*1.8+32;
System.out.println(cel+"摄氏度转化成华氏度为:
"+f);
}
}
实验结果截屏如下:
⒊编写应用程序,按升序顺序输出一维数组中的元素。
程序源代码如下:
importjava.util.Scanner;
publicclassSort{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intarray[]=newint[10];
Scannerscan=newScanner(System.in);
System.out.println("请输入10个正整数:
");
for(inti=0;i<10;i++)
{
array[i]=scan.nextInt();
}
System.out.println("选择排序后的结果为:
");
for(inti=0;i<10-1;i++)
{intk=i;
for(intj=i+1;j<10;j++)
{
if(array[j] k=j; } intt=array[i]; array[i]=array[k]; array[k]=t; } //Foreach(inttmpinarray) //{ // //} for(inti: array) { System.out.print(i); System.out.print("\t"); } } } 实验结果截屏如下: 实验三、面向对象编程实验 ⒈接口的编写 程序源代码如下: publicinterfaceInterfaceclass{ inti=4; intk=5; voidfunc1(); intfunc2(intx); } //主类 publicclassUseInterfaceimplementsInterfaceclass{ intj; publicvoidfunc1()//在使用接口的类中一定要实现接口中的所有抽象方法 { System.out.println("func1="+1); } publicintfunc2(inti) { System.out.println("func2="+1); returni; } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub UseInterfacex=newUseInterface(); x.func1(); inty=x.func2(k); System.out.println("func2()的返回值是: "+y); } } 程序运行结果截屏如下: ⒉多态在工资系统中的应用 设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。 该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。 对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。 所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。 程序源代码如下: publicabstractclassEmployee{ publicabstractvoidearnings(); publicdoublesalary; } publicfinalclassBossextendsEmployee{ doublet;//固定工资 publicBoss(doublet1) {this.t=t1;} @Override publicvoidearnings(){ //TODOAuto-generatedmethodstub salary=t; System.out.println("Theboss'ssalaryis: "+salary); } } publicfinalclassCommissionWorkerextendsEmployee{ doublebaseSalary,selled; publicCommissionWorker(doublebaseSalary1,doubleselled1) {this.baseSalary=baseSalary1; this.selled=selled1; } @Override publicvoidearnings(){ //TODOAuto-generatedmethodstub salary=baseSalary+selled*0.1; System.out.println("TheCommissionWorker'ssalaryis: "+salary); } } publicfinalclassPieceWorkerextendsEmployee{ doubleproduction;//生产的产品数 intn;//每件产品的工资 publicPieceWorker(doubleproduction1,intn1) {this.production=production1; this.n=n1; } @Override publicvoidearnings(){ //TODOAuto-generatedmethodstub salary=n*production; System.out.println("ThePieceWorker'ssalaryis: "+salary); } } publicfinalclassHourlyWorkerextendsEmployee{inthour; doublehourSalry; publicHourlyWorker(inthour1,doublehourSalary1) {this.hour=hour1; this.hourSalry=hourSalary1; } @Override publicvoidearnings(){ //TODOAuto-generatedmethodstub salary=hour*hourSalry; System.out.println("TheHourlyWorker'ssalaryis: "+salary); } } publicclasssalaryDemo{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Employee[]empobj=newEmployee[4];//建立一个对象数组,并用子类初始化父类对象 empobj[0]=newBoss(10000); empobj[0].earnings(); empobj[1]=newCommissionWorker(2500,5000); empobj[1].earnings(); empobj[2]=newPieceWorker(2000.0,2); empobj[2].earnings(); empobj[3]=newHourlyWorker(8,16); empobj[3].earnings(); System.out.println("Ok,It'stheend! ! "); } } 程序运行结果截屏如下: ⒊包的建立与使用 程序源代码如下: packagemypackage; publicclassCalculate { privateinta; publicCalculate(inta) {this.a=a; System.out.println("Fromconstrartion: "+this.a); } publicdoublevolume(doubleheight,doublewidth,doubledepth) {returnheight*width*depth;} intadd(intx,inty) {returnx+y;} protectedvoida() { System.out.println("Fromconstration"+a); } } importmypackage.Calculate; //主类 publicclassPackageDemo{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Calculatec=newCalculate(10); doubles=c.volume(5,6,7); System.out.println(s); //intb=c.add(5,6);默认权限的方法在其他包的类中是不可见的 //c.a();保护型的方法在其他包的类中也是不可见的 } } 程序运行结果截屏如下: 实验四、异常处理实验 ⒈异常的捕获 计算两数相除并输出结果。 使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。 程序源代码如下: importjava.io.*; importjava.io.BufferedReader; importjava.io.InputStreamReader; classEx1 { publicstaticvoidmain(Stringargs[]) { try{ BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in)); System.out.print("请输入除数: "); Stringcl=strin.readLine(); inta=Integer.parseInt(cl); System.out.print("请输入被除数: "); cl=strin.readLine(); intb=Integer.parseInt(cl); intc=b/a; System.out.println("商为: "+c); } //捕获与I/O有关的异常 catch(IOExceptione) { e.printStackTrace(); } /*捕获数值转化时的异常,如不能将字符转化成数值 catch(IOExceptione) { e.printStackTrace(); }*/ //捕获数值转化时的异常,如不能将字符转化成数值 catch(NumberFormatExceptione) {System.out.println("请输入整数! "); e.printStackTrace(); } //捕获除数为0的异常 catch(ArithmeticExceptione){ System.out.println("除数不可以0! "); e.printStackTrace(); } } 程序运行结果截屏如下: ⒉定义异常 编写程序包含自定义异常,当输入数值为13和4时抛出该异常。 程序源代码如下: classEx2extendsException { Ex2(Stringmsg) { super(msg); } } classMyEx { privateintx; voidsetX(intx) { this.x=x; } voidf1()throwsEx2 { if(x==13) thrownewEx2("Idon’tlike13! "); elseif(x==4) thrownewEx2("Idon’tlike4! "); else System.out.println(100/x); } publicstaticvoidmain(Stringargs[]) { MyExa=newMyEx(); try { a.setX(5); //a.setX(13); //a.setX(4); //a.setX(0); a.f1(); } catch(Ex2e) { System.out.println("getmessage: "+e.getMessage()); } } 程序运行结果截屏如下: 实验六、图形图像实验 1.绘制图形 程序源代码如下: importjava.applet.*; importjava.awt.*; publicclassGraextendsApplet { Fontf1=newFont("Helvetica",Font.PLAIN,28); publicvoidpaint(Graphicsg) { g.setFont(f1); g.setColor(Color.blue); g.drawString("我是美丽的大气球! ",120,50); g.setColor(Color.green); g.drawOval(100,20,200,100); g.setColor(Color.black); g.fillOval(180,60,10,10); g.fillOval(180,60,10,10); g.setColor(Color.red); g.drawArc(130,50,50,180,180,120); g.setColor(Color.yellow); g.drawLine(150,120,150,250);}} 程序运行结果截屏如下: 实验七、GUI(图形用户接口)实验 ⒈制作一个简单的画板 程序源代码如下: importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassMouextendsAppletimplementsMouseMotionListener { intx=-1,y=-1; publicvoidinit() { setBackground(Color.cyan); addMouseMotionListener(this); } publicvoidpaint(Graphicsg) { if(x! =-1&&y! =-1) { g.setColor(Color.red); g.drawLine(x,y,x,y); } } publicvoidmouseDragged(MouseEvente) { x=(int)e.getX(); y=(int)e.getY(); } publicvoidmouseMoved(MouseEvente){}//由于使用的是Listener,需要将其他不重载的方//法,列举在这里 publicvoidupdate(Graphicsg) { paint(g); } } 程序运行结果截屏如下: ⒉菜单的编写 程序源代码如下: importjava.applet.*; importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassTestMenu//定义主类 { publicstaticvoidmain(String[]args) { MyMenuFramemf=newMyMenuFrame(); mf.setSize(newDimension(300,200));//指定窗口初始大小 mf.setVisible(true);//使窗口可见,默认为不可见 } } //定义窗口 classMyMenuFrameextendsFrameimplementsActionListener,ItemListener { privatestaticfinallongserialVersionUID=1L; MenuBarm_MenuBar; MenumenuFile,menuEdit,m_Edit_Paste; MenuItemmi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy; MenuItempi_New,pi_Del,pi_Pro,mi_paste_All,mi_Paste_Part; CheckboxMenuItemmi_Edit_cut; PopupMenupopM; TextAreata; MyMenuFrame() { super("拥有菜单的窗口");//指定窗口标题 ta=newTextArea("nochoice",5,20); ta.addMouseListener((MouseListener)newHandleMouse(this));//文本域响应鼠标事件 add("Center",ta); //创建弹出式菜单 popM=newPopupMenu(); pi_New=newMenuItem("新建"); pi_New.addActionListener(this); popM.add(pi_New); pi_Del=newMenuItem("删除"); pi_Del.addActionListener(this); popM.add(pi_Del); pi_Pro=newMenuItem("属性"); pi_Pro.addActionListener(this); popM.add(pi_Pro);//将弹出式菜单加在文本域上 ta.add(popM); m_MenuBar=newMenuBar();//创建菜单栏 menuFile=newMenu("文件");//创建菜单项、菜单自项并指定快捷键 mi_File_Open=newMenuItem("打开",newMenuShortcut('o')); mi_File_Close=newMenuItem("关闭"); mi_File_Exit=newMenuItem("退出"); mi_File_Exit.setShortcut(newMenuShortcut('x')); mi_File_Open.setActionCommand("打开"); mi_File_Close.setActionCommand("退出"); mi_File_Open.addActionListener(this); mi_File_Close.addActionListener(this);//自身作为监视器 mi_File_Exit.addActionListener(this); menuFile.add(mi_File_Open); menuFile.add(mi_File_Close); menuFile.addSeparator(); menuFile.add(mi_File_Exit); m_MenuBar.add(menuFile); menuEdit=newMenu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java实验报告 副本 Java 实验 报告