java通讯录管理源代码,java编写通讯录
java个人通讯录管理系统
import java.util.Arrays;
创新互联是一家专业提供潢川企业网站建设,专注与做网站、网站制作、H5场景定制、小程序制作等业务。10年已为潢川众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
public class AddressBook
{
private int totalContacts; // 现在通讯录中的总数
private int maxContacts; // 通讯录的最大值
private Contact[] contacts; // 通讯录的array
/**
* Constructor. 设定这个通讯录最初的大小为10人上限.
*/
public AddressBook()
{
totalContacts = 0;
maxContacts = 10;
contacts = new Contact[totalContacts];
}
/**
* 得到一个联系通过通讯录中的名字
*
* @param name
* 要去得到的联系人名字
* @return 这个联系人, 没有的话为null
*/
public Contact getContactByName(String name)
{
for(int i = 0; i totalContacts; i++)
{
Contact c = contacts[i];
if(name.equals(c.getName()))
{
return c;
}
}
return null;
}
/**
* 在这个contacts array的最后给这个通讯录添加联系人.
* 如果联系人已经存在且号码参数不为0的话,联系人的号码会更新或者地址参数不是null的话,地址会更新。.
* 如果totalContacts达到maxContacts的值的话,在新的联系人被添加前,这个contacts
* array的size会乘以双倍并且maxContacts也乘以双倍。
*
* @param contact
* 要加到这个通讯录的联系人
* @return true 如果这个联系人添加成功, 否则 false;
*/
public boolean addContact(Contact contact)
{
for(int i = 0; i contacts.length; i++)
{
Contact ct = contacts[i];
if(ct.equals(contact))
{
if(ct.getNumber() != 0)
{
ct.setNumber(contact.getNumber());
}
if(null != ct.getAddress())
{
ct.setAddress(contact.getAddress());
}
return true;
}
}
if(totalContacts == maxContacts)
{
totalContacts *= 2;
maxContacts *= 2;
}
Contact[] cs = new Contact[totalContacts + 1];
System.arraycopy(contacts, 0, cs, 0, totalContacts);
cs[cs.length - 1] = contact;
contacts = cs;
totalContacts++;
return true;
}
/**
* 检查是否联系人已经存在
*
* @param contact
* 要去检查的contact
* @return true 如果这个联系人被找到,否则false
*/
public boolean contains(Contact contact)
{
for(int i = 0; i totalContacts; i++)
{
if(contacts[i].equals(contact))
{
return true;
}
}
return false;
}
public void printAddressBook()
{
for(int i = 0; i totalContacts; i++)
{
System.out.println(contacts[i]);
}
}
/**
* 在AddressBook中还有一个方法!
* 从通讯录中移除一个指定的联系人,之后把其他的入口左移,这样在联系人间就没有空隙了,
* For example:
* before - {C1, C2, C3, C4, C5, C6, C7, C8, C9, null} remove C6
* after - {C1, C2, C3, C4, C5, C7, C8, C9, null, null}
*
* @param contact
* 要移除的联系人,
* @return true 如果这个联系人被成功移除了,否则false;
*/
public boolean removeContact(Contact contact)
{
if(totalContacts == 0)
{
return false;
}
for(int i = 0; i totalContacts; i++)
{
Contact ct = contacts[i];
if(ct.equals(contact))
{
Contact[] cs = new Contact[totalContacts];
System.arraycopy(contacts, 0, cs, 0, i);
System.arraycopy(contacts, i + 1, cs, i, cs.length - i - 1);
contacts = cs;
totalContacts--;
return true;
}
}
return false;
}
@Override
public String toString()
{
return String.format("AddressBook [totalContacts=%s, maxContacts=%s, contacts=%s]", totalContacts, maxContacts,
Arrays.toString(contacts));
}
}
//--------------------------------------------------
public class Contact
{
private String name;
private long number;
private String address;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public long getNumber()
{
return number;
}
public void setNumber(long number)
{
this.number = number;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
@Override
public boolean equals(Object obj)
{
if(!(obj instanceof Contact))
{
return false;
}
Contact contact = (Contact) obj;
if(this.getName().equals(contact.getName())
this.getAddress().equals(contact.getAddress())
this.getNumber() == contact.getNumber())
{
return true;
}
return false;
}
@Override
public String toString()
{
return String.format("Contact [name=%s, number=%s, address=%s]", name, number, address);
}
}
//---------------------------------------------
public class Test
{
public static void main(String[] args)
{
AddressBook ab = new AddressBook();
for(int i = 0; i 10; i++)
{
Contact contact = new Contact();
int x = i + 1;
contact.setName("C" + x);
contact.setAddress("china");
contact.setNumber(x);
ab.addContact(contact);
}
System.out.println(ab);
Contact c = new Contact();
c.setName("C6");
c.setAddress("china");
c.setNumber(6);
ab.removeContact(c);
System.out.println(ab);
}
}
(java编程)采用双向链表作数据结构,编写一个通讯录管理系统。
#include
#include
#include
using namespace std;
#define SIZE 10
struct AddrList
{
string name;
string sex;
int age;
string QQ;
}addrlist[SIZE];
int main()
{
int i;
int j;
cout"输入要输入的记录数量:";
cini;
if (iSIZE)
{
cout"输入的记录数量大于顺序表的最大长度!"endl;
return 0;
}
cout"输入格式:\n姓名 性别 年龄 QQ\n"endl;
for (j=0;ji;++j)
{
cout"输入第"j+1"条记录"endl;
cinaddrlist[j].nameaddrlist[j].sexaddrlist[j].ageaddrlist[j].QQ;
}
cout"\n姓名\t性别\t年龄\tQQ"endl;
for (j=0;ji;++j)
{
coutaddrlist[j].name"\t"addrlist[j].sex"\t"addrlist[j].age"\t"addrlist[j].QQendl;
}
return 0;
}
输入:2
张三 男 23 123456
李四 女 24 66666
编写一个JAVA程序实现个人通讯录管理
这个太简单了,你问的是程序编制要点,那么我就告诉你:
1.分析程序
2.制定计划
3.编写代码
4.测试
关于你说的用java编写个人通讯录管理程序,这个程序代码
这本书有原代码,你自己可以看下
求Java通讯录管理程序,要编译好的。要求数据存在文本文件中,功能包括联系人管理(新增,删除,修改
#includestdio.h /*I/O函数*/
#includeprocess.h/*包含exit函数*/
#includestring.h/*字符串函数*/
struct person/*定义一个结构体,结构体内元素为数组*/
{
char name[10];/*姓名*/
char number[15];/*学号*/
char tel[15];/*电话*/
char addr[30];/*地址*/
};
char filename[12];
FILE *fp;/*定义一个指针*/
void creat();/*创建一个通讯簿*/
void output();/*输出通讯录中所含资料*/
void append();/*添加函数*/
void search();/*查找函数*/
void Delete();/*删除函数*/
void modify();/*修改函数*/
/*以下是主函数*/
main()
{
int m;/*定义一个整数*/
creat();
while(1)/*括号中为1代表无限循环*/
{
printf("\n\n添加同学地址,请按1");
printf("\n查找同学地址,请按2");
printf("\n修改同学地址,请按3");
printf("\n删除原来地址,请按4");
printf("\n输出所有地址,请按5");
printf("\n退出本通讯录,请按0\n");
scanf("%d",m);
if(m=0m=5)
{
switch(m)/*调用主菜单函数,返回值整数作开关语句的条件*/
{
case 1: append();/*往通讯录中添加*/
break;
case 2: search();/*在通讯录中查找*/
break;
case 3: modify();/*修改通讯录中资料*/
break;
case 4: Delete();/*删除通讯录中资料*/
break;
case 5: output();/*输出通讯录中所有名单*/
break;
case 0: exit(0);/*退出运行程序*/
}
printf("\n\n操作完毕,请再次选择!");
}
else
printf("\n\n选择错误,请再次选择!");
}
}
void output()
{
struct person one;
if((fp=fopen(filename,"r"))==NULL)/*用输入打开一个文本文*/
{
printf("\n不能打开通讯簿!");
exit(0);
}
printf("\n\n%12s\n","通 讯 簿");
while(!feof(fp))/*检验fp所指文件是否结束,此为一个循环语句*/
{
fscanf(fp,"%s%s%s%s\n",one.name,one.number,one.tel,one.addr);/*从fp所指文件中读出数据*/ printf("\n%-10s%-15s%-15s%-30s\n",one.name,one.number,one.tel,one.addr);/*输出上面读出数据*/
}
fclose(fp);/*关闭所指文件,释放文件缓冲区,并返回值*/
}
/*****************添加函数*******************************/
void append()
{
struct person one;
if((fp=fopen(filename,"a"))==NULL)/*向二进制文本尾追加数据*/
{
printf("\n不能打开通讯簿!");
exit(0);
}
printf("\n请输入添加的姓名、电话号码及住址\n");
java通讯录全部代码!
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class AddList {
private String filePath = "";
private String bakPath = "";
private String content = "";
Scanner sc = new Scanner(System.in);
public String readFile(){
content = "";
if (isNull(filePath)) {
System.out.println("文件存储路径:");
filePath = sc.nextLine();
}
File file = new File(filePath);
FileReader fr = null;
try {
if (file.exists()) {
fr = new FileReader(file);
char[] chars = new char[1024];
int n = 0;
while((n = fr.read(chars)) != -1){
String string = new String(chars, 0, n);
content = content + string;
}
} else {
System.out.println("文件不存在");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content;
}
public void writeFile(String path){
File file = new File(path);
FileOutputStream fos = null;
mkDirs(path);
try {
fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
PrintWriter pw = new PrintWriter(bos, true);
pw.print(content);
pw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void writeFile(){
if (isNull(filePath)) {
System.out.println("文件存储路径:");
filePath = sc.nextLine();
}
File file = new File(filePath);
FileOutputStream fos = null;
mkDirs(filePath);
try {
fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
PrintWriter pw = new PrintWriter(bos, true);
pw.print(content);
pw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void mkDirs(String filepath){
if (filepath.indexOf("\\") != -1) {
filepath = filepath.replaceAll("\\", "/");
}
int n = filepath.indexOf("//");
String path = filepath.substring(0, n) + "//";
filepath = filepath.substring(filepath.indexOf("//") + 1, filepath.length());
String[] files = filepath.split("/");
for (int i = 0; i files.length - 1; i++) {
path = path + files[i];
File file = new File(path);
if (!file.exists()) {
file.mkdir();
}
}
}
public void addImfor(){
System.out.println("--------增加记录---------");
String name = "";
String tel = "";
String email = "";
content = readFile();
while(true){
System.out.println("姓名:");
name = sc.next();
System.out.println("电话:");
tel = sc.next();
System.out.println("Email:");
email = sc.next();
content = content + name + "" + tel + "" + email +"==";
System.out.println("0、Exit 1、继续");
int i = sc.nextInt();
if (i == 0) {
break;
}
}
writeFile();
}
public void deleteImfor(){
System.out.println("---------删除记录---------");
String name = "";
String[] imfors = null;
content = readFile();
while(true){
System.out.println("你要删除的姓名是:");
name = sc.next();
if (content.indexOf(name) != -1) {
imfors = content.split("==");
for (int i = 0; i imfors.length; i++) {
if (imfors[i].indexOf(name) != -1) {
imfors[i] = "";
}
}
标题名称:java通讯录管理源代码,java编写通讯录
分享路径:http://myzitong.com/article/hocejo.html