个人通讯录管理系统,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. 用户管理:系统应该提供用户注册、登录、修改密码等功能,以便不同的用户可以访问其私有的通讯录。

2. 通讯录管理:系统应该允许用户创建新的通讯录,包括通讯录的名称、描述和权限设置。

通讯录可以设为公开、仅自己可见或仅指定可见。

3. 联系人管理:用户可以在通讯录中添加、编辑、删除联系人的信息。

联系人信息包括姓名、电话、邮箱等,可以根据这些信息进行快速查询。

4. 查询功能:系统应该提供多种查询方式,如根据姓名、电话、邮箱等进行查询,以便用户可以快速找到所需的联系人。

5. 授权管理:通讯录的创建者可以授权其他用户对其通讯录的访问权限,包括查看、编辑等。

用户可以根据自己的需求来设置通讯录的权限。

6. 界面友好:系统应该具有简洁、直观的界面,方便用户快速上手使用。

同时,系统的响应速度应该快,以便提高用户的使用体验。

三、系统设计1. 技术选型:本系统选用前端技术使用HTML、CSS和JavaScript,并使用后端技术使用Java语言开发。

2. 数据库设计:系统使用关系型数据库来存储用户信息、通讯录信息和联系人信息。

可以选择MySQL或者Oracle等数据库管理系统。

3. 系统架构:系统采用B/S架构,即浏览器/服务器架构。

用户通过浏览器访问系统,向服务器发出请求,服务器进行处理并返回响应。

4. 功能模块划分:根据系统需求,将系统划分为用户管理模块、通讯录管理模块、联系人管理模块、查询功能模块和授权管理模块。

5. 界面设计:系统的界面应该简洁明了,方便用户操作。

可以采用响应式设计,使界面在不同设备上都能够正常显示和操作。

6. 系统流程:用户首先需要注册和登录系统,然后可以创建自己的通讯录,并添加联系人信息。

基于的通讯录管理系统

