南邮java大作业实验报告_南京邮电大学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对象,并显示或修改这两个对象的属性值。
packagelg.test;//测试类
public classDemo31 {public static voidmain(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());
}
}classStudent {privateString studentID;privateString name;privateString sex;private intage;private static intcount;public static intgetCount() {returncount;
}
Student(String studentID, String name, String sex,intage) {this.studentID =studentID;this.name =name;this.sex =sex;this.age =age;
}
@OverridepublicString toString() {return "Student{" +
"studentID='" + studentID + '\'' +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}//studen的set和get方法
publicString getStudentID() {returnstudentID;
}public voidsetStudentID(String studentID) {this.studentID =studentID;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getSex() {returnsex;
}public voidsetSex(String sex) {this.sex =sex;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}public static void setCount(intcount) {
Student.count=count;
}
}//新建立的CoolegeStudent对象
class CollegeStudent extendsStudent{privateString profession;
CollegeStudent(String studentID, String name, String sex,intage, String profession) {super( studentID, name, sex, age );this.profession =profession;
}//属性的get & set方法
publicString getProfession() {returnprofession;
}public voidsetProfession(String profession) {this.profession =profession;
}
@OverridepublicString 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定义为接口,设计程序实现多态性。
第一:通过类来实现
classPerson {public intbasic;public inthour;public intcharge;publicPerson() {
}public Person(int basic, intcharge) {this.basic =basic;this.charge =charge;
}public void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (basic + hour *charge) );
}
}class Assistant extendsPerson {publicAssistant() {super( 800, 25);
}
}class Instructor extendsPerson {publicInstructor() {super( 1000, 35);
}
}class AssistantProfessor extendsPerson {publicAssistantProfessor() {super( 1200, 40);
}
}class Professor extendsPerson {publicProfessor() {super( 1400, 50);
}
}
View Code
第二:通过抽象方法实现
abstract classPerson {public inthour;//public int basic;//public int charge;//public Person() {//}//public Person(int basic, int charge) {//this.basic = basic;//this.charge = charge;//}
public abstract void pay(inthour);
}class Assistant extendsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (800 + hour * 25) );
}//public Assistant() {//super( 800, 25 );//}
}class Instructor extendsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1000 + hour * 35) );
}//public Instructor() {//super( 1000, 35 );//}
}class AssistantProfessor extendsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1200 + hour * 40) );
}//public AssistantProfessor() {//super( 1200, 40 );//}
}class Professor extendsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1400 + hour * 50) );
}//public Professor() {//super( 1400, 50 );//}
}
View Code
第三:通过接口实现
interfacePerson {void pay(inthour);
}class Assistant implementsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (800 + hour * 25) );
}//public Assistant() {//super( 800, 25 );//}
}class Instructor implementsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1000 + hour * 35) );
}//public Instructor() {//super( 1000, 35 );//}
}class AssistantProfessor implementsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1200 + hour * 40) );
}//public AssistantProfessor() {//super( 1200, 40 );//}
}class Professor implementsPerson {
@Overridepublic void pay(inthour) {
System.out.println( hour+ "小时后的工资为" + (1400 + hour * 50) );
}//public Professor() {//super( 1400, 50 );//}
}
View Code
3. 从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。
packageleetcode;importjava.util.InputMismatchException;importjava.util.Scanner;/*** @Author liguo
* @Description . 从键盘输入两个数,进行相除,显示商。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。
* @Data 2018-04-03*/
public classDemo {public static voidmain(String[] args) {int oper1 = 0; //定义被除数
int oper2 = 0; //定义除数
Scanner in = newScanner( 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()方法,其读取的
都是控制台中的第一行。
//网上测试的好多异常处理,亲测并不能使用。
南邮java大作业实验报告_南京邮电大学java第三次实验报告相关推荐
- 南京邮电大学java实验报告_南京邮电大学java第二次实验报告
三.实验内容 1. 寻找并输出11~999之间的数m,它满足m.m2.m3均为回文数.回文数是各位数字左右对称的整数.判断是否为回文要求通过编写方法来完成. packageTest;/*** @Aut ...
- 南信与南邮谁的计算机专业更强,南京信息工程大学和南京邮电大学,谁更强!网友:“不相上下”!...
遍数全国的名校中,南京地区的名校不在少数.仅仅是985高校就有南京大学和东南大学两所,211院校也有南京航空航天大学.南京理工大学.南京师范大学.南京农业大学.河海大学.中国药科大学等不少知名高校. ...
- 南京邮电大学c语言实验报告5,南京邮电大学C语言大一上期末复习.pdf
南京邮电大学C语言大一上期末复习.pdf 高级语言程序设计期末总复习高级语言程序设计期末总复习 课程的全部内容可分为五大模块课程的全部内容可分为五大模块 1 1基础知识基础知识 2 2三种基本结构及流 ...
- java实验文法报告_西安邮电大学编译原理LL文法分析器实验(java).doc
西安邮电大学编译原理LL文法分析器实验(java) <编译原理>实验报告 题目: 语法分析器的制作 学生姓名: 班 级: 软件1202 学 号: 指导教师: 成 绩: 西安邮电大学计算机学 ...
- java合肥工业大学考试题库_合肥工业大学java程序设计实验二
合肥工业大学java程序设计实验二 1 / 3<Java 程序设计>实验报告--实验 2实验室:三.四机房 2014 年 05 月 22日学院 计算机与信息学院 专业班级 姓名 成绩课程名 ...
- 南邮Android大作业(连连看口袋妖怪版)
基础原型: https://blog.csdn.net/ouyang_peng/article/details/14115627 修改: 可以选择游戏难度:简单.普通.困难(其实就是图片变多了) 每个 ...
- 北邮大二大物期末_北京邮电大学2015大学物理期末考试试题.pdf
北京邮电大学2015大学物理期末考试试题 北京邮电大学2015--2016学年第 一 学期 <大学物理B (下)>期末考试试题 考 一.学生参加考试须带学生证或学院证明,未带者不准进入考场 ...
- 南京邮电大学java程序设计作业在线编程第二次作业
王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60 1. 表达式9==8&&3<7的运算结果是( ) ...
- 南京邮电大学Java软件开发(混合式)实验2:银行账户管理——面向对象
一. Java 类与对象的基本知识: 1. 类的定义 2. 方法重载 3. 构造方法 4. static 关键字 5. this 关键字 6. 包与import 语句 7. 访问权限 8. 对象的使用 ...
最新文章
- edgeR:一个数字基因表达数据差异表达分析Bioconductor程序包
- C语言 函数递归例题解析
- Notepad++ 查找替换 换行符的方法
- Python 安装modules问题及import问题
- 【个人笔记】OpenCV4 C++ 快速入门 29课
- mybatis中的SqlMapConfig.xml配置文件基本使用
- 非平稳序列的随机性分析(SAS)
- 【博客分享】优秀的有趣的博客
- PPT进行图片的背景去除以及填充新背景,保存图片为PDF
- 红日安全ATT&CK靶机实战系列之vulnstack1
- PID LSim PT3这个仿真模块 S7-1200 S7-1500 CPU下载
- Lib库使用学习笔记
- NBUT1225 NEW RDSP MODE I(快速幂,规律)
- 如何修复png图片?简单的方法
- 百度地图 标记聚合器MarkerClusterer结合TextIconOverlay,根据标记点的属性更换聚合器的样式
- 文件File 的使用
- 一文读懂电磁学发展史[图文版]
- 在二叉树中找到两个节点的最近公共祖先(C++)
- 云适配CEO陈本峰:移动办公真正产生商业价值要落到实际场景中
- Java算法(八)详细解析:寻找完数