个人通讯录管理系统,java源代码

合集下载

通讯录管理系统代码

通讯录管理系统代码

#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{ //通讯录结点类型char num[5]; //编号char name[9]; //姓名char sex[3]; //性别char phone[13]; //电话char addr[31]; //地址}DataType;typedef struct node{ //结点类型定义DataType data; //结点数据域struct node * next; //结点指针域}ListNode;typedef ListNode * LinkList;LinkList head;ListNode *p;//函数说明int menu_select( );LinkList CreateList(void);void InsertNode(LinkList head,ListNode *p);ListNode * ListFind(LinkList head);void DelNode(LinkList head);void PrintList(LinkList head);//主函数void main(){for(;;) {switch(menu_select()){case 1:printf("*********************************\n");printf("********通讯录链表的建立*********\n");printf("*********************************\n");head=CreateList();break;case 2:printf("*********************************\n");printf("* 通讯者信息的添加*\n");printf("*********************************\n");printf("编号(4) 姓名(8) 性别电话(11)地址\n");printf("*********************************\n");p=(ListNode *)malloc(sizeof(ListNode));//申请新结点scanf("%s%s%s%S%%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr);InsertNode(head,p);break;case 3:printf("*********************************\n");printf("* 通讯录信息的查询\n");printf("*********************************\n");p=ListFind(head);if(p!=NULL) {printf("编号姓名性别电话地址\n");printf("--------------------------------\n");printf("%S,%s,%s,%s,%S\n",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr);printf("--------------------------------\n");}elseprintf("没查到要查询的通迅者!\n");break;case 4:printf("*********************************\n");printf("* 通讯录信息的删除\n");printf("*********************************\n");DelNode(head);//删除结点break;case 5:printf("*********************************\n");printf("* 通讯录链表的输出\n");printf("*********************************\n");PrintList(head);break;case 0:printf("\t 再见!\n");return;}}}//菜单选择函数int menu_select(){int sn;printf(" 通讯录管理系统\n");printf("=====================\n");printf(" 1 通讯录链表的建立\n");printf(" 2 通迅者结点的插入\n");printf(" 3 通讯者结点的查询\n");printf(" 4 通讯者结点的删除\n");printf(" 5 通讯录链表的输出\n");printf(" 0 退出管理系统\n");printf("=====================\n");printf(" 请选择0-5:" );for(;;){scanf("%d",&sn);if(sn<0||sn>5)printf("\n\t输入错误,重选0-5:");elsebreak;}return sn;}//用尾插法建立通讯录链表函数LinkList CreateList(void){//用尾插法建立带头结点的通讯录链表算法LinkList head=(ListNode *)malloc(sizeof(ListNode));//申请头结点ListNode *p,*rear;int flag=0;//结束标志置0rear=head;//尾指针初始指向头结点while(flag==0){p=(ListNode *)malloc(sizeof(ListNode));//申请新结点printf("编号(4)姓名(8)性别电话(11)地址(31)\n");printf("----------------------------------------------\n");scanf("%s%s%s%s%s",p->data.num, p->, p->data.sex, p->data.phone, p->data.addr);rear->next=p;//新结点链接到尾结点之后rear=p;//尾指针指向新结点printf("结束建表吗?(1/0):");scanf("%d",&flag);//读入一个标志数据}rear->next=NULL;//终端结点指针域置空return head;//返回链表头指针}//在通讯录链表head中插入结点void InsertNode(LinkList head,ListNode *p){ListNode *p1,*p2;p1=head;p2=p1->next;while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0) {p1=p2;//p1指向刚访问过的结点p2=p2->next;//p2指向表的下一个结点}p1->next=p;//插入p所指向的结点p->next=p2;//链接表中剩余部分}//有序通讯率链表上的查找ListNode * ListFind(LinkList head){//有序通讯率链表上的查找ListNode *p;char num[5];char name[9];int xz;printf("==============\n");printf("1.按编号查询\n");printf("2.按姓名查询\n");printf("==============\n");printf(" 请选择\n");p=head->next;//假定通讯录表带头结点scanf("%s",&xz);if(xz==1){printf("请输入要查找者的编号:");scanf("%s",num);while(p && strcmp(p->data.num,num)<0)p=p->next;if(p==NULL || strcmp(p->data.num,num)>0)p=NULL;//没有查到要查找的通讯者}elseif(xz==2){printf("请输入要查找者的姓名:");scanf("%s",name);while(p && strcmp(p->,name)!=0)p=p->next;}return p;}//通讯链表上结点的删除void DelNode(LinkList head){char jx;ListNode *p,*q;p=ListFind(head);//调用查找函数if(p==NULL){printf("没有查到要删除的通讯者!/n");return;}printf("真的要删除该结点吗?(Y/N):");scanf("%c",&jx);if(jx=='y'|| jx=='Y'){q=head;while(q!=NULL && q->next!=p)q=q->next;q->next=p->next;//删除结点free(p);//释放被删除的结点空间printf("通讯者已被删除!/n");}}//通讯录链表的输出函数void PrintList(LinkList head){ListNode *p;p=head->next;//使p指向链表开始结点printf("编号姓名性别联系电话地址/n");printf("----------------------------/n");while(p!=NULL){printf("%s,%s,%s,%s,%s,/n",p->data.num,p->,p->data.sex,p->data.phone,p->data.a ddr);printf("--------------------/n");p=p->next;//后移一个结点}}。

