1. 程式人生 > >一個小例題關於Java

一個小例題關於Java

      @~~~~java語言做出如上圖選單,並能實現其中功能[email protected]

解題思路:

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();//進入操作檢視
        
    }
}