往年实验编程题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实验四
【4-1】对象数组和访问权限
设计一个Student类,包含学号、姓名、2门课程和总成绩,所有成员变量都为private,其中包含多个方法,其中getNumber、getName和getTotal为public,如UML图所示。要求在主类中定义一个student对象数组,表示一个讨论小组3名同学,输入他们的学号、姓名以及两门课程成绩,输出他们的学号、姓名和总成绩。

Student

-number:String

-name:String

-math:int

-computer:int

-total:int

Student()

Student(String, String)//赋值学号和姓名

setNumber(String) : void

setName(String) : void

+getNumber() : String

+getName() : String

setMathScore(int) : void

setcomputerScore(int) : void

computeTotalScore() : void

+getTotal(): int

【4-2】水井共享问题(类变量和类方法)

编写程序模拟两个村庄共用同一口井水。一个Village类,该类有一个静态的int型成员变量waterAmount,用于模拟井水的水量。在主类Prog1的main()方法中创建两个村庄,一个村庄改变了waterAmount的值,另一个村庄查看waterAmount的值。

Village

waterAmount : int; //static模拟水井的水量

peopleNumber : int; //村庄的人数

name : String; //村庄的名字

setWaterAmount(int) : void //static

drinkWater(int) : void

lookWaterAmount() : int //static

setPeopleNumber(int n) : void

getPeopleNumber() : int

【4-3】编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和Prog1(主类)。

具体要求如下:

Vehicle

speed:double

power:int

speedup(int):void

speeddown(int):void

getSpeed():double

setPower(int):void

getPower():int

Vehicle类有一个double类型的变量speed,用于表示机动车的速度,一个int类型变量power,用于表示激动剂的功率。方法speedUp(int s),体现机动车的加速功能;方法speedDown(int),体现机动车的减速功能。方法setPower(int p),用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。

【4-4】在【4-3】的基础上,进行如下改进。

(1) 改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200;

(2) 改进speedDown()方法,使得Vehicle类的对象减速时不能将speed值小于0;

(3) 增加一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变为0。

【4-5】编写一个Java应用程序,模拟家庭买一台电视。

具体要求如下:

创建TV.java、Family.java和Prog1.java,其中TV.java中的TV类负责创建“电视”对象,Family.java中的Family类负责创建“家庭”对象,Prog1是主类。

在主类Prog1的main()方法中使用TV类创建一个对象haierTV,然后使用Familiy类再创建一个对象zhangSanFamily,并将先前TV类的实例haierTV的引用传递给zhangSanFamily对象的成员变量homeTV。

Family

homeTV:TV

buyTV(TV):void

remoteControl(int):void

seeTV():void

TV

channel:int

SetChannel(int):void

getChannel():int

showProgram():void

【4-6】编写一个三角形类,该类的UML图如下,其方法功能请根据类Prog1的主方法和输出的结果编写。

Triangle

side1,side2,side3:int

area, perimeter:float

Triangle()

Triangle(int , int , int )

Triangle(Triangle)

isTriangle() : int

isTriangle(Triangle) : int

setSides(int, int, int) : void

computerArea():void

computerPerimeter() :void

getArea():float

getPerimeter():float

【4-7】继承的应用

1)声明一个图形抽象类(Shape),含有一个成员变量color(字符串类型),一个无参构造方法,一个有一个字符串参数的构造方法用于初始化颜色变量,一个getColor方法返回颜色值,一个抽象方法getArea获取图形面积,一个toString()方法显示图形的详细信息。

2)声明一个圆形类(Circle)继承自图形类,含有一个成员变量半径r;有一个有两个参数的构造方法用于初始化颜色和半径;一个getArea方法获取圆的面积;一个toString()方法显示圆形的详细信息。

3)声明一个矩形类(Rectangle)继承自图形,含有两个double类型的成员变量长a和宽b;有一个有三个参数的构造方法用于初始化颜色、长和宽;一个getArea方法获取矩形的面积;一个toString()方法显示矩形的详细信息。

4)声明一个图形工厂类型,内含一个createShape方法,根据用户输入的图形类型的名称,进而提示输入相应信息生成图形对象。

