java课程设计-通讯录系统

合集下载

班级通讯录java课程设计

班级通讯录java课程设计

班级通讯录java课程设计一、课程目标知识目标:1. 学生能掌握Java语言中数组、字符串和文件操作的相关知识,并能够运用这些知识存储和读取班级通讯录信息。

2. 学生能够理解面向对象编程的基本概念,如类的定义、对象创建和封装,并运用到班级通讯录的类设计中。

3. 学生能够了解并运用Java异常处理机制,提高程序的稳定性和可靠性。

技能目标:1. 学生能够运用所学知识独立设计并实现一个班级通讯录管理系统,包括添加、删除、修改和查询等功能。

2. 学生能够在编写代码过程中,学会使用调试工具,发现并解决程序中的错误。

3. 学生能够通过小组合作,学会沟通与协作,共同完成课程设计任务。

情感态度价值观目标:1. 学生在课程设计中,培养对编程的兴趣和热情,增强学习Java语言的自信心。

2. 学生能够认识到编程在解决实际问题中的重要作用,提高将所学知识应用于实际生活的意识。

3. 学生通过小组合作,培养团队精神,学会尊重他人,善于倾听他人的意见。

分析课程性质、学生特点和教学要求:本课程设计针对的是高年级学生,他们在之前的学习中已经掌握了Java语言的基础知识。

班级通讯录课程设计旨在让学生将所学知识综合运用到实际项目中,提高编程能力和解决实际问题的能力。

在教学过程中,注重培养学生的动手实践能力和团队协作精神,同时关注学生的情感态度和价值观的培养。

通过本课程设计,使学生能够达到具体的学习成果,并为后续的深入学习奠定基础。

二、教学内容1. Java数组的使用:回顾数组的概念、声明、初始化以及遍历方法,重点掌握如何通过数组存储班级通讯录中的多条记录。

2. Java字符串操作:介绍字符串的基本操作,如连接、截取、查找和替换,并应用于通讯录中信息的处理。

3. 面向对象编程:讲解类的定义、属性和方法的声明,以及对象的创建和使用,以班级通讯录类的设计为例,实现数据的封装和功能的拓展。

4. 文件操作:介绍如何使用Java进行文件的读写操作,将通讯录信息保存到文件中,并从文件中读取信息。

java课程设计(通讯录管理系统)

java课程设计(通讯录管理系统)

学院课程设计报告2013~2014学年第二学期课程面向对象课程设计课程设计名称通讯录程序学生XXX学号专业班级XXXXX指导教师XXX20 年月目录一、设计题目············································· (1)二、设计要求············································· (1)三、总体设计············································· (1)3.1系统功能框架·· · · · · · · · · · · · · · · · ·· · · · · · · · · · · · · · · · · · · · · · · 13.2系统功能说明·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3四、详细设计·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31.数据结构设计·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 32.系统模块设计·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10五、运行结果·· · · · · · · · · · · · · · ·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 13一.设计题目随着社会的进步与发展,通讯越来越密切。

java课程设计(通讯录管理系统)

java课程设计(通讯录管理系统)

掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作

JAVA课程设计--个人通讯录管理系统

JAVA课程设计--个人通讯录管理系统

JAVA课程设计课题:个人通讯录管理系统课程名称:java课程设计院系:计算机科学与技术学院班级:09计本组员:组员:组员:组员:指导教师:一、个人通讯录管理系统概述1、需求分析通讯录在当今的日常生活工作中的应用是十分普及的。

每个人都有可能拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。

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

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

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

有些人利用Excel 或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找极其不便,维护起来也麻烦。

所以运用数据库技术,在计算机中建立一个通讯录资料管理系统十分必要。

使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改通讯录的情况。

2、系统总体规划1.2.1 系统功能简介个人通讯录系统。

在明确了系统目标与数据库结构的前提下,设计出该系统的主要功能:系统登录、数据输入与修改、数据的删除、联系人和群组管理等。

主要功能包括:(1)可以登录和注册用户;(2)可以显示已有联系人和分组的基本信息。

(3)用户可以对自己已有的联系人和分组进行维护;如:删除和修改。

(4)用户可以随意添加自己的联系人和分组;1.2.2 系统功能模块规划系统的整体功能模块框架如图1.1所示:图1.1 系统整体模块框架图整个系统分为权限管理、群组管理、联系人管理3个子模块,各模块具体实现在下面陈述。

系统登录子模块框架如图1.2所示:图1.2 权限管理模块框架图该子模块中用户在运用这个通讯录系统前要注册成为该系统的用户,每次打开通讯薄前都需要登录系统,以保证用户通讯信息安全性。

班级通讯录java课程设计

班级通讯录java课程设计

班级通讯录java课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握班级通讯录的基本概念、设计和实现方法;技能目标要求学生能够独立设计并编写简单的班级通讯录应用程序;情感态度价值观目标要求学生培养团队合作意识,提高解决实际问题的能力。

通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。

课程目标旨在培养学生对Java编程语言的兴趣和自信心,提高他们的编程能力和问题解决能力。

同时,学生将在团队合作中锻炼沟通能力和协作精神,培养良好的编程习惯和道德素养。

二、教学内容根据课程目标,我们选择和了以下教学内容:1.Java编程语言基础:介绍Java语言的基本语法、数据类型、控制结构、面向对象编程等概念。

2.班级通讯录设计:讲解如何设计一个班级通讯录系统,包括功能需求分析、数据库设计、界面设计等。

3.班级通讯录实现:教授如何使用Java语言实现班级通讯录系统,包括数据存储、查询、增删改等功能。

4.团队协作与调试:培养学生团队合作意识,讲解如何进行版本控制、代码调试和优化。

三、教学方法为了激发学生的学习兴趣和主动性,我们采用多种教学方法:1.讲授法:讲解Java编程语言基础知识和班级通讯录设计原理。

2.案例分析法:分析实际案例,让学生了解班级通讯录的应用场景和实现方法。

3.实验法:学生动手编写代码,实践班级通讯录的设计和实现。

4.讨论法:分组讨论,引导学生思考问题、解决问题,提高团队合作能力。

