




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java实验八 综合实验及练习第一部分:编程题1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5) 11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11 package ex8_1;public class Demo public static void main(String args)for(int i=1;i6;i+)for(int j=1;j0;j-)System.out.printf(%d ,j);System.out.println();for(int i=4;i0;i-)for(int j=1;j0;j-)System.out.printf(%d ,j);System.out.println();2.给出年、月、日,计算该日是该年的第几天?package ex8_2;import java.util.Scanner;public class DateFun public static boolean YearDemo(int year)boolean flage=true;if(year%4=0&year%100!=0)|year%400=0)flage=true;else flage=false;return flage;public static void main(String args)Scanner scan=new Scanner(System.in);System.out.println(请输入年月日); int sum=0;int year;int month; int day;year=scan.nextInt();month=scan.nextInt();day=scan.nextInt();if(YearDemo(year)int days=31,29,31,30,31,30,31,31,30,31,30,31;for(int i=1;imonth;i+)sum+=daysi-1;sum+=day;System.out.println(该日是当年的+sum+天);else int days=31,28,31,30,31,30,31,31,30,31,30,31;for(int i=1;imonth;i+)sum+=daysi-1;sum+=day;System.out.println(该日是当年的+sum+天);3、利用求素数的方法,就62000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。package ex8_3;import java.util.Scanner;public class Gede public static boolean Demo(int a)boolean flage =true;for(int i=1;ia;i+)int b=0;for(int j=1;ji;j+)if(i%j=0)flage=false;if(flage)for(int x=1;xa-i;x+)if(a-i)%x=0)b+;if(b=0)flage=true;break;return flage;public static void main(String args)Scanner scan=new Scanner(System.in);System.out.println(请输入一个大于6的偶数);int a=scan.nextInt();if(Demo(a)System.out.println(哥德巴赫猜想成立);else System.out.println(哥德巴赫猜想不成立);4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。 评分规则:分数为60100分。选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。package Ex8_4;import java.util.*;public class test public static int initArr()int a = new int 156;for(int i=0;i15;i+)for(int j=0;j6;j+)aij=(int)(Math.random()*41+60);return a;public static float average(int a)float sum=0;float avg=0;int max=0; int min=100;int maxrow=0; int minrow=0;for(int i=0;imax)max=ai;for(int i=0;ia.length;i+)if(aimin)min=ai;for(int i=0;ia.length;i+)sum=sum+ai;sum=sum-max-min;avg=sum/(a.length-2);return avg;public static void main(String args) int a=initArr();for(int i=0;ia.length ;i+)for(int j=0;jai.length ;j+)System.out.printf(%-4d,aij);System.out.println();for(int i=0;ia.length ;i+)System.out.println(NO.+(i+1)+s+ score is +average(ai);5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。写一个程序测试这个类package Ex8_5;public class Position private int x,y;public Position()public Position(int x,int y)this.x=x;this.y=y;public int getX()return x;public int getY()return y;public void setX(int x)this.x=x;public void setY(int y)this.y=y;public double distance(Position p)double d=0.0;d=Math.sqrt(this.x-p.x)*(this.x-p.x)+(this.y-p.y)*(this.y-p.y);return d;package Ex8_5;public class Test public static void main(String args)Position p1=new Position(1,0);Position p2=new Position(2,0);double d=p1.distance(p2);System.out.println(d);6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。package Ex8_6;public class Point protected int x,y;public Point()public Point(int x,int y)this.x=x;this.y=y;public int getX()return x;public int getY()return y;public void setX(int x)this.x=x;public void setY(int y)this.y=y;package Ex8_6;public class Circle extends Point protected int r;public Circle()public Circle(int x,int y,int r)super(x,y);this.r=r;public void setR(int r)this.r=r;public int getR()return r;package Ex8_6;public class Test public static void main(String args) Circle c1=new Circle(2,3,4);Circle c2=new Circle();c2.setR(8);c2.setX(2);c2.setY(4);System.out.println(c1.x+ +c1.y+ +c1.r);System.out.println(c2.x+ +c2.y+ +c2.r);7、编写一个完整的Java Application 程序。包含接口Shape,MyRectangle类,MyTriangle类及Test类,具体要求如下:、接口Shape:double area():求一个形状的面积 double perimeter ():求一个形状的周长、类MyRectangle:实现Shape接口,并有以下属性和方法: 属性width: double类型,表示矩形的长height: double类型,表示矩形的高 方法MyRectangle(double w, double h):构造函数 ToString()方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”、类MyTriangle:实现Shape接口,并有以下属性和方法: 属性x,y,z: double型,表示三角形的三条边s: 周长的1/2(注:求三角形面积公式为,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法) 方法MyTriangle(double x, double y, double z):构造函数,给三条边和s赋初值。ToString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”、Test类作为主类要完成测试功能 生成MyRectangle对象 调用对象的ToString方法,输出对象的描述信息package Ex8_7;public interface Shape public abstract double area();public abstract double perimeter();package Ex8_7;public class MyTriangle implements Shapepublic int x,y,z;public MyTriangle(int x,int y,int z)this.x=x;this.y=y;this.z=z;public double area()double s=(x+y+z)/2;double area=Math.sqrt(s*(s-x)*(s-y)*(s-z);return area;public double perimeter() return x+y+z;public String toString()return three sides:+x+,+y+,+z+,perimeter=+perimeter()+,area=+area();package Ex8_7;public class Test public static void main(String args) Shape t=new MyTriangle(3,4,5);System.out.println(t.toString();8 完成以下窗体制作参考:这一题考虑使用组合布局,将上面控件放置在 JPanel上,再将JPanel放到内容面板的中间。下面四个按钮先放在某JPanel再放置在内容面板的 South部分package Ex8_8;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class LoginFrm extends JFrame implements ActionListener JLabel lb_name=new JLabel(姓名:);JLabel lb_sex=new JLabel(性别:);JLabel lb_profession=new JLabel(身份:);JLabel lb_unit=new JLabel(单位:);JLabel lb_IDnum=new JLabel(证件号码:);JLabel lb_rDate=new JLabel(注册日期:);JLabel lb_eDate=new JLabel(有效日期:);JTextField txt_name=new JTextField();JComboBox cmb_sex=new JComboBox();JComboBox cmb_profession=new JComboBox();JComboBox cmb_unit=new JComboBox();JTextField txt_IDnum=new JTextField();JTextField txt_rDate=new JTextField();JTextField txt_eDate=new JTextField();JButton btn_ADD=new JButton(添加);JButton btn_DEL=new JButton(删除);JButton btn_BACK=new JButton(撤销);JButton btn_ESC=new JButton(退出);public LoginFrm()JPanel jp=(JPanel)this.getContentPane();JPanel jp1=new JPanel();jp1.setLayout(new GridLayout(7,2,5,10);jp1.add(lb_name);jp1.add(txt_name);jp1.add(lb_sex);jp1.add(cmb_sex);cmb_sex.addItem(男);cmb_sex.addItem(女);jp1.add(lb_profession);jp1.add(cmb_profession);cmb_profession.addItem(学生);cmb_profession.addItem(教师);cmb_profession.addItem(职工);cmb_profession.setEditable(true);jp1.add(lb_unit);jp1.add(cmb_unit);cmb_unit.addItem(计算机系);cmb_unit.addItem(工商管理系);cmb_unit.setEditable(true);jp1.add(lb_IDnum);jp1.add(txt_IDnum);jp1.add(lb_rDate);jp1.add(txt_rDate);jp1.add(lb_eDate);jp1.add(txt_eDate);jp.add(jp1,BorderLayout.CENTER);JPanel jp2=new JPanel();jp2.setLayout(new GridLayout(1,4);jp2.add(btn_ADD);jp2.add(btn_DEL);jp2.add(btn_BACK);jp2.add(btn_ESC);JScrollPane jsp_table = new JScrollPane(table);jp.add(jsp_table);jp.add(jp2,BorderLayout.SOUTH);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle(图书证办理);btn_ADD.addActionListener(this);btn_DEL.addActionListener(this);btn_BACK.addActionListener(this);btn_ESC.addActionListener(this);public void actionPerformed(ActionEvent e)public static void main(String args)JFrame.setDefaultLookAndFeelDecorated(true);LoginFrm frm=new LoginFrm();frm.setSize(500, 400);frm.setVisible(true);9、以JDBC技术创建一个通讯录应用程序,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。 参考如下:第一步:编写一个Person联系人类public class Person private int pid; /编号private String name;/ 姓名 private String sex;/ 性别 private String tel;/ 电话 private String address;/ 地址 private String email;/email /*构造函数以及set-get函数*/ 第二步:编写一个PersonDao封装对联系人类的有关操作public class PersonDao / 添加 联系人public void addPerson(Person p) String sql=”; DBHelper. executeUpdate(sql); / 通过人的编号删除 联系人public void deletePersonByID(int pid) String sql=”delete from person where pid=”+pid; DBHelper. executeUpdate(sql);/通过人的姓名查找联系人,返回一个集合public List queryPersonByName(String name) . /. 其余方法 第三步:编写一个测试Swing类,有界面使用JTable显示,参考书本上关于JTable控件的使用,参考界面如下package Ex8_9;import java.sql.*;public class PersonDao private String driver = sun.jdbc.odbc.JdbcOdbcDriver;private String url = jdbc:odbc:mydb;private void executeUpdate(String sql) try Class.forName(driver);Connection con = DriverManager.getConnection(url);Statement cmd = con.createStatement();cmd.executeUpdate(sql);con.close(); catch (Exception ex) ex.printStackTrace();public void addStudent(String sno, String sname, String major, int zg) String sql = insert into student1 values( + sno + , + sname+ , + major + , + zg + );executeUpdate(sql);public void deleteStudentBySno(String sno) String sql = delete from student1 where sno= + sno + ;executeUpdate(sql);public String queryPerson()String table=null;tryClass.forName(driver);Connection conn=DriverManager.getConnection(url);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(SELECT count(*) FROM student1);rs.next();int c=rs.getInt(1);table=new Stringc3;c=0;rs=stmt.executeQuery(SELECT * FROM student1);while(rs.next()tablec1=rs.getString(1);tablec2=rs.getString(2);tablec3=rs.getString(3);c+;conn.close();catch(Exception e)e.printStackTrace();return table;package Ex8_9;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.table.DefaultTableModel;public class MyFrm extends JFramepublic JTable table=null;public String cols=sno,sname,sbrith;PersonDao Student1_Dao=new PersonDao();public MyFrm()JPanel jp = (JPanel) this.getContentPane();String rows = Student1_Dao.queryPerson();JTable table=new JTable(rows,cols);JScrollPane jsp_table = new JScrollPane(table);jp.add(jsp_table);table.setModel(new DefaultTableModel(rows, cols);this.setSize(600, 400);this.setVisible(true);public static void main(String args) new MyFrm();第二部分:选择题B 1、下面关于变量及其作用范围的陈述哪个是不对的?( )A实例变量是类的成员变量。B实例变量用关键字static声明。C在方法中定义的局部变量在该方法被执行时创建。D局部变量在使用前必须被初始化。B 2、下面哪条语句把方法声明为抽象的公共方法?( )Apublic abstract method();Bpublic abstract void method();Cpublic abstract void method()Dpublic void method() extends abstract;C 3、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( )。A、本地方法 B、静态方法 C、最终方法 D、抽象方法C 4、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。A、隐藏 B、覆盖 C、重载 D、Java不支持此特性C 5、在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( )方法来完成applet界面的初始化工作。A、start( ) B、stop( ) C、init( )D、paint( )C 6、下列关于构造方法的叙述中,错误的是( )AJava语言规定构造方法名与类名必须相同BJava语言规定构造方法没有返回值,但不用void声明CJava语言规定构造方法不可以重载DJava语言规定构造方法只能通过new自动调用C 7、关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )A可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B可以被两种类访问和引用:该类本身、该类的所有子类C只能被该类自身所访问和修改D只能被同一个包中的类访问A 8、执行完以下代码int x = new int10;后,以下哪项说明是正确的( )Ax9为0 Bx9未定义Cx10为0Dx0为空B 9、类Test1定义如下:1. public class Test12 public float aMethod(float a, float b) 34 将以下哪种方法插入行3是不合法的。( )A、public float aMethod(float a, float b,float c) B、public float aMethod(float c,float d) C、public int aMethod(int a, int b) D、private float aMethod(int a,int b,int c) D 10、以下哪个接口的定义是正确的?( )A、 interface A void print() ;B、 abstract interface A void print() ;C、 abstract interface A extends I1, I2 / I1、I2为已定义的接口 abstract void print() ;D、 interface A void print();C 11、关于以下程序段,正确的说法是( )1Strings1=“a”+“b”;2 Strings2=newString(s1);3 if(s1=s2)4 System.out.println(“= =is succeeded”);5 if (s1.equals(s2)6 System.out.println(“.equals() is succeeded”);A行4与行6都将执行 B行4执行,行6不执行C行6执行,行4不执行 D行4、行6都不执行D 12、下面哪个函数是publicvoid aMethod().的重载函数?()A、void aMethod().B、publicint aMethod().C、publicvoid aMethod ( ).D、publicint aMethod(intm).D 13、下面关于继承的哪些叙述是正确的? ( )A在java中允许多继承。 B在java中一个类只能实现一个接口。 C在java中一个类不能同时继承一个类和实现一个接口。 Djava的单一继承使代码更可靠。C 14、关于length()这个方法的表述正确的是哪个? ( )A数组有length()这个方法,string也有length()这个方法。 B数组有length()有这个方法,string没有length()这个方法。C数组没有length()这个方法,string有length()这个方法。D数组没有length()这个方法,string也没有length()这个方法。BA 15、选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另一个是尚未排序的。现若想将数据序列由小到大排序,则每次放到有序子列尾部位置的元素,应从无序序列中选择( )。A)最大的 B)最小的 C)任意的 D)头上的A 16、类与对象的关系是( )。 A. 类是对象的抽象 B. 类是对象的具体实例 C. 对象是类的抽象 D. 对象是类的子类BD 17、下列关于修饰符混用的说法,错误的是( ) A. abstract不能与final并列修饰同一个类 B. abstract类中不可以有private的成员 C. abstract方法必须在abstract类中 D. static方法中能处理非static的属性B 18、编译并运行下述程序段的结果是:( )。public class Test public static void main(String argv) int count = new int4; System.out.println(count4);A编译时错误B运行时错误C输出0CB 19、下面是有关子类继承父类构造函数的描述,其中正确的是( )。A创建子类的对象时, 先调用子类自己的构造函数,然后调用父类的构造函数。B子类无条件地继承父类不含参数的构造函数。C子类必须通过super关键字调用父类的构造函数。D子类无法继承父类的构造函数。DC 20、下面哪个不是String类的方法?( )A、 subString()B、 startsWith()C、 toString()D、 toUpperCase()A 21、 编译并运行以下程序段的结果是:( ) public class MyClassfinal static int i;MyClass()i =0;public static void main(String args)System.out.println(i);A、 编译出错B、 nullC、 1D、 0C 22、下面关于java中类的说法哪个是不正确的?( )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。B、构造函数是类中的特殊方法。C、类一定要声明为public的,才可以执行。D、一个java文件中可以有多个class定义。D 23、下列哪个类声明是正确的? ( ) A、 abstract final class H1B、 abstract private move()C、 protected private number;D、 public abstract class CarA 24、方法重载是指 ( ) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型相同D.两个以上的方法取相同的方法名,并且方法的返回类型相同 B 25、Frame的默认的布局管理器是下列哪一个? ( ) A.FlowLayoutB.BorderLayout C.GridLayoutD.CardLayoutD 26、下面的哪个用户界面组件不是容器? ( )A. JScrollPaneB. JFrameC. JWindowsD. JScrollBarC 27、在下列事件处理机制中哪个不是机制中的角色? ( ) A. 事件B. 事件源C. 事件接口D. 事件处理者B 28.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ?( ) A、 ArrayList myList=new Object(); B、 List myList=new ArrayList(); C、 ArrayList myList=new List(); D、 List myList=new List();B 29器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? ( )A、 CardLayout B、 FlowLayout C、 BorderLayout D、 GridLayout B 30个关键字可以对对象加互斥锁? ( )A、 transient B、 synchronized C、 serialize D、 static D 31Teacher和Student是类Person的子类; Person p; Teacher t; Student s; /p, t and s are all non-null. if(t instanceof Person) s = (Student)t; 最后一句语句的结果是: ( )A、 将构造一个Student对象; B、 表达式是合法的; C、 表达式是错误的; D、 编译时正确,但运行时错误。 D 32行下列程序, 会产生什么结果 ( )public class X extends Thread implements Runable public void run() System.out.println(this is run(); public static void main(String args) Thread t=newThread(new X(); t.start(); A、 in the Inner outer B、 outer C、 in the Inner D、编译不通过 A 33下面哪个是对字符串String的正确定义 ( )A、String s1=null;B、String s2=null ;C、String s3=(String) abc ;D、String s4=(String) uface;A 34下面哪条语句定义了5个元素的数组( )A、int a=22,23,24,25,12;B、int a =new int(5);C、int 5 array;D、int arr;D 35给出一段程序,选择运行结果public class sss public static void main(String args)String s1=args1; String s2=args2;String s3=args3; String s4=args4;System.out.println(“args2=”+s2);命令行执行: java sss 1 2 3 4 结果是下面哪一个?( )A、args2=2B、args2=nullC、args2=1D、运行出现异常C 36下面哪个描述是正确的( )A、Applet程序中不需要main()方法,也不能有B、Application程序中可以没有main()方法。C、Applet程序中可以不定义init( )方法D、Application程序中必须有run( )方法B 37给出一段程序,试判断哪个是正确的结果( )public class rtExceptpublic static void throwit()System.out.print(“throwit”); throw new RuntimeException(); public static void main(String aa)trySystem.out.print(“hello “);throwit(); catch(Exception re)System.out.print(“ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全球教育政策对地方教育的影响研究
- 鲁迅小说中的女性反抗悲剧
- 2022年美术类学业水平考试在线练习复习试题附答案(一)
- 2024年玉环市人武部招聘真题
- 辅导员测试题及答案高三
- 2025年中国软化水剂行业市场调查、投资前景及策略咨询报告
- 2025年中国豪华执手门锁行业投资前景及策略咨询研究报告
- 2025年中国花岗岩磨光板行业投资前景及策略咨询研究报告
- 2025年中国美工刀刀片行业投资前景及策略咨询研究报告
- 2025年中国管道式空调器行业投资前景及策略咨询研究报告
- 人防门二次浇筑施工方案
- 湖南长沙四大名校系丘班选拔试题
- 医学分子生物学习题集
- 2025年山东水发集团有限公司总部及权属一级公司招聘笔试参考题库附带答案详解
- 七年级数学下册 第二学期 期末测试卷(苏科版 2025年春)
- 高级私人马术俱乐部会员权益协议
- 《路径规划算法》课件
- 弱电工程施工方案和施工措施
- 大学生体能训练知到智慧树章节测试课后答案2024年秋华中农业大学
- 医院机电安装工程施工方案
- 金融贷款邀约技巧
评论
0/150
提交评论