实验三 面向对象编程

(1.编写一个计算各种形状的面积和周长的程序。

要求:父类Shape2D为一个抽象类,其中包含计算周长和计算面积两个方法。其他形状圆(Circle),三角形(Triangle)和长方形(Rectangle)均继承自Shape2D类。而Square继承自Rectangle类。编写测试类来计算这些形状的面积。

提示:不同的形状包含的属性应该不同,构造函数应该不同,计算周长和面积的方法也应该不同。

运行结果
工程截图


Shape.java

package shiyan23;

public abstract class shape2d {

       public float PI = (float)

Math.PI;

       public abstract double Perimeter();

       public abstract double Acreage();

}

Circle.java

package shiyan23;

public class Circle extendsshape2d {

       public double r ;

       publicCircle(double r){

              this.r=r;

       }

       public double Perimeter() {

              return2*super.PI*r;

       }

       public double Acreage() {

              return super.PI*r*r;

       }

}

Triangle.java

package shiyan23;

public class Triangle extendsshape2d{

       public double a,b,c;

       publicTriangle(double a,double b,double c){

              this.a=a;

              this.b=b;

              this.c=c;

       }

       public double Perimeter() {

              return a+b+c;

       }

       public double Acreage() {

              double p =(a + b + c) /2;

              double size = (double) Math.sqrt(p *(p - a) *(p - b) *(p - c));

              return size;

       }

}

Rectangle.java

package shiyan23;

public class Rectangle extendsshape2d{

public double l,k;

public Rectangle(double l,double k){

       this.l=l;

       this.k=k;

}

       public double Perimeter() {

              return (l+k)*2.0;

       }

       public double Acreage() {

              return l*k;

       }

}

Square.java

package shiyan23;

public class Square extendsRectangle{

       publicSquare(double l) {

              super(l, l);

       }

}

ceshi_shape2d.java

package shiyan23;

import java.util.Scanner;

public class ceshi_shape2d {

       public static void main(String[] args) {

              System.out.println("下面构造一个圆形,请输入半径R:");

              Scannerinput = new Scanner(System.in);

               if (input.hasNextDouble()) {

       Doublef = input.nextDouble();

       Circlecircle = new Circle(f);

       System.out.println("圆的周长:"+(double)Math.round(circle.Perimeter()*100)/100);//四舍五入保留2位小数

       System.out.println("圆的面积:"+(double)Math.round(circle.Acreage()*100)/100);

   }else {

       // 输入错误的信息

       System.out.println("输入有误!");

   }

               System.out.println("下面构造一个三角形,请输入三条边长(注意三边的关系):");

               double a = input.nextDouble();

               double b = input.nextDouble();

               double c = input.nextDouble();

               while(panduansanbian(a,b,c)){

                      System.out.println("三条边不满足,请重新输入(注意三边的关系):");

                      a = input.nextDouble();

                      b = input.nextDouble();

                      c = input.nextDouble();

               }

       Triangletriangle = new Triangle(a, b, c);

        System.out.println("三角形的周长:"+(double)Math.round(triangle.Perimeter()*100)/100);

   System.out.println("三角形的面积:"+(double)Math.round(triangle.Acreage()*100)/100);

   System.out.println("下面构造一个长方形,请输入长和宽:");

        double l = input.nextDouble();

        double k = input.nextDouble();

        Rectanglerectangle = new Rectangle(l, k);

        System.out.println("长方形的周长:"+(double)Math.round(rectangle.Perimeter()*100)/100);

   System.out.println("长方形的面积:"+(double)Math.round(rectangle.Acreage()*100)/100);

   System.out.println("下面构造一个正方形,请输入一个边长:");

   double e = input.nextDouble();

   Squaresquare = new Square(e);

        System.out.println("正方形的周长:"+(double)Math.round(square.Perimeter()*100)/100);

   System.out.println("正方形的面积:"+(double)Math.round(square.Acreage()*100)/100);

               input.close();

       }

       public static boolean panduansanbian(double a,double b,double c){

              if(a+b<=c||b+c<=a||b+c<=a){

                     return true;

              }else{

                     return false;

              }

       }

}

(2.设计并实现一个直线(Line2D)类,可以通过三个构造函数分别使用点斜式、两点式和截距式三种方法来构造直线。并对直线做简单的比较。

要求:1. 点需要使用Point2D类表示,并且重写Point2D类的equals()方法,来判断两个点是否相同。

2. 重写Line2D类的equals()方法,判断两条直线是否同一条。

3. 编写boolean isParallel(Line2D)方法,判断两条直线是否平行。

提示:1. 使用两点式构造函数时,注意两点重合则无法唯一确定一条直线。

2. 使用点斜式时,当直线平行于y轴时,斜率为无穷大,但是Java语言中double类型可以表示无穷大,Double. NEGATIVE_INFINITY和Double. POSITIVE_INFINITY,请参阅Java API文档。

3. 建议将三种构造函数统一成一种表示方法,以方便比较直线是否相等。

4. 在判断两条直线是否平行时,首先要排除两条直线重合的情况。

运行结果


Point2D.java

package shiyan3_2;

public class Point2D {

       public double a,b;

       publicPoint2D(double a,double b) {

              this.a=a;

              this.b=b;

       }

       public boolean equals(Point2D p){

    if(a==p.a&&b==p.b)

        return true;

    return false;

}

}

Line2D.java

package shiyan3_2;

public class Line2D {

       public double k,y0;

  public Line2D(double k,

Point2D p){

    this.k=k;

    y0=p.b-p.a*k;

  }

  public Line2D(Point2D a,Point2Db){

      k=(a.b-b.b)/(a.a-b.a);

      y0=a.b-a.a*k;

      if(a.a==b.a){

             k=Double.POSITIVE_INFINITY;

             y0=Double.NEGATIVE_INFINITY;

      }else if(a.b==b.b){

             k=Double.NEGATIVE_INFINITY;

             y0=a.b;;

      }

  }

  public Line2D(double x,double y){

      k=-y/x;

      y0=y;

  }

  public double getk(){

      return k;

  }

  public double gety(){

      return y0;

  }

  public boolean equals(Line2D p){

    if(k==p.k&&y0==p.y0)

        return true;

    return false;

}

public boolean isParallel(Line2D p){

    if(k==p.k&&y0!=p.y0)

        return true;

    return false;

}

}


ceshi_shape2d.java

package shiyan23;

import java.util.Scanner;

public class ceshi_shape2d {

       public static void main(String[] args) {

              System.out.println("下面构造一个圆形,请输入半径R:");

              Scannerinput = new Scanner(System.in);

               if (input.hasNextDouble()) {

       Doublef = input.nextDouble();

       Circlecircle = new Circle(f);

       System.out.println("圆的周长:"+(double)Math.round(circle.Perimeter()*100)/100);//四舍五入保留2位小数

       System.out.println("圆的面积:"+(double)Math.round(circle.Acreage()*100)/100);

   }else {

       // 输入错误的信息

       System.out.println("输入有误!");

   }

               System.out.println("下面构造一个三角形,请输入三条边长(注意三边的关系):");

               double a = input.nextDouble();

               double b = input.nextDouble();

               double c = input.nextDouble();

               while(panduansanbian(a,b,c)){

                      System.out.println("三条边不满足,请重新输入(注意三边的关系):");

                      a = input.nextDouble();

                      b = input.nextDouble();

                      c = input.nextDouble();

               }

       Triangletriangle = new Triangle(a, b, c);

        System.out.println("三角形的周长:"+(double)Math.round(triangle.Perimeter()*100)/100);

   System.out.println("三角形的面积:"+(double)Math.round(triangle.Acreage()*100)/100);

   System.out.println("下面构造一个长方形,请输入长和宽:");

        double l = input.nextDouble();

        double k = input.nextDouble();

        Rectanglerectangle = new Rectangle(l, k);

        System.out.println("长方形的周长:"+(double)Math.round(rectangle.Perimeter()*100)/100);

   System.out.println("长方形的面积:"+(double)Math.round(rectangle.Acreage()*100)/100);

   System.out.println("下面构造一个正方形,请输入一个边长:");

   double e = input.nextDouble();

   Squaresquare = new Square(e);

        System.out.println("正方形的周长:"+(double)Math.round(square.Perimeter()*100)/100);

   System.out.println("正方形的面积:"+(double)Math.round(square.Acreage()*100)/100);

               input.close();

       }

       public static boolean panduansanbian(double a,double b,double c){

              if(a+b<=c||b+c<=a||b+c<=a){

                     return true;

              }else{

                     return false;

              }

       }

}

2.设计并实现一个直线(Line2D)类,可以通过三个构造函数分别使用点斜式、两点式和截距式三种方法来构造直线。并对直线做简单的比较。

要求:1. 点需要使用Point2D类表示,并且重写Point2D类的equals()方法,来判断两个点是否相同。

2. 重写Line2D类的equals()方法,判断两条直线是否同一条。

3. 编写boolean isParallel(Line2D)方法,判断两条直线是否平行。

提示:1. 使用两点式构造函数时,注意两点重合则无法唯一确定一条直线。

2. 使用点斜式时,当直线平行于y轴时,斜率为无穷大,但是Java语言中double类型可以表示无穷大,Double. NEGATIVE_INFINITY和Double. POSITIVE_INFINITY,请参阅Java API文档。

3. 建议将三种构造函数统一成一种表示方法,以方便比较直线是否相等。

4. 在判断两条直线是否平行时,首先要排除两条直线重合的情况。

Point2D.java

package shiyan3_2;

public class Point2D {

       public double a,b;

       publicPoint2D(double a,double b) {

              this.a=a;

              this.b=b;

       }

       public boolean equals(Point2D p){

    if(a==p.a&&b==p.b)

        return true;

    return false;

}

}

Line2D.java

package shiyan3_2;

public class Line2D {

       public double k,y0;

  public Line2D(double k,

Point2D p){

    this.k=k;

    y0=p.b-p.a*k;

  }

  public Line2D(Point2D a,Point2Db){

      k=(a.b-b.b)/(a.a-b.a);

      y0=a.b-a.a*k;

      if(a.a==b.a){

             k=Double.POSITIVE_INFINITY;

             y0=Double.NEGATIVE_INFINITY;

      }else if(a.b==b.b){

             k=Double.NEGATIVE_INFINITY;

             y0=a.b;;

      }

  }

  public Line2D(double x,double y){

      k=-y/x;

      y0=y;

  }

  public double getk(){

      return k;

  }

  public double gety(){

      return y0;

  }

  public boolean equals(Line2D p){

    if(k==p.k&&y0==p.y0)

        return true;

    return false;

}

public boolean isParallel(Line2D p){

    if(k==p.k&&y0!=p.y0)

        return true;

    return false;

}

}

ceshi_Line2D.java

package shiyan3_2;

import java.util.Scanner;

public class ceshi_Line2D {

       public static void main(String[] args) {

              Scannerinput = new Scanner(System.in);

              System.out.println("用点斜式构造直线,输入斜率和一个点的坐标");

              double k,x,y;

              k=input.nextDouble();

              x=input.nextDouble();

              y=input.nextDouble();

              Point2Dd1 = new Point2D(x, y);

              Line2Dl1 = new Line2D(k, d1);

              System.out.println("构造的直线斜率为:"+l1.getk()+" 在y轴的截距为:"+l1.gety());

              System.out.println("用俩点式构造直线,输入俩个点的坐标");

              double x1,y1,x2,y2;

              x1=input.nextDouble();

              y1=input.nextDouble();

              x2=input.nextDouble();

              y2=input.nextDouble();

              Point2Dd2 = new Point2D(x1, y1);

              Point2Dd3 = new Point2D(x2, y2);

              while(d2.equals(d3)){

                     System.out.println("俩点重合,请重新输入:");

                     x1=input.nextDouble();

                     y1=input.nextDouble();

                     x2=input.nextDouble();

                     y2=input.nextDouble();

                     d2.a=x1;

                     d2.b=y1;

                     d3.a=x2;

                     d3.b=y2;

              }

              Line2Dl2 = new Line2D(d2, d3);

              System.out.println("构造的直线斜率为:"+l2.getk()+" 在y轴的截距为:"+l2.gety());

              System.out.println("用截距式构造直线,输入俩个截距值:");

              x=input.nextDouble();

              y=input.nextDouble();

              while(x==0||y==0){

                     System.out.println("截距不能为0,请重新输入:");

                     x=input.nextDouble();

                     y=input.nextDouble();

              }

              Line2Dl3 = new Line2D(x, y);

              System.out.println("构造的直线斜率为:"+l3.getk()+" 在y轴的截距为:"+l3.gety());

              if(l1.equals(l2)){

                     System.out.println("1和2两条直线重合");

              }else{

                     System.out.println("1和2两条直线不重合");

              }

              if(l1.equals(l3)){

                     System.out.println("1和3两条直线重合");

              }else{

                     System.out.println("1和3两条直线不重合");

              }

              if(l2.equals(l3)){

                     System.out.println("2和3两条直线重合");

              }else{

                     System.out.println("2和3两条直线不重合");

              }

              if(l1.isParallel(l2)){

                     System.out.println("1和2俩条直线平行");

              }else{

                     System.out.println("1和2俩条直线不平行");

              }

              if(l1.isParallel(l3)){

                     System.out.println("1和3俩条直线平行");

              }else{

                     System.out.println("1和3俩条直线不平行");

              }

              if(l2.isParallel(l3)){

                     System.out.println("2和3俩条直线平行");

              }else{

                     System.out.println("2和3俩条直线不平行");

              }

              input.close();

       }

}

(3.设计并实现三个类:班级(Class)、学生(Student)、课程(Course)。然后计算班上每个同学的加权成绩。最后允许用户输入学生的学号查询学生信息。

要求:班级类的私有属性包含班级名称、学生人数以及学生列表(用对象数组表示)。班级类的方法包括:

1.构造函数Class(int nSutdent)

2.使用addStudent(Student student)来往班级中添加学生

3.使用calculateWeightedGrade()方法计算班上所有学生的加权成绩

4.]重写toString()方法来将班级信息转换成字符串

5.编写方法获得班上的学生

学生类的私有属性包含学生的学号、姓名、所选课程数量、所选课程(用对象数组表示)。学生类的方法包括

1.构造函数Student(int id, String name, intnCourse)

2.使用addCourse(Course course)来往学生类中添加课程

3.使用calculateWeightedGrade()来计算该学生的加权成绩

4.重写toString()方法来将学生信息转换成字符串

5.使用printStudentInfo()方法来打印学生的基本信息

课程类包含私有属性课程编号、课程名称、学分、是否缓考以及成绩(成绩要求在0到100分之间)。方法包括获取课程各个属性的方法。

构造函数Course(int id, String name, intcredit)

使用方法设置是否缓考和成绩

重写toString()方法来将课程信息转换成字符串

编写一个测试类来测试这三个类的使用。要求最少往班级中创建5个学生,学生可以选修0到最多5门课程。程序运行后,先计算好班级中每个同学的加权成绩。然后等待用户输入学号查询学生,如果有对应的学生,则输出学生的信息、选修课程信息、最后输出加权成绩。直到用户输入-1退出程序。

提示:加权成绩的计算公式为:

公式

其中,g表示最后的加权成绩,n表示同学选修的课程数,si表示第i门课的成绩,wi表示第i门课的学分。

注意:如果某生某课程缓考,则该门课成绩不能计入加权成绩内。此外,类中不可出现公用属性,必须使用封装。

运行结果


Class.java

package shiyan3_3;

public class Class {

       privateString classname;

       private int studentnumber;

       privateStudent[] account = newStudent[10];

       publicClass(String name) {

              classname=name;

              studentnumber=0;

       }

       publicString getClassname() {

              return classname;

       }

       public void setClassname(String classname) {

              this.classname = classname;

       }

       public int getStudentnumber() {

              return studentnumber;

       }

       public void setStudentnumber(int studentnumber) {

              this.studentnumber = studentnumber;

       }

       public void addStudent(Student student){

              account[studentnumber]=student;

              studentnumber++;

       }

       public double calculateWeightedGrade(){

              double sum=0;

              for(int i=0;i<studentnumber;i++){

                     sum+=account[i].calculateWeightedGrade();

              }

              return sum/studentnumber;

       }

       publicString toString() {

              return "Class [班级名称=" + classname + ",学生人数=" + studentnumber + ",总学生加权成绩="

                            +calculateWeightedGrade() +"]";

       }

       public int findstudent(int num){

              for(int i=0;i<studentnumber;i++){

                     if(account[i].getxuehao()==num)

                            return i+1;

              }

              return 0;

       }

       public void printstudentinfo(int num){

              System.out.println(account[num-1].toString());

              account[num-1].printcourse();

       }

}


Student.java

package shiyan3_3;

public class Student {

       private int xuehao;

       privateString name;

       private int classnumber=0;

       privateCourse[] courses = new Course[10];//对象数组需要初始化

       public int getclassnumber(){

              return classnumber;

       }

       publicString getname(){

              return name;

       }

       public int getxuehao(){

              return xuehao;

       }

       publicStudent(int id,String name){

              xuehao=id;

              this.name=name;

       }

       public void addCourse(Course course){

              courses[classnumber]=course;

              classnumber++;

       }

       public double calculateWeightedGrade(){

              if(classnumber==0)

                     return 0;

              double sum=0;

              double u=0;

              for(int i=0;i<classnumber;i++){

                     if(courses[i].isIsflag()){

                            continue;

                     }else{

                            sum+=courses[i].getXuefen()*courses[i].getXuefen();

                            u+=courses[i].getXuefen();

                     }

              }

              return sum/u;

       }

       publicString toString() {

              return "Student [学号=" + xuehao + ",姓名=" + name + ",课程数=" + classnumber + ",加权成绩=" + calculateWeightedGrade() + "]";

       }

       public void printcourse(){

              for(int i=0;i<classnumber;i++){

                     System.out.println(courses[i].toString());

              }

       }

}


Course.java

package shiyan3_3;

public class Course {

private int idnumber;

private String coursename;

private double xuefen;

private boolean isflag=false;

private double chengji;

public Course(int idnumber, String coursename, double xuefen, boolean isflag, double chengji) {

       this.idnumber = idnumber;

       this.coursename = coursename;

       this.xuefen = xuefen;

       this.isflag = isflag;

       this.chengji = chengji;

}

public String toString() {

       return "Course [课程编号=" + idnumber + ",课程名=" + coursename + ",课程学分=" + xuefen + ",是否缓考=" + isflag

                     +", 成绩=" + chengji + "]";

}

public int getIdnumber() {

       return idnumber;

}

public void setIdnumber(int idnumber) {

       this.idnumber = idnumber;

}

public String getCoursename() {

       return coursename;

}

public void setCoursename(String coursename) {

       this.coursename = coursename;

}

public double getXuefen() {

       return xuefen;

}

public void setXuefen(double xuefen) {

       this.xuefen = xuefen;

}

public boolean isIsflag() {

       return isflag;

}

public void setIsflag(boolean isflag) {

       this.isflag = isflag;

}

public double getChengji() {

       return chengji;

}

public void setChengji(double chengji) {

       this.chengji = chengji;

}

}


Ceshi.java

package shiyan3_3;

import java.util.Scanner;

public class ceshi {

       public static void main(String[] args) {

       Coursec1 = new Course(1, "语文", 5, false, 90);

       Coursec2 = new Course(2, "数学", 6, false, 99);

       Coursec3 = new Course(3, "英语", 4, false, 80);

       Coursec4 = new Course(4, "物理", 5, false, 95);

       Coursec5 = new Course(5, "化学", 5, false, 90);

       Coursec6 = new Course(6, "生物", 6, false, 89);

       Coursec7 = new Course(7, "政治", 4, true, 70);

       Coursec8 = new Course(8, "地理", 5, false, 95);

       Studentstu1 =newStudent(2016110,  "小红");

       Studentstu2 =newStudent(2016111,  "小橙");

       Studentstu3 =newStudent(2016112,  "小黄");

       Studentstu4 =newStudent(2016113,  "小绿");

       Studentstu5 =newStudent(2016114,  "小蓝");

       Classclass1 =new Class("1班");

       stu1.addCourse(c1);

       stu1.addCourse(c2);

       stu1.addCourse(c3);

       stu2.addCourse(c4);

       stu2.addCourse(c5);

       stu3.addCourse(c1);

       stu3.addCourse(c3);

       stu3.addCourse(c5);

       stu3.addCourse(c7);

       stu4.addCourse(c8);

       stu5.addCourse(c4);

       stu5.addCourse(c5);

       stu5.addCourse(c6);

       stu5.addCourse(c7);

       class1.addStudent(stu1);

       class1.addStudent(stu2);

       class1.addStudent(stu3);

       class1.addStudent(stu4);

       class1.addStudent(stu5);

       System.out.println(stu1.toString());

       System.out.println(stu2.toString());

       System.out.println(stu3.toString());

       System.out.println(stu4.toString());

       System.out.println(stu5.toString());

       System.out.println(class1.toString());

       System.out.println("请输入查询学生的学号:");

       Scannerinput = new Scanner(System.in);

       int ant = input.nextInt();

       while(ant!=-1){

              if(class1.findstudent(ant)!=0){

                     class1.printstudentinfo(class1.findstudent(ant));

                     System.out.println("已找到,请再输入查询学生的学号:");

                     ant = input.nextInt();

              }else{

                     System.out.println("未找到,请再输入查询学生的学号:");

                     ant = input.nextInt();

              }

       }

       input.close();

       System.exit(1);

       }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,283评论 0 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,310评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,129评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,852评论 0 2
  • 过去的五月,在离职换工作,找工作的焦虑中度过,回国以来所有的不安和所有的不甘都在默默积累。在转正之际,辞去了第一份...
    简单栗子酱阅读 2,136评论 0 2