java单机版通讯录

java单机版通讯录,第1张

功能很强呀

参考

>

2考虑表、字段,可以分类为:

电话(此处应该是多种类型,如手机、家庭等)

地址(如家庭住址、工作地点等)

3考虑实现类的编写

方法应该可以重用,无需二次修改

数据库的调用,应该是通用方法

接口的预留,方便调用

4程序界面设置

layout布局

增删查询的相关按钮

数据的显示方法等

5代码实现

主程序方法(如MainActivity)

接口实现

方法调用

示范:

--mainactivity;

--util;

-----db;

--ui;

-----main;

-----list;

希望对你有用,加油哦~

楼上应该放出答案了,我这里只是用其他界面显示,不懂Swing的可以略过,(代码比较粗略,不一定符合规范,照搬需谨慎)

import javaawtDimension;

import javaawtGridLayout;

import javaawteventKeyAdapter;

import javaawteventKeyEvent;

import javautilArrayList;

import javautilList;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJTextField;

public class Demo extends JFrame {

List<String> pnos = new ArrayList<String>();

public static void main(String[] args) {

new Demo();

}

public Demo() {

StringBuffer sb = new StringBuffer("<html><body>");

while (pnossize() < 15) {// "随机"生成电话号码,可以不理他

String telString = getRandomTel();

if (!pnoscontains(telString)) {

pnosadd(telString);

sbappend(telString);

if (pnossize() % 3 == 0) {

sbappend("<br/>");

} else if (pnossize() < 15) {

sbappend(",");

}

}

}

sbappend("</body></html>");

JLabel label = new JLabel(sbtoString());

final JTextField input = new JTextField();

final JLabel result = new JLabel();

thissetLayout(new GridLayout(3, 1));

thisadd(label);

thisadd(input);

thisadd(result);

thissetSize(new Dimension(300, 500));

thissetDefaultCloseOperation(EXIT_ON_CLOSE);

thissetLocationRelativeTo(null);

thissetVisible(true);

inputaddKeyListener(new KeyAdapter() {

@Override

public void keyReleased(KeyEvent keyevent) {

resultsetText(getMatchNo(inputgetText()));

}

});

}

/

  

  @param perfix

  @return

 /

public String getMatchNo(String perfix) {

StringBuffer sb = new StringBuffer("<html><body>");

if (perfix != null && !perfixtrim()equals(""))

for (String string : pnos) {// 这里是你要的部分,遍历“号码本”匹配是否为输入数字的开头

if (stringstartsWith(perfix)) {

sbappend(string)append("<br/>");

}

}

sbappend("</body></html>");

return sbtoString();

}

private static String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153"

split(",");

private static String getRandomTel() {

int index = getNum(0, telFirstlength - 1);

String first = telFirst[index];

String second = StringvalueOf(getNum(1, 888) + 10000)substring(1);

String thrid = StringvalueOf(getNum(1, 9100) + 10000)substring(1);

return first + second + thrid;

}

public static int getNum(int start, int end) {

return (int) (Mathrandom()  (end - start + 1) + start);

}

}

Java 数据结构

Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:

枚举(Enumeration)

位集合(BitSet)

向量(Vector)

栈(Stack)

字典(Dictionary)

哈希表(Hashtable)

属性(Properties)

Friend类:public class Friend {

/

姓名

/

private String name;

/

电话

/

private String telephone;

/

邮箱

/

private String email;

/

公司

/

private String company; public String getName() {

return name;

} public void setName(String name) {

thisname = name;

} public String getTelephone() {

return telephone;

} public void setTelephone(String telephone) {

thistelephone = telephone;

} public String getEmail() {

return email;

} public void setEmail(String email) {

thisemail = email;

} public String getCompany() {

return company;

} public void setCompany(String company) {

thiscompany = company;

} public String toString() {

StringBuffer str = new StringBuffer(); strappend("姓名:" + name)append("\n");

strappend("电话:" + telephone)append("\n");

strappend("邮箱:" + email)append("\n");

strappend("公司:" + company)append("\n");

strappend("-----------------------------------------\n");

return strtoString();

}

}AddFriend类:public class AddFriend { /

主方法 程序的入口

/

public static void main(String[] args) {

List<Friend> friendList = new ArrayList<Friend>();

char isGo = 'Y';

int i = 0;

do {

Friend friend = new Friend();

Systemoutprintln("请输入第" + (i + 1) + "位朋友的姓名:");

InputStreamReader reader = new InputStreamReader(Systemin);

String str = "";

try {

str = (new BufferedReader(reader))readLine();

} catch (IOException e) {

eprintStackTrace();

}

friendsetName(str); Systemoutprintln("请输入第" + (i + 1) + "位朋友的电话:"); try {

str = (new BufferedReader(reader))readLine();

} catch (IOException e) {

eprintStackTrace();

}

if (strmatches("\\d") && strlength() == 11) {// 判断用户输入的电话是否符合标准

friendsetTelephone(str);

} else {

Systemoutprintln("电话号码输入有误,请重新输入!");

continue;

} Systemoutprintln("请输入第" + (i + 1) + "位朋友的邮箱:"); try {

str = (new BufferedReader(reader))readLine();

} catch (IOException e) {

eprintStackTrace();

}

friendsetEmail(str); Systemoutprintln("请输入第" + (i + 1) + "位朋友的公司:"); try {

str = (new BufferedReader(reader))readLine();

} catch (IOException e) {

eprintStackTrace();

}

friendsetCompany(str); friendListadd(friend); i++; Systemoutprintln("是否继续添加?(Y/N):");

String go = "";

try {

go = (new BufferedReader(reader))readLine();

} catch (IOException e) {

eprintStackTrace();

}

isGo = gocharAt(0);

} while (isGo == 'Y' || isGo == 'y'); for (int j = 0; j < friendListsize(); j++) {

Systemoutprintln(friendListget(j)toString());

}

}

}

