6-1 奖学金资格审查系统
分数 15
全屏浏览题目
作者 大数据2021
单位 山东科技大学
由于奖学金评选工作需要,现需要设计一套系统对学生是否具有评选资格进行筛选,目前已给出一个学生类
Student
,其包含学号(String id
)、综合测评成绩(double ca
)两个私有属性,以及具有能够初始化学号和综合测评成绩两个参数的构造方法和判断是否具有参评奖学金资格的方法(boolean isReq()
),需要您完成以下内容:1、定义本科生类
Undergraduate
继承Student
,并重写isReq()
若ca>=80
时返回true
,否则返回false
;2、定义研究生类
Graduate
继承Student
,增加导师确认(boolean supervisor
)属性,并重写isReq()
若ca>=85
且supervisor
为true
时返回true
,否则返回false
;注意:除题目已给出的属性,所有类不得添加新的属性,但可以适当添加方法。
裁判测试程序样例:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //通过键盘输入确定Student数组的长度 Student[] stu = new Student[Integer.parseInt(sc.nextLine())]; for (int i = 0; i < stu.length; i++) { //截取输入的字符 String[] str = sc.nextLine().split("\\s+"); //三个字符串表示为Graduate,否则为Undergraduate if (str.length > 2) { stu[i] = new Graduate(str[0], Double.parseDouble(str[1]), Boolean.parseBoolean(str[2])); } else { stu[i] = new Undergraduate(str[0], Double.parseDouble(str[1])); } } //循环输出结果 for (int i = 0; i < stu.length; i++) { if(stu[i].isReq()) System.out.println(stu[i].getId() + " pass" ); else System.out.println(stu[i].getId() + " fail" ); } sc.close(); } } class Student { private String id; private double ca; public Student(String id, double ca) { this.id = id; this.ca = ca; } public boolean isReq() { return false; } public String getId() { return id; } public double getCA() { return ca; } } /* 请在这里填写答案 */
输入样例:
7 001 56 002 80 003 81 004 12 false 005 80 false 006 85 false 007 85 true
输入样例解释:
第1行表示需要输入n行数据;
第2至n+1行表示待输入的学生信息,格式为学号+分数+导师确认(有此项表示为研究生,本科生没有),每个数据间用空格隔开。
输出样例:
001 fail 002 pass 003 pass 004 fail 005 fail 006 fail 007 pass
输出样例解释:
n行结果,格式为学号+结果,每个数据间空格隔开。
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class Undergraduate extends Student { Undergraduate(String id,double ca) { super(id,ca); } public boolean isReq() { if(super.getCA()>=80) return true; else return false; } } class Graduate extends Student { private boolean supervisor; Graduate(String id,double ca,boolean s) { super(id,ca); supervisor = s; } public boolean isReq() { if(super.getCA()>=80&&supervisor==true) return true; else return false; } }
6-3 面积求和
分数 15
全屏浏览题目
作者 yl
单位 西南石油大学
由于各种图形 求面积的方式不一样,为了使编写的程序能够适应求不同形状的面积和,当新增加一个图形的时候,不需要修改其他类,采用面向接口的编程,其类图如下图所示:
根据以上类图,你需要设计和编写如下类:
######1.IGeometry接口类 ,里面有double getArea()接口方法
2.Rect类实现接口,有属性 a,b,有参构造方法及对接口方法的实现
######3.Circle类实现接口,有属性r,有参构造方法及对接口方法的实现,其中PI=3.14
4.TotalArea类完成对不同形状图形面积求和,有属性IGeometry[] tuxing 数组用来存储 不同形状图形对象,SetTuxing(IGeometry[] t) 给属性tuxing赋值,double computeTotalArea()方法用来计算tuxing数组中存放的图形的面积和,并返回面积和。主类已经给出,请结合主类完成上面类的编写
裁判测试程序主类:
public class Main { public static void main(String[] args) { IGeometry [] tuxing=new IGeometry[29]; //有29个Geometry对象 for(int i=0;i<tuxing.length;i++) { //29个Geometry对象分成两类 if(i%2==0) tuxing[i]=new Rect(16+i,68); else if(i%2==1) tuxing[i]=new Circle(10+i); } TotalArea computer=new TotalArea(); computer.setTuxing(tuxing); System.out.printf("各种图形的面积之和:\n%.2f",computer.computerTotalArea()); } } /* 请在这里填写答案 请结合主类代码,在代码框完成IGeometry接口类,Rect类,Circle类和TotalArea类*/
输入样例:
在这里给出一组输入。例如:
无
输出样例:
在这里给出相应的输出。例如:
各种图形的面积之和: 58778.36
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
interface IGeometry { double getArea(); } class Rect implements IGeometry { private double a; private double b; Rect(double a,double b) { this.a = a; this.b = b; } public double getArea() { return a*b; } } class Circle implements IGeometry { private double r; Circle(double r) { this.r = r; } public double getArea() { return 3.14*r*r; } } class TotalArea { private IGeometry[] tuxing; public void setTuxing(IGeometry[] t) { this.tuxing = t; } public double computerTotalArea() { double sum = 0; for(int i=0;i<tuxing.length;i++) { if(tuxing[i] instanceof Rect) { Rect rect = (Rect) tuxing[i]; sum += rect.getArea(); } else { Circle c = (Circle) tuxing[i]; sum += c.getArea(); } } return sum; } }
6-4 微信名片类
分数 15
全屏浏览题目
作者 张峰
单位 山东科技大学
编码实现微信名片类WeChat,其中有属性number(微信号,String类型)和nickname(昵称,String类型),重写Object类的equals和toString方法,要求:1)两个微信名片对象的微信号相同则equals方法返回true,否则返回false;2)toString返回字符串“WeChat: xx, nicename: yy”,xx和yy分别表示微信名片的微信号和昵称。
函数接口定义:
Object类中的equals和toString方法定义
裁判测试程序样例:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); WeChat weChat1 = new WeChat(scanner.next(), scanner.next()); WeChat weChat2 = new WeChat(scanner.next(), scanner.next()); System.out.println(weChat1); System.out.println(weChat2); System.out.println(weChat1.equals(weChat2)); scanner.close(); } } /* 请在这里填写答案 */
输入样例:
15153206666 Tom 15153206666 Peter
输出样例:
WeChat: 15153206666, nicename: Tom WeChat: 15153206666, nicename: Peter true
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class WeChat { private String number; private String nickname; WeChat(String n,String nickname) { number = n; this.nickname = nickname; } public boolean equals(Object obj) { if(obj==null) return false; if(obj instanceof WeChat) { WeChat other = (WeChat)obj; if(this.number.equals(other.number)) return true; else return false; } else return false; } public String toString() { return "WeChat: "+number+", nicename: "+nickname; } }
7-1 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
分数 10
全屏浏览题目
切换布局
作者 仇丽青
单位 山东科技大学
统计一行字符串中的英文字母个数、空格个数、数字个数、其他字符个数
输入格式:
通过键盘输入一行字符(任意字符)
输出格式:
统计一行字符串中的英文字母个数、空格个数、数字个数、其他字符个数
输入样例:
rwrwewre2345asdJSJQI%^&(& *&sdf YY( 2342-k'
输出样例:
字母个数:22 数字个数:8 空格个数:5 其他字符个数:10
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.nextLine(); int e=0; int k=0; int num=0; int other=0; for(int i=0;i<s.length();i++) { if(Character.isLetter(s.charAt(i))) e+=1; else if(Character.isDigit(s.charAt(i))) num+=1; else if(Character.isSpaceChar(s.charAt(i))) k+=1; else other+=1; } System.out.print("字母个数: "+e+"\n数字个数: "+num+"\n空格个数: "+k+"\n其它字符个数: "+other); } }
7-2 排序
分数 10
全屏浏览题目
作者 吴光生
单位 新余学院
对10个整数进行排序。(使用Scanner类从键盘输入数据。)
请注意:含有main方法的类(class)的名字必须命名为Main,否则调试不成功。输入格式:
在一行中输入10个整数,中间以空格隔开。
输出格式:
按从小到大的顺序输出这10个整数,中间以一个空格隔开(最末尾不要空格)。
输入样例:
在这里给出一组输入。例如:
5 20 34 6 -13 26 72 10 39 -9
输出样例:
在这里给出相应的输出。例如:
-13 -9 5 6 10 20 26 34 39 72
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] a = new int[10]; for(int i=0;i<10;i++) { a[i] = in.nextInt(); } Arrays.sort(a); for(int i=0;i<10;i++) { if(i==0) System.out.print(a[i]); else System.out.print(" "+a[i]); } } }