Java简易通讯录

目录

一、Txl1类:定义属性以及存储信息

二、Txl2类:定义存储和查询方法模块

三、主类:交互操作并运行模块

四、操作示例

 五、界面化实现通讯录(GUI)

简易通讯录系统(Java)

六、实现本地保存联系人信息



制作过程和思路都很简单,原理不多说,直接上代码

一、Txl1类:定义属性以及存储信息

class Txl{
	private String name;
	private String number;
	private String bianma;
	private String address;
	
	public Txl(String name,String number,String bianma,String address){
		this.name=name;
		this.number=number;
		this.bianma=bianma;
		this.address=address;
	}
	public String Name(){
		return name;
	}
	public String Number(){
		return number;
	}
	public String Bianma(){
		return bianma;
	}
	public String Address(){
		return address;
	}
}

二、Txl2类:定义存储和查询方法模块

class Txl2{
	private String name;
	private String bianma;
	private String number;
	private String address;
	private Txl[] r;
	private int num=1;
	Scanner input=new Scanner(System.in);
	public void Add(){
		
		r = new Txl[100];
		int n=1;
		while(n==1){
			System.out.print("name:");
			name=input.next();
			System.out.print("number:");
			number=input.next();
			System.out.print("bianma:");
			bianma=input.next();
			System.out.print("address:");
			address=input.next();
			r[num]=new Txl(name,number,bianma,address);
			num++;
			System.out.println("添加成功!");
			System.out.println("若继续添加请按1:");
			n=input.nextInt();
		}
	}
	public void Find(){
		System.out.print("input name:");
		name=input.next();
		int n=0;
		for(int i=1;i<num;i++){
			if(name.equals(r[i].Name())){
				System.out.println("查询成功!所查询联系人信息如下:");
				System.out.println("name:"+r[i].Name());
				System.out.println("number:"+r[i].Number());
				System.out.println("binama:"+r[i].Bianma());
				System.out.println("address:"+r[i].Address());
				n=1;
			}
		}
		if(num==1 || n==0) {
			System.out.println("查无此人!");
		}
	}
}

三、主类:交互操作并运行模块

public class Tongxunlu {
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		Txl2 t2=new Txl2();
		int m;
		while(true){
			System.out.println("请选择操作:1.添加联系人  2.查找联系人");
			m=input.nextInt();
			if(m==1){
				t2.Add();
			}
			else if(m==2){
				t2.Find();
			}
			else 
				System.out.println("输入错误,请重新输入!");
		}
	}
}

四、操作示例

 五、界面化实现通讯录(GUI)

简易通讯录系统(Java)

六、实现本地保存联系人信息

在上面的例子中联系人信息在退出程序之后就被删除了,为了永久的保存联系人信息采用输入输出流将其保存在本地。这里就只需要两个类即可。

package txl;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;

public class Txl2{
	private String name;
	private String bianma;
	private String number;
	private String address;
	Scanner input=new Scanner(System.in);
	public void add(){
		
		int n=1;
		boolean flag = true;
		while(n==1){
			System.out.print("name:");
			name=input.next();
			System.out.print("number:");
			number=input.next();
			System.out.print("bianma:");
			bianma=input.next();
			System.out.print("address:");
			address=input.next();
			
			Properties prop2 = new Properties();

			try {
				FileReader fr = new FileReader("TongXunLu.txt");
				prop2.load(fr);
			} catch (FileNotFoundException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
			
			for(Object i : prop2.keySet()) {
				if(name.equals(i)) flag = false; 
			}
			
			if(flag) {
				Properties pro = new Properties();
				pro.setProperty(name, number+","+bianma+","+address);
				
				try {
					FileWriter fw = new FileWriter("TongXunLu.txt",true);
					pro.store(fw,null);
					System.out.println("添加成功!");
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				
			}else {
				System.out.println("已有联系人!");
			}
			
			System.out.println("若继续添加请按1:");
			n=input.nextInt();
		}
	}
	public void find(){
		System.out.print("input name:");
		String name1=input.next();
		int n=0;
		
		Properties prop2 = new Properties();

		try {
			FileReader fr = new FileReader("TongXunLu.txt");
			prop2.load(fr);
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		String[] s = new String[100];
		prop2.keySet().toArray(s);
		
		for(int i=0;i<s.length;i++){
			if(name1.equals(s[i])){
				String[] ss = prop2.getProperty((String) s[i]).split(",");
				System.out.println("查询成功!所查询联系人信息如下:");
				System.out.println("name:"+s[i]);
				System.out.println("number:"+ss[0]);
				System.out.println("binama:"+ss[1]);
				System.out.println("address:"+ss[2]);
				n=1;
				break;
			}
		}
		if(n==0) {
			System.out.println("查无此人!");
		}

	}
}
package txl;

import java.util.Scanner;

public class Tongxunlu {
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		Txl2 t2=new Txl2();
		int m;
		while(true){
			System.out.println("请选择操作:1.添加联系人  2.查找联系人  3.退出");
			m=input.nextInt();
			if(m==1){
				t2.add();
			}
			else if(m==2){
				t2.find();
			}
			else if(m==3) {
				System.exit(0);
			}
			else 
				System.out.println("输入错误,请重新输入!");
		}
	}
}

运行展示:

运行完毕后观察本地文件,发现联系人信息以及被存储到了本地

此时再重新启动程序,直接查询,发现也是能查询到的。

 

 

  • 18
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现了以下要求说明的功能: 1.要求使用GUI,采用 Swing 技术数据存储采用文件系统(可以是文本 文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、 邮编、电话、传真 ( 3)网络信息:个人主页、即时通信工具及号码、备用邮箱 ( 4)家庭资料:国家、省份、城市、地址、邮编、电话 3 .通讯录数据的录入功能:输入并存储新的通讯录数据,输入时如果有同 名或同电话号码时,应该给出提示。 4 .通讯录数据的查询功能: ( 1)默认列出所有条目。 ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645”列出电话中有 该 4个数字的所有条目;输入“xl ”,列出声母为该 2 个字母的所有条目 ( 3)指定分组后,列出某分组的所有条目 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一 个汉语拼音的字母分类。 5 .删除和修改功能:查询到一个条目后,可以删除该条目或修改条目内容。 6 .通信录内容的导入和导出功能。要求能够以CSV 格式和 vCard 格式导入 和导出通讯录的全部内容。并能够与主流手机或其他通讯录软件交换数据。 7 .通讯录显示设置,可以设置在显示查询结果时,一个条目可以显示或不 显示哪些内容。 注意:本系统实现了读取和保存csv文件,同时csv文件中只保存了图片的路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

离陌lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值