基于的通讯录管理系统

} public void displayContacts() { contactList.di splayContacts()
} public void exit()
{ System.exit(0)
} }```
-
感谢您的观看
THANK YOU FOR WATCHING
XXXX
单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布的良好效果,请尽量 言简意赅的阐述观点;根据需要可酌情增减文字
合度
4
技术实现
技术实现
开发环境
Java SE Development Kit (JDK) 8或以上版本, 用于编写和运行Java
程序
Step.01
开发工具
Eclipse或IntelliJ IDEA等集成开发环境
(IDE)
Step.02
类库
Java自带的标准类库 和第三方类库
Step.03
数据库
可以选择使用SQLite 或MySQL等关系型数 据库存储联系人信息
2 项目需求分析
项目需求分析
通讯录管理系统需要 具备以下基本功能
01
03
05
项目需求分析
02
04
06
3
系统设计
系统设计
1
用户界面设计:采用命令 行界面,包括菜单选项和 命令输入。菜单应清晰明
了,易于操作
2
数据存储设计:使用文本 文件或数据库存储联系人
信息,便于数据持久化
3
架构设计:采用简单的 MVC(模型-视图-控制器)架 构,降低各模块之间的耦
Step.04
ห้องสมุดไป่ตู้
编码规范
遵循Java编码规范, 提高代码的可读性和

Python基础项目:手机通讯录系统

Python基础项目:手机通讯录系统

Python基础项⽬:⼿机通讯录系统完成简易⼿机通讯录管理系统,包括以下功能:能够循环接收客户端输⼊的功能编号,并根据编号选择对应的功能操作⽤户输⼊“1”时,执⾏增加姓名和⼿机号码的操作⽤户输⼊“2”时,执⾏删除姓名和⼿机号码的操作,根据⽤户输⼊姓名,删除对应⼿机号码⽤户输⼊“3”时,执⾏修改⼿机号码的操作,根据⽤户输⼊姓名,修改对应⼿机号码⽤户输⼊“4”时,执⾏显⽰全部姓名和⼿机号码的操作⽤户输⼊“5”时,执⾏查询⼿机号码的操作,根据⽤户输⼊姓名,查找对应⼿机号码⽤户输⼊“6”时,感谢⽤户使⽤,退出⼿机通讯录管理系统的程序代码:def addUser(contactlist):# 1.增加姓名和⼿机name = input("请输⼊姓名:>")# 判断姓名,在列表当中是否已经存储,如果存储,就提⽰⽤户不能存储,否则就存⼊flag = False # 默认此⼈没存储过for index in range(len(contactlist)):if (contactlist[index][0] == name):print("此联系⼈已经存在,请重新输⼊!!")flag = True # 设置此⼈已经存储breakif not flag:phone = input("请输⼊⼿机号:>")singlelist = [name, phone]# 将⼀个⼈信息组成的列表,添加到总体的列表当中contactlist.append(singlelist)print("输⼊完成")def deleteUser(contactlist):# 2.删除姓名name = input("请输⼊要删除的联系⼈:>")flag = False # 默认这个⼈不存在# 遍历列表,查看这个列表当中是否包含此⼈for index in range(len(contactlist)):if contactlist[index][0] == name:# 说明此⼈存在del contactlist[index]flag = Trueprint("删除成功")breakif not flag:print("查⽆此⼈!")def updateUser(contactlist):# 3.修改⼿机号码name = input("请输⼊要修改的联系⼈:>")flag = False # 默认这个⼈不存在# 遍历列表,查看这个列表当中是否包含此⼈for index in range(len(contactlist)):if contactlist[index][0] == name:# 说明此⼈存在phone = input("请输⼊要修改的电话号码:>")contactlist[index][1] = phoneflag = Trueprint("修改成功")breakif not flag :print("查⽆此⼈!")def getAllUser(contactlist):# 4.查询所有⽤户print("-------------------")for i in contactlist:print("⽤户:\t%s\t\t%s" % (i[0], i[1]))print("-------------------")def queryPhoneByName(contactlist):# 5.根据姓名查找⼿机号name = input("请输⼊要查询的联系⼈:>")flag = False # 默认这个⼈不存在# 遍历列表,查看这个列表当中是否包含此⼈for index in range(len(contactlist)):if contactlist[index][0] == name:# 说明此⼈存在print("您要查找的⼿机号码是:%s" % (contactlist[index][1]))flag = Truebreakif not flag:print("查⽆此⼈!")def work(contactlist):while True:num = input("请根据规则继续输⼊:>")#判断⽤户输⼊码是否在1,2,3,4,5,6当中if num not in ['1','2','3','4','5','6']:print("输⼊有误,请重新输⼊")else:if num=='1':addUser(contactlist)elif num == '2':deleteUser(contactlist)elif num == '3':updateUser(contactlist)elif num == '4':getAllUser(contactlist)elif num == '5':queryPhoneByName(contactlist)elif num == '6':#6.退出print("感谢使⽤")breakdef main():# 因为可能存储多组数据,创建⼀个列表,⽬前列表没有元素,所以为空列表 contactlist = []info = '''====通讯录管理系统====1.增加姓名和⼿机2.删除姓名3.修改⼿机4.查询所有⽤户5.根据姓名查找⼿机号6.退出====================='''print(info)work(contactlist)if __name__ == "__main__":main()。

1.NET(C#)个人通讯录系统

1.NET(C#)个人通讯录系统

二、需求分析
主要负责人:杨琳 日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是 对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相 关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越
来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的 通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅 自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
一、软件开发过程计划
主要负责人:冯燕艳 1、项目名称 个人通讯录系统 2、指导教师 葛方振 3、开发人员及其任务 冯燕艳(组长) :软件开发过程计划、软件编码 高丽莎:软件开发系统设计 唐传广:软件编码及测试 解倩:数据库设计及开发 杨琳:软件开发系统设计 数据库设计及开发 软件编码及测试 确认测试 两个课时 三个课时 三个课时 两个课时 五个课时 一个课时
textBox2.Clear(); textBox3.Clear(); textBox5.Clear(); textBox6.Clear(); } else if (textBox1.Text != "") { DBClass.conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = DBClass.conn; mandText = "Insert into Contact(姓名,性别,生日, 电话,邮箱,地址) Values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')"; cmd.ExecuteNonQuery(); DBClass.conn.Close(); MessageBox.Show("添加成功!"); DataSet dsMyDataBase = new DataSet(); SqlDataAdapter daBaseInform = new

个人通讯录管理系统..

个人通讯录管理系统..
for(int i=Count-1;i>=0;i--)
{
for(int j=0;j<3;j++)
{
str=m_list.GetItemText(i,j);
str+=' ';
outfile<<str;
}
outfile<<endl;
}
outfile.close();
k=1;
【导入】按钮的成员函数为:void CMy1111Dlg::OnBUTTONload()
图13.1
图13.2
}
}
else
{
if(IDOK==MessageBox("确定删除?","Information",MB_OKCANCEL))
{
m_list.DeleteItem(index);
}
}
}
【修改记录】按钮的成员函数为:void CMy1111Dlg::OnBUTTONmodify()
相应代码:if(!m_list.GetItemCount())
int index=0;
index=m_list.GetNextItem(0,LVNI_SELECTED);
if(-1==index)
{
dlg.m_name=m_list.GetItemText(0,0);
dlg.m_phone=m_list.GetItemText(0,1);
dlg.m_email=m_list.GetItemText(0,2);
(3)输入信息对话框的设计:添加对话框,双击该对话框,创建一个新类,添加类名为Inputdlg,其设计如图7.1,整体效果设计图为7.2

管理个人信息系统的设计与实现

管理个人信息系统的设计与实现

JAVAEE期末综合设计题目:管理个人信息系统的设计与实现学院:信息工程与自动化学院专业:计算机应用技术目录摘要: (4)第一章绪论 (5)1.1选题背景、目的及意义 (5)1.2开发工具介绍 (5)1.3论文的组织结构 (5)1.4作者的工作 (6)第二章可行性分析与软件项目计划 (7)2.1经济可行性 (7)2.2技术可行性 (7)2.3操作可行性 (7)2.4软件项目计划 (7)2.4.1项目概述 (7)2.4.2项目组织 (7)2.4.3风险管理 (8)2.4.4进度安排 (8)第三章需求分析 (10)3.1用户需求 (10)3.1.1环境需求 (10)3.1.2功能需求 (10)3.1.3性能需求 (11)3.1.4系统的界面需求 (11)3.1.5安全性与可靠性 (11)3.1.6系统管理 (11)3.2系统用例图 (12)3.3数据流图 (12)第四章系统设计 (14)4.1系统设计任务 (14)4.2系统组织结构与功能模块 (14)4.2.1系统功能结构 (15)4.3 数据库设计 (15)4.3.1数据库简介 (15)4.3.2概念结构设计 (16)4.3.3逻辑结构设计 (16)第五章系统实现 (18)5.1登录界面实现 (18)5.2系统主界面实现 (19)5.3任务管理模块实现 (19)5.4笔记管理模块实现 (20)5.5相册管理模块实现 (21)5.6订阅管理模块实现 (22)5.7文档管理模块实现 (22)5.8账目管理模块实现 (23)5.9系统管理模块实现 (24)第六章系统测试 (25)6.1测试目的 (25)6.2测试内容 (25)6.3测试结果 (27)6.4测试分析 (27)附工程代码 (29)管理个人信息系统的设计与实现摘要:随着经济技术的不断发展,以及社会生活节奏的不断加快,人们每天需要处理的事务变的越来越繁重,人们也因此经常忘记一些重要的事情。

本文介绍的是一个个人信息系统管理系统的设计与实现。

综合性实验项目“通讯录管理系统的设计”的内容

综合性实验项目“通讯录管理系统的设计”的内容

综合性实验项目“通讯录管理系统的设计”的内容本实验项目是对本课程大部分知识点如数据库设计、表单设计、程序设计的综合应用,要求设计出一个具有登录验证、数据输入、数据显示、修改和查询功能的学生个人通讯录管理系统。

实验要求:1、数据库设计:建立通讯录管理系统的数据库,通讯录包括姓名、班级、电话、Email、QQ号等字段。

2、系统结构设计:利用模块化设计思想,将系统进行模块划分,并给出系统功能结构图。

3、功能模块设计(包括但不限于以下内容):(1)登录功能:要求登录后才可以进入通讯录管理界面。

(2)数据输入功能:可以增加记录。

(3)数据显示功能:可以显示每条记录。

(4)查询功能:可以按姓名查找通讯录信息。

(5)修改功能:可以修改通讯录信息。

(6)删除功能:可以按姓名删除通讯录信息。

(7)应提供一个系统主界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。

4、程序调试5、组装发布,生成应用程序,设计成品上传到FTP服务器上。

6、设计报告:内容包括本程序的功能描述、程序设计思想系统现有的问题,系统开发的收获与提高。

实验条件:PIV以上计算机,至少安装Visual FoxPro6.0,可接入互联网。

学生能力培养的重点:培养学生数据库设计的能力,培养学生程序设计的能力,使学生掌握系统开发的一般过程,培养学生协作的能力。

附:“通讯录管理系统的设计”参考【目的要求】通过“通讯录管理系统”的开发案例,全面巩固和熟练掌握VFP应用系统开发知识。

【内容】一、需求分析随着信息社会的高速发展,人与人之间的联系越来越频繁,通讯方式越来越多样化,如何保证与朋友、同学、同事、领导、亲戚等之间的联系,并能方便快捷的查找、记录、修改其相关通讯信息。

仅靠以前单独的手工记录已远远不能满足当前的需要。

开发一个通讯录管理系统,借助计算机可以方便、快捷、灵活的管理个人的朋友及相关人员的通讯信息,了解友人相关信息,帮助与友人保持联络。

基于C语言实现个人通讯录管理系统

基于C语言实现个人通讯录管理系统

基于C语⾔实现个⼈通讯录管理系统之前利⽤C语⾔完成了⼀个关于个⼈通讯录管理系统的课题,主要是关于联系⼈的添加、查找、删除、修改、输出以及⽂件的写⼊与读出,还有⼀个甜点功能—模拟通话,它的实现原理也很容易理解,⽂章末尾会介绍到。

主框架:1、函数声明关于这⾥的函数声明,主要是为了可以清楚的了解整个系统的功能,这⾥不做过多介绍。

还有结构体链表的创建,贯穿了各个功能代码部分,必不可少。

2、联系⼈的添加这部分主要涉及联系⼈的姓名、地址、电话、QQ号和邮箱(当然需要其他功能可⾃⾏添加),考虑到数组操作不便前提下,使⽤链表的尾插法,通过不断开创新的结点,然后不断将新的结点的地址指向尾结点,使尾结点不断后移,⽽新创的结点时按照添加的先后顺序进⾏连接(参考下图可快速理解,此图⽚来源于⽹络),当然其中某些项的条件限制也是必不可少的。

⽐如:电话、QQ号、邮箱int Addpeo() //添加联系⼈{int t,n,a;char flag='y'; //仅作为第⼀次执⾏条件ptcs p=head,q;while(flag!='n'&&flag!='N') //判断是否继续添加{q=(ptcs)malloc(sizeof(pcs)); //申请内存p->next=q; //赋予下⼀个节点p=q;q->next=NULL; //尾结点地址赋空值,尾插法printf("\n\t请输⼊:\n");printf("\t\t姓名:");scanf("\t\t%s",q->);printf("\t\t地址:");scanf("\t\t%s",q->chat.add);printf("\t\t⼿机号:");scanf("\t\t%s",q->chat.tel);do{n=0; //仅做记录if(strlen(q->chat.tel)!=11) //计算⼿机号的长度,判断是否输⼊规范 {n=1;printf("\t\t您输⼊的⼿机号格式不存在,请重新输⼊:");scanf("\t\t%s",q->chat.tel);}else{for(t=0;t<11;t++){if(q->chat.tel[t]<'0'||q->chat.tel[t]>'9'){n=1;printf("\t\t您输⼊的⼿机号格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.tel);break;}}}}while(n);//输⼊QQ号printf("\t\tQQ号:");scanf("\t\t%s",q->chat.tecent);do{n=0;if(strlen(q->chat.tecent)>10) //以10位QQ号为准,判断是否符合规范 {n=1;printf("\t\t您输⼊的QQ号格式不存在,请重新输⼊:");scanf("\t\t%s",q->chat.tecent);}else{for(t=0;t<10;t++){if(q->chat.tecent[t]<'0'||q->chat.tecent[t]>'9'){n=1;printf("\t\t您输⼊的QQ号格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.tecent);break;}}}}while(n);//输⼊邮箱printf("\t\tEmail:");scanf("\t\t%s",q->chat.email);do{//判断邮箱 @符号输⼊规范(这⾥不限定邮箱号码位数)a=0;for(t=0;q->chat.email[t]!='\0';t++){if(q->chat.email[t]=='@')a++; //@数为1}if(a!=1){printf("\t\t输⼊的邮箱格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.email);}}while(a!=1); //是否输⼊@ ,为1则终⽌循环printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&flag);}return 0;}3、联系⼈的查询这步使⽤的是遍历查询,共设置了三种⽅式,在定义链表指针的前提下,通过遍历链表进⾏信息的对⽐,从⽽判断联系⼈是否存在,如果存在就直接显⽰给⽤户,不存在就直接退回功能选项。

个人基于电话簿管理系统

个人基于电话簿管理系统

注册活动图登录活动图添加活动图删除互动图查询活动图修改活动图5.数据设计5.1 类图设计根据分析,系统由9个类构成,分别为: 数据库访问层:DBConn类数据封装类:Userxx类、User类业务层:Userxxdao类、Userdao类控制层:Tooljdbc类视图层:Login类、类、LxManager类其它:RunFrame类系统中各类之间关系如下图所示:1.数据库访问层DBConn类用于封装JDBC的操作,完成对数据库的直接访问,采用单态模式创建对象,具体内容如下所示:2.数据封装类Userxx类和User类分别用于登录、注册操作时的数据封装和用户信息管理时的数据封装,具体内容如下图所示:3.业务层Userxxdao类进行登录、注册等对Userxx类的访问操作,Userdao类进行用户信息管理的操作,两者均采用单态模式创建对象,具体内容如下图所示:4.控制层Tooljdbc类用于进行系统的流程控制,具体内容如下所示:5.视图层登录3.添加输入“4”,选择添加用户信息操作。

依次输入用户的姓名、性别和电话,完成添加。

添加成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。

如果添加失败,则显示失败的提示信息,4.删除输入“3”,选择删除用户信息操作。

输入要删除的用户的id(主键)值,完成删除。

删除成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。

如果删除失败,则显示删除失败的提示信息。

5.修改输入“2”,选择修改用户信息操作。

输入要修改的用户的id(主键)值,显示该用户的信息。

再依次输入要修改的用户名、性别和电话,执行修改操作。

修改成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。

如果修改失败,则显示删除失败的提示信息。

6.查询输入“1”,选择查询用户信息操作。

输入要查询的用户名,显示所查用户的信息,之后显示所有用户信息和系统主控制界面。

7.关键代码1、数据库访问类package ccut.wzy.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/*** 工具bean* 连接数据库* 驱动串* 数据库的地址* 数据库的登录名、密码* 更新、查询的实现**/public class DBConn {private static final String DRIVER="com.mysql.jdbc.Driver";//驱动串private static final String URL="jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8"; //访问本机的MySQL数据库test,test是库名,可以根据实际情况修改private static final String USERNAME="root";private static final String PASSWORD="123456";//访问MySQL的密码,可以根据实际情况修改private Connection con;//数据库连接对象private Statement st;//sql语句的执行对象private ResultSet rs;//查询结果集,用来存放查询的结果,没有查到rs为空private int n;//更新数据时,成功操作的行数//a) 语句加载数据库的驱动程序static{try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("驱动程序找不到");}}//b) 建立数据库连接public Connection getCon() {try {con=DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库连接失败");}return con;}//c) 创建执行sql语句的对象public Statement getSt() {try {st=this.getCon().createStatement();} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("创建执行sql语句的对象失败");}return st;}//执行sql语句--查询public ResultSet getRs(String sql) {try {rs=this.getSt().executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs;//在调用类中使用集合对象进行接收}//执行sql语句--更新(增加、删除、修改)public int getN(String sql) {try {n=this.getSt().executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return n;//在调用类中使用整形变量接收}//d) 断开数据库连接public void closeRs() {try {rs.close();st.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void closeN() {try {st.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}2、数据封装类(1)User.Javapackage ccut.wzy.model;public class User {private int id;private String username,password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public User(int id, String username, String password) { super();this.id = id;ername = username;this.password = password;}public User() {super();}}(2)Userxx.Javapackage ccut.wzy.model;public class Userxx {private int id;private String name,xinbie,tel;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getXinbie() {return xinbie;}public void setXinbie(String xinbie) {this.xinbie = xinbie;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public Userxx(int id, String name, String xinbie, String tel) { super();this.id = id; = name;this.xinbie = xinbie;this.tel = tel;}public Userxx() {super();}@Overridepublic String toString() {return "Userxx [id=" + id + ", name=" + name + ", xinbie=" + xinbie + ", tel=" + tel + "]";}}3、业务层(1) Userxxdao.javapackage ccut.wzy.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.text.Collator;import java.util.ArrayList;import java.util.Collections;import parator;import java.util.List;import ccut.wzy.jdbc.DBConn;import er;import erxx;import ccut.wzy.tool.Tooljdbc;public class Userxxdao {private DBConn db;public Userxxdao(){db=Tooljdbc.getdb();}public int add(Userxx aa){String sql="INSERT INTO t_xinxi(name,xingbie,tel)VALUES('"+aa.getName()+"','"+aa.getXinbie()+"','"+aa.g etTel()+"')";return db.getN(sql);}public int update(Userxx aa ,int id){ResultSet rs = db.getRs("SELECT* FROM t_xinxi WHERE id="+id);if(rs==null) {System.out.println("用户不存在");return 0;}String sql="UPDATE t_xinxi set name='"+aa.getName()+"',tel='"+aa.getTel()+"',xingbie='"+aa.getXinbie()+"' where id="+id;return db.getN(sql);}public int delete(int id){String sql="DELETE FROM t_xinxi WHERE id="+id ;return db.getN(sql);}public List <Userxx> list(){String sql="SELECT * FROM t_xinxi";ResultSet rs=db.getRs(sql);List <Userxx> course = new ArrayList<Userxx>();try {while (rs.next()){Userxx cou=new Userxx();cou.setName(rs.getString("name"));cou.setXinbie(rs.getString("xingbie"));cou.setTel(rs.getString("tel"));course.add(cou);}} catch (SQLException e) {// TODO Auto-generated catch blockcourse=null;}Collections.sort(course,new Comparator<Userxx>() {@Overridepublic int compare(Userxx o1,Userxx o2) {Comparator<Object>com=Collator.getInstance(java.util.Locale.CHINA);return pare(o1.getName(), o2.getName());}});return course;}public List <Userxx> list(String name){String sql="SELECT* FROM t_xinxi WHERE name like '"+name+"%'";ResultSet rs=db.getRs(sql);List <Userxx> course = new ArrayList<Userxx>();try {while (rs.next()){Userxx cou=new Userxx();cou.setName(rs.getString("name"));cou.setXinbie(rs.getString("xingbie"));cou.setTel(rs.getString("tel"));course.add(cou);}} catch (SQLException e) {// TODO Auto-generated catch blockcourse=null;}// Collections.sort(course,new Comparator<Userxx>() {//// @Override// public int compare(Userxx o1,Userxx o2) {//Comparator<Object>com=Collator.getInstance(java.util.Locale.CHINA);// return pare(o1.getName(), o2.getName());// }// });return course;}public List <Userxx> list(int id){String sql="SELECT* FROM t_xinxi WHERE id="+id;ResultSet rs=db.getRs(sql);List <Userxx> course = new ArrayList<Userxx>();try {while (rs.next()){Userxx cou=new Userxx();cou.setName(rs.getString("name"));cou.setXinbie(rs.getString("xingbie"));cou.setTel(rs.getString("tel"));course.add(cou);}} catch (SQLException e) {// TODO Auto-generated catch blockcourse=null;}// Collections.sort(course,new Comparator<Userxx>() {//// @Override// public int compare(Userxx o1,Userxx o2) {//Comparator<Object>com=Collator.getInstance(java.util.Locale.CHINA); // return pare(o1.getName(), o2.getName());// }// });return course;}}(2) Userdao.javapackage ccut.wzy.dao;import java.sql.ResultSet;import java.sql.SQLException;import ccut.wzy.jdbc.DBConn;import er;import ccut.wzy.tool.Tooljdbc;public class Userdao {private DBConn db;public Userdao(){db=Tooljdbc.getdb();}public int add(User user){String sql="INSERT INTO t_user(username,PASSWORD)VALUES('"+user.getUsername()+"','"+user.getPassword()+ "')";return db.getN(sql);}public User login(String userName){String sql="SELECT *FROM t_user where username='"+userName+"'";ResultSet rs=db.getRs(sql);User user=new User();try {if(rs.next()){user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));}else{user=null;}} catch (SQLException e) {// TODO Auto-generated catch blockuser=null;}return user;}}4、视图层(1)Login.javapackage ccut.wzy.view;import java.util.Scanner;import erdao;import er;public class Login {private Userdao userdao;public Login(){userdao=new Userdao();}public void show() {Scanner sc = new Scanner(System.in);System.out.println("请选择登录或者是注册输入1登陆输入2注册");int n = sc.nextInt();switch (n) {case 1:login();break;case 2:add();break;}}public void login(){Scanner sc=new Scanner(System.in);System.out.println("请输入用户名");String username=sc.next();System.out.println("请输入密码");String password=sc.next();User cc=userdao.login(username);if(cc==null){System.out.println("用户名不存在");show();}else if(!password.equals(cc.getPassword())){System.out.println("输入密码不正确");}else{System.out.println(cc.getUsername()+"登陆成功");LxManager lx = new LxManager();lx.show();}}public void add(){Scanner sc=new Scanner(System.in);System.out.println("请输入用户名");String username=sc.next();System.out.println("请输入密码");String password=sc.next();User u=new User();u.setUsername(username);u.setPassword(password);int n=userdao.add(u);if(n>0){System.out.println("注册成功!");show();}else{System.out.println("注册失败!");}}}(2) LxManager.javapackage ccut.wzy.view;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import com.mysql.fabric.xmlrpc.base.Array;import erxxdao;import erxx;public class LxManager {private Userxxdao dn;private int s,d;private String name;public LxManager(){dn=new Userxxdao();}public void show() {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("--------------------------------");Scanner sc = new Scanner(System.in);int n = sc.nextInt();switch (n) {case 1: chaxun();break;case 2:update();break;case 3:delete();break;case 4:add();break;case 5:close();break;}}public void chaxun(){List<Userxx> userxxs = new ArrayList<Userxx>();Scanner sc=new Scanner(System.in);System.out.println("----------------");System.out.println("0查询所有");System.out.println("1按id查询");System.out.println("2按姓名查询");System.out.println("----------------");s=sc.nextInt();if(s==1){System.out.println("请输入id");d=sc.nextInt();userxxs =dn.list(d);}else if(s==2){System.out.println("请输入姓名");String d=sc.next();userxxs=dn.list(d);}else if(s==3){System.out.println("请输入电话");String d=sc.next();userxxs=dn.list(d);}else if(s==0) {userxxs=dn.list();}for(Userxx u:userxxs) {System.out.println(u);}}public void delete() {System.out.println("请输入要删除的id");Scanner sc=new Scanner(System.in);int n=sc.nextInt();int a=dn.delete(n);if(n>0) {System.out.println("删除成功!");}else {System.out.println("删除失败!");}}public void add() {Scanner sc=new Scanner(System.in);System.out.println("输入姓名");String name=sc.next();System.out.println("输入性别");String xingbie=sc.next();System.out.println("输入电话");String tel=sc.next();Userxx d=new Userxx();d.setName(name);d.setXinbie(xingbie);d.setTel(tel);int n=dn.add(d);if(n>0) {System.out.println("添加成功");}else {System.out.println("添加失败");}}public void update() {Scanner sc=new Scanner(System.in);System.out.println("请输入要修改的Id");int k = sc.nextInt();System.out.println("输入姓名");String name=sc.next();System.out.println("输入性别");String xingbie=sc.next();System.out.println("输入电话");String tel=sc.next();Userxx d=new Userxx();d.setName(name);d.setXinbie(xingbie);d.setTel(tel);int n=dn.update(d,k);if(n>0) {System.out.println("修改成功");}else {System.out.println("修改失败");}}public void close() {System.exit(0);}}5、控制器类Tooljdbc.javapackage ccut.wzy.tool;import ccut.wzy.jdbc.DBConn;public class Tooljdbc {private static DBConn db;public static DBConn getdb(){if(db!=null)return db;db=new DBConn();return db;}}6、主类package ccut.wzy.view;public class RunFrame {public static void main(String[] args) {Login l = new Login();l.show();}}8.实训总结在本学期的三周时间内,我们在学校机房进行了为期三周的JAVA实训。

基于JAVA的学生通讯录管理系统设计和实现[开题报告]

基于JAVA的学生通讯录管理系统设计和实现[开题报告]

毕业论文开题报告信息与计算科学基于JAVA的学生通讯录管理系统设计和实现一、选题的背景、意义1.选题的背景伴随着通讯录数据的规模不断增多,像数据查询,维护,管理等都将越来越复杂,工作量也将越来越大。

但一直以来人们使用传统人工的方式管理各种数据,这种管理方式存在着许多缺点,比如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

JAVA网络电子通讯录随着人们的需要应运而生。

它检索迅速,方便可靠,逐渐受到人们的喜爱,在改善人们整理和使用通讯录数据上发挥了自己的优点[1,2,3]。

2.选题的目的和意义随着市场经济的发展和人们生活水平的提高,随着科学技术的发展,计算机领域不断取得新的研究成果。

计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。

人们已经不于上网浏览网页,而是想通过网络来实现现实生活中需要处理的事情。

传统的人工管理方式必然显得不合时宜,它的低效率严重阻碍了日益高涨的社会生活节奏[4,5]。

随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

JAVA网络电子通讯作为计算机应用的一部分,使用计算机对各项信息进行管理,具有着手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高工作的效率,也是企业的科学化、正规化管理与世界接轨的重要的条件[6,7,8]。

二、国内外研究现状和发展趋势综述在国内,一些企业和个人都在使用电子通讯录,为他们的工作和生活带来哦极大方便,但是功能参差不齐,有好友坏,种类相对较少,产品同质化严重,缺乏拳头产品,其中蕴含不少商机。

在国外,使用电子通讯录的范围十分广泛,许多人的日常生活和商业,社会活动全靠电子通讯录的支持,完全融入了生活当中,相信不远的将来,当我国电子产品的普及打到国外先进国家水平,我们也将迎来这样的生活方式。

  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();
相关文档
最新文档