通讯录Java软件程序设计.doc

上传人:星星 文档编号:1081820 上传时间:2024-04-14 格式:DOC 页数:20 大小:497.01KB
下载 相关 举报
通讯录Java软件程序设计.doc_第1页
第1页 / 共20页
通讯录Java软件程序设计.doc_第2页
第2页 / 共20页
通讯录Java软件程序设计.doc_第3页
第3页 / 共20页
通讯录Java软件程序设计.doc_第4页
第4页 / 共20页
通讯录Java软件程序设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、Java程序设计文档 JIANGXI AGRICULTURAL UNIVERSITYJAVA课程设计报告 题目: JAVA课程设计实验文档 学 院: 软件学院 姓 名: 刘畅 学 号: 20111386 专 业: 软件工程 班 级: 软件1101班 指导教师: 邓泓 二0一二 年十二月 摘要Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。目前,很多新的技术领都涉及Java语言列入本科教学计划,掌握Java已经成为共识。本课程设计就是利用Java语言来编写的通讯录

2、,采用Java与数据库相连的方式编写的下面是给出的理论分析。关键词: JAVA;需求分析;数据库设计。- 1 -l 一 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个个人通讯录系统, 包括使用JAVA JFrame技术进行前台用户界面的设计和开发; 后台关系数据库的设计以及使用JDBC技术与后台数据库进行连接, 并能调试运行。该系统将能够实现能对组信息和好友信息进行增加,删除,修改和查询的功能。系统总体架构如下:个人通讯录群组管理好友管理音乐播放器主要任务:编号功能名功能描述1组管理添加组输入组信息,存入数据库删除组检索组,从数据库中删除修

3、改组检索组,编辑其信息后存入数据库2好友管理查询联系人点击好友名字,显示出其信息添加联系人输入好友信息,存入数据库,修改联系人显示好友信息编辑其信息后存入数据库删除联系人搜寻好友,从数据库中删除3音乐播放器播放,循环,停止l 二 系统需求分析系统的对象确定之后,应该对系统进行定性的分析,分析是为了了解系统应达到的目标和系统应具备的功能。个人通讯录系统由四大模块组成:增加好友、修改好友信息、删除好友、新建分组、修改分组、删除分组。1增加好友用以对新加的好友对其信息进行存储。如:姓名、地址、电话等。2修改好友信息用以对数据库中已有的联系人信息进行编辑,将更新后的信息重新写入到数据库。对联系人信息做

4、删除和修改操作。3删除好友用以对数据已有的好友进行删除。4新建分组用于对新加的联系人群组对其进行存储。写入到数据库。5修改分组用于对已有的分组进行编辑管理,做修改和删除。6删除分组用于对已有的分组进行删除。7音乐音乐的播放等功能实现。l 三 系统总体规划1总体设计结构图2系统数据库设计 数据库中的表table_1字段名类型说明idint序号namevarchar(10)组名和好友名fidint组id和好友idfriendnamevarchar(15)无用friengidint无用cellphoneint手机phoneint电话addressvarchar(50)地址sexnchar(10)性别

5、l 四 数据库的连接技术 1注册驱动程序2连接数据库3执行相应请求到数据库,构造相应的sql语句4到数据库执行sql语句5关闭数据库连接l 五 系统详细设计 1 数据库连接 package tongxunlu;import java.sql.*;public class connectionsql String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; / 加载JDBC驱动String dbURL = jdbc:sqlserver:/127.0.0.1:1433; DatabaseName=addressbook; /

6、 连接服务器和数据库testString userName = sa; / 默认用户名String userPwd = 1877988abc; / 安装sql server 2008时的密码Connection dbConn;PreparedStatement ps;Statement stmt = null;ResultSet rs;connectionsql() connetionDB();void connetionDB() try Class.forName(driverName);dbConn = DriverManager.getConnection(dbURL, userName

7、, userPwd);stmt = dbConn.createStatement(); catch (Exception e) e.printStackTrace();2 系统模块设计包及类主界面组操作增加组刷新修改组名删除组好友操作查询好友添加好友修改好友删除好友音乐播放器l 六 总结系统展望由于本身能力的局限性,因此所编写的代码,即使经过反复检查也难免出错。在本系统的实现过程当中能做到的也只有力争使用有限的时间找出尽可能多的错误,力求系统尽量正确和完善。基于上述对系统尚存在的问题的分析,今后会运用更多的理论知识结合实践以求在本系统的基础上进行扩展。自身收获在研究如何设计和实现这样一个系统的

8、过程当中,遇到了不少这样那样的问题,有些问题在指导老师和同学的帮助下得到了很好的解决,但也有某些问题至今未能解决。不过俗话说得好,过程重于结果,在想办法解决问题的过程当中会学到很多,而这些都是平时学习理论课时所学不到的知识。有了构建一个聊天网站的切身经历和体验,相信一定能够为今后的动态网站设计打下良好的基础。在今后的日子里,我会进一步加强自我动能力,并在以后工作岗位中发挥我所长。附录:系统核心代码1 主界面各按钮的监听public void actionPerformed(ActionEvent e)if(e.getSource() = gadd)addgroup Frame = new ad