四、教学资源我们选择和准备了以下教学资源:1.教材:《Java编程语言》等相关教材,为学生提供理论知识支持。

2.参考书:《Java核心技术》等参考书籍,丰富学生的知识体系。

3.多媒体资料:PPT、教学视频等,辅助学生更好地理解课堂内容。

4.实验设备:计算机、网络等实验环境,让学生能够顺利进行代码编写和实验操作。

五、教学评估为了全面、客观、公正地评估学生的学习成果,我们设计了以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问回答、团队合作等表现,占总评的30%。

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

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

通讯录管理系统是一个常见的软件应用,Java是一种广泛使用的编程语言,使用Java编写通讯录管理系统是一个不错的选择。

以下是通讯录管理系统的Java课程设计大体框架:
1.需求分析:首先需要分析和确定通讯录管理系统的具体需求,明确系统的功能和性能要求。

2.数据库设计:根据需求分析结果,设计系统所需的数据库结构和关系模型,并在MySQL等数据库中创建数据库和表格。

3.界面设计:设计通讯录管理系统的用户界面,包括添加、删除、修改、查询等功能的按钮、文本框等控件,并实现这些控件的布局。

4.后台程序设计:编写Java代码实现系统的后端逻辑,其中主要包括以下几个方面:
(1) 实现用户登录和注册功能,对用户输入的信息进行合法性验证并将其存储在数据库中。

(2) 实现通讯录添加、删除、修改和查询等功能,对用户输入的通讯录信息进行合法性验证并将其存储在数据库中。

(3) 实现数据的持久化,即将用户输入的数据保存到数据库中,并在需要时从数据库中读取数据。

5.测试和调试:完成系统设计后,需要对系统进行测试和调试,确保系统能够正常运行,并满足用户需求。

6.优化和改进:根据测试的结果,对系统进行优化和改进,提高系统的性能和稳定性。

以上是通讯录管理系统的Java课程设计大体框架,具体实现细节可以根据自己的需求进行调整和优化。

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计一、引言个人通讯录管理系统是一种方便用户管理联系人信息的软件,它可以帮助用户方便地存储、查找、编辑和删除联系人信息。

本文将介绍一个基于Java语言开发的个人通讯录管理系统的课程设计。

二、需求分析在开发个人通讯录管理系统之前,我们需要进行需求分析,明确系统所需要实现的功能。

根据实际需求,本系统需要实现以下功能:1. 用户登录:用户可以通过输入用户名和密码登录系统。

2. 联系人管理:用户可以添加、查找、编辑和删除联系人信息。

3. 分组管理:用户可以将联系人分组,并对不同分组进行管理。

4. 备份与恢复:用户可以备份和恢复联系人信息。

5. 数据统计:系统可以对联系人信息进行统计,并生成相应的报表。

三、概要设计概要设计是指在需求分析基础上,对系统进行整体设计,确定各模块之间的关系。

本系统采用MVC(Model-View-Controller)架构模式,具体如下:1. 模型层(Model):负责数据存储和处理,包括用户信息、联系人信息等数据操作。

2. 视图层(View):负责数据展示和用户交互界面的呈现,包括登录界面、主界面、联系人管理界面等。

3. 控制层(Controller):负责处理用户请求和数据流转,包括用户登录、联系人管理、分组管理、备份与恢复等功能。

四、详细设计在概要设计的基础上,我们需要进行详细设计,确定各个模块的具体实现方式。

本系统主要包括以下几个模块:1. 用户登录模块:用户输入用户名和密码后,系统会进行验证,验证成功后跳转到主界面。

2. 联系人管理模块:用户可以添加、查找、编辑和删除联系人信息。

添加联系人时需要输入姓名、电话号码等信息;查找联系人时可以按照姓名或电话号码进行查找;编辑联系人时可以修改姓名、电话号码等信息;删除联系人时需要先选择要删除的联系人。

3. 分组管理模块:用户可以将联系人分组,并对不同分组进行管理。

添加分组时需要输入分组名称;将联系人移动到不同的分组中时需要先选择要移动的联系人。

java课程设计通信录

java课程设计通信录

java课程设计通信录一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本语法和编程思想,能够使用Java编写简单的应用程序,特别是通信录管理系统。

具体目标如下:1.理解Java编程语言的基本语法和结构;2.掌握Java中的数据类型、变量、运算符、控制语句等基本概念;3.理解面向对象编程的基本概念,如类、对象、封装、继承等;4.掌握Java中的常用类库和方法。

5.能够使用Java编写简单的应用程序,如计算器、通信录管理系统等;6.能够使用Java编写基本的输入输出语句,读取和显示数据;7.能够使用Java中的集合类和数据结构实现简单的数据存储和管理;8.能够使用Java中的异常处理机制,处理程序中的错误和异常。

情感态度价值观目标:1.培养学生对计算机科学和编程语言的兴趣和热情;2.培养学生解决问题的能力和创新思维;3.培养学生团队合作和沟通交流的能力;4.培养学生对编程语言和技术的持续学习和进步的态度。

二、教学内容本章节的教学内容主要包括Java编程语言的基本语法和编程思想,以及通信录管理系统的设计和实现。

具体内容包括以下几个方面:1.Java编程语言的基本语法和结构:数据类型、变量、运算符、控制语句等;2.面向对象编程的基本概念:类、对象、封装、继承等;3.Java中的常用类库和方法:输入输出语句、集合类和数据结构、异常处理机制等;4.通信录管理系统的设计和实现:需求分析、系统设计、编码实现、测试和优化等。

三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式进行。

具体方法如下:1.讲授法:通过讲解和演示的方式,向学生传授Java编程语言的基本语法和编程思想;2.案例分析法:通过分析实际案例,让学生理解和掌握面向对象编程的基本概念和方法;3.实验法:通过编程实验,让学生动手实践,培养学生的编程能力和解决问题的能力。

四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。

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

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

通讯录管理系统Java课程设计一、引言随着互联网的发展,人们的日常生活中越来越离不开各种各样的通讯工具。

通讯录是人们生活中常用的一种工具,通过通讯录可以管理和查找联系人的信息,为人们提供了便利。

