功能很强呀
参考
>
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如何实现通讯录管理系统
咕噜噜在芬兰
原创
关注
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怎么写代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)