通讯录管理系统V1.0

通讯录管理系统V1.0

C语言程序设计实训报告课程名称:电子通讯录的实现班级:学号:姓名:指导老师:实训时间:一、需求分析具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。

(1)数据包括:人名、工作单位、电话号码和E-MAIL地址。

(2)可对记录中的姓名和电话号码进行修改。

(3)可增加和删除记录。

(4)可显示所有的保存记录。

(5)可按人名或电话号码进行查询。

[提示]建议采用结构体数组和文件系统实现。

结构体成员包括人名、工作单位、电话号码和E-MAIL地址。

根据题目的要求程序应该采用结构体数组和文件系统实现。

应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。

二、概要设计根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。

三、详细设计1、主函数;主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

流程图N【程序】int main() //主函数{Man man[500],*pman=man;;char control;int size;printf("\t\t**********************************************\n"); //窗口初始化printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n");printf("\t\t*--------------------------------------------*\n");printf("\t\t* 请按回车键继续! *\n");printf("\t\t**********************************************\n");scanf("%c",&control);if(control){size=Scan(pman); //判断文件是否存在printf("\t\t\t请输入相应操作数操作\n");for(;;) //菜单生成{printf("\t\t**********************************************\n");printf("\t\t* 1--插入信息*\n");printf("\t\t* 2--按姓名查找*\n");printf("\t\t* 3--按电话查找*\n");printf("\t\t* 4--删除信息*\n");printf("\t\t* 5--显示信息*\n");printf("\t\t* 6--修改信息*\n");printf("\t\t* 0--退出系统*\n");printf("\t\t**********************************************\n");scanf("%s",&control);switch(control){case '1': size=Insert(pman,size);break; //插入新的通讯录case '2': S_asname(pman,size);break; //按姓名查找case '3': S_astel(pman,size);break; //按电话查找case '4': Delete(pman,size);break; //删除信息case '5': Display(pman,size);break; //显示所有信息case '6': Modify(pman,size);break; //修改信息case '0': printf("**************谢谢使用!再见!**************\n"); //退出系统return 0;default: printf("**********输入数字有误,请重新输入**********\n");break;}}}return 0;}2、插入模块此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。

Java课程设计通讯录管理系统

Java课程设计通讯录管理系统

摘要随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。

通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。

在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。

通过采用相关技术,将系统设计的功能全部实现。

