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课程设计

班级通信录java课程设计一、课程目标知识目标:1. 学生能掌握Java基础语法,包括数据类型、变量、运算符等。

2. 学生能理解面向对象编程的基本概念,如类、对象、封装、继承、多态。

3. 学生能运用Java集合框架,如List、Map等,实现班级通信录的数据存储和操作。

4. 学生了解Java异常处理机制,能够处理程序运行过程中可能出现的错误。

技能目标:1. 学生能够独立设计并编写一个班级通信录程序,实现添加、删除、查询、修改等功能。

2. 学生能够运用所学知识,解决实际编程过程中遇到的问题,具备一定的调试和优化能力。

3. 学生能够通过编写程序,锻炼逻辑思维和编程能力,提高问题解决能力。

情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,树立正确的计算机科学观念。

2. 学生能够通过团队协作,共同完成班级通信录项目,培养合作精神和沟通能力。

3. 学生能够认识到编程在生活中的实际应用,激发学习动力,提高自我成就感。

课程性质:本课程属于实践性较强的课程,要求学生结合所学知识,独立设计并实现班级通信录程序。

学生特点:学生处于高年级阶段,已具备一定的Java编程基础,有较强的自学能力和问题解决能力。

教学要求:教师需引导学生运用所学知识,注重实践操作,培养学生的编程能力和实际应用能力。

在教学过程中,关注学生的个体差异,提供有针对性的指导。

通过课程学习,使学生能够达到上述课程目标,实现学习成果的分解和评估。

二、教学内容1. Java基础语法复习:数据类型、变量、常量、运算符、控制语句(条件语句、循环语句)。

2. 面向对象编程概念:类与对象、构造方法、封装、继承、多态。

3. Java集合框架:List接口、ArrayList类、Map接口、HashMap类。

4. 异常处理:异常的概念、try-catch语句、finally语句、自定义异常。

5. 班级通信录程序设计:- 界面设计:使用控制台或图形界面进行交互。

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课程设计(通讯录管理系统)

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

班级通讯录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.理解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课程设计报告题目小小通讯录所在院系计科院学生姓名潘万鹏、余冬林专业计算机科学与技术班级计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通讯录(内含源代码)

JA V A课程设计实验报告学校:江西农业大学班级:软件1115班姓名:***学号:********课程:JA V A通讯录指导教师:***2012.12.29一、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java 课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。

1、掌握类的定义及应用方法2、掌握对象的创建方法,了解实例变量、实例方法和静态字段的特征3、体会java在中类和对象的面向对象的设计思想二、实验内容本次课程设计是开发一个简易的、小型的通讯录,我们命名为“通讯录”。

通讯录保存在计算机中,便于分组,还便于增加、修改、删除好友信息。

设计一个通讯录管理软件,要求如下:增加组、删除组、修改组、查询好友、添加好友、修改好友,删除好友,退出。

通讯录好友信息包括:姓名,电话,手机,住址,性别等。