本文将介绍一个基于Java语言开发的通讯录管理系统的设计和实现过程。

二、系统设计1. 系统需求通讯录管理系统的基本需求包括:添加联系人、删除联系人、查找联系人、编辑联系人信息等功能。

系统需要能够支持多用户使用,保证数据的安全性和可靠性。

2. 系统架构通讯录管理系统采用客户端-服务器模式,客户端负责与用户交互,服务器端负责数据存储和处理。

系统的主要模块包括用户管理模块、联系人管理模块、通讯录导入导出模块等。

3. 数据存储系统使用关系型数据库存储用户信息和联系人信息,保证数据的持久性和一致性。

可以选择使用MySQL或者SQLite等数据库。

三、系统实现1. 技术选型系统采用Java语言进行开发,使用Spring框架实现服务器端的业务逻辑,使用JavaFX构建客户端界面。

数据库访问采用JDBC技术,保证与数据库的连接和数据操作。

2. 功能实现•用户管理:实现用户的注册、登录、修改密码等功能,保证用户信息的安全性。

•联系人管理:实现联系人的添加、删除、查找、编辑等功能,支持分组管理和多种查询方式。

•导入导出:支持导入通讯录文件和导出联系人信息到文件,方便数据的备份和迁移。

四、系统测试系统开发完成后需要进行系统测试,包括功能测试、性能测试、安全测试等,确保系统的稳定性和可靠性。

可以使用Junit进行单元测试,使用JMeter进行压力测试。

五、总结通过本文的介绍,读者可以了解一个基于Java语言开发的通讯录管理系统的设计和实现过程。

通讯录管理系统可以提高人们日常生活中联系人信息的管理效率,为人们的生活提供更多的便利。

希望本文对读者有所帮助,谢谢观看。

以上是通讯录管理系统Java课程设计的相关内容,希朋友们能喜欢。

java通讯录课程设计报告

java通讯录课程设计报告

课程设计报告:Java通讯录一、引言本次课程设计是关于Java通讯录的开发,旨在让我们更深入地理解Java编程语言在现实生活中的应用。

通讯录是一种常见的应用程序,它可以帮助我们管理联系人信息,方便我们与朋友和家人保持联系。

二、需求分析本次课程设计的目标是根据用户需求,设计并实现一个功能齐全的Java通讯录应用程序。

具体需求如下:用户可以添加联系人信息,包括姓名、电话号码、电子邮件地址等。

用户可以删除联系人信息。

用户可以编辑联系人信息。

用户可以按姓名、电话号码或电子邮件地址搜索联系人信息。

用户可以查看所有联系人信息。

三、设计数据库设计为了存储联系人信息,我们选择使用Java内置的ArrayList类作为数据库。

ArrayList是一个动态数组,可以根据需要自动增长。

我们将使用ArrayList的add()方法添加联系人信息,使用get()方法获取联系人信息,使用remove()方法删除联系人信息。

界面设计我们使用Java Swing库来创建用户界面。

界面包括以下组件:JLabel:显示提示信息和标题。

JTextField:用于输入和编辑联系人信息。

JButton:用于触发添加、删除、编辑和搜索等操作。

JTable:用于显示所有联系人信息。

JComboBox:用于选择搜索条件。

四、实现添加联系人信息当用户点击“添加”按钮时,程序会创建一个新的联系人对象,并将用户输入的信息设置到该对象中。

然后,程序将该对象添加到ArrayList中。

删除联系人信息当用户选择要删除的联系人并点击“删除”按钮时,程序会从ArrayList中删除该联系人对象。

编辑联系人信息当用户选择要编辑的联系人并点击“编辑”按钮时,程序会将该联系人的信息显示在文本框中,以便用户进行修改。

修改完成后,程序会将修改后的信息保存到ArrayList中。

搜索联系人信息当用户选择搜索条件并输入搜索关键字时,程序会在ArrayList 中查找符合条件的联系人对象,并将其显示在表格中。

java课程设计--- 个人通讯录管理系统

java课程设计--- 个人通讯录管理系统

课程设计(论文)任务书设计题目:个人通讯录管理系统专业班级:10计算机科学与技术2班主要内容:设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记录!采用图形用户界面,通过菜单选择相应的操作,直观且操作简单。

数据库用MySQL;编辑平台选用MyEclipse 。

所用到的知识点有:类的基本构成,异常处理,图形用户界面,文件操作和数据库。

基本要求:用图形用户界面实现,能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。

通讯录的功能包括:姓名,电话,Email 等。

使用数据库做后台连接!1目录一、开发背景 (1)二、可行分析 (1)三、设计内容……………………………………………………………………….错误!未定义书签。

四、设计要求……………………………………………………………………….错误!未定义书签。

五、具体设计 (4)六、具体分工 (5)七、程序设计 (9)1、主程序模块…………………………………………………….....…........1错误!未定义书签。

1、添加模块…………………………………………………….....…........1错误!未定义书签。

2、删除模块 (22)4、背景框格设计 (32)八、实习心得 (35)2一、开发背景在信息化不断发展的今天,社会成员相互之间联系越来越紧密,联系方式也越来越多。

我们除了手机,移动电话等常规联系方式外,现在还有了电子邮箱、MSN、QQ等信息化的联系方式,那么为了方便我们将每个联系人的多个联系方式保存在一起,方便由于一种联系方式联系不到某人时,可查询其他联系方式,以前的“纸质”通讯录已经越来越赶不上信息化的速度,势必被淘汰,所以我们用所学过的知识实现一个“非纸质”通讯录。

二、可行分析介绍了一个简单实用的个人通讯录管理系统java工程,详细描述了本人在编程时候的编程思想和在MyEclipse 6.5中调试运行的步骤,简明扼要地介绍了整个工程的功能和实用方法。

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

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

苏州科技学院电子信息实验中心面向对象技术课程设计报告--学生通讯录管理系统专业年级计算机科学与技术2014班级计算机1421学号 **********姓名胡耀文成绩指导教师张宗杰2016 年4月一1.引言1.1项目的名称学生通讯录管理系统1.2项目背景和目标学生通讯录管理系统主要对在校学生的基本信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供基本信息查询功能。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生通讯录管理系统二、需求分析2.1系统概述此系统提供给教师用户和学生用户。