功能包括:用户登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。

关键字:C/S架构,联系信息,通讯录,数据库目录一、需求分析 (2)二、系统总体规划 (2)三、程序流程 (2)四、设计步骤 (5)1.数据库表的设计 (5)2.详细设计 (5)五、设计总结 (9)六、结束语 (10)六、参考文献 (11)七、程序清单 (12)1一需求分析通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。

但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。

直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。

在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。

有人利用Excel或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。

java课程设计客户管理系统源代码

java课程设计客户管理系统源代码

完整代码:1.客户类class person:package客户管理系统;public class Person {private int num;private String name;private String address;private String sex;public Person{}public Person int num,String name,String address,String sex{ this.num=num;=name;this.address=address;this.sex=sex;}public void setNum int num{this.num=num;}public int getNum{return num;}public void setNameString name{=name;}public String getName{return name;}public void setAddressString address{ this.address=address;}public String getAddress{return address;}public void setSexString sex{this.sex=sex;}public String getSex{return sex;}public String toString {return"\t"+num+"\t"+name+"\t"+address+"\t"+sex;}}2.菜单类class Menu:package客户管理系统;import java.util.Scanner;public class Menu {Scanner input=new ScannerSystem.in;public Menu {}public int showMenu {System.out.println"";System.out.println"客户管理系统";System.out.println"===================================";System.out.println"1增加";System.out.println"2删除";System.out.println"3修改";System.out.println"4查询";System.out.println"5浏览";System.out.println"6退出";System.out.println"";System.out.print"请选择操作:";return input.nextInt;}public int subMenu {System.out.println"\t查询客户";System.out.println"\t1按客户编号查询";System.out.println"\t2按客户姓名查询";System.out.println"\t3按地址查询";System.out.println"\t4退出";System.out.println"\t请选择查询编号";return input.nextInt;}}3.实际操作类class FileOperate :package客户管理系统;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException; import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class FileOperate {private static String INFO="D:/info.dat";File file = new File INFO;Scanner input=new ScannerSystem.in;public FileOperate {if file.exists {try {file.createNewFile;}catch IOException e {e.printStackTrace;}}}public List<Person> getList throws NumberFormatException,IOException{ BufferedReader br=new BufferedReader new FileReader file;String msg=null;List<Person> list =new ArrayList<Person>;while msg =br.readLine=null {String arr=msg.split"\t";int num=Integer.parseInt arr0;String name =arr1;String address=arr2;String sex=arr3;Person person =new Person num,name,address,sex;list.add person;}br.close;return list;}private void savelistList<Person> list throws FileNotFoundException{ PrintWriter pw=new PrintWriter new File INFO;for Person c:list {pw.format"%d\t %s\t %s\t %s\t\r\n",c.getNum,c.getName,c.getAddress,c.getSex;}pw.close;}public int getper int num throws NumberFormatException,IOException{ List<Person> list=getList;for int i=0;i<list.size;i++ {Person per=list.get i;if num==per.getNum {return i;}}return -1;}//增加public void insert throws NumberFormatException,IOException{ System.out.println"请输入编号:";int num=input.nextInt;int index=getper num;if index=-1 {System.out.println"此编号已存在";}else{System.out.println"请输入姓名:";String name=input.next;System.out.println"请输入地址:";String address=input.next;System.out.println"请输入性别:";String sex=input.next;Person person=new Person num,name,address,sex;List<Person> list=getList;list.add person;savelist list;System.out.println"新增成功";}}//删除public void delete throws NumberFormatException,IOException{ System.out.println"请输入要删除的编号:";int num=input.nextInt;List<Person> list=getList;boolean flag=false;forint i=0;i<list.size;i++ {Person per=list.get i;if num==per.getNum {showTitle;System.out.println per;System.out.println"是否确定删除Y/N";String answer=input.next;if"Y".equalsIgnoreCase answer {list.remove i;savelist list;System.out.println"删除成功";}flag=true;break;}}if flag {System.out.println"该客户不存在";}}//修改public void update throws NumberFormatException,IOException{ shoAll;System.out.println"请输入编号:\n";int num=input.nextInt;int Id=getper num;if Id=-1 {System.out.println"请输入姓名:";String name=input.next;System.out.println"请输入地址:";String address=input.next;System.out.println"请输入性别:";String sex=input.next;List<Person>list=getList;Person per=list.get Id;per.setName name;per.setAddress address;per.setSex sex;showTitle;System.out.println per;savelist list;System.out.println"修改成功";}else {System.out.println"编号不存在"; }}//查询public void search throws NumberFormatException,IOException{ boolean flag=true;List<Person>list=getList;if list.size=0 {while flag {int slt=new Menu.subMenu;switch slt {case 1:System.out.print"\t请输入编号:";findId input.nextInt;break;case 2:System.out.print"\t请输入姓名:";findName input.next;break;case 3:System.out.print"\t请输入地址:";findAddress input.next;break;case 4:flag=quit;break;}}}else {System.out.println"无任何信息";}}//按编号查询public void findId int num throws NumberFormatException,IOException{ List<Person>list=getList;boolean flag=false;for int i=0;i<list.size;i++ {if num==per.getNum {showTitle;System.out.println per;flag=true;break;}}if flag {System.out.println"\t该客户不存在";}}//按姓名查询public void findNameString name throws NumberFormatException,IOException{ List<Person>list=getList;boolean flag=false;for int i=0;i<list.size;i++ {if name.equals per.getName {showTitle;System.out.println per;flag=true;break;}}if flag {System.out.println"\t该客户不存在";}}//按地址查找public void findAddressString address throws NumberFormatException,IOException{List<Person>list=getList;boolean flag=false;for int i=0;i<list.size;i++ {Person per =list.get i;if address.equals per.getAddress {showTitle;flag=true;System.out.println per;break;}}if flag {System.out.println"\t该客户不存在"; }}//退出查询public boolean quit {System.out.println"是否确定退出Y/N ";if"Y".equalsIgnoreCase input.next {System.out.println"退出成功";return false;}else {return true;}}//浏览public void shoAll throws NumberFormatException,IOException{ List<Person>list=getList;if list.size=0 {showTitle;for Person person:list {System.out.println person.toString;}}else {System.out.println"无任何信息";}}public void showTitle {System.out.println"客户信息为:\n\t编号\t姓名\t地址\t性别";}//退出系统public boolean exit {System.out.println"是否确定退出Y/N";return"Y".equalsIgnoreCase input.nexttrue:false;}}4.测试类class Text:package客户管理系统;import java.io.IOException;public class Test {public static void mainString args throws NumberFormatException, IOException {Menu m=new Menu;boolean flag=true;FileOperate fo=new FileOperate;while flag {int slt=m.showMenu;switch slt {case 1:fo.insert;//增加break;case 2:fo.delete;//删除break;case 3:fo.update;//修改break;case 4:fo.search;//查询break;case 5:fo.shoAll;//浏览break;case 6: //退出flag=fo.exit;if flagSystem.out.println"谢谢使用";break;}}}}。

通讯录管理系统毕业设计(两篇)2024

通讯录管理系统毕业设计(两篇)2024

引言概述:通讯录管理系统是一种用于管理联系人信息的软件,它能够为用户提供便捷的联系人管理和信息查询功能。

本文将继续介绍通讯录管理系统的设计和实现,重点关注系统的用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级。

正文内容:1.用户界面设计1.1设计原则:用户友好性、易用性和美观性原则1.2主界面设计:主界面布局、功能模块展示、导航设计1.3交互设计:交互方式、操作流程、反馈机制1.4响应式设计:适配多种设备和屏幕分辨率2.数据存储与管理2.1数据库设计:确定实体和属性、建立表结构、定义关系2.2数据库连接:连接数据库、读写操作、异常处理2.3数据备份与恢复:数据备份策略、备份文件管理、数据恢复机制2.4数据安全性:权限控制、数据加密、数据完整性3.通讯录的分类与搜索功能3.1通讯录分类:基本分类和用户自定义分类3.2联系人添加与编辑:输入验证、字段定义、数据关联3.3联系人查询:关键字查询、条件过滤、多条件组合查询3.4联系人导入导出:支持多种数据格式、数据匹配与转换、导入导出策略3.5通讯录分享与同步:用户权限设置、跨设备同步、冲突解决4.用户权限管理4.1用户注册与登录:用户信息获取、身份验证、登录状态管理4.2用户权限分配:管理员与普通用户权限区分、权限控制细化4.3用户信息管理:个人信息修改、密码重置、账号注销4.4安全性保护:登录失败锁定、密码加密、会话管理5.通讯录系统的扩展与升级5.1模块化设计:可插拔式功能模块、模块间接口定义5.2扩展性设计:支持插件开发、动态加载与卸载5.3性能优化:数据索引优化、查询优化、缓存机制5.4系统升级:版本管理、更新提示、升级策略总结:通过上述的详细阐述,我们可以看到,通讯录管理系统涵盖了用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级等多个关键领域。

在该系统的设计过程中,我们需要重点关注用户友好性、数据安全性和系统的可扩展性。

基于JAVA的学生通讯录管理系统设计和实现[文献综述]

基于JAVA的学生通讯录管理系统设计和实现[文献综述]

毕业论文文献综述信息与计算科学基于JAVA的学生通讯录管理系统设计和实现一、前言部分Java是由Sun公司于1995年5月推出的Java程序设计语言和Java平台的总称。

它具有简洁、安全、面向对象、动态、体系结构中立、可移植、分布式、平台无关性等多个优点,被广泛地运用到计算机、便携式计算机、电视、电话、手机和其他大量设备上。

Java 的前景被广泛地看好,并有许多相关机构和人员在解决其运行速度等瑕疵[1]。

二、主题部分一、Java简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。

用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。

从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet[2]。

(一)平台架构Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application Programming Interface、简称API)构成。

Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。

