java个人通讯录课程设计报告

合集下载

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语言独立完成个人通讯管理系统的开发,培养学生的实际编程能力和问题解决能力。

情感态度价值观目标培养学生的创新意识,提高学生对计算机科学和软件工程的兴趣,使学生认识到信息技术在现代社会中的重要性和应用价值。

二、教学内容教学内容主要包括个人通讯管理系统的基本概念、设计方法和实现技术。

首先,介绍个人通讯管理系统的发展历程、功能和特点,使学生了解个人通讯管理系统的背景和应用场景。

其次,讲解个人通讯管理系统的设计方法,包括需求分析、系统设计、模块划分等,培养学生的问题分析和设计能力。

然后,教授Java语言的基本语法、数据结构和常用类库,使学生能够熟练使用Java语言进行编程。

最后,结合实际案例,讲解个人通讯管理系统的实现技术,包括数据库设计、界面设计、功能实现等,培养学生的实际编程能力和问题解决能力。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

首先,通过讲授法向学生传授个人通讯管理系统的基本概念、设计方法和实现技术。

其次,通过讨论法激发学生的思考和讨论,培养学生的创新意识和问题解决能力。

然后,通过案例分析法让学生结合实际案例进行分析和设计,提高学生的实际编程能力和问题解决能力。

最后,通过实验法让学生动手实践,培养学生的实际操作能力和问题解决能力。

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

教材和参考书用于向学生传授个人通讯管理系统的基本概念、设计方法和实现技术。

多媒体资料用于辅助讲解和展示,使学生更直观地理解个人通讯管理系统的设计和实现。

实验设备用于让学生动手实践,培养学生的实际操作能力。

此外,还可以利用网络资源,如在线编程平台、开源个人通讯管理系统等,为学生提供更多的学习资源和实践机会。

通讯录课程设计 Java

通讯录课程设计 Java

攀枝花学院课程设计题目:通讯录院(系):数学与计算机学院年级专业: 12网络工程*名:**学号: ************ 指导教师:***二〇一三年十二月三十日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。

摘要通讯工具在平常百姓家中已经是非常常见。

用Java语言开发这个强大通讯录以实现我们对大量的人员的通信信息予以记录。

以便我们使用方便。

我们可以往这个通信录系统中添加数据,也可以对记录进行修改,删除。

这样大大提高了我们的通信管理效率。

随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。

要记住所有的联系方式似乎有些困难,所以我们希望设计一个通讯录系统,记录所有的联系方式,并且能方便的查找,增加和删除,方便大家记录联系人。

当前计算机软件技术和网络技术正飞速发展,软件系统日趋大型化、复杂化,软件对于一个计算机系统是至关重要的。

因此社会对软件开发者提出了比以往更高的要求,相应的系统要求也有了很大的提高。

本系统用C++作为程序语言,设计出的系统功能强大,操作方便灵活。

关键词:通讯录;java; 数据;查询;-Ⅰ-目录摘要 (Ⅰ)1需求分析 (6)1.1需求来源 (6)1.2设计目的 (6)1.3设计要求 (6)2 功能需求描述 (6)3 总体设计 (6)3.1 功能介绍 (7)3.2 系统模块结构 (7)3.3 系统总设计流程图 (7)4 概要设计 (8)4.1登录功能界面 (8)4.2添加功能界面 (9)4.3删除功能界面 (9)4.4查询功能界面 (10)4.5统计功能界面 (10)5程序与分析 (11)5.1登陆系统 (11)5.2增加纪录 (13)5.3 删除记录 (14)5.4修改记录 (15)5.5查找记录 (17)致谢 (18)参考文献 (19)1 需求分析1.1需求来源随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。

要记住所有的联系方式似乎有些困难,所以我们希望设计一个通讯录系统,记录所有的联系方式,并且能方便的查找,增加和删除,方便大家记录联系人。

java课程设计通讯录

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课程设计任务书 个人通讯录系统的设计与开发.

java课程设计任务书 个人通讯录系统的设计与开发.

