一个小例题关于Java

      @~~~~java语言做出如上图菜单,并能实现其中功能~~~~@:

解题思路:

1.首先打印出如图菜单;

2.想要循环显示菜单,并在无任何操作前都会显示一次菜单,想着使用do{...}while();

3.对应菜单中的每一个功能都会实现相对应的方法,则使用switch(){...}方法;

注:switch方法表达式结果类型必定是byte,short,int,char;

4.所给类名有 主类(public class TestContacts) ,通讯类(Contacts.class),联系人类(封装过的 Person.class);

注:只做出功能,没有验证合法

Person类:

class Person{
    //姓名、性别、年龄、电话、地址
    private String name;
    private boolean sex;
    private int age;
    private String tel;
    private String address;
    
    //无参构造
    public Person(){}
    //有参数的构造方法
    public Person(String name,boolean sex,int age,String tel,String address){
        this.name=name;
        this.sex=sex;
        this.age=age;
        this.tel=tel;
        this.address=address;    
    }
    //get/set方法
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return this.name;
    }
    public void setSex(boolean sex){
        this.sex=sex;
    }
    public boolean getSex(){
        return this.sex;
    }
    public void setAge(int age){
        this.age=age;
    }
    public int getAge(){
        return this.age;
    }
    public void setTel(String tel){
        this.tel=tel;
    }
    public String getTel(){
        return this.tel;
    }
    public void setAddress(String address){
        this.address=address;
    }
    public String getAddress(){
        return this.address;
    }    
}