在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。

现在Java平台已经嵌入了几乎所有的操作系统。

这样Java程序可以只编译一次,就可以在各种系统中运行。

Java分为JavaSE,JavaEE,JavaME三个体系[3]。

Java SE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序,它包含了支持Java Web服务开发的类,并为Java Platform,Enterprise Edition (Java EE)提供基础。

Java EE帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序,它是在Java SE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web 2。

学生通讯录管理系统设计(数据结构)

学生通讯录管理系统设计(数据结构)

学生通讯录管理系统设计(数据结构)一、总体设计1、系统开发环境本系统采用C++语言,运行在Windows平台上,数据库采用MySQL。

2、系统功能(1)登陆:系统登录,验证用户名/密码,权限认证等。

(2)新增:新增学生通讯录信息,包括姓名、联系电话、地址、备注等信息。

(3)修改:修改学生通讯录信息,可以修改学生姓名、联系电话、地址等信息。

(4)删除:删除学生通讯录信息,可以根据姓名、联系电话删除学生的通讯录信息。

(5)查询:可以根据姓名、联系电话查询学生的通讯录详细信息。

(6)权限管理:根据用户类别对不同用户进行不同级别的权限管理。

(7)数据管理:根据学生查询,统计学生的报表信息和查询结果,可以对学生的通讯录数据实行一定的数据管理。

