Person基础

利益熏心的我写的一个Baidu知道的东西。。- -||

写一个类Person,包含以下属性:String name; int age; boolean gender;Person partner。为Person类写一个marry(Person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。要求在另外一个类中写一个主方法,来测试以上程序。(下列情况不能结婚:1,同性;2,未达到结婚年龄,男<24,女<22;3,某一方已婚)

 

接受构造角色,可以查看角色列表,从列表中选2人结婚

 

person类代码:

  1. package test_1_3;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.io.*;
  5. public class Person {
  6.     public String name;
  7.     public int age;
  8.     public boolean gender;//性别 true=男 false=女
  9.     public Person partner=null;//是否已婚
  10.     
  11.     public Person(BufferedReader br) {
  12.         this.inIt(br);
  13.     }
  14.     
  15.     /**
  16.      * 构造角色
  17.      * @param br BufferedReader
  18.      */
  19.     public void inIt(BufferedReader br){
  20.         try {
  21.             System.out.print("你的名字是?   ");
  22.             name = br.readLine();
  23.             System.out.print("你的年龄是?   ");
  24.             String tempAge=null;
  25.             boolean ok=false;
  26.             while (!ok) {
  27.                 ok = true;
  28.                 tempAge = br.readLine();
  29.                 for (int i = 0; i < tempAge.length(); ++i) {
  30.                     if (!(tempAge.charAt(i) >= 48 && tempAge.charAt(i) <= 57)) {
  31.                         System.out.print("请输入数字!  ");
  32.                         ok = false;
  33.                         break;
  34.                     }
  35.                 }
  36.                 if (ok) {
  37.                     age = Integer.parseInt(tempAge);
  38.                 }
  39.             }
  40.             System.out.print("你的性别是?(输入0为男性,1为女性)   ");
  41.             String tempGender=null;
  42.             ok=false;
  43.             while(!ok){
  44.                 tempGender = br.readLine();
  45.                 if (tempGender.equals("0")) {
  46.                     gender = true;
  47.                     ok=true;
  48.                 } else if (tempGender.equals("1")) {
  49.                     gender = false;
  50.                     ok=true;
  51.                 } else {
  52.                     System.out.println("请正确输入!  ");
  53.                     ok=false;
  54.                 }
  55.             }
  56.         } catch (IOException ex) {
  57.             ex.printStackTrace();
  58.         }
  59.         System.out.println("-----------------------------------------------------");
  60.         System.out.print("你的名字是:");
  61.         System.out.println(name);
  62.         System.out.print("你的年龄是:");
  63.         System.out.println(age);
  64.         System.out.print("你的性别是:");
  65.         if(gender)
  66.             System.out.println("男");
  67.         else
  68.             System.out.println("女");
  69.         System.out.println("默认你还没有结婚!");
  70.     }
  71.     
  72.     /**
  73.      * 和某人结婚(互相)
  74.      * @param p Person
  75.      */
  76.     public void marry(Person p){
  77.         this.partner=p;
  78.         p.partner=this;
  79.         System.out.println("恭喜"+name+"和"+p.name+"喜结良缘!");
  80.     }
  81.     
  82.     /**
  83.      * 是否已婚
  84.      * @return boolean
  85.      */
  86.     protected boolean isMarryAble(){
  87.         if(partner==null){
  88.             return true;
  89.         }else
  90.             System.out.println(name+"已经和"+partner.name+"结婚了!先离婚了吧!");
  91.         return false;
  92.     }
  93.     
  94.     /**
  95.      * 是否到年龄
  96.      * @return boolean
  97.      */
  98.     protected boolean is18Able(){
  99.         if(gender){
  100.             if(age>=24)
  101.                 return true;
  102.             else
  103.                 System.out.println(name+"未满24岁结婚不能!");
  104.         }else
  105.         {
  106.             if(age>=22)
  107.                 return true;
  108.             else
  109.                 System.out.println(name+"未满22岁结婚不能!");
  110.         }
  111.         return false;
  112.     }
  113.     
  114.     /**
  115.      * 是否是断背山
  116.      * @param p Person
  117.      * @return boolean
  118.      */
  119.     protected boolean isSexAble(Person p){
  120.         if(gender&&p.gender){
  121.             System.out.println("俩男断背山会受到中国道德的谴责!");
  122.             return false;
  123.         }else
  124.         if(!gender&&!p.gender){
  125.             System.out.println("俩女断背山会受到中国道德的谴责!");
  126.             return false;
  127.         }
  128.         return true;
  129.     }
  130.     
  131.     
  132. }

主类代码:

  1. package test_1_3;
  2. import java.util.Vector;
  3. import java.io.InputStreamReader;
  4. import java.io.BufferedReader;
  5. import java.io.*;
  6. public class Test_Main {
  7.     static Vector v=new Vector();
  8.     static char key;
  9.     static boolean play=false;
  10.     static int state;
  11.     static String name;
  12.     public static void main(String args[]) {
  13.         
  14.         System.out.println("==============模拟人生==============");
  15.         try {
  16.             BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
  17.             while (true) {
  18.                 state=0;
  19.                 System.out.println("-------------主界面-------------");
  20.                 System.out.println("输入E(edit)回车:进入编辑角色界面");
  21.                 System.out.println("输入M(Marry)回车:进入结婚界面");
  22.                 System.out.println("输入Q(quit)回车:退出程序");
  23.                 key = b.readLine().charAt(0);
  24.                 switch(key){
  25.                 case 'E':
  26.                 case 'e':
  27.                     state=1;
  28.                     play=true;
  29.                     break;
  30.                 case 'M':
  31.                 case 'm':
  32.                     state=2;
  33.                     play=true;
  34.                     break;
  35.                 case 'Q':
  36.                 case 'q':
  37.                     System.out.println("Byebye!");
  38.                     b.close();
  39.                     return;
  40.                 default:
  41.                     System.out.println("正确输入吧!");
  42.                 }
  43.                 
  44.                     switch (state) {
  45.                     case 1:
  46.                         while(play){
  47.                             System.out.println("------------------角色编辑界面-------------------");
  48.                             System.out.println("输入S(see)回车:查看角色列表");
  49.                             System.out.println("输入C(create)回车:创建角色");
  50.                             System.out.println("输入B(back)回车:返回主界面");
  51.                             key = b.readLine().charAt(0);
  52.                             switch (key) {
  53.                             case 'S':
  54.                             case 's':
  55.                                 if (v.isEmpty())
  56.                                     System.out.println("当前没有角色!");
  57.                                 else {
  58.                                     System.out.println("当前共有" + v.size() +"名角色!");
  59.                                     for (int i = 0; i < v.size(); ++i) {
  60.                                         System.out.println("NO." + i +"--------------------------------------------");
  61.                                         System.out.println("姓名:" +((Person) v.elementAt(i)).name);
  62.                                         if (((Person) v.elementAt(i)).gender)
  63.                                             System.out.println("性别:男");
  64.                                         else
  65.                                             System.out.println("性别:女");
  66.                                         System.out.println("年龄:" +((Person) v.elementAt(i)).age);
  67.                                         if (((Person) v.elementAt(i)).partner == null)
  68.                                             System.out.println("未婚");
  69.                                         else {
  70.                                             System.out.println("伴侣:" +((Person) v.elementAt(i)).partner.name);
  71.                                         }
  72.                                     }
  73.                                 }
  74.                                 break;
  75.                             case 'C':
  76.                             case 'c':
  77.                                 Person person=new Person(b);
  78.                                 v.addElement(person);
  79.                                 break;
  80.                             case 'B':
  81.                             case 'b':
  82.                                 play = false;
  83.                                 break;
  84.                             default:
  85.                                 System.out.println("正确输入吧!");
  86.                             }
  87.                         }
  88.                         break;
  89.                     case 2:
  90.                         while(play){
  91.                             System.out.println("-------------------配偶界面---------------------");
  92.                             System.out.println("输入M(marry)回车:选人结婚");
  93.                             System.out.println("输入B(back)回车:返回主界面");
  94.                             key = b.readLine().charAt(0);
  95.                             switch (key) {
  96.                             case 'M':
  97.                             case 'm':
  98.                                 Person p1=null,p2=null;
  99.                                 System.out.print("输入要结婚的人物A的姓名:");
  100.                                 name=b.readLine();
  101.                                 if(!v.isEmpty()){
  102.                                     for(int i=0;i<v.size();++i){
  103.                                         if(name.equals(((Person)v.elementAt(i)).name)){
  104.                                             p1=(Person)v.elementAt(i);
  105.                                             break;
  106.                                         }
  107.                                     }
  108.                                 }
  109.                                 if(p1==null)
  110.                                     System.out.println("查无此人!"+name);
  111.                                 else{
  112.                                     System.out.print("输入要结婚的人物B的姓名:");
  113.                                     name=b.readLine();
  114.                                     if (!v.isEmpty()) {
  115.                                         for (int i = 0; i < v.size(); ++i) {
  116.                                             if (name.equals(((Person) v.elementAt(i)).name)) {
  117.                                                 p2 = (Person) v.elementAt(i);
  118.                                                 break;
  119.                                             }
  120.                                         }
  121.                                     }
  122.                                     if(p2==null)
  123.                                         System.out.println("查无此人!"+name);
  124.                                     else{
  125.                                         System.out.println("-----------------开始相亲------------------");
  126.                                         if(p1.isSexAble(p2)&&p1.is18Able()&&p2.is18Able()&&p1.isMarryAble()&&p2.isMarryAble()){
  127.                                             p1.marry(p2);
  128.                                         }
  129.                                     }
  130.                                 }
  131.                                 break;
  132.                             case 'B':
  133.                             case 'b':
  134.                                 play = false;
  135.                                 break;
  136.                             default:
  137.                                 System.out.println("正确输入吧!");
  138.                             }
  139.                         }
  140.                         break;
  141.                 }                
  142.             }
  143.         } catch (IOException ex) {
  144.             ex.printStackTrace();
  145.         }
  146.     }
  147.     
  148. }

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值