武汉理工大学华夏学院课程设计报告书课程名称: JAVA课程设计题目:个人通讯录系统的设计与开发系名:信息工程系专业班级:计网1092姓名:学号:30710909304指导教师: 邱珊凌伟2011年12 月25日课程设计任务书学生姓名:专业班级:指导教师:邱珊凌伟工作单位:信息工程系设计题目:个人通讯录系统的设计与开发。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个个人通讯录系统, 包括使用JAVA SWING技术进行前台用户界面的设计和开发; 后台关系数据库的设计以及使用JDBC技术与后台数据库进行连接, 并能调试运行。

该系统将能够实现用户登录功能,并对群组信息和联系人信息进行增加,删除,修改和查询的功能。

系统总体架构如下:设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:宣传小报的设计排版【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP 【开发工具】 word 2000【完成时间】2008-1 –11-----2008.1.17【需求分析】分析阐述用户的管理需要以及对应到要实现的管理系统应具有什么样的功能。

【系统总体设计】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。

让读者了解方案的总体设计和关键技术。

要阐述自己的设计方案,说明为什么要选择或设计这样的方案。

具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图;各功能模块所要达到的设计目标的简单介绍;设计的数据字典(数据库、表的结构);使用的设计软硬件环境和开发技术和平台等。

【系统详细设计】在这部分中,要将整个开发工作的内容进行详细的介绍。

一般按照功能模块分成几部分来介绍。

每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。

【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。

基于JAVA个人通讯录管理系统开发与设计

基于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通讯录应用程序。

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

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

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

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

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

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

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

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

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

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

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

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

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

JComboBox:用于选择搜索条件。

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

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

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

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

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

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

java课程设计报告之个人通讯录管理程序

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;}}七、实习心得实习,顾名思义,在实践过程中学习。

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

别山东交通学院面向对象课程设计个人通信录管理信息系统的设计与实现院(系)别信息科学与电气工程学院班级学号姓名指导教师时间2014-08-25—2014-09-5课程设计任务书题目个人通讯录管理系统院 (部) 信息科学与电气工程学院专业计算机科学与技术班级学生姓名学号08 月 25 日至 09 月 5 日共 2 周指导教师(签字)院长(签字)年月日成绩评定表目录1课程设计概述......................................................................................... 错误!未定义书签。

个人通讯录功能概述..................................................................... 错误!未定义书签。

开发环境概述................................................................................. 错误!未定义书签。

2个人通讯录系统总体设计..................................................................... 错误!未定义书签。

个人通讯录总体设计思想............................................................. 错误!未定义书签。

总体设计流程图............................................................................. 错误!未定义书签。

3个人通讯录系统详细设计..................................................................... 错误!未定义书签。

4程序测试................................................................................................. 错误!未定义书签。

登陆界面......................................................................................... 错误!未定义书签。

删除界面......................................................................................... 错误!未定义书签。

添加界面......................................................................................... 错误!未定义书签。

查找实现......................................................................................... 错误!未定义书签。

设计体会及今后的改进意见......................................................................... 错误!未定义书签。

课程设计概述本课程设计是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, "个人通讯录登入界面", true);(DO_NOTHING_ON_CLOSE);(null);(new GridLayout(3, 0));username = new TextField(10);password = new TextField(10);("");("");certain = new JButton("certain");cancel = new JButton("cancel");(new LoginIn());(new LoginIn());JLabel lb1 = new JLabel("用户名:");JLabel lb2 = new JLabel("密码:");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();(lb1);(username);(lb2);(password);('*');(certain);(cancel);(300, 200);(p1);(p2);(p3);(true);();}public static void main(String[] args) { new Loginframe();}}点击“certain”,登录成功,点击确定,进入个人通讯录管理系统,个人通讯录管理系统界面相关代码:public Loginframe() {login = new JDialog, "个人通讯录登入界面", true);(DO_NOTHING_ON_CLOSE);(null);(new GridLayout(3, 0));username = new TextField(10);password = new TextField(10);("");("");certain = new JButton("certain");cancel = new JButton("cancel");(new LoginIn());(new LoginIn());JLabel lb1 = new JLabel("用户名:");JLabel lb2 = new JLabel("密码:");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();(lb1);(username);(lb2);(password);('*');(certain);(cancel);(300, 200);(p1);(p2);(p3);(true);();}public static void main(String[] args) { new Loginframe();}}2.点击左上角的“文件—导出数据库”,public Fdkeep() {fdsave = new JDialog, "导出数据", true);(null);(new GridLayout(2, 0));JLabel labelSave = new JLabel("输入保存的完整的路径:");JLabel labele1 = new JLabel("例如:D:" + "\\" + "");saveok = new JButton("save");savegp = new JButton("give up");lbSave = new TextField(10);(new FileExportDBAction());(new FileExportDBAction());JPanel p9 = new JPanel();JPanel p10 = new JPanel();(labelSave);(lbSave);(labele1);(saveok);(savegp);(p9);(p10);();(true);}}2.2添加界面点击“保存”将新加的信息加入数据库,系统会告知“添加成功”。

