java实训之利用数组与类做一个电话簿

Telphone类

package Telphone;

public class Telphone {
	private String name;//姓名
	private String sex;//性别
	private int age;//年龄
	private String tel;//电话
	private int qq;//QQ
	private String adress;//地址
	public Telphone(String name, String sex, int age, String tel, int qq, String adress) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.tel = tel;
		this.qq = qq;
		this.adress = adress;
	}
	public Telphone() {
		super();
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public int getQq() {
		return qq;
	}
	public void setQq(int qq) {
		this.qq = qq;
	}
	public String getAdress() {
		return adress;
	}
	public void setAdress(String adress) {
		this.adress = adress;
	}
	
	

}

package Telphone;

import java.util.Scanner;

public class Test {
	static int N=5;
//1.添加  2.修改 3.删除  4.查询所有  5.根据姓名查询 6.退出
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Telphone[] tel=new Telphone[N];
		
		for(int x=0;x<N;x++) {//初始化电话簿,给几个人
			 tel[x]=new Telphone(""+x,"男",0,"",0,"");
		}
		Frame();
		System.out.println();
		System.out.println("请输入指令:");
		Scanner sc=new Scanner(System.in);
		int i=sc.nextInt();
		String name;
		int j=0;//接收电话簿人数
		boolean flag=false;
		while(i!=0) { 
			
			switch(i) {
				case 1:
					j=findAll(tel);
					if(j>N)
						System.out.println("电话簿已满,无法添加");
					else
						flag=addTel(tel);
					if(flag==true)
						System.out.println("添加成功!");
					break;
				case 2:
					System.out.println("输入要修改的人的姓名");
					name=sc.next();
					flag=updateTel(tel,name);
					if(flag==true)
						System.out.println("修改成功!");
					else 
						System.out.println("修改失败!");
					break;
				case 3:
					System.out.println("输入要删除人的姓名:");
					name=sc.next();
					flag=delTel(tel,name);
					if(flag==true)
						System.out.println("删除成功!");
					else 
						System.out.println("删除失败!");
					break;
				case 4:
					j=findAll(tel);
					if(j==0)
						System.out.println("当前电话簿无记录!");
					break;
				case 5:
					System.out.println("输入要查找的人的姓名");
					name=sc.next();
					findByName(tel,name);
					System.out.println();
					break;
				case 0:
					System.out.println("退出系统!");
					break;
				default:
					System.out.println("输入指令错误!");
	
			}
			name="";
			flag=false;
			System.out.println("请输入指令:");
			i=sc.nextInt();
		}
		System.out.println("退出系统!");
		
	}
	public static void Frame() {//主界面
		System.out.print("=================================================================");
		System.out.println();
		System.out.print("1.添加   2.修改   3.删除   4.查询所有   5.根据姓名查询    0.退出");
		System.out.println();
		System.out.print("=================================================================");
	}
	public static boolean addTel(Telphone[] tel1) {//添加
		Scanner sc=new Scanner(System.in);
		boolean flag=false;
		String s;
		int j=0;
		for(int i=0;i<N;i++) {//遍历数组,找到空的地方即插入
			if(tel1[i].getAge()==0) {
				System.out.println("请输入信息:");
				System.out.print("姓名:");
				s=sc.next();
				tel1[i].setName(s);
				System.out.print("性别:");
				s=sc.next();
				tel1[i].setSex(s);
				System.out.print("年龄:");
				j=sc.nextInt();
				tel1[i].setAge(j);
				System.out.print("手机:");
				s=sc.next();
				tel1[i].setTel(s);
				System.out.print("QQ:");
				j=sc.nextInt();
				tel1[i].setQq(j);
				System.out.print("地址:");
				s=sc.next();
				tel1[i].setAdress(s);
				flag=true;//添加成功后则返回true
				break;
			}
		}
		return flag;
		
	}
	public static boolean delTel(Telphone[] tel1,String name) {//删除
		boolean flag=false;
		for(int i=0;i<N;i++) {
			if(tel1[i].getName().equals(name)) {//将数组内容做成0,null形式,并非真的删除,而是设计其无法查出
				tel1[i].setName("");
				tel1[i].setSex("男");
				tel1[i].setAge(0);
				tel1[i].setTel("");
				tel1[i].setQq(0);
				tel1[i].setAdress("");
				flag=true;
				break;
			}
		}
		return flag;
		
	}
	public static boolean updateTel(Telphone[] tel1,String name) {//修改
		Scanner sc=new Scanner(System.in);
		boolean flag=false;
		String s;		
		for(int i=0;i<N;i++) {
			if(tel1[i].getName().equals(name)) {//判断姓名是否匹配
				System.out.println("请输入信息:");
				System.out.print("姓名:");
				tel1[i].setName(sc.next());
				System.out.print("性别:");
				tel1[i].setSex(sc.next());
				System.out.print("年龄:");
				tel1[i].setAge(sc.nextInt());
				System.out.print("手机:");
				tel1[i].setTel(sc.next());
				System.out.print("QQ:");
				tel1[i].setQq(sc.nextInt());
				System.out.print("地址:");
				tel1[i].setAdress(sc.next());
				flag=true;
				break;
			}
		}
		return flag;
		
	}
	public static int findAll(Telphone[] tel1) {//查所有
		int i=0;
		int j=0;
		for(i=0;i<N;i++) {//遍历数组,只要其年龄不是默认值0,则可判断其内有数据
			if(tel1[i].getAge()!=0) {
				System.out.print("姓名:"+tel1[i].getName()+" 性别:"+tel1[i].getSex()+" 年龄:"+tel1[i].getAge()+" 手机:"+tel1[i].getTel()+" QQ:"+tel1[i].getQq()+" 地址"+tel1[i].getAdress());
				System.out.println(i);
				j++;
				
			}else
				break;
		}
		return j;//返回电话簿的人数
		
		
	}
	public static void findByName(Telphone[] tel1,String name) {//查姓名
		for(int i=0;i<N;i++) {
			if(tel1[i].getName().equals(name)) {
				System.out.print("姓名:"+tel1[i].getName()+" 性别:"+tel1[i].getSex()+" 年龄:"+tel1[i].getAge()+" 手机:"+tel1[i].getTel()+" QQ:"+tel1[i].getQq()+" 地址"+tel1[i].getAdress());
				
			}
		}
		
	}
	

}

运行结果如图:由于运行环境问题,尽量输入英文,避免异常
在这里插入图片描述
在这里插入图片描述

发布了58 篇原创文章 · 获赞 145 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/pengxiang1998/article/details/103826993