Contacts类:

 class Contacts{
    Person[] ps = new Person[10];
    public void creat(){//创建基础的存储对象10个
        ps[0]=new Person("张三",true,18,"18722222222","北京");
        ps[1]=new Person("李四",true,23,"18722345678","南京");
        ps[2]=new Person("王二",true,45,"18762345098","广州");
        ps[3]=new Person("麻子",true,24,"13628763489","神州");
        ps[4]=new Person("笑笑",false,18,"13526783999","上海");
        ps[5]=new Person("宝宝",false,67,"13423456789","深圳");
        ps[6]=new Person("贝贝",false,34,"13745678903","杭州");
        ps[7]=new Person("小李",true,24,"13456789009","重庆");
        ps[8]=new Person("小芳",false,67,"17654444444","西安");
        ps[9]=new Person("小王",true,87,"12345567865","武汉");
    }    
    int index=ps.length;//记录数组中联系人个数
    //方法:
    //0. 界面
    public void view(){
        int input = 0;//定义探测器
        do {
            System.out.println("***************欢迎进入通讯录系统*************");
            System.out.println("********1. 查询所有联系人       2. 根据id查询联系人");
            System.out.println("********3. 根据id修改联系人     4. 根据id删除联系人");
            System.out.println("********5. 添加联系人           6. 清空联系人");
            System.out.println("********7. 根据性别查询联系人   8. 打印出联系人的数量");
            System.out.println("********9. 根据姓名查询联系人   10. 退出系统");
            System.out.println();//以上为进入系统后的面板
            System.out.println("请输入您要进行的操作(用数字1-10表示):");
            Scanner sc = new Scanner(System.in);
            input = sc.nextInt();
            switch(input){                    
                case 1: queryAll();break;                
                case 2: queryById();break;                    
                case 3: updateById();break;                
                case 4: deleteById();break;                
                case 5: addPerson();break;                    
                case 6: deleteAll();break;                
                case 7: queryBySex();break;                
                case 8: count();break;
                   case 9: serchName();break;
                case 10: System.out.println("退出系统");break;
                default :System.out.println("请输入正确的执行代码1~10!");        
         System.out.println();
        } while(input!=10);//使用正确的操作代码时候
    }
    //1. 查询所有联系人
    public void queryAll(){
        if(index==0){
           System.out.println("没有联系人");
           return;
        }        
        for(int i=0;i<index;i++){
        System.out.println(ps[i].getName()+"\t"+ps[i].getSex()+"\t"+ps[i].getAge()+"\t"+ps[i].getTel()+"\t"+ps[i].getAddress());        
       }  
    }
    //2. 根据id(下标)查询联系人
    public void queryById(){
        if(index==0){
           System.out.println("没有联系人");
           return;
        }
        System.out.println("请输入您要查询联系人的id(0~"+(index-1)+")的顺序:");
        Scanner sc=new Scanner(System.in);
        int id=sc.nextInt();
        int k=0;
        for(int i=0;i<index;i++){
        if(id>=0&&id<index&&i==id){           
            System.out.println(ps[i].getName()+"\t"+ps[i].getSex()+"\t"+ps[i].getAge()+"\t"+ps[i].getTel()+"\t"+ps[i].getAddress());
            k++;    
        }
        }
        if(k==0){
            System.out.println("抱歉,无此联系人!");
            return;
        }        
      }
    //3. 根据id(下标)修改联系人 
    public void updateById(){
        if(index==0){
            System.out.println("请先建立联系人");
            return;
        }
        System.out.println("请输入您要修改联系人的id(0~"+(index-1)+")的顺序:");
        Scanner sc=new Scanner(System.in);
        int id=sc.nextInt();
        int k=0;
        for(int i=0;i<ps.length;i++){
            if(id>=0&&id<index){
                if(i==id){
               System.out.println("您要修改联系人的信息是:"+ps[i].getName()+"\t"+ps[i].getSex()+"\t"+ps[i].getAge()+"\t"+ps[i].getTel()+"\t"+ps[i].getAddress());                        
               k++;
                }
            }
        }
        if(k==0){
            System.out.println("抱歉,无此联系人!");
            return;
        }    
        int choose;
        do{
        System.out.println("请选择要修改的项:1.姓名;2.性别;3.年龄;4.电话;5.住址;0.退出");
        choose=sc.nextInt();
        switch(choose){
                        case 1:
                            System.out.print("修改姓名,请输入姓名:");
                            String rename=sc.next();
                            ps[id].setName(rename);
                            System.out.println("修改成功!!!");
                            break;
                        case 2:
                            System.out.println("修改性别,请输入性别(男-true 女-false):");
                            boolean resex=sc.nextBoolean();
                            ps[id].setSex(resex);
                            System.out.println("修改成功!!!");
                            break;
                        case 3:
                            System.out.println("修改年龄,请输入年龄:");
                            int reage=sc.nextInt();
                            ps[id].setAge(reage);
                            System.out.println("修改成功!!!");
                            break;
                        case 4:
                            System.out.println("修改电话,请输入电话:");
                            String retel=sc.next();
                            ps[id].setTel(retel);
                            System.out.println("修改成功!!!");
                            break;
                        case 5:
                            System.out.println("修改地址,请输入地址:");
                            String readdress=sc.next();
                            ps[id].setAddress(readdress);
                            System.out.println("修改成功!!!");
                            break;
                        case 0:
                            System.out.println("退出修改!");
                            break;
                        default :
                            System.out.println("操作代码输入有误!!!");        
                    }    
        }while(choose!=0);    
    }
    //4. 根据id(下标)删除联系人
    public void deleteById(){
        if(index==0){
            System.out.println("请先建立联系人");
            return;
        }
        System.out.println("请输入您 要删除联系人的id(0~"+(index-1)+")的顺序:");
        Scanner sc=new Scanner(System.in);
        int deleteId=sc.nextInt();
        int k=0;        
        if(deleteId>=0&&deleteId<index){
           for(int i=deleteId;i<index;i++){
              ps[deleteId]=ps[deleteId+1];
              k++;
           }
           System.out.println("删除成功!");
          }    
        if(k==0){
            System.out.println("抱歉,无此联系人!");
            return;
        }        
    }
    //5. 添加联系人(扩容)
    public void addPerson(){        
        Scanner sc=new Scanner(System.in);
        Person[] ps1 = new Person[10*2];
        for(int i=0;i<index;i++){
            ps1[i]=ps[i];
        }
        ps=ps1;
        ps[index]=new Person();
        System.out.println("请依次输入要添加的信息:");
        System.out.print("请输入姓名:");
        String rename=sc.next();
        ps[index].setName(rename);
        System.out.println("请输入性别(男-true 女-false):");
        boolean resex=sc.nextBoolean();
        ps[index].setSex(resex);
        System.out.println("请输入年龄:");
        int reage=sc.nextInt();
        ps[index].setAge(reage);
        System.out.println("请输入电话:");
        String retel=sc.next();
        ps[index].setTel(retel);
        System.out.println("请输入地址:");
        String readdress=sc.next();
        ps[index].setAddress(readdress);    
        index++;
        System.out.println("添加完成!");        
    }
    //6. 清空联系人(当进行该操作时需进行确认才会清空,否则不清空)
    public void deleteAll(){
        if(index==0){
            System.out.println("无联系人!");
            return;
        }
        System.out.println("确定要清空联系人吗?1.是;其他输入为否");
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        switch(n){
            case 1:for(int i=1;i<ps.length;i++){
                     ps[i]=null; //数组元素置空
                   }
                   index=0;
                   System.out.println("已清空联系人!");
                   break;
            default:
                   System.out.println("清空取消!!!");
                   break;
        }
    
    }
    //7. 输入一个性别,打印出对应性别的所有联系人信息
    public void queryBySex(){
     if(index==0){
           System.out.println("没有联系人");
           return;
        }
        System.out.println("请输入一个性别:");
        Scanner sc=new Scanner(System.in);
        boolean sex=sc.nextBoolean();
        int k=0;
        for(int i=0;i<index;i++){
        if(ps[i].getSex()==sex){           
            System.out.println(ps[i].getName()+"\t"+ps[i].getSex()+"\t"+ps[i].getAge()+"\t"+ps[i].getTel()+"\t"+ps[i].getAddress());
            k++;    
        }
        }
        if(k==0){
            System.out.println("输入错误!");
            return;
        }        
    }
    //8. 打印出联系人的数量
    public void count(){
        System.out.println("联系人的数量是"+index);
    }
    //9.根据姓名查询联系人
    public void serchName(){
     if(index==0){
           System.out.println("没有联系人");
           return;
        }
        System.out.println("请输入一个姓名:");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        int k=0;
        for(int i=0;i<index;i++){
            //比较字符串是否相等,用equals方法
        if(name.equals(ps[i].getName())){           
            System.out.println(ps[i].getName()+"\t"+ps[i].getSex()+"\t"+ps[i].getAge()+"\t"+ps[i].getTel()+"\t"+ps[i].getAddress());
            k++;    
        }
        }
        if(k==0){
            System.out.println("输入错误!");
            return;
        }    
    }
    //10.退出系统
}

主函数main:

import java.util.*;
//测试类
public class TestContacts{
    public static void main(String[] args){
        Contacts c = new Contacts();
        c.creat();//创建存储对象
        c.view();//进入操作视图
        
    }
}

猜你喜欢

转载自blog.csdn.net/tea_jasmine/article/details/83894280