3、数据结构用于存储、管理学生通讯录信息的数据结构,采用链表法。

首先将学生信息定义为一个结构体,包含学生的姓名、联系电话、联系地址等信息,此构造体可存储学生一种或者多种信息;然后建立一个学生链表来存储学生信息,每个结点中存放学生结构体,在链表末尾增加一个指向学生链表头结点的指针,即实现了学生通讯录的输出。

二、模块分解1、登录模块实现用户名/密码的验证,权限的认证,权限管理等功能。

2、新增模块用于实现新增学生信息,信息包括姓名、联系电话、联系地址等,并将学生信息存放到学生链表中。

4、删除模块用于实现删除学生信息,使用链表的查找、删除等来实现。

6、权限管理模块用于实施对不同用户类别的权限管理,实现对不同用户类别的权限管理,保证数据的安全。

7、数据管理模块用于实施对学生数据的安全,统计报表信息,数据标准化处理。

通讯录管理系统java课程设计源代码

通讯录管理系统java课程设计源代码

通讯录管理系统简介通讯录是一种记录联系人信息的工具,用于存储和管理与个人、组织或机构相关的联系信息。

通讯录管理系统是一个用于创建、编辑、查找和删除联系人信息的软件应用程序。

本文将介绍一个使用Java编写的通讯录管理系统的设计源代码。

