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语言课程设计报告(电话号码查询系统)

摘要系统主要功能包括:实现添加联系人的姓名和手机号码家庭电话号码和办公号码,并且连接进数据库,将信息储存进数据库文件中去,添加成功弹出添加成功的对话框,对话框中的信息可以重置。
消息对话框负责显示消息,调用其静态方法显示警告信息。
要求在文本框中显示姓名,手机号码,家庭电话,办公电话等用户信息。
添加姓名,手机号码,家庭电话,办公电话等信息到数据库中,同样需要连接SQLSERVER2005数据库,用户的图形界面要求在文本框中显示姓名,手机号码,家庭电话,办公电话等用户信息。
修改姓名,手机号码,家庭电话,办公电话等信息到数据库中,同样需要连接SQLSERVER2005数据库,用户的图形界面要求在文本框中显示姓名,手机号码,家庭电话,办公电话等用户信息。
对已经存储的信息进行查询,而客户的具体需求多样,为了给客户营造更多的便利,可以将软件的查询细分为按整体进行查询模糊查询和精确查询和整体查询,模糊查询允许用户用较为模糊的查询条件,比如信息的姓来进行查询。
实现了满足用户需求的多样化。
对已经存储的信息进行查询,而客户的具体需求多样,为了给客户营造更多的便利,可以将软件的查询细分为按整体进行查询模糊查询和精确查询和整体查询,整体查询允许用户用整体的查询条件,比如信息的姓来进行查询。
实现了满足用户需求的多样化。
本论文内容主要是运用软件工程的知识,先进行系统需求分析,之后是系统概要设计,详细设计,并且详细介绍了各个功能模块的具体实现和数据库的设计。
关键字:Java语言,SQLSERVER2005,JVM,添加,删除,查询和排序目录1、系统需求分析 (3)1.1系统名称: (3)1.2系统介绍: (3)1.3开发背景 (3)1.4.系统面向的用户群体 (4)1.5开发环境 (4)2.系统总体设计 (4)2.1系统功能结构图 (4)2.2系统数据流程图 (5)3 系统详细设计 (5)3.1数据库实体E-R图设计 (6)3.2数据库表的设计 (7)3.3.详细设计 (8)4软件测试 (17)5 系统总结 (17)6系统设计心得体会 (18)参考文献.................................................................. 错误!未定义书签。
基于JAVA的学生通讯录管理系统设计和实现[开题报告]
![基于JAVA的学生通讯录管理系统设计和实现[开题报告]](https://img.taocdn.com/s3/m/0739804aba1aa8114531d936.png)
毕业论文开题报告信息与计算科学基于JAVA的学生通讯录管理系统设计和实现一、选题的背景、意义1.选题的背景伴随着通讯录数据的规模不断增多,像数据查询,维护,管理等都将越来越复杂,工作量也将越来越大。
但一直以来人们使用传统人工的方式管理各种数据,这种管理方式存在着许多缺点,比如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
JAVA网络电子通讯录随着人们的需要应运而生。
它检索迅速,方便可靠,逐渐受到人们的喜爱,在改善人们整理和使用通讯录数据上发挥了自己的优点[1,2,3]。
2.选题的目的和意义随着市场经济的发展和人们生活水平的提高,随着科学技术的发展,计算机领域不断取得新的研究成果。
计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。
人们已经不于上网浏览网页,而是想通过网络来实现现实生活中需要处理的事情。
传统的人工管理方式必然显得不合时宜,它的低效率严重阻碍了日益高涨的社会生活节奏[4,5]。
随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
JAVA网络电子通讯作为计算机应用的一部分,使用计算机对各项信息进行管理,具有着手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高工作的效率,也是企业的科学化、正规化管理与世界接轨的重要的条件[6,7,8]。
二、国内外研究现状和发展趋势综述在国内,一些企业和个人都在使用电子通讯录,为他们的工作和生活带来哦极大方便,但是功能参差不齐,有好友坏,种类相对较少,产品同质化严重,缺乏拳头产品,其中蕴含不少商机。
在国外,使用电子通讯录的范围十分广泛,许多人的日常生活和商业,社会活动全靠电子通讯录的支持,完全融入了生活当中,相信不远的将来,当我国电子产品的普及打到国外先进国家水平,我们也将迎来这样的生活方式。
小小通讯录-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程序运行,可得出此效果图。
个人信息管理系统毕业论文设计

毕业设计课题名称:基于JSP个人管理系统之通讯录管理模块的设计与实现学院:电信工程学院教学系:计算机技术系班级: 12软件学生:周忆枫指导教师:康英健教研室主任审核:二○一四年十一月个人信息管理系统摘要在日常办公中有许多常用的个人数据,如朋友,地址,日程安排,日常记事都可以适用个人信息管理系统进行管理。
个人信息管理系统可以置于握在手掌的数字助理器中,以提供电子名片,便条,行程管理等功能。
我们组开发了基于JSP的网络应用程序,可以在网上随时存取个人资料及信息。
该系统基本上满足了用户个人信息管理方面的需求,用户界面友好。
此系统更加贴近信息电子化处理,从而降低了人工并增加了信息的准确性。
用户可以在系统中任意添加,修改,删除个人数据,包括个人的基本信息,个人通讯录,日程安排等。
要实现的功能包括四个方面:1登录与注册 2 个人基本信息管理模块 3用户个人通讯录模块 4日程安排模块。
【项目地址:https://pan.baidu./s/1dFlcBNr 关注公众号“心灵搁浅”,回复“005”即可获取提供码】关键词:个人信息系统 JSP 管理系统数据库目录摘要 (2)一、绪论 (5)1.1 课题背景与来源地 (5)1.2 课题目的 (5)1.3 课题研究的主要任务 (5)1.4 课题的设计方法与步骤 (5)1.5 本课题在国外的发展概况 (6)1.6 系统开发的可行性分析 (8)1.6.1要求 (8)1.6.2目标 (8)1.6.3条件、假定和限制 (8)1.6.4可行性研究的方法 (9)1.6.5决定可行性的主要因素 (9)1.6.6评价尺度 (9)二、系统相关技术 (9)2.1JSP (9)2.2 HTML语言 (11)2.3 JAVA (12)2.4 数据库系统 (13)2.5 CSS技术 (14)2.6 JavaScript技术 (14)三、系统设计 (15)3.1系统调查与用户需求 (15)3.1.1系统的需求分析 (15)3.1.2系统的可行性分析 (15)3.2 系统功能模块划分 (16)3.2.1系统数据流图 (16)3.2.2系统功能介绍 (16)3.3数据库设计 (17)3.3.1数据库的逻辑设计 (17)3.3.2数据库的物理设计 (17)四、系统模块的实现 (19)4.1运行界面截图 (19)4.2主要设计方法的论述 (22)4.2.1查看通讯录 (22)4.2.1增加联系人 (28)4.2.2修改联系人 (31)4.2.3删除联系人 (37)五、测试分析报告 (40)5.1测试结果概述 (40)5.2总的错误分布情况 (40)5.3功能需求测试项详述及测试结果 (40)5.4性能测试结果 (41)5.5用户界面测试结果 (41)六、结论 (41)七、致 (42)参考文献 (43)一、绪论1.1 课题背景与来源地随着Internet信息技术的高速发展和个人使用计算机的情况和频率呈几何增长,越来越多的个人信息有时自己都很难记清楚,因此建立一个个人信息管理系统,可以有效的帮助大家管理个人的相关资料,保证个人的通讯录、日程安排等信息及时准确是非常必要的。
Java课程设计通讯录管理系统

摘要随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。
在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。
通过采用相关技术,将系统设计的功能全部实现。
功能包括:用户登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。
关键字:C/S架构,联系信息,通讯录,数据库目录一、需求分析 (2)二、系统总体规划 (2)三、程序流程 (2)四、设计步骤 (5)1.数据库表的设计 (5)2.详细设计 (5)五、设计总结 (9)六、结束语 (10)六、参考文献 (11)七、程序清单 (12)1一需求分析通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。
但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。
直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。
在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。
有人利用Excel或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。
通讯录管理系统数据库课程设计
通讯录管理系统数据库课程设计一、课程设计背景随着互联网和智能手机的普及,通讯录成为人们日常生活中不可或缺的一部分。
而对于企业和组织来说,通讯录更是必不可少的管理工具。
为了提高学生对数据库课程的实际应用能力,本课程设计旨在设计一个通讯录管理系统数据库,作为学生课程设计的项目,帮助学生深入理解数据库的概念和操作。
二、课程设计目标本课程设计的目标是让学生通过实际设计一个通讯录管理系统数据库,掌握数据库设计的基本原理和方法,包括数据库的规范化、关系模式的设计、SQL语言的应用等方面的知识。
通过完成课程设计,学生将能够提高解决问题的能力,锻炼团队合作和交流能力。
三、课程设计内容1. 系统需求分析1.1 确定系统的功能和性能需求1.2 确定系统的使用环境和用户特点2. 数据库设计2.1 确定数据库的实体和关系2.2 设计数据库的表结构和约束条件2.3 进行数据库规范化设计3. 系统实现3.1 使用MySQL或Oracle等数据库管理系统搭建数据库3.2 使用Java、C#等编程语言编写系统的界面和逻辑代码3.3 实现系统的基本功能,包括添加通信人、编辑通信人信息、查找通信人、删除通信人等功能4. 系统测试4.1 对系统进行功能测试和性能测试4.2 修复系统中出现的bug和问题5. 系统部署5.1 部署系统到本地服务器或云服务器5.2 进行系统的上线和维护四、课程设计流程1. 分组确定课程设计题目学生按照班级和兴趣分组,确定课程设计的具体题目和要求。
2. 系统需求分析学生对系统的功能和性能需求进行分析,编写系统需求规格说明书。
3. 数据库设计学生根据系统需求规格,设计系统的数据库结构和约束条件,完成数据库设计文档。
4. 系统实现学生根据数据库设计文档,使用相应的数据库管理系统搭建数据库,编写系统的界面和逻辑代码。
5. 系统测试学生对系统进行功能测试和性能测试,并记录测试结果,修复系统中出现的bug和问题。
6. 系统部署学生将完成的系统部署到本地服务器或云服务器,并进行上线和维护。
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.实验设备:为学生提供必要的编程环境和实验设备。
五、教学评估本章节的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。
通讯录管理系统毕业设计(两篇)2024
引言概述:通讯录管理系统是一种用于管理联系人信息的软件,它能够为用户提供便捷的联系人管理和信息查询功能。
本文将继续介绍通讯录管理系统的设计和实现,重点关注系统的用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级。
正文内容:1.用户界面设计1.1设计原则:用户友好性、易用性和美观性原则1.2主界面设计:主界面布局、功能模块展示、导航设计1.3交互设计:交互方式、操作流程、反馈机制1.4响应式设计:适配多种设备和屏幕分辨率2.数据存储与管理2.1数据库设计:确定实体和属性、建立表结构、定义关系2.2数据库连接:连接数据库、读写操作、异常处理2.3数据备份与恢复:数据备份策略、备份文件管理、数据恢复机制2.4数据安全性:权限控制、数据加密、数据完整性3.通讯录的分类与搜索功能3.1通讯录分类:基本分类和用户自定义分类3.2联系人添加与编辑:输入验证、字段定义、数据关联3.3联系人查询:关键字查询、条件过滤、多条件组合查询3.4联系人导入导出:支持多种数据格式、数据匹配与转换、导入导出策略3.5通讯录分享与同步:用户权限设置、跨设备同步、冲突解决4.用户权限管理4.1用户注册与登录:用户信息获取、身份验证、登录状态管理4.2用户权限分配:管理员与普通用户权限区分、权限控制细化4.3用户信息管理:个人信息修改、密码重置、账号注销4.4安全性保护:登录失败锁定、密码加密、会话管理5.通讯录系统的扩展与升级5.1模块化设计:可插拔式功能模块、模块间接口定义5.2扩展性设计:支持插件开发、动态加载与卸载5.3性能优化:数据索引优化、查询优化、缓存机制5.4系统升级:版本管理、更新提示、升级策略总结:通过上述的详细阐述,我们可以看到,通讯录管理系统涵盖了用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级等多个关键领域。
在该系统的设计过程中,我们需要重点关注用户友好性、数据安全性和系统的可扩展性。
基于JAVA的学生通讯录管理系统设计和实现[文献综述]
毕业论文文献综述信息与计算科学基于JAVA的学生通讯录管理系统设计和实现一、前言部分Java是由Sun公司于1995年5月推出的Java程序设计语言和Java平台的总称。
它具有简洁、安全、面向对象、动态、体系结构中立、可移植、分布式、平台无关性等多个优点,被广泛地运用到计算机、便携式计算机、电视、电话、手机和其他大量设备上。
Java 的前景被广泛地看好,并有许多相关机构和人员在解决其运行速度等瑕疵[1]。
二、主题部分一、Java简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet[2]。
(一)平台架构Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application Programming Interface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java分为JavaSE,JavaEE,JavaME三个体系[3]。
Java SE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序,它包含了支持Java Web服务开发的类,并为Java Platform,Enterprise Edition (Java EE)提供基础。
Java EE帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序,它是在Java SE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web 2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院课程设计报告书课程名称面向对象程序设计设计题目个人通讯录管理专业班级学号姓名指导教师2014年6月目录1设计时间 (1)2设计目的 (1)3设计题目 (1)4设计任务 (1)5设计内容 (1)5.1整体设计思路 (1)5.2程序运行流程 (2)5.3程序代码 (2)6功能模块实现 (11)7运行与测试 (12)7.1进入主界面 (12)7.2选择功能模块 (12)8总结与展望 (14)参考文献 (16)成绩评定.............................................................................错误!未定义书签。
1设计时间2014年6月16日至2014年6月20日2设计目的通过实践加深对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高自身的应用能力,为以后团队合作开发更大的程序打下基础。
也加强了对计算机嵌入式的学习。
3设计题目个人通讯录管理4设计任务编写个人通讯录管理软件(用文件存储)。
其主要提供如下功能是实现记录的增、删、查、显示所有、备份和退出记录,通讯录记录信息包括:姓名,电话等信息,可以采用数据库或文件进行存储5设计内容5.1整体设计思路首先建一个tongxunlu包,再在包里面建立七个类,分别实现通讯录的增、删、查、显示全部和备份,将GUI和输入输出流结合,用图形界面和按钮实现对通讯录的操作,然后将通讯录按指定格式存入D盘的Contacts文本当中,最后进入eclipse运行,进入指定界面后点击按钮进行后续操作,个功能实现后,点击退出按钮退出整个系统。
(1)Test类是主程序,用于运行整个程序(2)tongxun类是主窗口类,只实现一个方法那就是退出,其他方法在其他类里面实现(3)Insert是增加记录的窗口和方法类(4)Display这个是显示全部记录的窗口和方法类(5)Select这是查找记录的窗口和方法类(6)Copy这个是实现备份功能的窗口和类(7)Delete这是实现删除功能和器窗口的类,其实是删除功能是先读取出所有数据存储在数组里(不存储要删除数据)再写进原本的txt文件当中去覆盖掉原本文5.2程序运行流程首先运行程序,进入通讯录系统后有六个并列操作,点击增加记录按钮进入记录界面确定就增加成功,否则退回主界面,同理可对删除记录,查询记录,显示所有记录进行操作,退出按钮点击后退出整个系统,程序结束。
5.3程序代码package tongxunlu;public class Test{public static void main(String args[]){tongxun run=new tongxun();}}//该类用于启动这个程序,主方法。
package tongxunlu;import java.io.*;import java.awt.Button;//按钮import java.awt.Frame;//容器的一种(window的子类)import bel;//标签import java.awt.TextField;//单行文本输入框import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.print.attribute.standard.Copies;import javax.swing.JFrame;public class tongxun extends JFrame implements ActionListener{private TextField text_1;//单行文本输入框(姓名)private TextField text_2;//单行文本输入框(电话)private RandomAccessFile raf;public tongxun(){JFrame mainFrame=new JFrame("通讯录");mainFrame.setLocation(600,400);mainFrame.setSize(230,200);mainFrame.setLayout(null);Button bt1=new Button("增加记录");mainFrame.add(bt1);bt1.setLocation(10,30);bt1.setSize(80,25);bt1.addActionListener(this);Button bt2=new Button("删除记录");mainFrame.add(bt2);bt2.setLocation(120,30);bt2.setSize(80,25);bt2.addActionListener(this);Button bt3=new Button("显示所有记录");mainFrame.add(bt3);bt3.setLocation(120,65);bt3.setSize(80,25);bt3.addActionListener(this);Button bt4=new Button("查询记录");mainFrame.add(bt4);bt4.setLocation(10,65);bt4.setSize(80,25);bt4.addActionListener(this);Button bt5=new Button("文件备份");mainFrame.add(bt5);bt5.setLocation(120,100);bt5.setSize(80,25);bt5.addActionListener(this);Button bt6=new Button("退出");mainFrame.add(bt6);bt6.setLocation(10,100);bt6.setSize(80,25);bt6.addActionListener(this);mainFrame.setVisible(true);}public void actionPerformed(ActionEvent e){String bt=e.getActionCommand();if(bt.equals("增加记录")){Insert m=new Insert();}if(bt.equals("删除记录")){Delete n=new Delete();}if(bt.equals("查询记录")){Select a=new Select();}if(bt.equals("显示所有记录")){Display b=new Display();}if(bt.equals("文件备份")){Copies v=new Copies(getDefaultCloseOperation());}if(bt.equals("退出")){System.exit(0);}}}package tongxunlu;import java.io.*;import java.awt.Button;//按钮import bel;//标签import java.awt.TextField;//单行文本输入框import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;class Insert extends JFrame implements ActionListener{ public TextField text_1;public TextField text_2;Insert(){setTitle("增加记录");setSize(300,150);setLocation(600,400);setLayout(new GridLayout(3,2));text_1=new TextField();text_2=new TextField();Label lab_1=new Label("请输入联系人姓名:");Label lab_2=new Label("请输入联系人手机号码:");Button bt7=new Button("确定");Button bt8=new Button("清空");bt7.addActionListener(this);bt8.addActionListener(this);add(lab_1);add(text_1);add(lab_2);add(text_2);add(bt7);add(bt8);setVisible(true);}public void actionPerformed(ActionEvent e){String bt=e.getActionCommand();if(bt.equals("确定")){try{FileWriter raf=new FileWriter("D:/Contacts.txt",true);String s1=text_1.getText();String s2=text_2.getText();raf.write(s1+"\r\n");raf.write(s2+"\r\n");text_1.setText("");text_2.setText("");raf.close();}catch(IOException d){System.out.println(d);}}if(bt.equals("清空")){text_1.setText("");text_2.setText("");}}}package tongxunlu;import java.io.*;import java.awt.Button;//按钮import bel;//标签import java.awt.TextField;//单行文本输入框import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;class Select extends JFrame implements ActionListener{ public String s3,s4;public TextField text_1;public TextField text_2;Select(){setTitle("查询记录");setSize(300,150);setLocation(600,400);setLayout(new GridLayout(3,2));text_1=new TextField();text_2=new TextField();Label lab_1=new Label("请输入要查找人的姓名:");Label lab_2=new Label("该联系人手机号码是:");Button bt11=new Button("确定");Button bt12=new Button("清空");bt11.addActionListener(this);bt12.addActionListener(this);add(lab_1);add(text_1);add(lab_2);add(text_2);add(bt11);add(bt12);setVisible(true);}public void actionPerformed(ActionEvent e){String bt=e.getActionCommand();if(bt.equals("确定")){String fileName="D:/Contacts.txt";String line;try{BufferedReader in=new BufferedReader(new FileReader(fileName));line=in.readLine();while(line!=null){if(line.equals(text_1.getText())){System.out.println("无此人");s3=line;s4=in.readLine();text_1.setText(""+s3);text_2.setText(""+s4);}line=in.readLine();}in.close();}catch(IOException d){System.out.println(d);}}if(bt.equals("清空")){text_1.setText("");text_2.setText("");}}}package tongxunlu;import java.io.*;import java.awt.TextField;//单行文本输入框import java.awt.Graphics;import javax.swing.JFrame;class Display extends JFrame{public TextField text_1;String s;Display(){setTitle("显示所有记录");setSize(300,150);setLocation(600,400);setVisible(true);}public void paint(Graphics g){super.paint(g);String fileName="D:/Contacts.txt";String line;int i;i=0;try{BufferedReader in=new BufferedReader(new FileReader(fileName));line=in.readLine();while(line!=null){i=i+1;g.drawString("姓名:"+line,10,40*i);g.drawString("电话:"+in.readLine(),140,40*i);line=in.readLine();}in.close();}catch(IOException d){System.out.println(d);}}}import java.awt.Graphics;import java.awt.TextField;//单行文本输入框import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFrame;class Copy extends JFrame{public TextField text_1;Copy(){setTitle("文件备份");setSize(300,150);setLocation(600,400);setVisible(true);String[]copy=new String[10000];int i=0,a;String fileName="D:\\Contacts.txt";try{BufferedReader in=new BufferedReader(new FileReader(fileName));copy[i]=in.readLine();while(copy[i]!=null){i++;copy[i]=in.readLine();}in.close();}catch(IOException d){System.out.println(d);}String wenJan="E:\\备份.txt";try{FileWriter writer=new FileWriter(wenJan);for(a=0;a<i;a++){writer.write(copy[a]+"\r\n");}writer.close();}catch(IOException e1){}}public void paint(Graphics g){super.paint(g);g.drawString("已经备份到(E:\\备份.txt)",40,40);}}package tongxunlu;import java.awt.Button;//按钮import java.awt.GridLayout;import bel;//标签import java.awt.TextField;//单行文本输入框import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFrame;class Delete extends JFrame implements ActionListener{public TextField text_1;public TextField text_2;Delete(){setTitle("删除记录");setSize(350,150);setLocation(600,400);setLayout(new GridLayout(3,2));text_1=new TextField();text_2=new TextField();Label lab_3=new Label("请输入要删除联系人姓名:");Label lab_4=new Label("是否删除成功");Button bt9=new Button("确定");Button bt10=new Button("清空");bt9.addActionListener(this);bt10.addActionListener(this);add(lab_3);add(text_1);add(lab_4);add(text_2);add(bt9);add(bt10);setVisible(true);}public void actionPerformed(ActionEvent e){String bt=e.getActionCommand();if(bt.equals("确定")){String[]copy=new String[10000];int i=0,a,t=0;String b;String fileName="D:/Contacts.txt";try{BufferedReader in=new BufferedReader(new FileReader(fileName));b=in.readLine();while(b!=null){if(b.equals(text_1.getText())){in.readLine();text_2.setText("成功");t=1;}else{i++;copy[i]=b;}b=in.readLine();}if(t==0){text_2.setText("查找不到哪个人删除失败");}in.close();}catch(IOException d){System.out.println(d);}String重写文件="D:/Contacts.txt";try{FileWriter writer=new FileWriter(重写文件);for(a=1;a<i+1;a++){writer.write(copy[a]+"\r\n");}writer.close();}catch(IOException e1){}}if(bt.equals("清空")){text_1.setText("");text_2.setText("");}}}6功能模块实现首先要实现增加记录的功能请点击增加记录按钮,在弹出的对话框中输入要增加人的姓名和电话等信息然后点击确定。