5)声明一个测试类(TestShape):不断询问用户欲生成图形类型的名称,由图形工厂创建相应图形类型,并打印相应图形的详细,直到用户输入quit为止。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
实验五
【5-1】要求:自定义异常类,并在方法中抛出异常和处理异常。

ExceptionExample.java

【代码1】 // 类声明,声明一个Exception的子类NoLowerLetter

{

public void print()  {

   System.out.printf("%c",'#');

}

}

【代码2】 // 类声明,声明一个Exception的子类NoDigit

{

public void print()  {

   System.out.printf("%c",'*');

}

}

class People {

void printLetter(char c) throws NoLowerLetter {

  if(c<'a'||c>'z') {

       NoLowerLetter noLowerLetter=【代码3】  // 创建NoLowerLetter类型对象

       【代码4】  // 抛出noLowerLetter

  }

  else {

       System.out.print(c);

  }

}

void printDigit(char c) throws NoDigit {

  if(c<'1'||c>'9') {

       NoDigit noDigit=【代码5】  // 创建NoDigit()类型对象

       【代码6】                // 抛出noDigit

  }

  else {

       System.out.print(c);

  }

}

}

public class ExceptionExample {

public static void main (String args[ ]){

    People people=new People( );

    for(int i=0;i<128;i++) {   

          try

             {

               people.printLetter((char)i);

             }

           catch(NoLowerLetter e)

             {

                e.print();

             }

    }

    for(int i=0;i<128;i++) {  

           try

             {

               people.printDigit((char)i);

             }

           catch(NoDigit e)

             {

                e.print( );

             }

     }

 }

}

【5-2】自定义异常的定义、拋出和捕获:

(1) 自定义两个异常类:非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。

(2) 定义Student类包含Name和Address属性,和setName、setAddress方法,当姓名长度小于1或者大于5时抛出IllegaNameException,当地址中不含有“省”或者“市”关键字时抛出IllegalAddressException。

(3) 编写程序抛出这两种异常,在main方法中进行捕获并合理地处理。

【5-3】】编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。(提示:需要捕获NumberFormatException异常)

实验六

【6-1】职工管理

  1. 有一个抽象类,职工类(Employee),包含保护成员: 工号(empId int),姓名 (empName String) , 年龄 (empAge int) 包含一个公有抽象方法 void show(),其作用为将信息打印到屏幕上

  2. 建立一个接口 interfaceEmp,包含一个公有方法void showName();其作用为将姓名信息打印到屏幕上

  3. 建立一个老师类(Teacher)继承职工类,实现interfaceEmp接口。增加一个私有属性所教班级编号 (classId String) ,覆盖show 方法,将所有信息打印出来。并实现showName方法,将其对象的名字打印出来。创建此教师类的构造函数,接收所有属性参数,进行构造赋值。

  4. 建立一个经理类(Manager) 继承职工类,实现interfaceEmp接口。增加一个私有属性经理编号 (managerId int) ,覆盖show 方法,将所有信息打印出来。和实现showName方法,将其对象的名字打印出来。创建此经理类的构造函数,接收所有属性参数,进行构造赋值

  5. 建立一个Demo类,包含main函数进行相应测试。创建一个Employee的引用,将他指向一个Teacher的对象。调用其show()方法;将此引用指向一个Manager对象,调用其show()方法。

【6-2】动物世界
在这里插入图片描述

子任务一:创建Animal类

  1. 创建Animal类,它是所有动物的抽象父类。
  2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。
  3. 定义一个受保护的构造器,用来初始化legs属性。
  4. 声明抽象方法eat。
  5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。

子任务二:Spider类

  1. Spider继承Animal类。
  2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。
  3. 实现eat方法

子任务三:创建pet(宠物)接口

  1. 提供getName() 返回该宠物的名字
  2. 提供setName(String name) 为该宠物命名
  3. 提供 play()方法

子任务四:创建猫类

  1. 该类必须包含String属性来存宠物的名字。
  2. 定义一个构造器,它使用String参数指定猫的名字;该构造器必须调用超类构造器来指明所有的猫都是四条腿。
  3. 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数
  4. 实现Pet接口方法。
  5. 实现eat方法。