(1)通讯录的每一条信息包括姓名,电话,电话;(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(可现实多个好友和好友分组);(4)查找功能:完成按姓名查找通讯信息;(5)删除功能:完成按姓名删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三、实验要求1、对系统进行功能模块分析、功能模块分析正确;2、系统设计要有经济价值,要实用;3、编程简练,可用,功能全面,具有较好的健壮性;4、系统界面外观和布局,可个性化设计,总体原则是“界面简洁、操作便捷”;5、说明书、流程图要清楚;6、应用程序打包发布。

四,设计思路1程序设计总体思路通讯录的功能模块有:(1)提供显示主界面,方便用户操作,满足需求;(2)添加:可以添加通讯录好友分组和好哦与信息,依次输入姓名、性别、手机、固定电话、地址、组别、归属组等;(3)显示:可以显示输出所有通讯录里信息;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、电话、手机、地址、组别、可完成修改,也可以修改组名;(6)删除:可以直接删除好友分组及里面的好友,也可以单独删除好友;(7)帮助:可以在帮助里面;程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。

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

原创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

通讯录管理系统课程设计报告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通讯录

海南师范大学课程设计报告书课程名称: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课程设计

通讯录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通讯录(内含源代码)

JA V A课程设计实验报告学校:农业大学班级:软件1115班:朱利斌学号:20111976课程:JA V A通讯录指导教师:邓老师2012.12.29一、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java 课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。

1、掌握类的定义及应用方法2、掌握对象的创建方法,了解实例变量、实例方法和静态字段的特征3、体会java在中类和对象的面向对象的设计思想二、实验容本次课程设计是开发一个简易的、小型的通讯录,我们命名为“通讯录”。

通讯录保存在计算机中,便于分组,还便于增加、修改、删除好友信息。

设计一个通讯录管理软件,要求如下:增加组、删除组、修改组、查询好友、添加好友、修改好友,删除好友,退出。

通讯录好友信息包括:,,手机,住址,性别等。

(1)通讯录的每一条信息包括,,;(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(可现实多个好友和好友分组);(4)查找功能:完成按查找通讯信息;(5)删除功能:完成按删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三、实验要求1、对系统进行功能模块分析、功能模块分析正确;2、系统设计要有经济价值,要实用;3、编程简练,可用,功能全面,具有较好的健壮性;4、系统界面外观和布局,可个性化设计,总体原则是“界面简洁、操作便捷”;5、说明书、流程图要清楚;6、应用程序打包发布。

四,设计思路1程序设计总体思路通讯录的功能模块有:(1)提供显示主界面,方便用户操作,满足需求;(2)添加:可以添加通讯录好友分组和好哦与信息,依次输入、性别、手机、固定、地址、组别、归属组等;(3)显示:可以显示输出所有通讯录里信息;(4)查询:可以用查询;(5)修改:输入欲修改的那个人的名字后,再依次输入、性别、、手机、地址、组别、可完成修改,也可以修改组名;(6)删除:可以直接删除好友分组及里面的好友,也可以单独删除好友;(7)帮助:可以在帮助里面;程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。

java课程设计实验报告通讯录导出.62

java课程设计实验报告通讯录导出.62

石河子大学信息学院数据库与Java课程设计报告专业:计算机科学与技术学生姓名:指导教师:余小平日期: 2021/1/2第一章引言 (2)第二章需求分析 (2)§2.1 信息要求 (2)通话记录 (2)通讯录 (3)§2.2 处理要求 (3)通话记录 (3)通讯录 (3)§2.3 平安性与完整性要求 (3)第三章概念结构设计 (4)§3.1 实体描述 (4)实体集及属性描述 (4)§3.2 E-R图 (5)E-R图及实体集属性的计算方法 (5)第四章逻辑结构设计 (6)§41 数据字典 (6)通话记录表 (6)通讯录表 (7)§4.2 工作流程及用户子模式设计 (7)用户工作流程及子模式设计 (7)第五章系统详细设计 (7)§ (7)通话记录表 (7)关系查询 (8)§ (11)查询模块 (11)结合源代码和操作界面详细分析 (11)第六章本人学习数据库和Java程序设计的心得体会 (17)参考文献 (18)<通话记录管理系统的设计与实现>第一章引言随着数据处理的不断进步和计算机网络的迅速开展,使数据库应用系统不仅在功能而且在结构上都有了深刻的变化,而且运用在生活的每一个方面。

通过学习关系代数,关系演算,函数依赖,关系模式分解,关系模式的标准化让我们建立了扎实的关系数据库理论根底。

而在掌握根本理论的根底上掌握关系数据库的设计方法,掌握现代信息系统的开发方法也显得尤为必要。

目前在关系数据库中用得最多的SQL数据库,开发数据库的语言工具。

所以对于计算机专业的学生来说掌握数据库应用的根本技术,熟悉编程语言与SQL数据库的结合运用是我们计算机专业学生之必备本领。

熟练掌握数据库的工作原理利用查询分析获得更多有用的信息,利用JDBC连接数据库与java,实现更多的功能。

第二章需求分析§2.1 信息要求通话记录通过电信,联通,移动官网下载用户通话记录,对于客户我们应该知道他的他的通话详单〔运营商、本机号码、对方号码、起始时间、通过时长、呼叫类型、通话地点、通话的费用等〕,在其中设置相应的属性。

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

JIANGXI AGRICULTURAL UNIVERSITY
JA 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 概述
本系统主要为方便用户管理通讯录而开发出来的。

随着计算机的普及,将通讯录保存在计算机内已经代替了纸质的通讯录。

将通讯录保存在电脑中不仅十分的便利而且还能及时的进行数据的更新,防止数据的丢失。

在通讯录系统中,你可以对联系人进行分类,比如家人、好友、同学等,在分好组后,你可以在每个组内相应的增加成员。

同时可以不断增添、修改或者删除组以满足用户的需求。

当用户需要查询联系人时可以直接通过搜索名字来获得联系人信息,或者在分组中查询联系人。

本系统大大提高了查询的工作效率,为用户提高了更多的便利。

2 开发技术与工具选择
2.1 Eclipse介绍
2.1.1 Eclipse的基本概念
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++ 、 COBOL、PHP 等编程语言的插件已经可用,或预计将会推出。

Eclipse 框架还可作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

2.1.2 Eclipse插件开发环境
Eclipse的插件机制是轻型软件组件化架构。

在客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。

已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。

插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

2.1.3 Eclipse的主要组成
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。

它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。

JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。

它提供建造块和构造并运行集成软件开发工具的基础。

Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

3 需求分析
3.1 概要说明
本文编写的目的在于使用户和软件开发者双方对该软件的初始规定有一个共同的理解,规定和控制项目开发的内容,保证本项目的需求分析活动在受控状态下进行,在进行软件开发前,明确本系统应达到的目标,对系统的目标做出完整、准确、清晰、具体的要求。

保证本需求分析的结果能够完整、无遗漏地反映本系统的要求。

3.2 产品描述
管理联系人的通讯方式有很多种,但随着计算机的不断普及,将通讯录保存在计算机内已经代替了纸质的通讯录。

将通讯录保存在电脑中不仅十分的便利而且还能及时的进行数据的更新,防止数据的丢失。

本系统分为四个模块,分别是添加模块、查询模块、修改模块和删除模块。

3.3 系统功能列表
3.4 系统功能说明
3.4.1 <添加模块>
用户进入系统后,显示通讯录界面,用户可根据自己的需求进行组的添加,比如家人、好友、同学等。

在把联系人的信息相应的添加到分组中去。

3.4.2 <查询模块>
进入系统后,显示通讯录界面,用户可通过输入联系人的姓名进行查询,若通讯录中有该联系人,则显示联系人的信息,包括姓名,手机号码等。

3.4.3 <修改模块>
用户可对分组进行修改,把原有的组名换成新的组名,同时也可通过查询联系人,对联系人的信息和分组进行修改,更新通讯录。

3.4.4 <删除模块>
进入系统后,用户可根据需要删除通讯录用已有的分组和成员,把不需要的数据清除掉。

3.5系统质量需求
系统质量需求表
4 系统设计
4.1说明
概要设计主要是把项目分类和分析各接口之间的关系,让各个模块之间更好的协同工作。

4.2总体设计结构图
4.3 总用例图
4.4 流程图
1.组操作流程
2.好友操作流程图
5 编码与实现5.1包结构图
5.2主界面
通过主界面,可以进行接下来的操作,组操作里包括添加组、删除组、修改组名,好友操作里包括查询好友、添加好友、修改好友、删除好友。

5.3组操作的页面
5.4 好友操作界面
6 项目设计总结
6.1系统概述
系统开发所使用的工具如下:JDK为JDK1.6.0,Eclipse为eclipse3.7.2-win32。

6.2关键问题的分析和解决
在本系统开发的过程中,遇到的主要问题是建树的问题。

为此上网搜寻了相关资料,并查阅了相关书籍,同时询问了其他同学采用的方法,最终问题得到了解决。

在建树问题中,先建树然后把树加入滚动面板中,然后根据需要往树中添加父节点及子节点。

6.3 系统展望
由于自身知识的积累不够,所以本系统仍存在许多不足和不完善的地方。

在系统的开发过程中,只能实现一些基本的功能,找出编程中出现的错误,尽量保证系统功能的实现和完善。

对于系统中仍存在的不足,今后会学习更多相关的知识来完善系统。

6.4 自身收获
从设计通讯录界面到功能的实现,在完成通讯录系统的过程中我得到了很大的收获。

比如编程规范以及选取怎样的类才能更好地实现功能,同时以前自己没有注意的
东西在编程过程中也得到了锻炼。

在完成通讯录的过程中遇到了很多问题,但在老师和同学的帮助下均得到了解决。

在以后的编程过程中,自己也将继续不断养成良好的编程习惯,不断学习和锻炼自己的实践能力。

致谢
本系统在制作过程中遇到不少问题,在此要感谢我的指导老师邓泓,感谢他在编制过程中对系统实现方法和思路上做出正确的指导。

同时老师也很注意编程规范以及一些细节问题,督促我们养成良好的编程习惯,注意理清自己的编程思路,并要求我们不断加强自学能力,培养好自己的动手能力。

在此向老师表示衷心感谢!
参考文献
[1] 王映龙,邓泓等.Java程序设计.中国农业出版社
[2] 杨文军,董玉涛等.Java程序设计教程. 北京:清华大学出版社。

相关文档
最新文档