功能需求通讯录管理系统需要具备以下功能: 1. 添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件地址等信息,并将其添加到通讯录中。

2. 编辑联系人:用户可以选择要编辑的联系人,并可以修改其姓名、电话号码、电子邮件地址等信息。

3. 查找联系人:用户可以输入关键字进行搜索,系统将根据关键字在通讯录中查找匹配的联系人并显示出来。

4. 删除联系人:用户可以选择要删除的联系人,并将其从通讯录中删除。

5. 显示所有联系人:系统可以列出所有已存储在通讯录中的联系人信息。

设计思路数据结构为了实现上述功能,我们需要设计合适的数据结构来存储联系人信息。

在这里,我们可以使用一个类来表示每个联系人,其中包含姓名、电话号码和电子邮件地址等属性。

然后,我们可以使用一个集合(如ArrayList)来存储所有的联系人对象。

用户界面为了方便用户操作,我们可以使用命令行界面(CLI)来实现通讯录管理系统。

用户可以通过输入不同的命令来执行相应的操作,如添加联系人、编辑联系人、查找联系人等。

功能实现1.添加联系人:用户输入联系人的姓名、电话号码和电子邮件地址,系统创建一个联系人对象,并将其添加到集合中。

2.编辑联系人:用户选择要编辑的联系人,并输入要修改的信息,系统更新该联系人对象的属性。

3.查找联系人:用户输入关键字,系统遍历所有联系人对象并检查是否包含该关键字,将匹配的结果显示出来。

4.删除联系人:用户选择要删除的联系人,系统从集合中移除该对象。

5.显示所有联系人:系统遍历集合中的所有联系人对象,并将其属性逐个显示出来。