9、dgroup(maxid);else if(e.getSource() = gdelete)deletegroup Frame = new deletegroup();Frame.setVisible(true);else if(e.getSource() = grevise)DefaultMutableTreeNode note=(DefaultMutableTreeNode) treemodel.getLastSelectedPathComponent();if (note=null) JOptionPane.showMessageDialog(this, 请在树中选择你要修改的组名!);

10、return;revisegroup Frame = new revisegroup(this, 修改信息, true, note);Frame.setVisible(true);else if(e.getSource() = fquery)DefaultMutableTreeNode note=(DefaultMutableTreeNode) treemodel.getLastSelectedPathComponent();if (note=null) JOptionPane.showMessageDialog(this, 请在树中选择你要查找的人名!);return;imformation

11、 reviseFrame = new imformation(this, 修改信息, true, note);reviseFrame.setVisible(true);else if(e.getSource() = fadd)addfriend Frame = new addfriend(maxid);Frame.setVisible(true);else if(e.getSource() = frevise)DefaultMutableTreeNode note=(DefaultMutableTreeNode) treemodel.getLastSelectedPathComponent()

12、;if (note=null) JOptionPane.showMessageDialog(this, 请在树中选择你要修改的人名!);return;revisefriend reviseFrame = new revisefriend(this, 修改信息, true, note);reviseFrame.setVisible(true);else if(e.getSource() = fdelete)deletefriend Frame = new deletefriend();Frame.setVisible(true);else if(e.getSource()=start1)soun

13、d.loop();else if(e.getSource()=loop)sound.loop();else if (e.getSource()=stop) sound.stop();else if(e.getSource() = shuaxin)DefaultMutableTreeNode philosophersNode = t_model.createTree(分组);DT_treeModel = new DefaultTreeModel(philosophersNode);treemodel.setModel(DT_treeModel);else if(e.getSource() = t

14、uichu)this.setVisible(false);maxid = t_model.max;2 TreeModelpackage tongxunlu;import java.sql.*;import javax.swing.JTree;import javax.swing.tree.*;public class myTreeModel extends JTree String sql;int max = 0, count = 0;String pos = null, type = null, des = null;JTree newTree;int id, parentsId;Strin

15、g node;int currentId = 0;JTree tree;DefaultTreeModel treeModel;String s = null;connectionsql con_sql = new connectionsql(); myTreeModel() public DefaultMutableTreeNode createTree(String root) try con_sql.stmt = con_sql.dbConn.createStatement(); catch (Exception e) e.printStackTrace();try sql = selec

16、t count (*) from Table_1;con_sql.ps = con_sql.dbConn.prepareStatement(sql);con_sql.rs = con_sql.ps.executeQuery();while (con_sql.rs.next() s = con_sql.rs.getString(1).trim(); catch (Exception e) e.printStackTrace();count = Integer.parseInt(s);id = new intcount;parentsId = new intcount;node = new Str

17、ingcount;try sql = select * from Table_1;con_sql.ps = con_sql.dbConn.prepareStatement(sql);con_sql.rs = con_sql.ps.executeQuery();int i = 0;while (con_sql.rs.next() pos = con_sql.rs.getString(id).trim();type = con_sql.rs.getString(name).trim();des = con_sql.rs.getString(fid).trim();idi = Integer.par

18、seInt(pos);nodei = type;parentsIdi = Integer.parseInt(des);i+; catch (Exception e) e.printStackTrace(); DefaultMutableTreeNode treeNodes = new DefaultMutableTreeNodecount+1; treeNodes0 = new DefaultMutableTreeNode(root); JTree nTree = new JTree(treeNodes0);try sql = select max (id) from Table_1;con_

19、sql.ps = con_sql.dbConn.prepareStatement(sql);con_sql.rs = con_sql.ps.executeQuery();while (con_sql.rs.next() if(con_sql.rs.getString(1)=null) return treeNodes0;s = con_sql.rs.getString(1); catch (Exception e) e.printStackTrace(); max = Integer.parseInt(s);/* * 树的节点, 其内容来自数组node, 因为根节点不在其中,所以比node多分

20、配一个空间。 */ int currentId; /* * 树的节点, * 其内容来自数组node, * 因为根节点不在其中,所以比node多分配一个空间。 */ /* * 当前节点及其父节点的一个映射关系表。 * map0 保存子节点在数组id中的索引号,如mapi0表示节点i在数组id中索引号; * map1 保存对应子节点的父节点号,mapi1表示节点i的父节点号; * 其中map0保存根节点信息。 */ int map = new intmax+12; /初始化映射表 for (int i=1; imax; i+) mapi0 = -1; mapi1 = -1; map00 = 0;

21、map01 = 0; /根节点 /做父与子的映射 for (int i=1; i=count; i+) currentId = idi-1; treeNodesi = new DefaultMutableTreeNode(nodei-1); /创建树的节点 mapcurrentId0 = i-1; mapcurrentId1 = parentsIdi-1; /为父节点添加其相应的子节点。 /parentNode.add(childNode); for (int i=1; i -1) /父节点是根节点时 if (mapi1 = 0) treeNodesmapmapi10.add(treeNodesmapi0+1); /父节点非根节点时 else treeNodesmapmapi10+1.add(treeNodesmapi0+1); return treeNodes0;/end createTree18

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922