教师登陆后可以对学生基本信息表进行查看、增添新记录、删除记录等操作。

学生登陆后能查询自己的信息。

2.2系统运行环境Java运行在eclipse软件上,数据库用mysql数据库2.3功能需求描述学生通讯录管理系统要面对教师和学生用户。

对于教师,需要查询全部学生的基本信息,并且可以对其进行修改。

对于学生,需要查询自己的基本信息。

为了保护学生基本信息隐私,每位学生登录系统后只能查询自己的信息,而无法看到别人的信息。

三、系统设计3.1开发与设计的总体思想教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。

在查询功能里面,可以选择是查询学生基本信息。

在修改功能里面,包括对学生基本信息表进行增加、删除记录。

学生方面:学生通过自己的用户名和密码登录此系统后, 可以查询自己的信息。

3.2系统模块结构图3.3数据库结构设计为了支持此学生通讯录管理系统,创建数据库studencontacts。

在这个数据库中包含四个表:student表,teacher表,information表。

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

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

通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。

本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。

通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。

2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。

- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。

- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。

- 修改联系人信息:用户可以对已保存的联系人信息进行修改。

- 删除联系人信息:用户可以删除通讯录中的联系人信息。

实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。

3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。

ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。

3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。

设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。

3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。

•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。

•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。

•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。

•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。

4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。

通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。

通讯录java课程设计

通讯录java课程设计

通讯录java课程设计一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:学生需要掌握Java语言中的基本语法、数据类型、控制结构、数组、字符串等基础知识,了解Java语言的面向对象编程思想,包括类、对象、封装、继承和多态等概念。

2.技能目标:学生能够运用Java语言编写简单的程序,如计算器、通讯录等,培养学生解决问题的能力,提高学生的编程实践能力。

3.情感态度价值观目标:通过学习Java语言,培养学生对计算机编程的兴趣,激发学生的创新意识,培养学生的团队合作精神,使学生认识到编程在实际生活中的应用价值。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据类型。

2.控制结构和数组。

3.字符串操作。

4.面向对象编程思想,包括类、对象、封装、继承和多态等概念。

5.Java语言的编程实践,如计算器、通讯录等程序的编写。

三、教学方法本节课采用以下几种教学方法:1.讲授法:讲解Java语言的基本语法、数据类型、控制结构、数组、字符串等基础知识。

2.案例分析法:通过分析计算器、通讯录等实际案例,使学生理解和掌握面向对象编程思想。

3.实验法:让学生动手编写程序,培养学生的编程实践能力。

4.讨论法:在课堂上引导学生进行思考和讨论,激发学生的创新意识,提高学生的团队合作精神。

四、教学资源本节课的教学资源包括以下几个方面:1.教材:Java语言程序设计。

2.参考书:Java核心技术、Java编程思想等。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、网络等。

五、教学评估本节课的评估方式包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

2.作业:布置相关的编程作业,评估学生对知识的理解和应用能力。

3.考试:进行期中和期末考试,全面测试学生对Java语言的基本语法、数据类型、控制结构、数组、字符串等知识的掌握程度。

java课程设计-通讯录系统

java课程设计-通讯录系统

目录第一章设计分析 (2)1.1 需求分析 (2)1.2 功能设计 (2)第二章概要设计 (3)2.1 程序设计 (3)2.2 功能设计 (4)第三章软件环境介绍 (5)3. 1 开发环境 (5)3. 2 开发工具 (5)3. 3 MySql数据设计 (6)第四章测试运行 (7)4.1 程序运行界面 (7)4.2 新建功能 (7)4.3 修改功能 (8)4.4 顺序显示 (8)4.5 分组显示 (9)4.6 搜索功能 (9)第五章总结与分析 (10)第七章参考文献 (11)第八章程序源代码 (12)8.1 类PhoneNumber (12)8.2 类Operation (15)8.3 类Searcher (19)1.1需求分析现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的版权,我们也不可能得到这些源代码!而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的电话号码查询系统程序。

1.2功能设计本程序的构建参照了手机通讯录,其功能是:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。

2.1程序设计在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。

JMenuBar用来创建主菜单JMenuItem创建子菜单JFrame创建框架JTable创建表格部分JScorollPane向文本框添加滚动条JMenuItem创建功能键JButton添加触发按钮。

编写BufferReader()方法实现待分析文件中数据的读取。

编写readLine()方法实现数据的读取。

编写Select()法实现查询。

编写rankVector()方法实现排序编写addNumber()方法实现新建编写removeNumber()方法实现删除编写modifyPhoneNumber()方法实现修改利用actionPerformed ()方法做为事件监听器。

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

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

功能描述:用户 可以添加新的联 系人信息
界面设计:简洁 明了,易于操作
数据存储:将新添 加的联系人信息存 储到数据库中
PART FOUR
使用JDBC(Java Database Connectivity) 技术进行数据库连接
连接数据库需要提供数据库URL、用户名、 密码等信息
使用Connection对象建立与数据库的连 接
性能优化: 采用索引、 缓存等技 术提高查 询效率
用户界面: 设计简洁、 易于使用 的查询界 面,方便 用户操作
操作流程:选择联系人,点 击删除按钮,确认删除
功能描述:删除指定联系人 信息
异常处理:删除失败时,提 示用户并重新尝试
数据库操作:删除联系人信 息,更新数据库记录
模块名称:添加 联系人
使用Statement或PreparedStatement对象 执行SQL语句
使用ResultSet对象获取查询结果
关闭数据库连接,释放资源
主界面:显 示通讯录列 表,包括姓 名、电话、 地址等信息
编辑界面: 编辑联系人 信息,包括 姓名、电话、 地址等
搜索界面: 根据姓名、 电话等信息 进行搜索
PART SIX
项目目标:实现个人通讯录管理系统 技术栈:Java、数据库、前端框架等 项目成果:实现了联系人管理、信息查询、数据备份等功能 项目挑战:数据库设计、前端交互、性能优化等 项目经验:团队协作、需求分析、代码规范等 未来展望:继续优化系统、增加新功能、提高用户体验等
收获:掌握了Java语言和面向对象编程的基本知识,提高了编程能力 收获:学会了如何设计一个完整的系统,包括需求分析、系统设计、编码实现和测试等环节 不足:在系统设计中,对某些功能的实现不够完善,需要进一步改进 不足:在编码实现中,对某些算法的效率不够高,需要进一步优化