代码实现import java.util.ArrayList;import java.util.Scanner;class Contact {private String name;private String phoneNumber;private String email;public Contact(String name, String phoneNumber, String email) { = name;this.phoneNumber = phoneNumber;this.email = email;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}public class AddressBook {private ArrayList<Contact> contacts;public AddressBook() {contacts = new ArrayList<>();}public void addContact(Contact contact) {contacts.add(contact);System.out.println("Contact added successfully!");}public void editContact(int index, Contact contact) {if (index >= 0 && index < contacts.size()) {contacts.set(index, contact);System.out.println("Contact edited successfully!");} else {System.out.println("Invalid index!");}}public void searchContacts(String keyword) {boolean found = false;for (Contact contact : contacts) {if (contact.getName().contains(keyword) || contact.getPhoneNumber ().contains(keyword)|| contact.getEmail().contains(keyword)) {System.out.println(contact.getName() + " | " + contact.getPhon eNumber() + " | " + contact.getEmail());found = true;}}if (!found) {System.out.println("No matching contacts found.");}}public void deleteContact(int index) {if (index >= 0 && index < contacts.size()) {contacts.remove(index);System.out.println("Contact deleted successfully!");} else {System.out.println("Invalid index!");}}public void displayAllContacts() {for (Contact contact : contacts) {System.out.println(contact.getName() + " | " + contact.getPhoneNum ber() + " | " + contact.getEmail());}}public static void main(String[] args) {AddressBook addressBook = new AddressBook();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("\nAddress Book Management System");System.out.println("1. Add Contact");System.out.println("2. Edit Contact");System.out.println("3. Search Contacts");System.out.println("4. Delete Contact");System.out.println("5. Display All Contacts");System.out.println("6. Exit");System.out.print("\nEnter your choice: ");int choice = scanner.nextInt();switch (choice) {case 1:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String name = scanner.nextLine();System.out.print("Enter phone number: ");String phoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String email = scanner.nextLine();Contact contact = new Contact(name, phoneNumber, email);addressBook.addContact(contact);break;case 2:System.out.print("Enter index of the contact to edit: ");int indexToEdit = scanner.nextInt();if (indexToEdit >= 0 && indexToEdit < addressBook.contacts. size()) {scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String newName = scanner.nextLine();System.out.print("Enter phone number: ");String newPhoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String newEmail = scanner.nextLine();Contact newContact = new Contact(newName, newPhoneNumb er, newEmail);addressBook.editContact(indexToEdit, newContact);} else {System.out.println("Invalid index!");}break;case 3:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter keyword to search contacts: ");String keyword = scanner.nextLine();addressBook.searchContacts(keyword);break;case 4:System.out.print("Enter index of the contact to delete: "); int indexToDelete = scanner.nextInt();addressBook.deleteContact(indexToDelete);break;case 5:addressBook.displayAllContacts();break;case 6:System.exit(0);break;default:System.out.println("Invalid choice!");}}}}总结通过以上的设计和实现,我们创建了一个简单的通讯录管理系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
String lb = input.next();
String xm = input.next();
String dh = input.next();
String sjh = input.next();
String gzdw = input.next();
String zz = input.next();
System.exit(-1);
}else{
}
}
}
}
String lbbz = input.next();
Type type = new Type(lbmc,lbsm,lbbz);
typeDao.createType(type);
}else if ("2".equals(num)) {
List<Type> types = typeDao.queryType();
}else if ("4".equals(num)) {
String name = input.next();
personDao.deletePerson(name);
}else if ("5".equals(num)) {
break;
}else{
}
}
}else if ("3".equals(in2)) {
if(islogin){
}else{
System.exit(-1);
}
}else if ("2".equals(in)) {
boolean modiFlag = userDao.modify();
if(modiFlag){
}else{
}
System.exit(-1);
}else{
System.exit(-1);
TypeDao typeDao = new TypeDaoImpl();
PersonDao personDao = new PersonDaoImpl();
String in = input.next();
if ("1".equals(in)) {
boolean islogin = userDao.login();
String yzbm = input.next();
Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm);
personDao.createPerson(person);
}else if ("2".equals(num)) {
String name = input.next();
typeDao.deleteType(type);
}else if ("4".equals(num)) {
break;
}else{
}
}
}else if ("2".equals(in2)) {
while(true){
String num = input.next();
if ("1".equals(num)) {
for (int i = 0; i < types.size(); i++) {
Type type =types.get(i);
}
}elseng lbmc = input.next();
Type type = new Type(lbmc,null,null);
Person p = personDao.queryPerson(name);
}else if ("3".equals(num)) {
int id = input.nextInt();
String item = input.next();
String val = input.next();
personDao.updatePerson(id,item, val);
/**
*业务类
*/
public class PABmanager {
/**
*系统启动
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
UserDao userDao = new UserDaoImpl();
}
while(true){
String in2 = input.next();
if ("1".equals(in2)) {
while(true){
String num = input.next();
if ("1".equals(num)) {
String lbmc = input.next();
String lbsm = input.next();
相关文档
最新文档