java个人通讯录课程设计报告
Java通讯录管理系统设计报告
Java通讯录管理系统设计报告1. 引言随着社会发展和信息技术的进步,通讯录在人们的日常生活和工作中变得越来越重要。
Java通讯录管理系统是一种用于管理个人和组织联系信息的软件系统。
本篇文档将详细介绍Java通讯录管理系统的设计和实现。
2. 功能需求Java通讯录管理系统具有以下功能需求: - 添加联系人:用户可以添加新的联系人,包括姓名、电话号码、电子邮件等相关信息。
- 删除联系人:用户可以删除已存在的联系人。
- 编辑联系人:用户可以修改已存在联系人的信息。
- 搜索联系人:用户可以根据姓名、电话号码或其他关键字搜索联系人。
- 显示联系人列表:用户可以查看所有联系人的列表,并按照姓名或其他方式进行排序。
- 导入/导出联系人:用户可以将联系人导入/导出到文件中,以实现数据的备份和共享。
3. 系统设计3.1 技术栈选择Java通讯录管理系统采用Java语言进行开发,使用Java的面向对象特性来实现系统的各个功能模块。
系统使用MySQL数据库来存储联系人的信息。
3.2 系统架构Java通讯录管理系统采用三层架构,分为表示层、业务逻辑层和数据访问层。
•表示层:负责与用户的交互,包括图形界面和用户输入输出的处理。
•业务逻辑层:负责处理用户的请求,对联系人信息进行增加、删除、编辑、搜索等操作,并调用数据访问层进行数据的读写。
•数据访问层:负责与数据库交互,进行联系人信息的读写操作。
3.3 类设计在Java通讯录管理系统中,主要涉及以下类的设计: - Contact类:表示一个联系人,包含姓名、电话号码、电子邮件等属性。
- ContactDAO接口:定义对联系人的增删改查等操作。
- ContactDAOImpl类:实现ContactDAO接口,负责与数据库进行交互。
- ContactService类:负责处理业务逻辑,调用ContactDAOImpl 类进行联系人信息的操作。
- ContactConsole类:表示层的用户界面,处理用户输入输出和展示联系人信息。
java课程设计(通讯录管理系统)
掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作
个人通讯管理系统java课程设计
个人通讯管理系统java课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握个人通讯管理系统的基本概念、设计方法和实现技术。
技能目标要求学生能够运用Java语言独立完成个人通讯管理系统的开发,培养学生的实际编程能力和问题解决能力。
情感态度价值观目标培养学生的创新意识,提高学生对计算机科学和软件工程的兴趣,使学生认识到信息技术在现代社会中的重要性和应用价值。
二、教学内容教学内容主要包括个人通讯管理系统的基本概念、设计方法和实现技术。
首先,介绍个人通讯管理系统的发展历程、功能和特点,使学生了解个人通讯管理系统的背景和应用场景。
其次,讲解个人通讯管理系统的设计方法,包括需求分析、系统设计、模块划分等,培养学生的问题分析和设计能力。
然后,教授Java语言的基本语法、数据结构和常用类库,使学生能够熟练使用Java语言进行编程。
最后,结合实际案例,讲解个人通讯管理系统的实现技术,包括数据库设计、界面设计、功能实现等,培养学生的实际编程能力和问题解决能力。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
首先,通过讲授法向学生传授个人通讯管理系统的基本概念、设计方法和实现技术。
其次,通过讨论法激发学生的思考和讨论,培养学生的创新意识和问题解决能力。
然后,通过案例分析法让学生结合实际案例进行分析和设计,提高学生的实际编程能力和问题解决能力。
最后,通过实验法让学生动手实践,培养学生的实际操作能力和问题解决能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于向学生传授个人通讯管理系统的基本概念、设计方法和实现技术。
多媒体资料用于辅助讲解和展示,使学生更直观地理解个人通讯管理系统的设计和实现。
实验设备用于让学生动手实践,培养学生的实际操作能力。
此外,还可以利用网络资源,如在线编程平台、开源个人通讯管理系统等,为学生提供更多的学习资源和实践机会。
小小通讯录-java课程设计报告
凯里学院Java课程设计报告题目小小通讯录所在院系计科院学生姓名潘万鹏、余冬林专业计算机科学与技术班级计09本(1)学号2009406028 20094060312011年12月22日一、系统分析与设计1、系统功能分析本系统通过连接数据库,查询出计09本(1)班同学的联系方式及家庭住址。
2、本系统共包括1个Java源文件,1个Main主类。
3、Java源文件及其功能如表1.1所示。
表1.1 文件清单二、系统实现1、成员变量如表2.1所示2、方法如表2.2所示表2.2 方法3、源文件Main.java代码如下给出。
import java.awt.*;import java.awt.event.*;import java.sql.*;public class Main extends Frame implements ActionListener { //主类// Toolkit.getDefaultToolkit()→获取默认工具包public Toolkit tool = Toolkit.getDefaultToolkit();Label lab1, lab2, lab3, lab4, lab5, lab6;TextField txt1, txt2, txt3, txt4, txt5, txt6;Button but1, but2, but3;public void showWindow() { //显示窗体类// 获取屏幕的x,y坐标int x = tool.getScreenSize().width;int y = tool.getScreenSize().height;setBounds(x / 2 - 250, y / 2 - 275, 500, 450);setLayout(null);lab1 = new Label("学号:");lab2 = new Label("姓名:");lab3 = new Label("性别:");lab4 = new Label("电话:");lab5 = new Label("QQ:");lab6 = new Label("住址:");add(lab1);add(lab2);add(lab3);add(lab4);add(lab5);add(lab6);lab1.setBounds(getWidth() - 450, getHeight() - 400, 50, 30);lab2.setBounds(getWidth() - 450, getHeight() - 350, 50, 30);lab3.setBounds(getWidth() - 450, getHeight() - 300, 50, 30);lab4.setBounds(getWidth() - 450, getHeight() - 250, 50, 30);lab5.setBounds(getWidth() - 450, getHeight() - 200, 50, 30); lab6.setBounds(getWidth() - 450, getHeight() - 150, 50, 30);txt1 = new TextField("2009406001");txt2 = new TextField();txt3 = new TextField();txt4 = new TextField();txt5 = new TextField();txt6 = new TextField();// 设置文本框位置setBounds(int x,int y,int w,int h);txt1.setBounds(getWidth() - 400, getHeight() - 400, 350, 30); txt2.setBounds(getWidth() - 400, getHeight() - 350, 350, 30); txt3.setBounds(getWidth() - 400, getHeight() - 300, 350, 30); txt4.setBounds(getWidth() - 400, getHeight() - 250, 350, 30); txt5.setBounds(getWidth() - 400, getHeight() - 200, 350, 30); txt6.setBounds(getWidth() - 400, getHeight() - 150, 350, 30);add(txt1);add(txt2);add(txt3);add(txt4);add(txt5);add(txt6);// 添加按钮but1 = new Button("上一个");but2 = new Button("查询");but3 = new Button("下一个");but1.setBounds(getWidth() - 450, 380, 100, 30);but2.setBounds(getWidth() / 2 - 50, 380, 100, 30);but3.setBounds(getWidth() / 2 + 110, 380, 100, 30);add(but1);add(but2);add(but3);// 添加事件驱动but1.addActionListener(this);but2.addActionListener(this);but3.addActionListener(this);txt1.addActionListener(this);addWindowListener(new WindowAdapter(){ //添加关闭监视器public void windowClosing(WindowEvent e){System.exit(0);}});setVisible(true);validate();setResizable(false);but1.setVisible(false);but3.setVisible(false);}public void actionPerformed(ActionEvent e) { //添加动作监听// 连接数据库,并进行编程if (e.getActionCommand() == "上一个") {//上一个代码开使String a=txt1.getText();int i=Integer.parseInt(a);i=i-1;Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号 = '"+i+"' ");while(rs.next()){String number1=rs.getString(1);//学号String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt1.setText(number1);txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);}//上一个代码结束}if (e.getActionCommand() == "查询") {//如果单击“查询”按钮则:but1.setVisible(true);but3.setVisible(true);String a=txt1.getText();Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号 = '"+a+"' ");while(rs.next()){String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);//查询代码结束}}if (e.getActionCommand() == "下一个"){//单击按钮“下一个”//下一个开始String a=txt1.getText();int i=Integer.parseInt(a);i=i+1;Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号 = '"+i+"' ");while(rs.next()){String number1=rs.getString(1);//学号String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt1.setText(number1);txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);}//下一个结束}}public static void main(String args[]) { //main方法Main m = new Main();m.showWindow();}}三、系统测试图3.1程序运行,可得出此效果图。
java课程设计通讯录
java 课程设计通讯录一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本语法和面向对象编程思想,通过实现一个简单的通讯录应用程序,培养学生解决实际问题的能力。
具体目标如下:1.掌握Java基本数据类型、运算符、控制结构。
2.理解面向对象编程的基本概念,如类、对象、封装、继承、多态。
3.熟悉Java常用类库,如String、ArrayList、HashMap等。
4.能够使用Java编写简单的程序,实现基本的数据处理和算法。
5.能够运用面向对象编程思想设计和实现应用程序。
6.掌握基本的调试和排错技巧。
情感态度价值观目标:1.培养学生对编程的兴趣和热情,提高学生解决问题的自信心。
2.培养学生团队协作、自主学习的习惯。
3.培养学生对编程事业的尊重和敬业精神。
二、教学内容本章节的教学内容主要包括以下几个部分:1.Java基本语法:数据类型、运算符、控制结构。
2.面向对象编程:类、对象、封装、继承、多态。
3.Java常用类库:String、ArrayList、HashMap等。
4.通讯录应用程序设计:需求分析、系统设计、编码实现、测试与调试。
三、教学方法为了达到本章节的教学目标,将采用以下几种教学方法:1.讲授法:讲解Java基本语法、面向对象编程思想和通讯录应用程序设计。
2.案例分析法:分析实际案例,让学生更好地理解面向对象编程思想和应用程序设计。
3.实验法:让学生动手编写和调试程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,培养学生的团队协作和沟通能力。
四、教学资源为了支持本章节的教學,将准备以下教学资源:1.教材:《Java编程思想》、《Java核心技术》。
2.参考书:提供相关领域的经典教材和在线资源。
3.多媒体资料:制作PPT、视频教程等,帮助学生更好地理解教学内容。
4.实验设备:为学生提供必要的编程环境和实验设备。
五、教学评估本章节的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。
基于JAVA个人通讯录管理系统开发与设计
1郑州科技学院Java 课程设计报告题 目 Java 通讯录课程设计课 程 名 称 Java 程序设计实用教程 院 部 名 称 信息工程学院 专 业 计算机科学与技术专业 班 级 11计科1班 学 生 姓 名 胡燊 学 号 201115007 指 导 教 师 杜 远 坤 完 成 时 间 2013年12月20日摘要本文介绍了一个简单实用的个人通讯录管理系统java工程,详细描述了本人在编程时候的编程思想和在MyEclipse 中调试运行的步骤,简明扼要地介绍了整个工程的功能和实用方法。
这个个人通讯录管理系统含有添加、删除、查找等基本功能,同时也添加了一些有趣的小功能——支持背景图片的更换。
在程序中完成了与数据库的通信,并同样可以对数据库进行添加、查找、删除等功能。
关键词:个人通讯录管理系统、添加、删除、查找、数据库2目录摘要 (2)1 绪论 (4)1.1 设计目的 (4)1.2 设计内容 (4)2 程序要求 (4)3 算法分析 (5)3.1 程序总体设计思想 (5)3.2 程序设计总体框图 (5)3.3 程序详细设计 (6)4 调试过程 (8)5 体会 (16)6 参考文献 (17)附录(源程序) (18)31 绪论1.1 设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。
1.2 设计内容在设计一个完整的系统中,我从系统的管理员登录界面开始做,另外依据相关要求,对系统增加了数据库支持(Microsoft Access做的数据库),还有对数据库里的数据进行增加、删除、显示所有记录、查询记录、导出备份数据库文件。
另外为了界面美观,增加了系统主界面背景界面图片的支持。
java通讯录课程设计报告
课程设计报告:Java通讯录一、引言本次课程设计是关于Java通讯录的开发,旨在让我们更深入地理解Java编程语言在现实生活中的应用。
通讯录是一种常见的应用程序,它可以帮助我们管理联系人信息,方便我们与朋友和家人保持联系。
二、需求分析本次课程设计的目标是根据用户需求,设计并实现一个功能齐全的Java通讯录应用程序。
具体需求如下:用户可以添加联系人信息,包括姓名、电话号码、电子邮件地址等。
用户可以删除联系人信息。
用户可以编辑联系人信息。
用户可以按姓名、电话号码或电子邮件地址搜索联系人信息。
用户可以查看所有联系人信息。
三、设计数据库设计为了存储联系人信息,我们选择使用Java内置的ArrayList类作为数据库。
ArrayList是一个动态数组,可以根据需要自动增长。
我们将使用ArrayList的add()方法添加联系人信息,使用get()方法获取联系人信息,使用remove()方法删除联系人信息。
界面设计我们使用Java Swing库来创建用户界面。
界面包括以下组件:JLabel:显示提示信息和标题。
JTextField:用于输入和编辑联系人信息。
JButton:用于触发添加、删除、编辑和搜索等操作。
JTable:用于显示所有联系人信息。
JComboBox:用于选择搜索条件。
四、实现添加联系人信息当用户点击“添加”按钮时,程序会创建一个新的联系人对象,并将用户输入的信息设置到该对象中。
然后,程序将该对象添加到ArrayList中。
删除联系人信息当用户选择要删除的联系人并点击“删除”按钮时,程序会从ArrayList中删除该联系人对象。
编辑联系人信息当用户选择要编辑的联系人并点击“编辑”按钮时,程序会将该联系人的信息显示在文本框中,以便用户进行修改。
修改完成后,程序会将修改后的信息保存到ArrayList中。
搜索联系人信息当用户选择搜索条件并输入搜索关键字时,程序会在ArrayList 中查找符合条件的联系人对象,并将其显示在表格中。
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课程设计报告之个人通讯录管理程序
一、设计内容 (2)二、设计要求 (2)三、总体设计 (2)四、具体设计 (2)五、具体分工 (4)六、程序设计 (4)1、UseSystem;类 (4)2、MySystem类 (5)3、User类 (18)4、UserService类 (21)5、DAO类 (27)七、实习心得 (28)一、设计内容设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记录!二、设计要求用图形用户界面实现:1、能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。
2、通讯录的功能包括:姓名,电话,Email等。
3、使用数据库做后台连接!三、总体设计有5个类各类之间的关系!1、DAO.java该类主要负责进行数据库连接,含有数据库的连接方法!2、User.java实体类主要作用是实现java的封装特性,利用服务类实现各种增删改查的操作方法!3、UserService.java该类主要是对各种操作方法的定义和实现,是实现增删改查等主要功能的服务类!4、MySeystem该类主要是实现图形化界面的!实现按钮,输入框,标签等图形化界面!5、UseSystem该类是程序的主类,该类含有main方法,程序从该类开始执行。
四、具体设计将5个java文件保存到同一个文件夹中,例如:C:\test。
将5个java文件分别编译生成相应的字节码(class)文件。
然后,用java解释器运行主类:主界面修改界面添加界面五、具体分工我参与设计添加页面,添加方法,数据库部分操作。
六、程序设计代码:1、UseSystem;类public class UseSystem {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubnew MySystem().validate();}}2、MySystem类import java.awt.*;import java.awt.*;import java.awt.event.*;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.*;import javax.swing.*;import er;import erService;public class MySystem extends JFrame implements ActionListener, ItemListener {UserService uService = new UserService();User u=new User();Choice choice = new Choice();JTextField t1 = new JTextField(15);JButton b1 = new JButton("查询");java.awt.List list = new java.awt.List(6, true);JButton b2 = new JButton("增加");JButton b3 = new JButton("删除");JButton b4 = new JButton("修改");JButton b5 = new JButton("导出");Container con = getContentPane();java.util.List<User> uList = new ArrayList<User>();//static Vector<User> uv = new Vector<User>(100);int flag=0;MySystem() {super("个人通讯录管理程序");setSize(400, 400);con.setLayout(new BorderLayout());choice.add("姓名");choice.add("类别");choice.add("手机号码");choice.add("查询全部记录");Panel p1 = new Panel();// Panel p2=new Panel();Panel p3 = new Panel();p1.setBackground(Color.blue);p1.setSize(300, 10);// p2.setBackground(Color.cyan);// p2.setSize(380, 300);p3.setBackground(Color.green);list.setSize(300, 300);p1.add(choice);p1.add(t1);p1.add(b1);p3.add(b2);p3.add(b4);p3.add(b3);p3.add(b5);con.add("North", p1);con.add("Center", list);con.add("South", p3);setVisible(true);validate();addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);System.exit(0);}});b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);list.addItemListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == b2) {//通过产生外部窗体,来实现添加功能final JFrame newf = new JFrame("添加联系人");newf.setSize(400, 400);newf.setVisible(true);newf.setLayout(new GridLayout(10, 2));JLabel jb1 = new JLabel("联系人姓名:");final JTextField jtf1 = new JTextField(15); Panel pp1 = new Panel();pp1.add(jb1);pp1.add(jtf1);newf.getContentPane().add(pp1);JLabel jb2 = new JLabel("联系人电话:"); final JTextField jtf2 = new JTextField(15); Panel pp2 = new Panel();pp2.add(jb2);pp2.add(jtf2);newf.getContentPane().add(pp2);JLabel jb3 = new JLabel("固定电话:"); final JTextField jtf3 = new JTextField(15); Panel pp3 = new Panel();pp3.add(jb3);pp3.add(jtf3);newf.getContentPane().add(pp3);JLabel jb4 = new JLabel("联系人QQ :"); final JTextField jtf4 = new JTextField(15); Panel pp4 = new Panel();pp4.add(jb4);pp4.add(jtf4);newf.getContentPane().add(pp4);JLabel jb7 = new JLabel("联系人email:"); final JTextField jtf7 = new JTextField(15); Panel pp7 = new Panel();pp7.add(jb7);pp7.add(jtf7);newf.getContentPane().add(pp7);JLabel jb8 = new JLabel("联系类别:");final JTextField jtf8 = new JTextField(15);Panel pp8 = new Panel();pp8.add(jb8);pp8.add(jtf8);newf.getContentPane().add(pp8);JLabel jb5 = new JLabel("联系人工作:");final JTextField jtf5 = new JTextField(15);Panel pp5 = new Panel();pp5.add(jb5);pp5.add(jtf5);newf.getContentPane().add(pp5);JLabel jb6 = new JLabel("现居住地地址:");final JTextField jtf6 = new JTextField(15);Panel pp6 = new Panel();pp6.add(jb6);pp6.add(jtf6);newf.getContentPane().add(pp6);JButton bb1 = new JButton("提交");JButton bb2 = new JButton("关闭");Panel pp9 = new Panel();pp9.add(bb1);pp9.add(bb2);newf.getContentPane().add(pp9);// JTextArea jta=new JTextArea();Panel pp10=new // Panel();pp10.add(jta);newf.getContentPane().add();bb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) { User u = new User();u.setName(jtf1.getText());u.setTel(jtf2.getText());u.setPhone(jtf3.getText());u.setQq(jtf4.getText());u.setWork(jtf5.getText());u.setAddress(jtf6.getText());u.setEmail(jtf7.getText());u.setCategory(jtf8.getText());if (uService.add(u)) {JOptionPane.showMessageDialog(null, "添加成功!!!");} elseJOptionPane.showMessageDialog(null, "添加失败!!!");}});bb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {newf.setVisible(false);}});}if (b1 == e.getSource()) {//通过调用select();实现模糊查询list.removeAll();select();}if (b3 == e.getSource()) {//通过获得联系人在list中的索引号,来实现对联系人的删除if (flag == 0) {JOptionPane.showMessageDialog(null, "不能删除该行!");}u = uList.get(flag - 1);if (uService.delById(u.getId())) {JOptionPane.showMessageDialog(null, "删除成功!");uList.remove(flag - 1);list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u1 :uList) {list.add(u1.getId() + ": " + u1.getName() + " "+ u1.getTel());}} elseJOptionPane.showMessageDialog(null, "删除失败!");}if(b4==e.getSource()){//通过获得联系人在list中的索引号,同弹出一个外部窗体其中//有联系人的信息,用户可以修改.并在将其存入数据库if (flag == 0) {JOptionPane.showMessageDialog(null, "不能修改首行!");return;}u = uList.get(flag - 1);final JFrame newf = new JFrame("添加联系人");newf.setSize(400, 400);newf.setVisible(true);newf.setLayout(new GridLayout(10, 2));JLabel jb1 = new JLabel("联系人姓名:");final JTextField jtf1 = new JTextField(u.getName(),15);Panel pp1 = new Panel();pp1.add(jb1);pp1.add(jtf1);newf.getContentPane().add(pp1);JLabel jb2 = new JLabel("联系人电话:");final JTextField jtf2 = new JTextField(u.getTel(),15);Panel pp2 = new Panel();pp2.add(jb2);pp2.add(jtf2);newf.getContentPane().add(pp2);JLabel jb3 = new JLabel("固定电话:");final JTextField jtf3 = new JTextField(u.getPhone(),15);Panel pp3 = new Panel();pp3.add(jb3);pp3.add(jtf3);newf.getContentPane().add(pp3);JLabel jb4 = new JLabel("联系人QQ :");final JTextField jtf4 = new JTextField(u.getQq(),15);Panel pp4 = new Panel();pp4.add(jb4);pp4.add(jtf4);newf.getContentPane().add(pp4);JLabel jb7 = new JLabel("联系人email:");final JTextField jtf7 = new JTextField(u.getEmail(),15);Panel pp7 = new Panel();pp7.add(jb7);pp7.add(jtf7);newf.getContentPane().add(pp7);JLabel jb8 = new JLabel("联系类别:");final JTextField jtf8 = new JTextField(u.getCategory(),15);Panel pp8 = new Panel();pp8.add(jb8);pp8.add(jtf8);newf.getContentPane().add(pp8);JLabel jb5 = new JLabel("联系人工作:");final JTextField jtf5 = new JTextField(u.getWork(),15);Panel pp5 = new Panel();pp5.add(jb5);pp5.add(jtf5);newf.getContentPane().add(pp5);JLabel jb6 = new JLabel("现居住地地址:");final JTextField jtf6 = new JTextField(u.getAddress(),15);Panel pp6 = new Panel();pp6.add(jb6);pp6.add(jtf6);newf.getContentPane().add(pp6);JButton bb1 = new JButton("提交");JButton bb2 = new JButton("关闭");Panel pp9 = new Panel();pp9.add(bb1);pp9.add(bb2);newf.getContentPane().add(pp9);bb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {u.setName(jtf1.getText());u.setTel(jtf2.getText());u.setPhone(jtf3.getText());u.setQq(jtf4.getText());u.setWork(jtf5.getText());u.setAddress(jtf6.getText());u.setEmail(jtf7.getText());u.setCategory(jtf8.getText());if(uService.update(u)){JOptionPane.showMessageDialog(null, "修改成功!");select();}else JOptionPane.showMessageDialog(null, "修改失败!"); }});bb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {newf.setVisible(false);}});}if(b5==e.getSource()){//实现全部联系人的导出File f=new File("user_information.txt");try {FileWriter w_file=new FileWriter(f);BufferedWriter b_file=new BufferedWriter(w_file);b_file.write("联系人编号\t姓名\t手机号码\t固定电话\tqq号码\temail\t类别\t工作\t现居住地地址\t");b_file.flush();for(User u:uService.getAllUser()){b_file.write(u.getId()+"\t"+u.getName()+"\t"+u.getTel()+"\t"+u.getP hone()+"\t"+u.getQq()+"\t"+u.getEmail()+"\t"+u.getCategory()+"\t"+u.getWork()+"\t"+u.g etAddress()+"\n");b_file.flush();}JOptionPane.showMessageDialog(null, "导出成功!");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}@Overridepublic void itemStateChanged(ItemEvent a) {int sum = Integer.parseInt(a.getItem().toString());flag=sum;}public void select(){if (choice.getSelectedItem().equals("姓名")) {//对姓名进行模糊查询uList.clear();for (User u : uService.getUser("name", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u :uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("类别")) {//对类别进行模糊查询uList.clear();for (User u : uService.getUser("category", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("手机号码")) {//对手机号码进行模糊查询uList.clear();for (User u : uService.getUser("tel", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("查询全部记录")) {//对全部的联系人进行查询uList.clear();for (User u : uService.getAllUser()){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}}}3、User类public class User {private int id;private String name;private String tel;private String email;private String phone;private String category;private String address;private String work;private String qq;public User() {super();// TODO Auto-generated constructor stub}public User(int id, String name, String tel, String email, String phone,String category, String address, String work,String q) {super();this.id = id; = name;this.tel = tel;this.email = email;this.phone = phone;this.category = category;this.address = address;this.work = work;this.qq=q;}public String getQq() {return qq;}public void setQq(String qq) {this.qq = qq;}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 getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getEmail() {return email;}public void setEmail(String email) { this.email = email;}public String getPhone() {return phone;}public void setPhone(String phone) { this.phone = phone;}public String getCategory() {return category;}public void setCategory(String category) { this.category = category;}public String getAddress() {return address;}public void setAddress(String address) { this.address = address;}public String getWork() {return work;}public void setWork(String work) {this.work = work;}}4、UserService类import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import .system.model.*;public class UserService extends DAO {/**** 方法目的:添加联系人* @param u* @return*/public boolean add(User u){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("insert into TB_user (name,tel,phone,qq,email,category,work,address) values(?,?,?,?,?,?,?,?)");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,u.getName());pst.setString(2,u.getTel());pst.setString(3,u.getPhone());pst.setString(4,u.getQq());pst.setString(5,u.getEmail());pst.setString(6,u.getCategory());pst.setString(7,u.getWork());pst.setString(8,u.getAddress());if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/***** 方法目的:根据编号删除联系人* @param id* @return*/public boolean delById(int id){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("delete from TB_user where id=?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setInt(1, id);if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/**** 方法目的:更新联系人* @param u* @return*/public boolean update(User u){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("update TB_user set name=?,tel=?,phone=?,qq=?,email=?,category=?,work=?,address=? where id=?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,u.getName());pst.setString(2,u.getTel());pst.setString(3,u.getPhone());pst.setString(4,u.getQq());pst.setString(5,u.getEmail());pst.setString(6,u.getCategory());pst.setString(7,u.getWork());pst.setString(8,u.getAddress());pst.setInt(9, u.getId());if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/***** 方法目的:根据条件进行模糊查询* @param n* @param v* @return*/public List<User> getUser(String n,String v){List<User> uList=new ArrayList<User>();StringBuilder sql=new StringBuilder();User u=null;sql.append("select * from TB_User where "+n+" like ?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,"%"+v+"%");rs=pst.executeQuery();while(rs.next()){u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAddress(rs.getString("address"));u.setCategory(rs.getString("category"));u.setEmail(rs.getString("email"));u.setPhone("phone");u.setTel(rs.getString("tel"));u.setQq(rs.getString("qq"));u.setWork(rs.getString("work"));uList.add(u);}pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return uList;}/*** 方法目的:得到全部的联系人* @return*/public List<User> getAllUser(){List<User> uList=new ArrayList<User>();StringBuilder sql=new StringBuilder();User u=null;sql.append("select * from TB_User");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());rs=pst.executeQuery();while(rs.next()){u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAddress(rs.getString("address"));u.setCategory(rs.getString("category"));u.setEmail(rs.getString("email"));u.setPhone("phone");u.setTel(rs.getString("tel"));u.setQq(rs.getString("qq"));u.setWork(rs.getString("work"));uList.add(u);}pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return uList;}}5、DAO类import java.sql.*;public class DAO {protected Connection con;protected Statement st;protected PreparedStatement pst;protected ResultSet rs;public static Connection getConnect(){Connection conn=null;Strings="jdbc:sqlserver://localhost:1433;databaseName=DB_WAB";try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection(s,"sa","0000");} catch (Exception e) {System.out.println("错误提示:0"+e.getMessage());// e.printStackTrace();}return conn;}}七、实习心得实习,顾名思义,在实践过程中学习。
名片通信录java课程设计
名片通信录java课程设计一、课程目标知识目标:1. 让学生掌握Java基础语法,特别是面向对象编程的基本概念;2. 使学生理解名片通信录项目的基本需求,掌握如何设计类与对象;3. 帮助学生掌握数组、字符串等基本数据结构在Java中的应用;4. 引导学生掌握简单的文件读写操作,实现数据的持久化存储。
技能目标:1. 培养学生运用Java语言解决实际问题的能力,具备基本的编程技巧;2. 培养学生分析项目需求、设计程序结构的能力,能够独立完成小型项目的开发;3. 提高学生的逻辑思维能力,使其能够运用所学知识解决复杂问题。
情感态度价值观目标:1. 培养学生面对编程挑战时保持积极、主动的态度,勇于克服困难;2. 培养学生的团队协作意识,学会与他人分享、交流编程经验;3. 培养学生的创新意识,激发学生探索新技术的兴趣。
本课程针对高年级学生,结合Java编程语言和实际项目案例,旨在提高学生的编程实践能力。
课程性质为实践性较强的学科,要求学生在掌握基本语法的基础上,学会运用所学知识解决实际问题。
通过本课程的学习,学生将能够独立完成名片通信录项目的开发,为今后进一步学习Java技术打下坚实基础。
二、教学内容1. Java基本语法复习:包括变量声明、数据类型、运算符、控制流程(条件语句、循环语句)等基础知识点;相关教材章节:第一章至第三章。
2. 面向对象编程概念:类与对象、构造方法、封装、继承、多态等;相关教材章节:第四章至第六章。
3. 数组与字符串:数组的使用、字符串操作及其在项目中的应用;相关教材章节:第七章、第十章。
4. 文件读写操作:文件输入输出流、文件操作在名片通信录中的应用;相关教材章节:第十八章。
5. 名片通信录项目实战:分析需求、设计类与对象、实现功能模块、整合测试;相关教材章节:综合案例。
教学进度安排:第一周:复习Java基本语法;第二周:学习面向对象编程概念;第三周:数组与字符串操作;第四周:文件读写操作;第五周至第六周:名片通信录项目实战。
原创Java通讯录管理系统设计报告
原创Java通讯录管理系统设计报告一、引言通讯录是人们生活中常用的工具,用于记录联系人的姓名、电话号码以及其他联系信息。
为了提高通讯录的管理效率和功能性,本文设计了一款基于Java的通讯录管理系统。
本系统通过Java编程语言实现,旨在提供用户友好的交互界面,使用户能够方便地添加、编辑、删除和搜索通讯录中的联系人信息。
系统还具备数据持久化的功能,保证数据的安全性和稳定性。
本文首先介绍了通讯录管理系统的需求分析,然后对系统的总体设计进行了详细说明,包括系统的架构设计、类的设计和关键功能的实现等。
接着介绍了系统的具体实现过程和测试结果,并对系统进行了性能分析和改进设想。
二、需求分析本系统需要满足以下需求:1.用户能够添加、编辑、删除和搜索通讯录中的联系人信息。
2.用户可以按照姓名、电话号码等条件进行搜索联系人。
3.系统需要提供用户友好的交互界面,使用户能够方便地操作系统。
4.数据需要持久化,确保数据的安全性和稳定性。
三、系统设计3.1 系统架构系统整体采用MVC(Model-View-Controller)架构,将数据、界面和控制逻辑分离,提高系统的可维护性和可扩展性。
系统包括以下几个模块:•Model:负责数据的存储和处理,包括通讯录信息的增删改查等操作。
•View:负责用户界面的展示和用户输入的处理,包括菜单显示、用户指令接收等。
•Controller:负责协调Model和View之间的交互,根据用户指令调用Model中的相应方法,并将结果返回给View进行展示。
3.2 类设计系统中主要包括以下几个类:•Contact:代表通讯录中的单个联系人,包含姓名、电话号码等属性。
•ContactList:代表整个通讯录,包含多个联系人,提供相关的增删改查方法。
•Menu:负责显示用户界面的菜单,接收用户输入的指令。
•Controller:负责根据用户指令调用相应的方法。
这些类之间的关系如下:┌─────────────────────┐│ Contact │├─────────────────────┤│- name: String ││- phoneNumber: String│└─────────────────────┘▲││┌─────────────────────┐│ ContactList │├─────────────────────┤│- contacts: List │├─────────────────────┤│+ addContact() ││+ deleteContact() ││+ updateContact() ││+ searchContact() │└─────────────────────┘▲││┌─────────────────────┐│ Menu │├─────────────────────┤│+ showMenu() ││+ getUserInput() ││+ executeCommand() │└─────────────────────┘▲││┌─────────────────────┐│ Controller │├─────────────────────┤│+ processCommand() │└─────────────────────┘3.3 关键功能实现3.3.1 添加联系人用户通过菜单选择添加联系人的功能,然后输入联系人的姓名和电话号码。
通讯录管理系统课程设计报告Java
通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。
本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。
通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。
2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。
- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。
- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。
- 修改联系人信息:用户可以对已保存的联系人信息进行修改。
- 删除联系人信息:用户可以删除通讯录中的联系人信息。
实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。
3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。
ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。
3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。
设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。
3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。
•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。
•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。
•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。
•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。
4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。
通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
课程设计 java通讯录
海南师范大学课程设计报告书课程名称:j a v a通讯录姓名:陈万洲学号:201224010203专业:计算机科学与技术所在院系:信息学院指导教师:文斌日期: 2013年12月20日海南师范大学课程设计(论文)任务书信息科学技术学院学院计算机科学与技术专业计本(1)班一、课程设计(论文)题目通讯录管理设计二、课程设计(论文)工作自 2013 年 9 月23 日起至2013 年10 月 13 日止。
三、课程设计(论文) 地点: 信息科学技术学院四、课程设计(论文)内容要求:1.本课程设计的目的(1)掌握java语言的程序设计方法;(2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。
2.课程设计的任务及要求1)课程设计任务:(1)设一个通信录由以下几项数据信息构成:数据项类型姓名字符串地址字符串邮政编码字符串电话号码字符串(2)1.主要功能:(1)能建立、查询、修改和增删学生通讯录(2)能够按多种方式进行查询(3)界面友好,易于操作2)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路--工作原理、功能规划(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。
(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。
(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(7)报告按规定排版打印,要求装订平整,否则要求返工;(8)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)(9)严禁抄袭,如有发现,按不及格处理。
4)参考文献:(1)《java面向对象程序设计》董晓国清华大学出版社(2)《java程序设计教程》迟丽华清华大学出版社学生签名:陈万洲2013 年12 月24 日通讯录管理系统的设计与实现学生姓名:陈万洲指导老师:文斌【中文摘要】这个基于java编写的个人通讯录管理系统含有添加、删除、查找等基本功能,采用的是JDBC-ODBC桥实现数据库的连接,ODBC数据源名称chengwz.mbd。
通讯录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 课题研究报告
设计名称:
ቤተ መጻሕፍቲ ባይዱ
软件课程设计
设计题目:
学生通讯录管理系统
专业班级:
12 软件技术
学生姓名: 岳文娟 冯君 李晓宁
lphone = new JLabel("电话:"); lphone.setBounds(380, 50, 40, 20); frame.getContentPane().add(lphone);
tphone = new JTextField(); tphone.setBounds(420, 50, 100, 20); frame.getContentPane().add(tphone);
JButton btnNewButton = new JButton("登录"); btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { String username=t_username.getText(); char[] password=t_password.getPassword(); if(username==null || "".equals(username)){ JOptionPane.showMessageDialog(null, "请输入 用户名", "
public JFrame frame; private JTextField t_username; private JPasswordField t_password; public Login() {
Java课程设计个人通讯录管理系统
功能描述:用户 可以添加新的联 系人信息
界面设计:简洁 明了,易于操作
数据存储:将新添 加的联系人信息存 储到数据库中
PART FOUR
使用JDBC(Java Database Connectivity) 技术进行数据库连接
连接数据库需要提供数据库URL、用户名、 密码等信息
使用Connection对象建立与数据库的连 接
性能优化: 采用索引、 缓存等技 术提高查 询效率
用户界面: 设计简洁、 易于使用 的查询界 面,方便 用户操作
操作流程:选择联系人,点 击删除按钮,确认删除
功能描述:删除指定联系人 信息
异常处理:删除失败时,提 示用户并重新尝试
数据库操作:删除联系人信 息,更新数据库记录
模块名称:添加 联系人
使用Statement或PreparedStatement对象 执行SQL语句
使用ResultSet对象获取查询结果
关闭数据库连接,释放资源
主界面:显 示通讯录列 表,包括姓 名、电话、 地址等信息
编辑界面: 编辑联系人 信息,包括 姓名、电话、 地址等
搜索界面: 根据姓名、 电话等信息 进行搜索
PART SIX
项目目标:实现个人通讯录管理系统 技术栈:Java、数据库、前端框架等 项目成果:实现了联系人管理、信息查询、数据备份等功能 项目挑战:数据库设计、前端交互、性能优化等 项目经验:团队协作、需求分析、代码规范等 未来展望:继续优化系统、增加新功能、提高用户体验等
收获:掌握了Java语言和面向对象编程的基本知识,提高了编程能力 收获:学会了如何设计一个完整的系统,包括需求分析、系统设计、编码实现和测试等环节 不足:在系统设计中,对某些功能的实现不够完善,需要进一步改进 不足:在编码实现中,对某些算法的效率不够高,需要进一步优化
java通讯录课程设计报告
JIANGXI AGRICULTURAL UNIVERSITYJA V A课程设计报告题目:通讯录系统二0一二年十二月摘要随着Internet速度的提高和使用的普及,网络上各式各样的应用层出不穷,通讯录系统就是其中的一种。
在现实生活中,我们管理通讯录有多种方式,为了进一步提高管理通讯录的效率以及及时更新通讯录,特开发通讯录系统来方便用户使用和管理通讯录。
本系统采用Ecilpse编写程序,具有良好的程序结构和人机交互界面,通用性强。
本文将从开发技术、需求分析、系统设计、编码实现和设计总结这几个方面,详细介绍通讯录系统的设计和实现过程。
关键词:通讯录系统;JA V A;Eclipse;需求分析。
目录1 绪论 (2)1.1 概述 (2)2 开发技术与工具选择 (2)2.1 Eclipse介绍 (2)2.1.1 Eclipse的基本概念 (2)2.1.2 Eclipse 插件开发环境 (2)2.1.3 Eclipse的主要组成 (2)3 需求分析 (3)3.1 概要说明 (3)3.2 产品描述 (3)3.3 系统功能列表 (3)3.4 系统功能说明 (3)3.4.1 <添加模块> (3)3.4.2 <查询模块> (3)3.4.3 <修改模块> (4)3.4.4 <删除模块> (4)3.5系统质量需求 (4)4 系统设计 (4)4.1说明 (4)4.2总体设计结构图 (4)4.3 总用例图 (5)4.4 流程图 (5)5 编码与实现 (8)5.1包结构图 (8)5.2主界面 (9)5.3组操作的页面 (9)5.4 好友操作界面 (10)6 项目设计总结 (11)6.1系统概述 (11)6.2关键问题的分析和解决 (11)6.3 系统展望 (11)6.4 自身收获 (11)致谢 (12)参考文献 (13)1 绪论1.1 概述本系统主要为方便用户管理通讯录而开发出来的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j a v a个人通讯录课程设计报告内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)别山东交通学院面向对象课程设计个人通信录管理信息系统的设计与实现院(系)别信息科学与电气工程学院班级学号姓名指导教师时间 2014-08-25—2014-09-5课程设计任务书题目个人通讯录管理系统院 (部) 信息科学与电气工程学院专业计算机科学与技术班级学生姓名学号08 月 25 日至 09 月 5 日共 2 周指导教师(签字)院长(签字)年月日成绩评定表目录课程设计概述本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力2本次课程设计主要目的及要求:设计一个通讯录管理软件,要求如下:增加记录、删除记录、显示所有记录、查询记录、文件备份、退出。
通讯录记录信息包括:姓名,电话,email等。
(1)通讯录的每一条信息包括姓名,单位,电话!(可用数组或数据库);(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示);(4)查找功能:完成按姓名查找通讯信息;(5)删除功能:完成按姓名删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
3.设计思想:个人通讯录件的功能模块有:(1)提供登陆界面,方便用户进入,满足需求;(2)添加:可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;(3)显示:可以以表格形式输出所有通讯录里的记录;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注即可完成修改;(6)删除:可以直接删除多余的通讯录记录;(7)帮助:可以在帮助里面修改用户密码;(8)导出数据库:可以将数据库以文本txt格式导出。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
1.1总体设计流程图图2-1 总体设计流程2程序测试2.1登陆界面图4-1 登陆界面相关代码:public Loginframe() {login = new JDialog(Myaddress.myFrame, "个人通讯录登入界面", true);login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); login.setLocationRelativeTo(null);login.setLayout(new GridLayout(3, 0));username = new TextField(10);password = new TextField(10);username.setText("");password.setText("");certain = new JButton("certain");cancel = new JButton("cancel");certain.addActionListener(new LoginIn());cancel.addActionListener(new LoginIn());JLabel lb1 = new JLabel("用户名:");JLabel lb2 = new JLabel("密码:");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();p1.add(lb1);p1.add(username);p2.add(lb2);p2.add(password);password.setEchoChar('*');p3.add(certain);p3.add(cancel);login.setSize(300, 200);login.add(p1);login.add(p2);login.add(p3);login.setVisible(true);login.pack();}public static void main(String[] args) {new Loginframe();}}点击“certain”,登录成功,点击确定,进入个人通讯录管理系统,个人通讯录管理系统界面相关代码:public Loginframe() {login = new JDialog(Myaddress.myFrame, "个人通讯录登入界面", true);login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);login.setLocationRelativeTo(null);login.setLayout(new GridLayout(3, 0));username = new TextField(10);password = new TextField(10);username.setText("");password.setText("");certain = new JButton("certain");cancel = new JButton("cancel");certain.addActionListener(new LoginIn()); cancel.addActionListener(new LoginIn()); JLabel lb1 = new JLabel("用户名:"); JLabel lb2 = new JLabel("密码:"); JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();p1.add(lb1);p1.add(username);p2.add(lb2);p2.add(password);password.setEchoChar('*');p3.add(certain);p3.add(cancel);login.setSize(300, 200);login.add(p1);login.add(p2);login.add(p3);login.setVisible(true);login.pack();}public static void main(String[] args) {new Loginframe();}}2.点击左上角的“文件—导出数据库”,public Fdkeep() {fdsave = new JDialog(Myaddress.myFrame, "导出数据", true);fdsave.setLocationRelativeTo(null);fdsave.setLayout(new GridLayout(2, 0));JLabel labelSave = new JLabel("输入保存的完整的路径:");JLabel labele1 = new JLabel("例如:D:" + "\\" + "w.text");saveok = new JButton("save");savegp = new JButton("give up");lbSave = new TextField(10);saveok.addActionListener(new FileExportDBAction());savegp.addActionListener(new FileExportDBAction());JPanel p9 = new JPanel();JPanel p10 = new JPanel();p9.add(labelSave);p9.add(lbSave);p9.add(labele1);p10.add(saveok);p10.add(savegp);fdsave.add(p9);fdsave.add(p10);fdsave.pack();fdsave.setVisible(true);}}2.2添加界面点击“保存”将新加的信息加入数据库,系统会告知“添加成功”。
相关代码:public class Panelframeaction implements ActionListener {String sql1;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) {if (((JButton) e.getSource()).getText().equals("保存")) {String nname, sx, bday, mphone, phone, compay, email, home, group, note, msnqq;nname = Panelframe.lbName.getText();sx = Panelframe.sex.getSelectedItem();bday = Panelframe.BirthdayYear.getSelectedItem() + "-"+ Panelframe.BirthdayMonth.getSelectedItem() + "-"+ Panelframe.BirthdayDay.getSelectedItem();mphone = Panelframe.lbMobilephone.getText();phone = Panelframe.lbTelephone.getText();compay = Panelframe.lbCompany.getText();email = Panelframe.lbMail.getText();home = Panelframe.lbaddress.getText();group = Panelframe.Group.getSelectedItem();note = Panelframe.lbNote.getText();msnqq = Panelframe.lbMail.getText();try {con = new Connect().getConnection();stmt = con.createStatement();sql1 = "INSERT INTO address " + "VALUES(\'" + nname + "\',\'"+ sx + "\'," + bday + ",\'" + mphone + "\',\'" + phone+ "\',\'" + compay + "\',\'" + email + "\',\'" + home+ "\',\'" + group + "\',\'" + note + "\',\'" + msnqq+ "\')";stmt.executeUpdate(sql1);JOptionPane.showMessageDialog(null, "添加成功");Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(newImage());Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);stmt.close();con.close();} catch (Exception ex) {ex.printStackTrace();}}if (((JButton) e.getSource()).getText().equals("取消")) {Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image());Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);}if (((JButton) e.getSource()).getText().equals("退出查询界面")) {Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image());Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);}if (((JButton) e.getSource()).getText().equals("保存修改")) {String sx, bday, mphone, phone, compay, email, home, group, note, msnqq;sx = Panelframe.sex.getSelectedItem();bday = Panelframe.BirthdayYear.getSelectedItem() + "-"+ Panelframe.BirthdayMonth.getSelectedItem() + "-"+ Panelframe.BirthdayDay.getSelectedItem();mphone = Panelframe.lbMobilephone.getText();phone = Panelframe.lbTelephone.getText();compay = Panelframe.lbCompany.getText();email = Panelframe.lbMail.getText();home = Panelframe.lbaddress.getText();group = Panelframe.Group.getSelectedItem();note = Panelframe.lbNote.getText();msnqq = Panelframe.lbMail.getText();try {con = new Connect().getConnection();stmt = con.createStatement();sql1 = "update address set 性别=\'" + sx + "\' , 生日= " + bday+ " , 移动电话=\'" + mphone + "\' ,固定电话=\'" + phone+ "\'" + " , 公司地址=\'" + compay + "\' , EMail=\'"+ email + "\' , 家庭地址=\'" + home + "\' , 组别= \'"+ group + "\' , 备注=\'" + note + "\' , MSNQQ=\'"+ msnqq + "\' where 姓名=\'" + QueryFrame.n + "\'";int aa = stmt.executeUpdate(sql1);stmt.hashCode();System.out.print(QueryFrame.n);if (aa > 0) {JOptionPane.showMessageDialog(null, "修改成功");Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image());Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);} else {JOptionPane.showMessageDialog(null, "修改失败");}stmt.close();con.close();} catch (Exception ex) {ex.printStackTrace();}}}}选择“编辑—删除”,按照提示输入删除的用户名点击“删除”后,则系统会提示“删除成功”相关代码:public class deleteFrameaction implements ActionListener {String sql;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) {deleteFrame.delFrame.setVisible(false);//删除界面不可见if (((JButton) e.getSource()).getText().equals("删除")) {String nn = deleteFrame.lbDel.getText();//try {con = new Connect().getConnection();stmt = con.createStatement();sql = "delete from address where 姓名=" + "\'" + nn.trim() + "\'";stmt.executeUpdate(sql);JOptionPane.showMessageDialog(null, "删除成功");stmt.close();con.close();//结束连接} catch (Exception ex) {System.out.println("Exception:" +ex.getMessage());}deleteFrame.lbDel.setText("");}if (((JButton) e.getSource()).getText().equals("放弃")) {deleteFrame.delFrame.setVisible(false);}}}点击“文件—按姓名查找”,输入所需要查找的用户名图4-13 查找记录点击“查询”,系统会对数据库进行查找,并提示“查找结束”相关代码:public QueryFrame() {findFrame = new JDialog(Myaddress.myFrame, "查找记录", true);//查找可见findFrame.setLocationRelativeTo(null);//查找地址不为空findFrame.setLayout(new GridLayout(2, 0));//网格大小JLabel labelFind = new JLabel("输入所要查询的用户名:");findok = new JButton("查询");findgp = new JButton("撤消");lbFind = new TextField(10);findok.addActionListener(new QueryAction());findgp.addActionListener(new QueryAction());JPanel p4 = new JPanel();//容器JPanel p6 = new JPanel();p4.add(labelFind);p4.add(lbFind);p6.add(findok);p6.add(findgp);findFrame.add(p4);findFrame.add(p6);findFrame.pack();findFrame.setVisible(true);}}以上通过了正确查找和错误两方面充分论证了查找功能的正常运行。