java语言程序设计基础篇第十章编程练习题

时间:2023-02-22 21:53:52

懒的我不要不要的,真不知道怎么写的这点代码

1

package yongheng;
import java.util.Scanner;
import java.util.ArrayList;

public class Main {
public static void main(String agrs[]){
Time t1 = new Time();
System.out.println(t1.getHour() + " " + t1.getMinute() + " " + t1.getSecond());
Time t2 = new Time(555550000);
System.out.println(t2.getHour() + " " + t2.getMinute() + " " + t2.getSecond());
}
}

class Time{
private long second;
private long minute;
private long hour;

public Time(){
long t = System.currentTimeMillis()/1000;
second = t % 60;
t /= 60;
minute = t % 60;
t /= 60;
hour = t % 24;
}

public Time(long t){
t /= 1000;
second = t % 60;
t /= 60;
minute = t % 60;
t /= 60;
hour = t;
}

public Time(long hour, long minute, long second){
this.hour = hour;
this.minute = minute;
this.second = second;
}

public long getSecond(){
return second;
}

public long getMinute(){
return minute;
}

public long getHour(){
return hour;
}

public void setTime(long elapseTime){
elapseTime /= 1000;
this.second = elapseTime%60;
elapseTime /= 60;
this.minute = elapseTime%60;
elapseTime /= 60;
this.hour = elapseTime;
}
}

2
。。。。

3

package yongheng;
import java.util.Scanner;
import java.util.ArrayList;

public class Main {
public static void main(String agrs[]){
MyInteger n = new MyInteger(10);
System.out.println(n.isPrime());
}
}

class MyInteger{
private int value;

public MyInteger(int value){
this.value = value;
}

public int getMyInteger(){
return value;
}

public boolean isEven(){
return value % 2 == 0 ? true : false;
}

public boolean isOdd(){
return value % 2 == 0 ? false : true;
}

public boolean isPrime(){
if(value == 1) return false;

for(int i = 2; i*i <= value; ++i){
if(value%i == 0)
return false;
}
return true;
}

public static boolean isEven(int num){
return num%2 == 1 ? false : true;
}

public static boolean isOdd(int num){
return num%2 == 1 ? true : false;
}

public static boolean isPrime(int num){
for(int i = 2; i*i <= num; ++i)
if(num%i == 0)
return false;
return num == 1 ? false : true;
}

public boolean equals(int num){
return this.value == num;
}

public boolean equals(MyInteger num){
return this.value == num.getMyInteger();
}

public static int parseInt(char[] str){
return Integer.parseInt(str.toString());
}

public static int parseIne(String str){
return Integer.parseInt(str);
}
}


4

package yongheng;
import java.util.Scanner;
import java.util.ArrayList;

public class Main {
public static void main(String agrs[]){
MyPoint p1 = new MyPoint();
MyPoint p2 = new MyPoint(10,30.5);
System.out.println(p1.distance(p2));
}
}

class MyPoint{
private double x,y;

public MyPoint(){
x = 0;
y = 0;
}

public MyPoint(double x, double y){
this.x = x;
this.y = y;
}

public double getX(){
return x;
}

public double getY(){
return y;
}

public double distance(MyPoint p){
return Math.sqrt(Math.pow(this.x - p.x, 2) + Math.pow(this.y - p.y, 2));
}

public double diatance(double x, double y){
return Math.sqrt(Math.pow(this.x - x, 2) + Math.pow(this.y - y, 2));
}
}

5 6 7
。。。。。。

8

class Tax{
private int filingStatus;
private int[][] brackets;
private double[] rates;
double taxableIncome;
public static final int SINGLE_FILER = 0;
public static final int MARRIED_JOINTLY_OR_QUALIFYING_WIDOW = 1;
public static final int MARRIED_SEPARATELY = 2;
public static final int HEAD_OF_HOUSEHOLD = 3;

public Tax(){
filingStatus = 0;
brackets = new int[4][5];
//这里可能理解错了,我猜纳税等级应该就后边表里的那些钱的区间吧
for(int i = 0; i < 4; ++i)
for(int j = 0; j < 5; ++j)
brackets[i][j] = j;
rates = new double[5];
rates[0] = 0.15;
rates[1] = 0.275;
rates[2] = 0.305;
rates[3] = 0.355;
rates[4] = 0.391;
taxableIncome = 0;
}

public Tax(int filinfStatus, int[][] brackets, double[] rates, double taxableIncome){
this.filingStatus = filinfStatus;
this.brackets = brackets;
this.rates = rates;
this.taxableIncome = taxableIncome;
}

public int getFilingStatus(){
return filingStatus;
}

public void setFilingStatus(int filingStatus){
this.filingStatus = filingStatus;
}

public double getTax(){
return taxableIncome;
}

public int[][] getBrackets(){
return brackets;
}

public void setBrackets(int[][] brackets){
this.brackets = brackets;
}

public double[] getRates(){
return rates;
}

public void setRates(double[] rates){
this.rates = rates;
}
}

9

