首页 Java实验七

Java实验七

举报
开通vip

Java实验七实验七 抽象与多态 1.请设计 3 个类 , 分别是学生类 Student, 本科生类 Undergaduate, 研究生类 Postgraduate, 其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名、所学课程、课程成绩等 , 而 Undergraduate 类和 Postgraduate 都是 Student 类的子类 , 它们之间的主要差别是计算课程成绩等级的方法有所不同 , 研究生的标准要比本科生的标准高一些 , 如表 1-2 所示。表 1-2 课程成绩等级 本科生标准 ...

Java实验七
实验七 抽象与多态 1.请 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 3 个类 , 分别是学生类 Student, 本科生类 Undergaduate, 研究生类 Postgraduate, 其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名、所学课程、课程成绩等 , 而 Undergraduate 类和 Postgraduate 都是 Student 类的子类 , 它们之间的主要差别是计算课程成绩等级的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 有所不同 , 研究生的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 要比本科生的标准高一些 , 如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 1-2 所示。表 1-2 课程成绩等级 本科生标准 研究生标准 80--100 优秀 90--100 优秀 70--80 良好 80--90 良好 60--70 一般 70--80 一般 50--60 及格 60--70 及格 50 以下 不及格 60 以下 不及格 假设某班级里既有本科生也有研究生 , 请编写程序统计出全班学生的成绩等级并显示出来。此题关键是设计一个学生数组 , 既能存放本科生对象 , 又能存放研究生对象。 //Polymorphism.java abstract class Student { final static int CourseNo = 3; String name; String type; int[] courses; String courseGrade; public Student(String name) { this.name = name; courses = new int[CourseNo]; 【代码1】 //初始化courseGrade为空串 } public abstract void calculateGrade(); public String getName( ) { return name; } public String getType( ) { 【代码2】 //返回学生类型 } public String getCourseGrade( ) { return courseGrade; } public int getCourseScore(int courseNumber) { return courses[courseNumber]; } public void setName(String name) { this.name = name; } public void setType(String type) { this.type = type; } public void setCourseScore(int courseNumber, int courseScore) { 【代码3】 //按课程索引号设置课程成绩 } } class Undergraduate extends Student { public Undergraduate(String name ) { super(name); type = "本科生"; } public void calculateGrade() { int total = 0; double average = 0; for (int i = 0; i < CourseNo; i++) { 【代码4】 //累加各门课程成绩 }; average = total / CourseNo; if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "一般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格"; } } class Postgraduate extends Student { public Postgraduate(String name) { super(name); type = "研究生"; } public void calculateGrade() { int total = 0; double average = 0; for (int i = 0; i < CourseNo; i++) { total += courses[i]; }; average = total / CourseNo; if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "一般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格"; } } public class Polymorphism { public static void main(String[] args) { Student[] students = new Student[5]; students[0] = new Undergraduate("陈建平"); students[1] = new Undergraduate("鲁向东"); students[2] = new Postgraduate("匡晓华"); students[3] = new Undergraduate("周丽娜"); 【代码5】 //创建姓名为梁欣欣的Postgraduate对象students[4] for (int i=0; i<5 ;i++) { students[i].setCourseScore(0,87); students[i].setCourseScore(1,90); students[i].setCourseScore(2,78); } for (int i=0; i<5 ;i++) { students[i].calculateGrade(); } System.out.println("姓名" + " 类型" +" 成绩"); System.out.println("-----------------------"); for (int i=0; i<5 ;i++) { System.out.println(students[i].getName( )+" "+ students[i].getType( )+" "+ students[i].getCourseGrade( )); } } } 2.编写一个 Java 程序 , 程序中有一个父类 Telephone,Telephone 类中包含有电话品牌、电话号码、通话时间、费率等属性 , 以及计算话费和显示信息等方法。另外 , 程序中还有另一个类叫作 Mobilephone, 它是 Telephone 的子类 , 除了具有 Telephone 类的属性外 , 它还有自己的属性如网络类型、被叫时间 , 同时它有自己的计算话费和显示信息的方法。 最后程序中应包含一个主类来使用上述两个类并显示它们的信息。仔细阅读程序清单 1-5, 完成代码1~代码5. 程序清单 1-5 Inheritance.java class Telephone { String brand, number; double dialledTime; double rate; Telephone(String b, String n) { 代码1 //初始化电话品牌和号码 } String getBrand( ) { return brand; } String getNumber( ) { return number; } 代码2 //返回费率值 double getDialledTime( ) { return dialledTime; } void setBrand(String b) { brand = b; } void setNumber(String n) { 代码3 // 设置电话号码 } void setRate(double r) { rate = r; } void setDialledTime(double d) { dialledTime = d; } double callCost( ) { return dialledTime * rate; } void display( ) { System.out.println("电话品牌: "+ brand +" 电话号码: "+ number); System.out.println("通话时间: "+ dialledTime +" 费率: "+ rate); System.out.println("话费: "+ callCost( )); } } class Mobilephone extends Telephone { String network; double receivedTime; //被叫时间 Mobilephone(String b, String num, String net) { 代码4 //调用父类构造函数初始化电话品牌和号码 network = net; } String getNetwork( ) { return network; } double getReceivedTime( ) { return receivedTime; } void setNetwork(String n) { network = n; } void setReceivedTime(double d) { 代码5 //设置被叫时间 } double callCost( ) { return (dialledTime + 0.5*receivedTime) * rate; } void display( ) { System.out.println("电话品牌: "+ brand +" 电话号码: "+ number +" 网络: "+ network); System.out.println("主叫时间: "+ dialledTime +" 被叫时间: " + receivedTime +" 费率: "+ rate); System.out.println("话费: "+ callCost( )); } } public class Inheritance { public static void main(String[] args) { Telephone tel; Mobilephone mobile; tel = new Telephone("TCL", "8309600"); mobile = new Mobilephone("Nokia", "13007091010","CDMA"); tel.setRate(0.2); tel.setDialledTime(150); mobile.setRate(0.4); 代码6 //设置主叫时间为80 mobile.setReceivedTime(120); tel.display( ); System.out.println( ); 代码7 //显示移动电话的信息 } }
本文档为【Java实验七】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_603842
暂无简介~
格式:doc
大小:66KB
软件:Word
页数:6
分类:工学
上传时间:2013-04-15
浏览量:269