java编写这个通讯录管理系统

java编写这个通讯录管理系统_Java如何实现通讯录管理系统

咕噜噜在芬兰

原创

关注

3点赞·2305人阅读

Java如何实现通讯录管理系统

发布时间:2020-07-28 09:39:42

来源:亿速云

阅读:65

作者:Leah

这篇文章将为大家详细讲解有关Java如何实现通讯录管理系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下

完成项目的流程:

1根据需求,确定大体方向

2功能模块分析

3界面实现

4功能模块设计

5coding

6代码测试

下面是源代码:import javaawtContainer;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaioBufferedReader;

import javaioFileNotFoundException;

import javaioFileReader;

import javaioFileWriter;

import javaioIOException;

import javautilArrayList;

import javautilScanner;

import javautilconcurrentSynchronousQueue;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJPanel;

import javaxswingWindowConstants;

import javaxswingtexthtmlHTMLDocumentIterator;

class Infro{

public String id;

public String name;

public String sex;

public String address;

public String e_mail;

public String phoneNumber;

static int index = 0;

static ArrayList list = new ArrayList();

static int len = listsize();

//构造函数

public Infro(String id,String name,String sex,String address,String e_mail,String phoneNumber){

thisid = id;

thisname = name;

thissex = sex;

thisaddress = address;

thise_mail = e_mail;

thisphoneNumber = phoneNumber;

}

public String toString(){

return "编号:"+id+" 姓名:"+name+" 性别:"+sex+" 通讯地址:"+address+" 邮箱地址:"+e_mail+" 电话:"+phoneNumber;

}

/

添加功能

/

public static void addFunction(){//添加功能

Infro infro = new Infro("","","","","","");

Systemoutprintln("请输入添加的数据:");

Scanner in = new Scanner(Systemin);

Systemoutprintln("输入编号:");

infroid = innext();

Systemoutprintln("输入姓名:");

infroname = innext();

Systemoutprintln("输入性别:");

infrosex = innext();

Systemoutprintln("输入通讯地址:");

infroaddress = innext();

System

outprintln("输入邮箱地址:");

infroe_mail = innext();

Systemoutprintln("输入电话:");

infrophoneNumber = innext();

listadd(index,infro);

index++;

if(listisEmpty()){

Systemoutprintln("数据添加失败啦");

}else{

Systemoutprintln("数据添加成功啦");

len++;//list集合长度加一

// Systemoutprintln(listget(0)toString());

}

}

// public static void deleteFunction(){//删除功能

// Systemoutprintln("输入要删除的联系人的编号");

// Scanner in_2 = new Scanner(Systemin);

// String d1 = in_2nextLine();

// for(int a= 0; a

// if(d1equals(listget(a)id)){

// listremove(listget(a));

// len --;

// }

// }

// }

/

删除功能

/

public static void deleteFunction(){

Systemoutprintln("输入要删除的联系人的编号");

Scanner in_2 = new Scanner(Systemin);

String d1 = in_2nextLine();

javautilIterator it = listiterator();

while (ithasNext()){

Infro infro = itnext();

if (infroidequals(d1)){

itremove();

--index;//一定要加这个,否则当做了删除 *** 作再做添加 *** 作的时候会出现异常(类似于指针,栈)

Systemoutprintln("删除完毕"+"此时通讯录记录条数为:" + --len);

}

}

}

/

修改功能

/

public static void reditFunction(){

Systemoutprintln("输入要修改的通讯录的Id");

Scanner in_r = new Scanner(Systemin);

String r1 = in_rnextLine();

for(int a = 0; a < len;a++){

if(r1equals(listget(a)id)){

Systemoutprintln("输入修改后的姓名:");

String name_1 = in_rnext();

listget(a)name = name_1;

Systemoutprintln("输入修改后的性别:");

String sex_1 = in_rnext();

listget(a)sex = sex_1;

Systemoutprintln("输入修改后的通讯地址:");

String address_1 = in_rnext();

listget(a)address = address_1;

Systemoutprintln("输入修改后的邮箱地址:");

String e_mail_1 = in_rnext();

listget(a)e_mail = e_mail_1;

Systemoutprintln("输入修改后的电话:");

String phoneNumber_1 = in_rnext();

listget(a)phoneNumber = phoneNumber_1;

Systemoutprintln("数据修改完毕");

}

}

}

/

查询功能

/

public static void searchFunction() throws Exception{//查询功能

Systemoutprintln("请输入要查询的姓名:");

Scanner in_1 = new Scanner(Systemin);

String s1=in_1nextLine();

for(int a= 0; a

if(s1equals(listget(a)name)){

Systemoutprintln(listget(a)toString());

}

}

}

/

显示功能

/

public static void showFunction(){

for(int i = 0 ;i

Systemoutprintln(listget(i)toString());

}

}

/

保存功能

/

public static void writeFunction() throws IOException{

FileWriter writer = new FileWriter("通讯录管理txt");

for(int i = 0 ;i

String []strwriter = new String[len];

strwriter[i]=listget(i)toString();

writerwrite(strwriter[i]);

writerwrite("\r\n");

Systemoutprintln("成功写入一行数据到 通讯录管理txt 中");

}

writerclose();//关闭写入流,释放资源

}

/

读取功能

/

public static void readFunction() throws IOException{

FileReader reader = new FileReader("通讯录管理txt");

BufferedReader br = new BufferedReader(reader);

String str;

while((str = brreadLine()) != null){//每次读取一行文本,判断是否到达文件尾

Systemoutprintln(str);

}

brclose();

}

}