class Course{
private String courseName;
private String[] students = new String[100];
private int numberOfStudents;

public Course(String courseName){
this.courseName = courseName;
}

public void addStudent(String student){
if(students.length == numberOfStudents){
String[] temp = new String[numberOfStudents << 1];
System.arraycopy(students, 0, temp, 0, students.length);
students = temp;
}
students[numberOfStudents++] = student;
}

public String[] getStudents(){
return students;
}

public int getNumberOfStudents(){
return numberOfStudents;
}

public String getCourseName(){
return courseName;
}

public void dropStudent(String student){
for(int i = 0; i < numberOfStudents; ++i){
if(students[i] == student){
for(int j = i+1; j < numberOfStudents; ++j,++i){
students[i] = students[j];
}
break;
}
}
--numberOfStudents;
}

public void clear(){
students = null;
numberOfStudents = 0;
}
}

10

package yongheng;
import java.util.Scanner;

public class Main {
public static void main(String agrs[]){
Scanner cin = new Scanner(System.in);
Queue que = new Queue();
for(int i = 0; i < 20; ++i){
que.enqueue(i);
}

int time = que.getSize();
int index = 0;
for(int i = 0; i < time; ++i){
System.out.print(que.dequeue(index) + " ");
}
System.out.println("\n" + que.empty());
}
}

class Queue{
private int[] element = null;
private int size = 0;
private int numberOfElement = 0;

public Queue(){
element = new int[8];
numberOfElement = 8;
size = 0;
}

public void enqueue(int v){
if(numberOfElement == size){
numberOfElement = element.length << 1;
int[] temp = new int[numberOfElement];
System.arraycopy(element, 0, temp, 0, element.length);
element = temp;
}
element[size++] = v;
}

public int dequeue(int index){
int res = element[index];
for(int i = index, j = index+1; j < size; ++i,++j){
element[i] = element[j];
}
--size;
return res;
}

public boolean empty(){
return size == 0 ? true : false;
}

public int getSize(){
return size;
}
}

11

class Circle2D{
private double x;
private double y;
private double radius;

public Circle2D(){
x = y = 0;
radius = 1;
}

public Circle2D(double x, double y, double radius){
this.x = x;
this.y = y;
this.radius = radius;
}

public double getArea(){
return Math.PI*radius*radius;
}

public double getPerimeter(){
return Math.PI*2.0*radius;
}

public boolean contains(double x, double y){
double dis = Math.sqrt((x-this.x)*(x-this.x) + (y-this.y)*(y-this.y));
if(dis < radius) return true;
return false;
}

public boolean contains(Circle2D circle){
double tx = circle.getX();
double ty = circle.getY();
double tradius = circle.getRadius();
if(tradius > this.radius) return false;
double dis = Math.sqrt((tx-this.x)*(tx-this.x) + (ty-this.y)*(ty-this.y));
if((this.radius-tradius) > dis) return true;
return false;
}

public boolean overlaps(Circle2D circle){
double tx = circle.getX();
double ty = circle.getY();
double tradius = circle.getRadius();
double maxRadius,minRadius;
double dis = Math.sqrt((tx-this.x)*(tx-this.x) + (ty-this.y)*(ty-this.y));
if((this.radius+tradius) < dis) return false;
if(tradius > this.radius){
maxRadius = tradius;
minRadius = this.radius;
}else{
maxRadius = this.radius;
minRadius = tradius;
}
if((maxRadius-minRadius) > dis) return false;
return true;
}

public double getX() {
return x;
}

public double getY() {
return y;
}

public double getRadius() {
return radius;
}

}

12


import java.util.Scanner;
public class Main {

public static void main(String[] args){
}
}

class Triangle2D{
private MyPoint p1,p2,p3;

public Triangle2D(){
p1 = new MyPoint(0,0);
p2 = new MyPoint(1,1);
p3 = new MyPoint(2,5);
}

public Triangle2D(MyPoint p1, MyPoint p2, MyPoint p3){
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}

public double getArea(){
double a = p1.distance(p2);
double b = p1.distance(p3);
double c = p2.distance(p3);
double p = (a+b+c)/2.0;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}

public double getPerimeter(){
return (p1.distance(p2) + p1.distance(p3) +p2.distance(p3));
}

public boolean contains(MyPoint p){
//编程练习题3.3
//三角形一点与p连线,与另外两点构成的直线求交点
//求得交点后判断交点是否在另外两点构成的线段上
//每个顶点都这样求一次
//只要有一次求出的交点在另外两点构成的线段上
//则 不包含此点
return false;
}

public boolean contains(Triangle2D t){
if(this.contains(t.getP1()) && this.contains(t.getP2()) && this.contains(t.getP3()))
return true;
return false;
}

public boolean overlaps(Triangle2D t){
//枚举两个三角形的每条边
//如果两三角形各有一条或一条以上的边相交
//则重叠
return false;
}

public MyPoint getP1() {
return p1;
}

public void setP1(MyPoint p1) {
this.p1 = p1;
}

public MyPoint getP2() {
return p2;
}

public void setP2(MyPoint p2) {
this.p2 = p2;
}

public MyPoint getP3() {
return p3;
}

public void setP3(MyPoint p3) {
this.p3 = p3;
}

}

class MyPoint{
private double x,y;

public MyPoint(){
x = 0;
y = 0;
}

public MyPoint(double x, double y){
this.x = x;
this.y = y;
}

public double getX(){
return x;
}

public double getY(){
return y;
}

public double distance(MyPoint p){
return Math.sqrt(Math.pow(this.x - p.x, 2) + Math.pow(this.y - p.y, 2));
}

public double diatance(double x, double y){
return Math.sqrt(Math.pow(this.x - x, 2) + Math.pow(this.y - y, 2));
}
}