相关代码:public class Panelframeaction implements ActionListener {String sql1;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) {if (((JButton) ()).getText().equals("保存")) {String nname, sx, bday, mphone, phone, compay, email, home, group, note, msnqq;nname = sx = bday = + "-"+ + "-"+ mphone = phone = compay = email = home = group = note = msnqq =try {con = new Connect().getConnection();stmt = ();sql1 = "INSERT INTO address " + "VALUES(\'" + nname + "\',\'"+ sx + "\'," + bday + ",\'" + mphone + "\',\'" + phone+ "\',\'" + compay + "\',\'" + email + "\',\'" + home+ "\',\'" + group + "\',\'" + note + "\',\'" + msnqq+ "\')";(sql1);(null, "添加成功");Image());();();} catch (Exception ex) {();}}if (((JButton) ()).getText().equals("取消")) {Image());}if (((JButton) ()).getText().equals("退出查询界面")) {Image());}if (((JButton) ()).getText().equals("保存修改")) {String sx, bday, mphone, phone, compay, email, home, group, note, msnqq;sx = bday = + "-"+ + "-"+ mphone = phone = compay = email = home = group = note = msnqq =try {con = new Connect().getConnection();stmt = ();sql1 = "update address set 性别=\'" + sx + "\' , 生日= " + bday+ " , 移动电话=\'"+ mphone + "\' , 固定电话=\'" + phone+ "\'" + " , 公司地址=\'" + compay + "\' , EMail=\'"+ email + "\' , 家庭地址=\'" + home + "\' , 组别= \'"+ group + "\' , 备注=\'"+ note + "\' , MSNQQ=\'"+ msnqq + "\' where 姓名=\'" + + "\'";int aa = (sql1);();if (aa > 0) {(null, "修改成功");Image());} else {(null, "修改失败");}();();} catch (Exception ex) {();}}}}选择“编辑—删除”,按照提示输入删除的用户名点击“删除”后,则系统会提示“删除成功”相关代码:public class deleteFrameaction implements ActionListener { String sql;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) {删除界面不可见if (((JButton) ()).getText().equals("删除")) {String nn =try {con = new Connect().getConnection();stmt = ();sql = "delete from address where 姓名=" + "\'" + () + "\'";(sql);(null, "删除成功");();();etText().equals("放弃")) {}}}点击“文件—按姓名查找”,输入所需要查找的用户名图4-13 查找记录点击“查询”,系统会对数据库进行查找,并提示“查找结束”相关代码:public QueryFrame() {findFrame = new JDialog, "查找记录", true);etText().equals("显示查询结果")) {String nm, sx, mp, ph, em, ca, ha, nb, gp, lbMQ, all; boolean bdr;Date bd;try {con = new Connect().getConnection();stmt = ();sql = "SELECT*FROM address";ResultSet ws = (sql);while ()) {nm = (1);sx = (2);bd = (3);mp = (4);ph = (5);ca = (6);em = (7);ha = (8);gp = (9);nb = (10);lbMQ = (11);all = "姓名" + nm + " 性别" + sx + " 生日" + bd+ " 移动电话" + mp + " 固定电话" + ph + " MSN/QQ"+ lbMQ + " 公司地址"+ ca + " EMail"+ em+ " 家庭地址" + ha + " 组别"+ gp + " 备注" + nb+ "\n";}();();} catch (Exception ex){"Exception:" + ());}}if (((JButton) ()).getText().equals("退出全部查询")) { "");}}}数据库建表:密码修改功能无法实现至此,个人通讯录管理系统的调试运行全部完成。

相关文档
最新文档