子任务五:创建Fish类

  1. 创建Fish类,它继承Animal类
  2. 重写Animal的walk方法以表明鱼不能走且没有腿。
  3. 实现Pet接口
  4. 无参构造方法
  5. 提供一个private 的name属性

这里收录的去年期末考试的编程题,要仔细找哦,有代码的地方就有可能,得到了好处可别藏私哦!收纳不易,还请点赞收藏,听说一键三连的小伙伴都能顺利通过考试哦!
2019年期末考试编程题

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【练习题】01.的成员变量 猜数字游戏 一个A有一个成员变量v 有一个初值100。定义一个 对A的成员变量v 进行猜。如果大了则提示大了 小了则提示小了。等于则提示猜测成功。 【练习题】02.的成员变量 请定义一个交通工具(Vehicle)的 其中有: 属性 速度(speed) 体积(size)等等 方法 移动(move()) 设置速度(setSpeed(int speed)) 加速speedUp(),减速speedDown()等等. 最后在测试Vehicle中的main()中实例化一个交通工具对象 并通过方法给它初始化sp eed,size的值 并且通过打印出来。另外 调用加速 减速的方法对速度进行改变。 【练习题】03.的成员变量与方法、构造方法 在程序中 经常要对时间进行操作 但是并没有时间型的数据。那么 我们可以自己实现 一个时间 来满足程序中的需要。 定义名为MyTime的 其中应有三个整型成员 时 hour 分 minute 秒 second 为了保 证数据的安全性 这三个成员变量应声明为私有。 为MyTime定义构造方法 以方便创建对象时初始化成员变量。 再定义diaplay方法 用于将时间信息打印出来。 为MyTime添加以下方法 addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 【练习题】04.构造方法 编写Java程序 模拟简单的计算器。 定义名为Number的 其中有两个整型数据成员n1和n2 应声明为私有。编写构造方法 赋 予n1和n2初始值 再为该定义加 addition 、减 subtration 、乘 multiplication 、 除 division 等公有成员方法 分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number对象 调用各个方法 并显示计算结果。 【练习题】05.构造方法 编写Java程序 用于显示人的姓名和年龄。 定义一个人 Person 该中应该有两个私有属性 姓名 name 和年龄 age 。定义构造 方法 用来初始化数据成员。再定义显示 display 方法 将姓名和年龄打印出来。 在main方法中创建人的实例 然后将信息显示。 【练习题】06.get方法和set方法 定义一个有一个私有成员变量 通过构造方法将其进行赋初值 并提供该成员的g etXXX()和setXXX()方法 提示 假设有private String name。则有 public void setName(String name){ this.name = name。 } public String getName(){ return this.name。 } 【练习题】07.构造方法与重载 为"无名的粉"写一个 class WuMingFen 要求 1.有三个属性 面码:String theMa 粉的分量(两) int quantity 是否带汤 boolean likeSoup 2.写一个构造方法 以便于简化初始化过程 如 WuMingFen f1 = new WuMingFen("牛肉",3,true)。 3.重载构造方法 使得初始化过程可以多样化 WuMingFen f2 = new WuMingFen("牛肉",2)。 4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的 WuMingFen f3 = new WuMingFen()。 5.写一个普通方法 check() 用于查看粉是否符合要求。即 将对象的三个属性打印在控 制台上。 【练习题】08.构造方法的重载 定义一个名为Vehicles 交通工具 的基中应包含String型的成员属性brand 商 标 和color 颜色 还应包含成员方法run 行驶 在控制台显示"我已经开动了" 和showI nfo 显示信息 在控制台显示商标和颜色 并编写构造方法初始化其成员属性。 编写Car 小汽车 继承于Vehicles 增加int型成员属性seats 座位 还应增加成员方 法showCar 在控制台显示小汽车的信息 并编写构造方法。 编写Truck 卡车 继承于Vehicles 增加float型成员属性load 载重 还应增加成员 方法showTruck 在控制台显示卡车的信息 并编写构造方法。 在main方法中测试以上各。 【练习题】09.构造方法与重载 定义一个网络用户 要处理的信息有用户ID、用户密码、email地址。在建立的实例 时 把
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值