• 问题:

    定义课程信息类,包含课程编号、课程名称及学生成绩。编程实现对软件工程专业的某班级的所有课程成绩统计,包括平均成绩、最高成绩、最低成绩,并打印成绩等级分布律。

分析

初分析:

父类(课程信息类):三个变量(编号、名称、以及学生成绩)、构造方法默认以及全选的、方法get个set类和display。

子类(对父类的统计及分析):构造方法(关键字super()),方法(平均值、最大最小值以及分布律)

设计

父类(课程信息类):

package HOME8;

public class Course_infor {
private String number;
private String name;
public int[] grades; public Course_infor() { } public Course_infor(String number, String name, int[] grades ) { this.number = number;
this.name = name;
this.grades = grades;
} public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int[] getGrades() {
return grades;
} public void setGrades(int[] grades) {
this.grades = grades;
} public void display() {
System.out.println("课程编号:"+number+"\n"+ "课程名称:"+name+"\n");
} }

子类(对父类的统计及分析)

package HOME8;

public class Statistics extends Course_infor {
int sum = 0,Max,Min;
int[] DL = new int[11]; public Statistics() { }
public Statistics(String number, String name, int[] grades ) {
super(number,name,grades);
Min = grades[0];
Max = grades[0]; } public void average() {
for(int i = 0;i<grades.length;i++) { sum += grades[i];
}
System.out.println("平均值:"+(double)sum/grades.length+"\n"); }
public void Maxgrades() {
for(int i = 0;i<grades.length;i++) { if(Max<grades[i])
{
Max = grades[i];
}
} System.out.println("最大值:"+Max+"\n");
}
public void Mingrades() {
for(int i = 0;i<grades.length;i++) { if(Min>grades[i])
{
Min = grades[i];
}
} System.out.println("最小值:"+Min+"\n");
}
public void DL() {
for(int i = 0;i<grades.length;i++) {
DL[grades[i]/10]++;
} for(int i=0;i<11;i++) {
System.out.printf("%d~%d:",10*i,10*(i+1));
for(int j = 0;j<DL[i];j++) {
System.out.printf("*");
}
System.out.println(); } } }

测试

测试

点击查看代码
package HOME8;

public class test {

	public static void main(String[] args) {
Course_infor a = new Course_infor("a","软件工程实践",new int[]{12,14,1,2,21,22,33,44,55,66,77,88,99});
a.display();
Statistics b = new Statistics("a","软件工程实践",new int[]{12,14,1,2,21,22,33,44,55,66,77,88,99});
b.average();
b.Maxgrades();
b.Mingrades();
b.DL(); } }

【java】【作业】定义课程信息;继承和组合练习的更多相关文章

  1. Servlet+纯java+MySQL实现课程信息的增删改查

    Dbutil: package com.zh.util; import java.sql.Connection; import java.sql.DriverManager; import java. ...

  2. 关于Java中的继承和组合的一个错误使用的例子

    [TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...

  3. [Think In Java]基础拾遗1 - 对象初始化、垃圾回收器、继承、组合、代理、接口、抽象类

    目录 第一章 对象导论第二章 一切都是对象第三章 操作符第四章 控制执行流程第五章 初始化与清理第六章 访问权限控制第七章 复用类第九章 接口 第一章 对象导论 1. 对象的数据位于何处? 有两种方式 ...

  4. Java中的继承与组合(转载)

    本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...

  5. Java中的继承与组合

    本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...

  6. [译]Java中的继承 VS 组合

    (文章翻译自Inheritance vs. Composition in Java) 这篇文章阐述了Java中继承和组合的概念.它首先给出了一个继承的例子然后指出怎么通过组合来提高继承的设计.最后总结 ...

  7. 菜鸟译文(一)——Java中的继承和组合

    阅读英文的能力对于程序员来说,是很重要的.这几年也一直在学习英文,今天心血来潮,就在网上找了一篇简短的博文翻译一下.水平一般,能力有限,还请各位看官多多指点. 译文: 本文将会举例说明Java中继承和 ...

  8. 新秀翻译(一个)——Java在继承和组合

    阅读英文的程序猿的能力,这是非常重要的.过去的几年中一直在学习英语,今天心血来潮,在网上找什么鲍文简要翻译. 普通级,能力有限,看官还请大家多多指点. 译文: 本文将会举例说明Java中继承和组合的概 ...

  9. java小心机(4)| 继承与组合的爱恨情仇

    在java中,有两种主要复用代码的方法:继承和组合. 继承,是OOP的一大特性,想必大家都非常熟悉了;组合,其实也很常见,只是不知道它的名字罢了. 继承 子类拥有父类的基本特性,需使用extend关键 ...

随机推荐

  1. Vue 2.0 与 Vue 3.0 响应式原理比较

    Vue 2.0 的响应式是基于Object.defineProperty实现的 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 prop ...

  2. 20210713考试-2021noip14

    T1 队长快跑 #include<bits/stdc++.h> using namespace std; const int N=1e6+5,INF=0x7fffffff; int n,a ...

  3. git各种操作:基本操作 and 多人协作 and 冲突解决

    git基本操作 git 上次文件到远程仓库(参考:https://blog.csdn.net/beiqiaofeng123/article/details/104859326) 如果第一次上传,配置一 ...

  4. Flex语法和常用鼠标手势

    Flex弹性和模型 1.display : flex/inline-flex ;(设置给氟元素) flex : 将对象作为弹性伸缩盒显示: inline-flex : 将对象作为内联块级弹性伸缩显示: ...

  5. Selenium系列4-元素定位

    前言 说起元素定位,一定是学习自动化测试绕不开的第一道关,无论是web端的UI自动化还是移动端的自动化,在需要首先对元素进行定位才可以完成对元素的操作已达成测试目的,在Selenium中,可以使用fi ...

  6. Docker系列(20)- 数据卷容器

    数据卷容器 什么是数据卷容器? 容器和容器之间实现数据共享 一个容器先于宿主机创建挂载方式,宿主机就会有改卷的目录 第二个容器使用命令--volumes-from 第一个容器,共享使用了第一个容器与宿 ...

  7. 发送curl请求的函数

    //发送curl请求的函数function curl_request($url, $post = false, $data=array(), $https = false){ //使用curl_ini ...

  8. 『GoLang』string及其相关操作

    目录 1. 字符串简介 2. 字符串的拼接 3. 有关 string 的常用处理 3.1 strings 包 3.1.1 判断两个 utf-8 编码字符串是否相同 3.1.2 判断字符串 str 是否 ...

  9. 鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步 | 百篇博客分析OpenHarmony源码 | v29.01

    百篇博客系列篇.本篇为: v29.xx 鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步 | 51.c.h .o 进程通讯相关篇为: v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当立 ...

  10. pkusc2021游记

    @ 目录 前言 Day 0 Day 1 Day 2 Day 3 前言 到时候APIO的大概也会写在这篇里吧. Day 0 车,公交,飞机,公交,车 坐了半天的交通终于到了,整个人都坐的晕乎乎的,然后看 ...