JAVA课程设计-通讯录管理系统

JAVA课程设计-通讯录管理系统

目录一、设计题目 (1)二、设计目的 (1)三、需求分析 (1)四、总体设计 (1)1.程序总体设计思想 (1)2.程序设计总体框图 (2)五、详细设计 (2)1.功能模块图 (3)2.数据库概念模型 (3)3.数据库逻辑结构设计 (4)4.数据库表的建立 (4)5. 数据库的连接 (4)六、算法描述与实现 (5)1.登录界面 (5)2.通讯记录界面 (7)3.修改联系人界面 (8)4.删除联系人界面 (9)5.添加联系人记录界面 (10)七、结论 (11)八、参考文献 (12)一、设计题目通讯录管理系统二、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。

三、需求分析通讯录要求实现最基本的功能,包括新建联系人,查找信息,删除信息,修改信息,退出系统,为此需要首先定义记录项的格式,其基本属性包括姓名、电话、地址、邮箱。

通讯录管理系统的主要包括以下功能:(1). 新建联系人:操作添加一条新的联系人。

(2). 查找信息:查出一条已经存在的联系人。

(3). 删除信息:删除一个联系人的信息。

(4). 修改信息:修改联系人的基本信息。

四、总体设计1.程序总体设计思想个人通讯录件的功能模块有:(1)提供登陆界面,方便用户进入,满足需求;(2)添加:可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;(3)显示:可以以表格形式输出所有通讯录里的记录;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注即可完成修改;(6)删除:可以直接删除多余的通讯录记录;(7)帮助:可以在帮助里面修改用户密码;(8)导出数据库:可以将数据库以文本txt格式导出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第一章设计分析 (2)1.1 需求分析 (2)1.2 功能设计 (2)第二章概要设计 (3)2.1 程序设计 (3)2.2 功能设计 (4)第三章软件环境介绍 (5)3. 1 开发环境 (5)3. 2 开发工具 (5)3. 3 MySql数据设计 (6)第四章测试运行 (7)4.1 程序运行界面 (7)4.2 新建功能 (7)4.3 修改功能 (8)4.4 顺序显示 (8)4.5 分组显示 (9)4.6 搜索功能 (9)第五章总结与分析 (10)第七章参考文献 (11)第八章程序源代码 (12)8.1 类PhoneNumber (12)8.2 类Operation (15)8.3 类Searcher (19)1.1 需求分析现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的版权,我们也不可能得到这些源代码!而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的电话号码查询系统程序。

1.2 功能设计本程序的构建参照了手机通讯录,其功能是:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。

2.1 程序设计在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。

JMenuBar用来创建主菜单JMenuItem创建子菜单JFrame创建框架JTable创建表格部分JScorollPane向文本框添加滚动条JMenuItem创建功能键JButton添加触发按钮。

编写BufferReader()方法实现待分析文件中数据的读取。

编写readLine()方法实现数据的读取。

编写Select()法实现查询。

编写rankVector()方法实现排序编写addNumber()方法实现新建编写removeNumber()方法实现删除编写modifyPhoneNumber()方法实现修改利用actionPerformed ()方法做为事件监听器。

编写J_fenxi()实现构造。

2.2 功能设计主页面以分组形式显示电话号码的详细信息,满足了用户浏览通讯录时分组查看电话号码的要求,同时提供电话号码、姓名、分组、QQ、Email的详细查询及模糊查询功能,方便用户快速查找相关的号码信息。

具体要求如下:(1)新增功能:点击菜单栏中的编辑选项,选择新增功能,可添加号码详细信息(2)删除功能:选中号码信息,点击菜单栏中的编辑选项,选择删除功能(3)修改功能:选中号码信息,点击菜单栏中的编辑选项,选择修改功能,点击要修改的单元格所在的行即可修改(4)查询功能:主页面搜索栏可根据号码、姓名、分组等进行搜索(5)退出程序:点击菜单栏中的文件选项,选择关闭功能图2-1 功能结构图第三章软件环境介绍3. 1 开发环境本次项目的软件环境基于开源软件的使用基础上开发的,所以使用的开发环境是:前台使用JSP+CSS开发,后台使用JSP + MySQL做为基础,使用JavaBean 对数据进行存取。

如图3-1所示:图3-1 前台与后台关系3. 2 开发工具①集成开发环境:MyEclipse 2014;②服务器:Apache Tomcat 7.0;③数据库:MySQL 5.6;④数据库管理系统:Navicat MySQL 8.0;⑤JavaBean开发使用:JDK 7.03. 3 MySql数据设计表3-1 数据表第四章测试运行4.1 程序运行界面电话号码查询系统一共分为3部分,分别是菜单栏、查询栏、显示框。

菜单栏由“文件”、“编辑”、“视图”组成,“文件”菜单有关闭功能键,“编辑”菜单有新建、删除、修改功能键,“视图”菜单有顺序显示和分类显示。

如图4-1所示图4-1 运行界面4.2 新建功能选择编辑—新建功能,填写号码信息后点击确定后即可保存。

图4-2 新增页面4.3 修改功能点击要修改的单元格所在的行,然后点击编辑修改键开始修改信息,点击确定后即可保存。

图4-3 修改页面4.4 顺序显示手机号码按从小到大的顺序排列显示。

图4-4 顺序显示页面4.5 分组显示按分组的类别显示,同分组的元素在一起。

图4-5 分组显示页面4.6 搜索功能可以按照手机号码,姓名、分组等进行搜索。

图4-6 搜索页面第五章总结与分析通过完成一个小程序,不仅发现了自己在java知识中的不足,对java更加了解,还能够增加自己的变成经验,增强对逻辑思维的运用能力。

在本次课程设计的过程中,详细阐述了整个网站的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在以后的学习工作中得到更好的完善。

以及在投入实际应用后网站可以更加稳定可靠的工作。

