一個小例題關於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();//進入操作檢視
}
}