可做奥鹏院校所有作业,毕业论文,咨询请添加QQ:3230981406 微信:aopopenfd777
中国石油大学(北京)远程教育学院
期 末 考 试
《 Java语言程序设计 》
学习中心:_______ 姓名:________ 学号:_______
关于课程考试违规作弊的说明
1、提交文件中涉嫌抄袭内容(包括抄袭网上、书籍、报刊杂志及其他已有论文),带有明显外校标记,不符合学院要求或学生本人情况,或存在查明出处的内容或其他可疑字样者,判为抄袭,成绩为“0”。
2、两人或两人以上答题内容或用语有50%以上相同者判为雷同,成绩为“0”。
3、所提交试卷或材料没有对老师题目进行作答或提交内容与该课程要求完全不
一、题型
,4题,每题15分,共60分;编程题,2题,每题20分,共40分
二、题目
共两套题,学号末尾数单号学生做第一套,学号末尾数双号学生做第二套题
第一套题
一、
1 什么是多态性? 方法的重载和覆盖有何区别? 阅读下列代码,指出其中存在的重载和覆盖, 写出输出结果是什么?解释为什么这样输出? (15分)
class C1
{
public void f() {
System.out.println("C1.f");
}
}
class C2 extends C1
{
public void f() {
System.out.println("C2.f");
}
}
class C3 {
public void g(C1 one) {
System.out.println("g(C1)");
one.f();
}
public void g(C2 two) {
System.out.println("g(C2)");
two.f();
}
}
public class Main1
{
public static void main(String[] args) {
C1 one = new C2();
C3 three = new C3();
three.g(one);
}
}
2、请用自己的语言介绍throw/throws有什么联系和区别?在程序中应如何使用?另外谈谈final、finally的区别和作用,必须举例说明用法。(15分)
3、编写一个描述学生基本情况的类,属性包括姓名,学号,语文成绩,数学成绩和英语成绩,方法包括信息输出,设置姓名和学号,设置三门课程成绩,计算总成绩和平均成绩。在main方法中对方法进行测试(15分)
4、Java中实现多线程有几种方式?这几种方式有什么区别?然后采取其中一种方式设计一个线程例子,在例子中构造4个线程对象实现对同一数据类对象进行操作(数据初始值为0),其中线程对象1对数据执行+10的操作,线程对象2对数据执行+20的操作, 对象3对数据执行乘以3的操作,线程对象4对数据执行除以4的操作,,要求考虑线程同步,保证数据操作的正确性。要求提供程序代码以及运行结果截图(15分)
二、编程题
1、编写一个图形用户界面程序,包含两个按钮,一个信息标签(label)和一个显示面板,两个按钮分别为“掷色子”和“移动”,在显示面板中显示一个小人(用小圆以及线绘制),随机设定小人的初始位置,当点击“掷色子”按钮,随机产生移动信息(上移,下移,左移,右移,移动几步),并显示在信息标签中,点击移动,按照产生的移动信息,让小人进行移动。要求提供完整程序代码以及运行结果截图(20分)
2、编写一个班级推优(优秀学生干部)投票管理程序。列出参与推优的学生名单(6名),可以勾选进行投票,要求每个参选学生前面有图标表示候选人的职务,每人可以投3票,每次投票后能够显示当前投票人数以及每名候选者得票数,图形化柱状图显示得票数,可以保存投票结果到文本文件。要求提供完整程序代码以及运行结果截图(20分)
第二套题
一、
1 什么是多态性? 方法的重载和覆盖有何区别? 阅读下列代码,指出其中存在的重载和覆盖, 写出输出结果是什么?解释为什么这样输出? (15分)
class Class1
{
public void find() {
System.out.println("Class1.find");
}
}
class Class2 extends Class1
{
public void find() {
System.out.println("Class2.find");
}
}
class Class3 {
public void get(Class1 one) {
System.out.println("get(Class1)");
one.find();
}
public void get(Class2 two) {
System.out.println("get(Class2)");
two.find();
}
}
public class Test1
{
public static void main(String[] args)
{
Class1 one = new Class2();
Class3 three = new Class3();
three.get(one);
}
}
2、请说说final、finally的区别和作用,举例说明用法;另外用自己的语言介绍throw/throws有什么联系和区别?在程序中应如何使用?(15分)
3、编写一个描述老师基本情况的类,属性包括姓名,教工号,基本工资,岗位工资和绩效工资,方法包括信息输出,设置姓名和教工号,设置三种工资金额,计算总工资(三种工资加起来)和税后工资(按如下方式计算,3000以内不收税,3000-5000之间的部分扣10%,大于5000的部分扣15%)。在main方法中对方法进行测试(15分)
4、Java中实现多线程有几种方式?这几种方式有什么区别?然后采取其中一种方式设计一个线程例子,在例子中构造4个线程对象实现对同一数据类对象进行操作(数据初始值为10),其中线程对象1对数据执行乘以10的操作,线程对象2对数据执行乘以20的操作, 对象3对数据执行+30的操作,线程对象4对数据执行+40的操作,要求考虑线程同步,保证每一步数据操作的正确性。要求提供程序代码以及运行结果截图(15分)
二、编程题
1、编写一个图形用户界面程序,包含两个按钮,一个信息标签(label)和一个显示面板,两个按钮分别为“掷色子”和“移动”,在显示面板中显示一个小汽车(用小圆\矩形以及线绘制),随机设定小汽车的初始位置,当点击“掷色子”按钮,随机产生移动信息(上移,下移,左移,右移,移动几步),并显示在信息标签中,点击移动,按照产生的移动信息,让小汽车进行移动。要求提供完整程序代码以及运行结果截图(20分)
2、编写一个班级推优(三好生)投票管理程序。列出参与推优的学生名单(8名),可以勾选进行投票,要求每个参选学生前面有图标表示候选人的性别,每人可以投4名候选人,每次投票后能够显示当前投票人数以及每名候选者得票数,图形化柱状图显示得票数,可以保存投票结果到文本文件。要求提供完整程序代码以及运行结果截图(20分)
三、要求
第1题,必须明确指出存在的重载和覆盖,对于输出结果进行解析。
第2题,必须举例说明用法。
第3题,必须提供程序代码以及运行结果截图。
第4题, 必须提供程序代码以及运行结果截图。
编程题1,2题,必须提供程序代码以及运行结果截图。
四、评分标准
一、(4题,每题15分)
1什么是多态性?(2分),方法的重载和覆盖有何区别?(3分), 指出其中存在的重载和覆盖(3分) 写出输出结果(3分)解释为什么这样输出(4分)
2 throw/throws有什么联系和区别 (4分) 在程序中应如何使用?(3分) final、finally的区别和作用(4分)举例说明用法(4分)
3类的声明以及属性(3分),方法的编写(8分)在main方法中对方法进行测试(2分)运行结果截图(2分)
4 Java中实现多线程有几种方式?这几种方式有什么区别 (4分),线程类以及数据类的代码(4分)线程同步(3分),4个线程对象(2份)运行结果截图(2分)
二、编程题(2题,每题20分)
1 界面布局(5分),事件处理(5分),图形绘制(5分),对象移动(2分),运行结果截图(3分)
2界面布局(5分),事件处理(4分),图形绘制(4分),保存结果到文件(4分),运行结果截图(3分)