编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生类) [选做题] (java)

编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生类) [选做题] (java),第1张

题目

 6.1各系有以下成绩: 

• 英语系: 演讲,期末考试,期中考试; 

• 计算机系: *** 作能力,英语写作,期中考试,期末考试; 

• 文学系: 演讲,作品,期末考试,期中考试; 

• 6.2各系总分评测标准: 

• 英语系: 演讲 50% 

• 期末考试 25% 

• 期中考试 25% 

• 计算机系: *** 作能力 40% 

• 英语写作 20% 

• 期末考试 20% 

• 期中考试 20% 

• 文学系: 演讲 35% 

• 作品 35% 

• 期末考试 15% 

• 期中考试 15% 

• 6.3定义一个可容纳5个学生的学生类数组,使用随机数给该数组装入各系学生的对象,然后按如下格式输出数组中的信息: 

• 学号:XXXXXXXX 姓名:XXX 性别:X 年龄:XX 综合成绩:XX

学生类

String name;
	int studentnum;
	String sex;
	int age;
	student(String name,int studentnum,String sex,int age){
		this.name=name;
		this.studentnum=studentnum;
		this.sex=sex;
		this.age=age;
	}
	double achievement() {
		return 0;
	}

英语系子类

package studentachievement;
import java.text.DecimalFormat;

public class Englishstudent extends student{
	DecimalFormat df=new DecimalFormat("0.00");
	double lecture;
	double fexam;
	double mexam;
	Englishstudent(String name,int studentnum,String sex,int age,double lecture,double fexam,double mexam){
		super(name,studentnum,sex,age);
		this.lecture=lecture;
		this.fexam=fexam;
		this.mexam=mexam;
	}
	double achievement() {
		System.out.println("学号 "+studentnum+" 姓名 "+name+" 性别 "+sex+" 年龄 "+age+" 综合成绩 "+df.format((lecture/2)+(fexam/4)+(mexam/4)));
		return (lecture/2)+(fexam/4)+(mexam/4);
	}
}

计算机系子类

package studentachievement;
import java.text.DecimalFormat;

public class computerstudent extends student{
	DecimalFormat df=new DecimalFormat("0.00");
	double operational;
	double Englishwriting;
	double fexam;
	double mexam;
	computerstudent(String name,int studentnum,String sex,int age,double operational,double Englishwriting,double fexam,double mexam){
		super(name,studentnum,sex,age);
		this.operational=operational;
		this.Englishwriting=Englishwriting;
		this.fexam=fexam;
		this.mexam=mexam;
	}
	double achievement() {
		System.out.println("学号 "+studentnum+" 姓名 "+name+" 性别 "+sex+" 年龄 "+age+" 综合成绩 "+df.format((operational*4/10)+(Englishwriting/5)+(fexam/5)+(mexam/5)));
		return (operational*4/10)+(Englishwriting/5)+(fexam/5)+(mexam/5);
	}
}

文学系子类

package studentachievement;
import java.text.DecimalFormat;

public class departmentstudent extends student{
	DecimalFormat df=new DecimalFormat("0.00");
	double lecture;
	double works;
	double fexam;
	double mexam;
	departmentstudent(String name,int studentnum,String sex,int age,double lecture,double works,double fexam,double mexam){
		super(name,studentnum,sex,age);
		this.lecture=lecture;
		this.works=works;
		this.fexam=fexam;
		this.mexam=mexam;
	}
	double achievement() {
		System.out.println("学号 "+studentnum+" 姓名 "+name+" 性别 "+sex+" 年龄 "+age+" 综合成绩 "+df.format((lecture*35/100)+(works*35/100)+(fexam*15/100)+(mexam*15/100)));
		return (lecture*35/100)+(works*35/100)+(fexam*15/100)+(mexam*15/100);
	}
	
}

测试类

package studentachievement;
import java.util.Random;

public class test {
	public static void main(String[] args) {
		Random r = new Random();
		String sex;
		student [] arr = new student [5];
		for(int i=0;i<5;i++) {
			if(r.nextInt(2)==0) {
				sex="女";
			}else {
				sex="男";
			}
			int n=r.nextInt(3);//0为英语系,1为计算机系,2为文学系
			if(n==0) {
				arr[i]= new Englishstudent("张三", 200450800+i, sex, 18+r.nextInt(5),50+r.nextInt(51) ,50+r.nextInt(51),50+r.nextInt(51));
			}
			if(n==1) {
				arr[i]= new computerstudent("赵四", 200450800+i, sex, 18+r.nextInt(5), 50+r.nextInt(51) ,50+r.nextInt(51),50+r.nextInt(51),50+r.nextInt(51));
			}
			if(n==2) {
				arr[i]= new departmentstudent("王五", 200450800+i, sex, 18+r.nextInt(5), 50+r.nextInt(51) ,50+r.nextInt(51),50+r.nextInt(51),50+r.nextInt(51));
			}
		}
		for(int i=0;i<5;i++) {
			arr[i].achievement();
		}
	}
}

主要就是性别和系别都是用随机数生成的这块得想到其他就单纯的分子类写

其实我想写就是名字也是随机生成的但是感觉好麻烦就不想写了写一个名字的数组然后随机数生成之后把那个数组里面已经用过的名字删除这种?好麻烦

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/738322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存