通过这段时间的课程设计,完成了“电话号码查询系统”的设计,更重要的是又复习了一遍JSP知识,看了许多关于JSP的书,不仅丰富了知识,而且从中学到了编程思想,相信通过这次课程设计,对以后的学习和程序设计会有很大的帮助。

第七章参考文献[1] 张志峰等,《JSP程序设计实训与案例教程》,清华大学出版社.2013[2] 荣钦科技,《JSP动态网站开发与实例》,清华大学出版社.2012[3] 黄梯云,《管理信息系统》,高等教育出版社. 2013[4] 曾凡奇等:《基于Internet的管理信息系统》,中国财政经济出版社,2011[5] 易荣华:《管理信息系统》,高等教育出版社,2014[6] 张靖:《管理信息系统》,高等教育出版社,2013[7]张国锋:《管理信息系统》,机械工业出版社,2012第八章程序源代码8.1 类PhoneNumberpublic class PhoneNumber {private String Number;private String Name;private String Partition;private String QQNumber;private String Email;public PhoneNumber() {}public String getNumber(){return Number;}public String getName(){return Name;}public String getPartition() {return Partition;}public String getQQNumber() {return QQNumber;}public String getEmail() {return Email;}public String getPretreatment( int Style ) { String Key = null;switch ( Style ) {case 1:Key = getNumber();break;case 2:Key = getName();break;case 3:Key = getPartition();break;}return Key;}class NumberException extends Exception {public String warningString(){return"电话号码不符合编码规则!";}}public boolean isNumeric( String str ) {Pattern pattern = pile("[0-9]*");return pattern.matcher(str).matches();}public boolean setNumber( String number ) {number.trim();String Str = number.substring( 0, 3 );try {if( !isNumeric( number ) )throw new NumberException();}catch ( NumberException e ) {JOptionPane.showMessageDialog( null, e.warningString()+"号码为:"+number );return false;}try {if ( number.length() != 11 )throw new NumberException();}catch ( NumberException e ){JOptionPane.showMessageDialog( null, e.warningString()+"号码为:"+number );return false;}try {int num = Integer.parseInt( Str );if ( num < 130 || num > 139 ){num /= 10;if( num != 15 || num != 18 )throw new NumberException();}Number = number;return true;}catch ( NumberException e ) {JOptionPane.showMessageDialog( null, e.warningString()+"号码为:"+number );return false;}}public boolean setName( String name ) {name.trim();Name = name;return true;}public boolean setPartition( String Str ) {Str.trim();Partition = Str;return true;}public boolean setQQNumber( String qqnumber ) {qqnumber.trim();QQNumber = qqnumber;return true;}class EmailException extends Exception {public String warningString() {return"电子邮箱格式错误!";}}public boolean setEmail( String email ) {email.trim();String Str = email.substring( email.length()-4 );try {if ( !Str.equals(".com") )throw new EmailException();if ( email.indexOf('@') < 1 )throw new EmailException();Email = email;return true;}catch ( EmailException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub}}8.2 类Operationpublic class Operation extends PhoneNumber {public Vector<PhoneNumber> PhoneNumberList;public Operation() {PhoneNumberList = new Vector<PhoneNumber>();}public Vector<PhoneNumber> getPhoneNumberList() {return PhoneNumberList;}class OperatingException extends Exception {public String warningString() {return"操作失败!";}}public Vector<PhoneNumber> Select( String KeyStr, int Style ) { String Key = KeyStr.trim();Vector<PhoneNumber> tempPhoneNumberList = new Vector<PhoneNumber>();for ( int pt = 0; pt < PhoneNumberList.size(); pt++ ) {String preKey =PhoneNumberList.elementAt(pt).getPretreatment(Style);if ( preKey.equals(Key) )tempPhoneNumberList.addElement( PhoneNumberList.elementAt(pt) );}return tempPhoneNumberList;}public boolean addNumber( PhoneNumber phoneNumber, int Index ) { try {if ( PhoneNumberList.contains(phoneNumber) )throw new OperatingException();}catch ( OperatingException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}try {for ( int pt = 0; pt < PhoneNumberList.size(); pt++ )if( PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber.getNumbe r()) )throw new OperatingException();if ( Index >= PhoneNumberList.size() )Index = PhoneNumberList.size();PhoneNumberList.insertElementAt( phoneNumber, Index );return true;}catch ( OperatingException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}}public boolean removeNumber( String phoneNumber ) {try {int Index = 0;for ( int pt = 0; pt < PhoneNumberList.size(); pt++ )if( PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber) )Index = pt;if ( Index >= PhoneNumberList.size() )throw new OperatingException();PhoneNumberList.removeElementAt(Index);return true;}catch ( OperatingException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}}public boolean modifyPhoneNumber( PhoneNumber phoneNumber ) { try {if ( PhoneNumberList.contains(phoneNumber) )throw new OperatingException();int Index = 0;for ( int pt = 0; pt < PhoneNumberList.size(); pt++ )if( PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber.getNumbe r()) ) {PhoneNumberList.removeElementAt(pt);PhoneNumberList.addElement( phoneNumber );}}catch ( OperatingException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}try {if ( !PhoneNumberList.contains(phoneNumber) )throw new OperatingException();return true;}catch ( OperatingException e ) {JOptionPane.showMessageDialog( null, e.warningString() );return false;}}public Vector<PhoneNumber> sortPhoneNumber( Vector<PhoneNumber> phoneNumberList, String KeyStr ) {Vector<PhoneNumber> tempPhoneNumberList = new Vector<PhoneNumber>( 10, 3 );for ( int Index = 0; Index < phoneNumberList.size(); Index++ ) if( phoneNumberList.elementAt(Index).getPartition().equals(KeyStr) )tempPhoneNumberList.addElement( phoneNumberList.elementAt(Index) );return tempPhoneNumberList;}public Vector<PhoneNumber> rankVector( Vector<PhoneNumber> phoneNumberList ) {Vector<PhoneNumber> tempPhoneNumberList = new Vector<PhoneNumber>();tempPhoneNumberList.addElement( phoneNumberList.elementAt(0));for ( int Index = 0; Index < phoneNumberList.size(); Index++ ) {int pt;boolean flag = true;for ( pt = 0; pt < tempPhoneNumberList.size(); pt++ ) {if( phoneNumberList.elementAt(Index).getNumber().compareTo(tempPhoneNumbe rList.elementAt(pt).getNumber()) < 0 )break;}for ( int i = 0; i < tempPhoneNumberList.size(); i++ )if( tempPhoneNumberList.elementAt(i).getNumber().equals(phoneNumberList.e lementAt(Index).getNumber()) )flag = false;if ( flag )tempPhoneNumberList.insertElementAt( phoneNumberList.elementAt(Index ), pt );}return tempPhoneNumberList;}public static void main(String[] args) {// TODO Auto-generated method stub}}8.3 类Searcherpublic class extends JFrame {public DefaultTableModel Data;public JTable View;public JButton button;public JComboBox combobox;public JFrame app;public Operation operation;public JMenuBar MenuBar;public JTextField textField;public JMenuItem[][] MenuItem = {{ new JMenuItem("关闭(C)") },{ new JMenuItem("新建(N)"), new JMenuItem("删除(D)"), new JMenuItem("修改(M)") },{ new JMenuItem("顺序显示(O)"), new JMenuItem("分类显示(S)") } };public Searcher() {super("Searcher");operation = new Operation();MenuBar = new JMenuBar();setJMenuBar(MenuBar);Container c = getContentPane();c.setLayout(new FlowLayout());Data = new DefaultTableModel( 1, 5 );View = new JTable( Data );View.setValueAt( "号码", 0, 0 );View.setValueAt( "姓名", 0, 1 );View.setValueAt( "分组", 0, 2 );View.setValueAt( "QQ", 0, 3 );View.setValueAt( "Email", 0, 4 );View.setPreferredScrollableViewportSize( new Dimension( 300, 150 ) );View.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );JScrollPane spane = new JScrollPane( View );spane.setLayout( new ScrollPaneLayout() );View.setVisible( true );JMenu[] Menu = { new JMenu("文件(F)"), new JMenu("编辑(E)"), new JMenu("视图(V)") };char[][] MenuChar = { { 'F', 'E', 'V' }, { 'C' }, { 'N', 'D', 'M' }, { 'O', 'S' } };int Index, IndexI;for (Index = 0; Index < Menu.length; Index++) {MenuBar.add(Menu[Index]);Menu[Index].setMnemonic(MenuChar[0][Index]);for(IndexI = 0; IndexI < MenuItem[Index].length; IndexI++) {Menu[Index].add(MenuItem[Index][IndexI]);MenuItem[Index][IndexI].setMnemonic(MenuChar[Index + 1][IndexI]);MenuItem[Index][IndexI].setAccelerator(KeyStroke.getKeyStroke("ctrl" + MenuChar[Index + 1][IndexI]));}}Menu[1].insertSeparator(1);Menu[2].insertSeparator(1);JPanel panel = new JPanel();JPanel panel2 =new JPanel();textField = new JTextField( 20 );textField.setEditable( true );String[] s = { "号码", "姓名", "分组" };combobox = new JComboBox( s );button = new JButton("搜索");panel.setLayout( new BoxLayout(panel, BoxLayout.X_AXIS) );panel.add( combobox );panel.add( textField );panel.add( button );panel2.setLayout( new BoxLayout(panel2, BoxLayout.X_AXIS) );panel2.add( View );c.add( panel );c.add( panel2 );panel.setVisible( true );panel.setVisible( true );c.add( spane );String path = "Data.txt";try {FileReader fr=new FileReader(path);BufferedReader reader=new BufferedReader(fr);String tempStr = new String();tempStr = reader.readLine();PhoneNumber[] phoneNumber = new PhoneNumber[5];for ( int pt = 0; tempStr != null; pt++ ) {phoneNumber[pt] = new PhoneNumber();Vector<String> rowData = new Vector<String>(5);phoneNumber[pt].setNumber( tempStr );rowData.addElement( tempStr );tempStr = reader.readLine();phoneNumber[pt].setName( tempStr );rowData.addElement( tempStr );tempStr = reader.readLine();phoneNumber[pt].setPartition( tempStr );rowData.addElement( tempStr );tempStr = reader.readLine();phoneNumber[pt].setQQNumber( tempStr );rowData.addElement( tempStr );tempStr = reader.readLine();phoneNumber[pt].setEmail( tempStr );rowData.addElement( tempStr );Data.addRow( rowData );operation.PhoneNumberList.addElement( phoneNumber[pt] );tempStr = reader.readLine();}reader.close();}catch ( IOException e ) {JOptionPane.showMessageDialog( null, e );}button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int Style = combobox.getSelectedIndex()+1;String KeyStr = textField.getText();Vector<PhoneNumber> phoneNumberList =operation.Select(KeyStr, Style );int flag = Data.getRowCount()-1;for ( int i = 0; i < flag; i++ )Data.removeRow( Data.getRowCount()-1 );for (int pt = 0; pt < phoneNumberList.size(); pt++) {Vector<String> rowData = new Vector<String>(5);rowData.addElement(phoneNumberList.elementAt(pt).getNumber());rowData.addElement(phoneNumberList.elementAt(pt).getName());rowData.addElement(phoneNumberList.elementAt(pt).getPartition());rowData.addElement(phoneNumberList.elementAt(pt).getQQNumber());rowData.addElement(phoneNumberList.elementAt(pt).getEmail());Data.addRow(rowData);}View.repaint();}});MenuItem[0][0].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JMenuItem Item = (JMenuItem) e.getSource();System.exit(0);}});MenuItem[1][0].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {class J_Table extends JFrame {public DefaultTableModel m_data;public JTable m_view;public PhoneNumber phoneNumber;public J_Table() {super("新建");phoneNumber = new PhoneNumber();m_data = new DefaultTableModel();m_view = new JTable(m_data);m_view.setPreferredScrollableViewportSize(newDimension(240, 480));Container c = getContentPane();c.setLayout(new FlowLayout());JButton b = new JButton("确定");c.add(b);Vector<String> columnData = new Vector<String>(5);columnData.addElement("姓名:");columnData.addElement("号码:");columnData.addElement("分组:");columnData.addElement("QQ:");columnData.addElement("Email:");m_data.addColumn("标签", columnData);m_data.addColumn("内容", (Vector) null);c.add(m_view);b.addActionListener(new ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {JButton bb = (JButton) e.getSource();phoneNumber.setName((String)m_data.getValueAt(0, 1));phoneNumber.setNumber((String)m_data.getValueAt(1, 1));phoneNumber.setPartition((String)m_data.getValueAt(2, 1));phoneNumber.setQQNumber((String)m_data.getValueAt(3, 1));phoneNumber.setEmail((String)m_data.getValueAt(4, 1));operation.addNumber(phoneNumber, operation.PhoneNumberList.size());Vector<String> rowData = new Vector<String>(5);rowData.addElement( phoneNumber.getNumber() );rowData.addElement( phoneNumber.getName() );rowData.addElement( phoneNumber.getPartition() );rowData.addElement( phoneNumber.getQQNumber() );rowData.addElement( phoneNumber.getEmail() );Data.addRow( rowData );}});}}J_Table table = new J_Table();table.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);table.setSize(200, 200);table.setVisible( true );table.repaint();}});MenuItem[1][1].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int rEdit = View.getSelectedRow();String KeyStr = (String) Data.getValueAt(rEdit, 0);operation.removeNumber(KeyStr);Data.removeRow( rEdit );}});MenuItem[1][2].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {class J_Table extends JFrame {public DefaultTableModel m_data;public JTable m_view;public PhoneNumber phoneNumber;public J_Table() {super("修改");phoneNumber = new PhoneNumber();m_data = new DefaultTableModel();m_view = new JTable(m_data);m_view.setPreferredScrollableViewportSize(new Dimension(240, 480));Container c = getContentPane();c.setLayout(new FlowLayout());JButton b = new JButton("确定");c.add(b);Vector<String> columnData = new Vector<String>(5);columnData.addElement("号码:");columnData.addElement("姓名:");columnData.addElement("分组:");columnData.addElement("QQ:");columnData.addElement("Email:");Vector<String> columnContent = new Vector<String>(5);int rEdit = View.getSelectedRow();columnContent.addElement((String)View.getValueAt(rEdit, 0));columnContent.addElement((String)View.getValueAt(rEdit, 1));columnContent.addElement((String)View.getValueAt(rEdit, 2));columnContent.addElement((String)View.getValueAt(rEdit, 3));columnContent.addElement((String)View.getValueAt(rEdit, 4));m_data.addColumn( "标签", columnData);m_data.addColumn((Object)"内容", columnContent);c.add(m_view);m_view.repaint();b.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JButton bb = (JButton) e.getSource();phoneNumber.setNumber((String)m_data.getValueAt(0, 1));phoneNumber.setName((String)m_data.getValueAt(1, 1));phoneNumber.setPartition((String)m_data.getValueAt(2, 1));phoneNumber.setQQNumber((String)m_data.getValueAt(3, 1));phoneNumber.setEmail((String)m_data.getValueAt(4, 1));operation.modifyPhoneNumber(phoneNumber);Vector<String> columnContent = new Vector<String>(5);int rEdit = View.getSelectedRow();columnContent.addElement((String)m_data.getValueAt(0, 1));columnContent.addElement((String)m_data.getValueAt(1, 1));columnContent.addElement((String)m_data.getValueAt(2, 1));columnContent.addElement((String)m_data.getValueAt(3, 1));columnContent.addElement((String)m_data.getValueAt(4, 1));Data.removeRow( rEdit );Data.insertRow( rEdit, columnContent );m_view.repaint();}});}}J_Table table = new J_Table();table.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);table.setSize(200, 200);table.setVisible(true);}});MenuItem[2][0].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int flag = Data.getRowCount()-1;for ( int Index = 0; Index < flag; Index++ )Data.removeRow( 1 );Vector<PhoneNumber> tempPhoneNumberList = new Vector<PhoneNumber>();tempPhoneNumberList = operation.rankVector(operation.PhoneNumberList);for( int pt = 0; pt < tempPhoneNumberList.size(); pt++ ) {Vector<String> rowData = new Vector<String>( 5 );rowData.addElement( tempPhoneNumberList.elementAt(pt).getNumber() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getName() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getPartition() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getQQNumber() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getEmail() );Data.addRow( rowData );}View.repaint();}});MenuItem[2][1].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Vector<String> PartitionSet = new Vector<String>();Vector<PhoneNumber> tempPhoneNumberList = new Vector<PhoneNumber>();PartitionSet.addElement( operation.PhoneNumberList.elementAt(0).getP artition() );for (int pt = 0; pt < operation.PhoneNumberList.size(); pt++) {boolean signal = true;for (int i = 0; i < PartitionSet.size(); i++){if(operation.PhoneNumberList.elementAt(pt).getPartition().equals(Partitio nSet.elementAt(i)))signal = false;}if ( signal )PartitionSet.addElement(operation.PhoneNumberList.elementAt(pt).getP artition());}for (int i = 0; i < PartitionSet.size(); i++) {for(int pt = 0; pt < operation.PhoneNumberList.size(); pt++)if(operation.PhoneNumberList.elementAt(pt).getPartition().equals(Partitio nSet.elementAt(i)))tempPhoneNumberList.addElement(operation.PhoneNumberList.elementAt(p t));}int flag = Data.getRowCount()-1;for ( int Index = 0; Index < flag; Index++ )Data.removeRow( 1 );for ( int pt = 0; pt < operation.PhoneNumberList.size(); pt++ ) {Vector<String> rowData = new Vector<String>( 5 );rowData.addElement( tempPhoneNumberList.elementAt(pt).getNumber() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getName() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getPartition() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getQQNumber() );rowData.addElement( tempPhoneNumberList.elementAt(pt).getEmail() );Data.addRow( rowData );}View.repaint();}});}public static void main( String[] args ) {Searcher searcher = new Searcher();searcher.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );searcher.setSize( 480, 300 );searcher.setVisible( true );}}。

相关文档
最新文档