public class Demo extends JFrame {

/

界面设计

/

public Demo(){

Container c = getContentPane(); //定义一个顶级容器c

JPanel jp = new JPanel(); //新建JPanel面板--jp

JButton button1 = new JButton("新建联系人");

JButton button2 = new JButton("删除联系人");

JButton button3 = new JButton("编辑联系人");

JButton button4 = new JButton("查找联系人");

JButton button5 = new JButton("显示所有联系人");

JButton button6 = new JButton("保存联系人到本地");

JButton button7 = new JButton("读取本地联系人");

jpsetLayout(new GridLayout(2,4,5,5));//新建网格布局管理器(行数,列数,组件间的水平垂直间距)

jpadd(button1);

jpadd(button2);

jpadd(button3);

jpadd(button4);

jpadd(button5);

jpadd(button6);

jpadd(button7);

cadd(jp);//将JPanel面板jp添加到顶级容器c中

setSize(600,500);

setTitle("通 讯 录 管 理 系 统");

setVisible(true);

setResizable(false);//窗体大小由程序员决定,用户不能自由改变大小

setDefaultCloseOperation(WindowConstantsEXIT_ON_CLOSE);

/

按键响应

/

button1addActionListener(new ActionListener(){//添加功能实现

public void actionPerformed(ActionEvent arg0){

InfroaddFunction();

}

});

button2addActionListener(new ActionListener(){//删除功能实现

public void actionPerformed(ActionEvent arg0){

InfrodeleteFunction();

}

});

button3addActionListener(new ActionListener(){//修改功能实现

public void actionPerformed(ActionEvent arg0){

InfroreditFunction();

}

});

button4addActionListener(new ActionListener(){//查询功能实现

public void actionPerformed(ActionEvent arg0){

try {

InfrosearchFunction();

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

});

button5addActionListener(new ActionListener(){//显示功能实现

public void actionPerformed(ActionEvent arg0){

InfroshowFunction();

}

});

button6addActionListener(new ActionListener(){//保存功能实现

public void actionPerformed(ActionEvent arg0){

try {

InfrowriteFunction();

} catch (IOException e) {

eprintStackTrace();

}

}

});

button7addActionListener(new ActionListener(){//读取功能实现

public void actionPerformed(ActionEvent arg0){

try {

InfroreadFunction();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

});

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new Demo();

Infro a = new Infro("", "", "", "", "", "");

}

}

关于Java如何实现通讯录管理系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

以上就是关于java单机版通讯录全部的内容,包括:java单机版通讯录、用java 开发出一个简单的android通讯录的思路是什么、输入3位数字 在通讯录中找到跟前3位数字相匹配的手机号码,用java怎么写代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9669359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存