南京邮电大学java第三次实验报告
实 验 报 告
( 2017 / 2018学年 第2学期)
课程名称 |
JAVA语言程序设计 |
|||||
实验名称 |
Java集成开发环境的安装与使用、 Java变量、表达式与控制结构 |
|||||
实验时间 |
2018 |
年 |
4 |
月 |
11 |
日 |
指导单位 |
计算机学院软件教学中心 |
|||||
指导教师 |
许棣华 |
学生姓名 |
王利国 |
班级学号 |
B160209 |
学院(系) |
电子与光学工程学院,微电子学院 |
专 业 |
微电子科学与工程 |
实验名称 |
方法、数组和类 |
指导教师 |
许棣华 |
||||||||
实验类型 |
上机 |
实验学时 |
2 |
实验时间 |
2017.4.11 |
三、实验内容
1. 在前面实验二已定义的学生类Student的基础上,以Student类为父类,为学生类派生出一个子类为大学生类(CollegeStudent)。
CollegeStudent 类在学生类上增加一个专业(profession)数据属性;方法上增加获得专业和设置专业两个方法。并对超类中的toString( )方法进行重写,使得CollegeStudent类中的toString( )方法除了显示学生类的信息外,还要显示它的专业属性。
编写测试程序的主类。在主类中创建一个Student对象和CollegeStudent对象,并显示或修改这两个对象的属性值。
package lg.test; //测试类public class Demo31 {public static void main(String[] args) {Student one = new Student( "16020912", "王宁宁","男" , 19 );CollegeStudent two = new CollegeStudent( "16020913", "王利国","男" , 19 ,"微电子科学与工程" );System.out.println("未进行修改的时候的属性值");System.out.println(one.toString());System.out.println(two.toString());System.out.println("修改后的属性值");one.setAge( 20 );two.setProfession( "微电子" );System.out.println(one.toString());System.out.println(two.toString());}}class Student {private String studentID;private String name;private String sex;private int age;private static int count;public static int getCount() {return count;}Student(String studentID, String name, String sex, int age) {this.studentID = studentID;this.name = name;this.sex = sex;this.age = age;}@Overridepublic String toString() {return "Student{" +"studentID='" + studentID + '\'' +", name='" + name + '\'' +", sex='" + sex + '\'' +", age=" + age +'}';}//studen的set和get方法public String getStudentID() {return studentID;}public void setStudentID(String studentID) {this.studentID = studentID;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public static void setCount(int count) {Student.count = count;}}//新建立的CoolegeStudent对象class CollegeStudent extends Student{private String profession;CollegeStudent(String studentID, String name, String sex, int age, String profession) {super( studentID, name, sex, age );this.profession = profession;}//属性的get & set方法public String getProfession() {return profession;}public void setProfession(String profession) {this.profession = profession;}@Overridepublic String toString() {return "CollegeStudent{" +"profession='" + profession + '\'' +"studentID='" + super.getStudentID() + '\'' +", name='" + super.getName() + '\'' +", sex='" + super.getSex() + '\'' +", age=" + super.getAge() +'}';}}
View Code
2. 设计一个人员类(Person),其中包含一个方法pay,代表人员的工资支出。再从Person类派生出助教类(Assistant)、
讲师类(Instructor)、副教授类(Assistant Professor)和教授类(Professor)。其中:工资支出=基本工资+授课时数*每课时兼课金。 但助教基本工资为800,每课时兼课金25,讲师基本工资为1000,每课时兼课金35, 副教授基本工资为1200,每课时兼课金40,教授基本工资为1400,每课时兼课金50。 ① 将Person定义为抽象类,pay为抽象方法,设计程序实现多态性。 ② 将Person定义为接口,设计程序实现多态性。第一:通过类来实现
class Person {public int basic;public int hour;public int charge;public Person() {}public Person(int basic, int charge) {this.basic = basic;this.charge = charge;}public void pay(int hour) {System.out.println( hour + "小时后的工资为" + (basic + hour * charge) );}}class Assistant extends Person {public Assistant() {super( 800, 25 );}}class Instructor extends Person {public Instructor() {super( 1000, 35 );}}class AssistantProfessor extends Person {public AssistantProfessor() {super( 1200, 40 );}}class Professor extends Person {public Professor() {super( 1400, 50 );}}
View Code
第二:通过抽象方法实现
abstract class Person {public int hour;// public int basic;// public int charge;// public Person() {// }// public Person(int basic, int charge) {// this.basic = basic;// this.charge = charge;// }public abstract void pay(int hour);}class Assistant extends Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (800 + hour * 25) );}// public Assistant() {// super( 800, 25 );// } }class Instructor extends Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1000 + hour * 35) );}// public Instructor() {// super( 1000, 35 );// } }class AssistantProfessor extends Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1200 + hour * 40) );}// public AssistantProfessor() {// super( 1200, 40 );// } }class Professor extends Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1400 + hour * 50) );}// public Professor() {// super( 1400, 50 );// } }
View Code
第三:通过接口实现
interface Person {void pay(int hour);}class Assistant implements Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (800 + hour * 25) );}// public Assistant() {// super( 800, 25 );// } }class Instructor implements Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1000 + hour * 35) );}// public Instructor() {// super( 1000, 35 );// } }class AssistantProfessor implements Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1200 + hour * 40) );}// public AssistantProfessor() {// super( 1200, 40 );// } }class Professor implements Person {@Overridepublic void pay(int hour) {System.out.println( hour + "小时后的工资为" + (1400 + hour * 50) );}// public Professor() {// super( 1400, 50 );// } }
View Code
3. 从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。
package leetcode;import java.util.InputMismatchException; import java.util.Scanner;/*** @Author liguo* @Description . 从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。* @Data 2018-04-03*/ public class Demo {public static void main(String[] args) {int oper1 = 0; //定义被除数int oper2 = 0; //定义除数Scanner in = new Scanner( System.in );try {//数据输入和输出System.out.print( "请输入被除数:" );oper1 = in.nextInt();System.out.print( "请输入除数:" );oper2 = in.nextInt();System.out.println( "计算结果:" + oper1 / oper2 );} catch (ArithmeticException e2) {System.out.println( "异常1:除数为零!,请重新输入除数" );oper2 = in.nextInt();System.out.println( "计算结果:" + oper1 / oper2 );} catch (InputMismatchException e1) {System.out.println( "异常2:输入不为数字!,请重新输入" ); // int one = in.nextInt(); // int two = in.nextInt(); // System.out.println( "计算结果:" + one / two );System.out.print( "请输入被除数:" );String a = in.next();oper1 = in.nextInt();System.out.print( "请输入除数:" );oper2 = in.nextInt();System.out.println( "计算结果:" + oper1 / oper2 );} // catch (NumberFormatException e4) {; // System.out.println( "FormatException4:" + e4.getMessage() ); // oper1 = in.nextInt(); // oper2 = in.nextInt(); // System.out.println( "计算结果:" + oper1 / oper2 ); // }finally {System.out.println( "程序结束" );}} }
View Code
四、实验小结(包括问题和解决方法、心得体会等)
使用try-catch进行异常处理,遇到很多问题
1:不知道捕获异常的种类
2:关于异常的处理
3:输入输出格式异常的处理,关于Scanner方法,使用in.nexInt()方法,其读取的
都是控制台中的第一行。
//网上测试的好多异常处理,亲测并不能使用。
转载于:https://www.cnblogs.com/liguo-wang/p/9130057.html
南京邮电大学java第三次实验报告相关推荐
- 南邮java大作业实验报告_南京邮电大学java第三次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- 南京邮电大学java实验报告_南京邮电大学java第二次实验报告
三.实验内容 1. 寻找并输出11~999之间的数m,它满足m.m2.m3均为回文数.回文数是各位数字左右对称的整数.判断是否为回文要求通过编写方法来完成. packageTest;/*** @Aut ...
- 南京邮电大学Java软件开发(混合式)实验2:银行账户管理——面向对象
一. Java 类与对象的基本知识: 1. 类的定义 2. 方法重载 3. 构造方法 4. static 关键字 5. this 关键字 6. 包与import 语句 7. 访问权限 8. 对象的使用 ...
- 南京邮电大学java程序设计作业在线编程第二次作业
王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60 1. 表达式9==8&&3<7的运算结果是( ) ...
- 南京邮电大学JAVA期末试卷_南京邮电大学 JavaA期末复习要点总结
Chap1 入门 1. Java应用程序开发过程教材P14~P15 Chap 2 基本语法 1. 标识符的命名规则教材P19 字母下划线美元符号开头,除关键字以外的值: 2. 基本数据类型及占内存空间 ...
- 南京邮电大学c语言程序设计平台,程序设计报告-南京邮电大学-学生管理系统-c语言.doc...
程序设计报告-南京邮电大学-学生管理系统-c语言.doc 程序设计报告 题 目: 学生信息管理系统 专 业 电子信息科学与技术 学 生 姓 名 孟祥熙 班 级 学 号 指 导 教 师 王蔚 指 导 单 ...
- 南京邮电大学c语言实验报告5,南京邮电大学C语言大一上期末复习.pdf
南京邮电大学C语言大一上期末复习.pdf 高级语言程序设计期末总复习高级语言程序设计期末总复习 课程的全部内容可分为五大模块课程的全部内容可分为五大模块 1 1基础知识基础知识 2 2三种基本结构及流 ...
- 南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目
南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目 参考书目 来源:中国考研网 2012-10-10 相关院校:南京邮电大学 2018年考研专业课复习资料 历年真题-笔记讲义-复习题模拟题 ...
- 南京邮电大学计算机应用基础,南京邮电大学20102011学年第二学期计算机应用基础能力考.doc...
南京邮电大学20102011学年第二学期计算机应用基础能力考.doc 南京邮电大学2010/2011学年第二学期计算机应用基础能力考核安排表 地 点:仙林校区教2西计算中心(A.B.C机房) 2011 ...
- 南邮计算机2021进面分数,南京邮电大学2021年硕士研究生复试分数线+调剂信息汇总...
南京邮电大学硕士研究生招生办近日公布了今年硕士研究生复试各学院的分数线,调剂专业计划数量,以及复试录取方法.包含了复试时间,复试内容等信息.麦麦下面就简单汇总了下.方便各位报考的考生参考. 注意下今天 ...
最新文章
- 【大作业】城市地铁线路最短路规划及路径输出(满分)
- 数据结构中“图”的相关概念理解
- 数学计算机学具制作,神奇的数学
- 零基础带你学习MySQL—创建表(四)
- 运行 Excel 脚本
- sfm点云代码_PCL点云显示sfm数据
- 将文件上载到服务器是包含本地路径,2020年初级会计师考试照片审核通过但是上传不了是怎么回事?...
- [GIS教程] 5.3 空间数据组织
- everthing 添加右键菜单
- 浅析 微信公共平台消息 开发原理
- 浏览器pdf朗读插件
- 《东周列国志》第四十五回 晋襄公墨缞败秦 先元帅免胄殉翟
- 槃星—第1天任务—植物大战僵尸游戏数据修改(Hex Editor Neo)
- Yocto ffmpeg 编译
- 清晰思路带你掌握如何运用循环打印各种图案(新手向)
- 一款“新颖” 潮范儿 的旅行APP软件
- 适合上班族的25个副业
- [易飞]累计组成用量=组成用量/(底数*标准用量)
- GoF的23种设计模式的分类和功能
- 支付宝支付集成过程中如何生成商户订单号(out_trade_no)