填空题&&函数题部分
Posted 3cH0-Nu1L
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了填空题&&函数题部分相关的知识,希望对你有一定的参考价值。
填空题:
函数题:
是否偶数:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int data=in.nextInt(); System.out.println(isOdd(data)); } /* 请在这里给出isOdd(i)函数 */ }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
public static boolean isOdd(int data){ if(data%2 == 0){ return true; } else return false; }
TDVector:
import java.util.Scanner; class TDVector { private double x; private double y; public String toString() { return "("+this.x+","+this.y+")"; } /** 你所提交的代码将被嵌在这里(替换此行) **/ } public class Main { public static void main(String[] args) { TDVector a = new TDVector(); // default ctor, x and y are zeros Scanner sc = new Scanner(System.in); double x,y,z; x = sc.nextDouble(); y = sc.nextDouble(); z = sc.nextDouble(); TDVector b = new TDVector(x, y); // ctor by x and y TDVector c = new TDVector(b); // ctor by another TDVector a.setY(z); System.out.println(a); System.out.println(b); System.out.println(c); c.setX(z); a = b.add(c); System.out.println(a); System.out.println("b.x="+b.getX()+" b.y="+b.getY()); sc.close(); } }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } TDVector(){ this.x = this.y = 0; } TDVector(double x, double y){ this.x = x; this.y = y; } TDVector(TDVector object){ this.x = object.x; this.y = object.y; } public TDVector add(TDVector n){ n.x += this.x; n.y += this.y; return n; }
Book类的设计:
import java.util.*; public class Main { public static void main(String[] args) { List <Book>books=new ArrayList<Book>(); Scanner in=new Scanner(System.in); for(int i=0;i<5;i++) { String str=in.nextLine(); String []data=str.split(","); Book book=new Book(data[0],Integer.parseInt(data[1]),data[2],Integer.parseInt(data[3])); books.add(book); } System.out.println(totalprice(books)); } /*计算所有book的总价*/ public static int totalprice(List <Book>books) { int result=0; for(int i=0;i<books.size();i++){result+=books.get(i).getPrice();} return result; } } /* 请在这里填写答案 */
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class Book{ private String name; private double price; private String author; private double publishyear; Book(String name, double price, String author, double publishyear){ this.name = name; this.price= price; this.author = author; this.publishyear = publishyear; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPublishyear() { return publishyear; } public void setPublishyear(double publishyear) { this.publishyear = publishyear; } }
重写父类法equals:
import java.util.Scanner; class Point { private int xPos, yPos; public Point(int x, int y) { xPos = x; yPos = y; } @Override /* 请在这里填写答案 */ } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Object p1 = new Point(sc.nextInt(),sc.nextInt()); Object p2 = new Point(sc.nextInt(),sc.nextInt()); System.out.println(p1.equals(p2)); sc.close(); } }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
public boolean equals(Object obj){ if(this == obj) return true; if(obj == null || this.getClass() != obj.getClass()) return false; Point point = (Point) obj; return this.xPos == point.xPos && this.yPos == point.yPos; }
创建一个直角三角形类实现IShape接口:
import java.util.Scanner; import java.text.DecimalFormat; interface IShape { public abstract double getArea(); public abstract double getPerimeter(); } /*你写的代码将嵌入到这里*/ public class Main { public static void main(String[] args) { DecimalFormat d = new DecimalFormat("#.####"); Scanner input = new Scanner(System.in); double a = input.nextDouble(); double b = input.nextDouble(); IShape r = new RTriangle(a, b); System.out.println(d.format(r.getArea())); System.out.println(d.format(r.getPerimeter())); input.close(); } }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class RTriangle implements IShape{ private double a; private double b; RTriangle(double a, double b){ this.a = a; this.b = b; } public double getArea(){ return a*b*0.5; } public double getPerimeter(){ return a+b+Math.sqrt(a*a+b*b); } }
判断一个数列是否已排好序:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] list = new int[20]; list[0] = input.nextInt(); for (int i=1; i<= list[0]; i++) list[i] = input.nextInt(); if (isSorted(list)) System.out.println("The list is already sorted"); else System.out.println("The list is not sorted"); } /* 请在这里填写答案 */ }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
public static boolean isSorted(int[] list) { int i,j,x; x=list[1]; int flag=0; for(i=1;i<=list[0];i++) { if(x>list[i]) { flag=1; break; } x=list[i]; } if(flag==0) return true; else return false; }
编写Matrix类,使用二维数组实现矩阵,实现两个矩阵的乘法:
import java.util.Scanner; public class Main { public static void main(String[] args) { Matrix firstMat=Matrix.inputMatrix(); Matrix secondMat=Matrix.inputMatrix(); //display(firstMat.matrix); display(secondMat.matrix); Matrix productMat=firstMat.multiply(secondMat); display(productMat.matrix); } //display方法:打印二维数组元素到屏幕 public static void display(int[][] array){ for(int i=0; i<array.length; i++){ for(int j=0; j<array[i].length; j++){ if(j==array[i].length-1) { System.out.println(array[i][j]); } else { System.out.print(array[i][j]+" "); } } } } } /* 请在这里填写答案 */
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class Matrix{ int row, column, matrix[][]; static Scanner reader = new Scanner(System.in); public static Matrix inputMatrix(){ Matrix mat = new Matrix(); mat.row = reader.nextInt(); mat.column = reader.nextInt(); mat.matrix = new int[mat.row][mat.column]; for(int i=0; i< mat.row; i++){ for(int j=0; j< mat.column; j++){ mat.matrix[i][j] = reader.nextInt(); } } return mat; } Matrix multiply(Matrix m){ int col = m.matrix[0].length; Matrix res = new Matrix(); res.matrix = new int[row][col]; for(int i=0; i<row; i++){ for(int j=0; j<col; j++){ for(int k=0; k<column; k++){ res.matrix[i][j] += matrix[i][k] * m.matrix[k][j]; } } } return res; } }
根据已有类Worker,使用LinkedList编写一个WorkerList类,实现计算所有工人总工资的功能:
import java.util.*; public class Main { public static void main(String[] args) { WorkerList app=new WorkerList(); List<Worker> list=app.constructWorkerList(); System.out.println(app.computeTotalSalary(list)); } } /* 请在这里填写答案:将WorkerList类补充在这里 */ class Worker { private String name; private double salary; public Worker() { } public Worker(String name, double salary){ this.name = name; this.salary = salary; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary(){ return salary; } public void setSalary(double salary){ this.salary = salary; } public String toString() { return name + " "+salary; } }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class WorkerList{ Worker readInWorker(){ Scanner sc = new Scanner(System.in); Worker worker = new Worker(); String name = sc.next(); double salary = sc.nextDouble(); worker.setName(name); worker.setSalary(salary); return worker; } List<Worker> constructWorkerList(){ Scanner sc = new Scanner(System.in); List<Worker> list = new ArrayList<Worker>(); int workerNum = sc.nextInt(); String name; double salary; for (int i=0; i<workerNum; i++){ Worker worker = new Worker(); name = sc.next(); salary = sc.nextDouble(); worker.setName(name); worker.setSalary(salary); list.add(worker); } return list; } double computeTotalSalary(List<Worker> list){ double sum = 0; for(int i=0; i<list.size(); i++){ sum += list.get(i).getSalary(); } return sum; } }
根据要求,使用泛型和LinkedList编写StringList类,实现QQ号码查找的功能:
import java.util.*; public class Main { public static void main(String[] args) { String[] strs = {"12345","67891","12347809931","98765432102","67891","12347809933"}; StringList sl=new StringList(); LinkedList<String> qqList=sl.constructList(strs); System.out.println(sl.search(qqList)); } } /* 请在这里填写答案:StringList类 */
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class StringList { private String strs; public String getStrs() { return strs; } public void setStrs(String strs) { this.strs = strs; } LinkedList constructList(String[] strs){ // this.strs = strs; LinkedList<String> list = new LinkedList(); for(int i=0; i<strs.length; i++){ list.add(strs[i]); } return list; } String search(LinkedList list){ Scanner sc=new Scanner(System.in); int len = sc.nextInt(); int flag = 0; String temp = null; for(int i=0; i<list.size(); i++){ temp = (String)list.get(i); if(temp.length() == len){ flag = 1; break; } } if(flag == 1) return temp; else return "not exist"; } }
根据要求,使用泛型和LinkedList编写StringList类,统计某个指定位数(长度)的QQ号码的数量:
import java.util.LinkedList; import java.util.Scanner; public class Main { public static void main(String[] args) { String[] strs = {"12345","67891","12347809931","98765432102","67891","12347809932","12347809934"}; StringList sl=new StringList(); LinkedList<String> qqList=sl.constructList(strs); System.out.println(sl.search(qqList)); } } /* 请在这里填写答案:StringList类 */
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
class StringList { private String strs; public String getStrs() { return strs; } public void setStrs(String strs) { this.strs = strs; } LinkedList constructList(String[] strs){ // this.strs = strs; LinkedList<String> list = new LinkedList(); for(int i=0; i<strs.length; i++){ list.add(strs[i]); } return list; } String search(LinkedList list){ Scanner sc=new Scanner(System.in); int len = sc.nextInt(); int flag = 0; String temp = null; for(int i=0; i<list.size(); i++){ temp = (String)list.get(i); if(temp.length() == len){ flag ++; } } if(flag != 0) { String result = flag + ""; return result; } else return "-1"; } }
List中指定元素的删除:
public class Main { /*covnertStringToList函数代码*/ /*remove函数代码*/ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ List<String> list = convertStringToList(sc.nextLine()); System.out.println(list); String word = sc.nextLine(); remove(list,word); System.out.println(list); } sc.close(); } }
代码:
![](https://image.cha138.com/20210526/03b05a9cdfdc4c51ba87fea21564be89.jpg)
public static List<String> convertStringToList(String line){ List<String> list = new ArrayList<String>(); String s[] = line.split("\\\\s+"); for(int i=0; i<s.length; i++){ list.add(s[i]); } return list; } /*在list中移除掉与str内容相同的元素*/ public static void remove(List<String> list, String str){ List<String> s = new ArrayList<String>(); s.add(str); list.removeAll(s); }
教师、学生排序:
import java.util.*; public class Main { public static void main(String[] args) { List persons=getPersons(); //得到一个所有人的线性表 List teachers=new ArrayList(); List students=new ArrayList(); MyTool.separateStu_T( persons,teachers,students); //将persons线性表中的 teacher,student分别放到teachers,students两个线性表中 Collections.sort(teachers); //对教师线性表排序 Collections.sort(students); //对学生线性表排序 showResult(teachers); //显示教师线性表排序以后的结果 showResult(students); //显示学生线性表排序以后的结果 } public static List getPersons() { List persons=new ArrayList(); Scanner in=new Scanner(System.in); Person person=null; int num=Integer.parseInt(in.nextLine()); for(int i=0;i<num;i++) { String str=in.nextLine(); String []data=str.split(","); if(data[0].equalsIgnoreCase("student")) person=new Student(Integer.parseInt(data[1]),data[2],data[3],Integer.parseInt(data[4]),data[5]); else if (data[0].equalsIgnoreCase("teacher")) person=new Teacher(Integer.parseInt(data[1]),data[2],data[3],Integer.parseInt(data[4]),data[5]); else person=null; persons.add(person); } return persons; } public static void showResult(List person以上是关于填空题&&函数题部分的主要内容,如果未能解决你的问题,请参考以下文章