JAVA入门17天,键盘录入的电话薄小程序

一,电话薄!

     主要实现的功能:

1. 增、删、查、改;

2. 添加联系人时,可以根据输入的电话号码,判断该电话是否符合一般的11位号码格式。

3.在显示联系人时,排列的顺序是根据中文名的姓的拼音(a,b,c...)进行排序的。

二、实现效果如下:

三、实现代码如下:

People类:
package com.通讯录;

public class People {

	private String pno;
	private String pname;
	private String phone;
	private String qq;
	private String emeil;
	
	public People() {
		// TODO Auto-generated constructor stub
	}

	public People(String pno, String pname, String phone, String qq, String emeil) {
		super();
		this.pno = pno;
		this.pname = pname;
		this.phone = phone;
		this.qq = qq;
		this.emeil = emeil;
	}

	public String getPno() {
		return pno;
	}

	public void setPno(String pno) {
		this.pno = pno;
	}

	public String getPname() {
		return pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

	public String getEmeil() {
		return emeil;
	}

	public void setEmeil(String emeil) {
		this.emeil = emeil;
	}

	@Override
	public String toString() {
		return pno +"\t"+  pname +"\t"+ phone +"\t"+  qq +"\t"+ emeil ;
	}
	
}
PeopleManager类:
package com.通讯录;

import java.util.ArrayList;

public class PeopleManager {

	static ArrayList<People> list = new ArrayList<>();

	public void addPeople(People p) {
		list.add(p);
	}

	public People findBypno(String phone) {

		for (People p : list) {
			if (phone.equals(p.getPhone())) {
				return p;
			}
		}
		return null;
	}

	public ArrayList<People> findAll() {
		return list;
	}

	public boolean deleteByPno(String pno) {

		for (People p : list) {
			if (pno.equals(p.getPno())) {
				return list.remove(p);
			}
		}
		return false;

	}

}
TestPeopler类:
package com.通讯录;

import java.util.Scanner;

import net.sourceforge.pinyin4j.PinyinHelper;

public class TestPeople {

	People p1 = new People();
	PeopleManager p = new PeopleManager();

	public void meun() {
		msg("通讯录");
		msg("1添加联系人");
		msg("2联系人查询");
		msg("3显示联系人");
		msg("4删除联系人");
		msg("0退出");
		srart();
	}

	private void srart() {

		Scanner sc = new Scanner(System.in);
		msg("请输入您的选择:");
		int i = sc.nextInt();

		switch (i) {
		case 1:
			add();
			break;
		case 2:
			findPno();
			break;
		case 3:
			findAllPeople();
			break;
		case 4:
			delete();
			break;
		case 5:

		default:
			msg("谢谢使用!");
			System.exit(0);
			break;
		}
		meun();

	}

	private void delete() {

		Scanner sc = new Scanner(System.in);
		msg("请输入需要删除联系人的编号");
		String pno = sc.nextLine();
		if (p.deleteByPno(pno)) {
			msg("删除成功");
		} else {
			msg("删除失败");
		}

	}

	private void findAllPeople() {

		if (p.findAll() == null) {
			msg("暂无联系人!");
		} else {
			msg("编号\t姓名\t手机号\t\tQQ\t邮箱地址");
			p.findAll().sort((a, b) -> {
				// 分别获取要比较的两个学生的姓名
				String name1 = a.getPname();
				String name2 = b.getPname();
				// 声明变量存储转换之后汉语拼音
				String p1 = "";
				String p2 = "";
				// 将汉字转拼音
				for (int i = 0; i < name1.length(); i++) {
					p1 += PinyinHelper.toHanyuPinyinStringArray(name1.charAt(i))[0];
				}
				for (int i = 0; i < name2.length(); i++) {
					p2 += PinyinHelper.toHanyuPinyinStringArray(name2.charAt(i))[0];
				}
				// 比较
				return p1.compareTo(p2);
			});
			for (People pop : p.findAll()) {
				msg(pop);
			}
		}
	}

	private void findPno() {
		Scanner sc = new Scanner(System.in);
		msg("请输入要查询的电话号码:");
		String phone = sc.nextLine();
		People pop = p.findBypno(phone);
		if (pop == null) {
			msg("该联系人不存在,请重新输入:");
			findPno();
			return;
		} else {
			msg("编号\t姓名\t手机号\t\tQQ\t邮箱地址");
			msg(pop);

		}

	}

	private void add() {

		msg("按此格式输入:编号/姓名/手机号/QQ/邮箱地址");
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		String[] info = s.split("/");
		String regex = "^1[345678]\\d{9}$";
		if (info[2].matches(regex)) {

			if (p.findBypno(info[2]) != null) {
				msg("该手机号已存在!请重新输入:");
				add();
				return;
			} else {
				msg("编号\t姓名\t手机号\t\tQQ\t邮箱地址");
				People pop = new People(info[0], info[1], info[2], info[3], info[4]);
				p.addPeople(pop);

				msg("添加成功!");
			}
		} else {
			msg("请输入正确的手机号!!");
			add();
		}
	}

	public void msg(Object obj) {
		System.out.println(obj);
	}

	public static void main(String[] args) {

		new TestPeople().meun();
	}

}

四、总结

      这次的程序是结合了之前所学的一部分知识写出来的,还是按之前的三部曲做,创建类,方法类,在就是控制台输出,

学习过程中最重要就是不要浮躁(虽说我也不是没有浮躁过),要懂得调整心态,学会自我管理,基础学习是枯燥的,但是当你真正的做出一个小程序的时候,那些所谓的枯燥兴许会变成甘露也说不定!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值