个人联系簿java课程设计.docx
- 文档编号:17988228
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:29
- 大小:159.42KB
个人联系簿java课程设计.docx
《个人联系簿java课程设计.docx》由会员分享,可在线阅读,更多相关《个人联系簿java课程设计.docx(29页珍藏版)》请在冰点文库上搜索。
个人联系簿java课程设计
武汉理工大学华夏学院
课程设计报告书
课程名称:
JAVA课程设计
题目:
个人通讯簿系统的设计与开发
系名:
信息工程系
专业班级:
姓名:
学号:
指导教师:
2011年6月24日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程系
设计题目:
个人通讯博系统的设计与开发
初始条件:
《个人通讯博》是用来记录,维护个人的亲朋好友的各种联系方式的一个微型系统。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
使用JAVA开发一个个人通讯博系统,包括使用JAVASWING技术进行前台用户界面的设计和开发,后台关系数据库的设计以及使用JDBC技术与后台数据库进行连接,并能调试运行。
该系统将能够实现用户登录功能,并对群组信息和联系人信息进行增加,删除,修改和查询的功能。
系统总体架构如下:
主要任务:
编号
功能名
功能描述
1
登录系统
运行系统,输入密码后,进入系统
2
群组管理
创建群组
输入群组信息,存入数据库
编辑群组
检索群组,编辑其信息后存入数据库
删除群组
检索群组,从数据库中删除
3
联系人管理
新增联系人
输入联系闰年信息,存入数据库
编辑联系人
检索联系人,编辑其信息后存入数据库
删除联系人
检索联系人,从数据库中删除
检索联系人
输入联系人个别信息,检索联系人
4
系统打包
系统打包,制作安装程序
设计报告撰写格式要求:
一、课程设计说明书(或报告书)正文内容
【设计题目】例如:
宣传小报的设计排版
【开发环境】硬件环境:
微机系列,内存在1G以上,软件环境:
MicrosoftWindowsXP
【开发工具】word2000
【完成时间】2008-1–11-----2008.1.17
【需求分析】分析阐述用户的管理需要以及对应到要实现的管理系统应具有什么样的功能。
【系统总体设计】
在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。
让读者了解方案的总体设计和关键技术。
要阐述自己的设计方案,说明为什么要选择或设计这样的方案。
具体包括:
系统总的设计思路,体系结构,总体架构,功能模块图;
各功能模块所要达到的设计目标的简单介绍;
设计的数据字典(数据库、表的结构);
使用的设计软硬件环境和开发技术和平台等。
【系统详细设计】
在这部分中,要将整个开发工作的内容进行详细的介绍。
一般按照功能模块分成几部分来介绍。
每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。
【系统调试和测试】
调试:
介绍设计过程中遇到的问题和解决方法。
测试:
介绍如何测试系统,测试中发现的问题和解决方案。
【结束语】
这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。
【参考文献】罗列在设计过程中查阅的文献名称
注意:
参考文献罗列的格式为
资料编号•作者姓名•文献或期刊名称•出版社名称,文献的出版时间或期刊的期号
例如:
文献[1]蒋加伏.计算机文化基础.北京:
北京邮电大学出版社,2004年5月
期刊[2]于振海.officeXP网上数据存取.计算机应用文摘,2003,24;69(页)
二、课程设计说明书(或报告书)正文的书写格式简介
一、正文标题层次正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。
即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下:
第一级(章)
1
2
3
……
第二级(条)
1.1
1.2…
2.1
2.2…
3.1
3.2…
……
第三级(条)
1.1.1
1.1.2…
1.2.1
1.2.2…
2.1.1
2.1.2…
2.2.1
2.2.2…
3.1.1
3.1.2…
3.2.1
3.2.2…
……
二、表格每个表格应有自己的表序与表题,表序与表题间空一格。
例如:
表1.1XXXX,且表题与表序应写在表格的上方正中处。
三、插图插图图面要整齐、美观,插图应与正文呼应,不能脱节。
每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
四、公式公式应另起一行写在稿纸的中央。
时间安排:
日期
任务
课程内容
2011.6.20
项目原型开发
Eclipse/NetBeans使用
Swing技术
2011.6.21
数据库建模,登录
JDBC技术
2011.6.22
群组管理
2011.6.23
联系人管理
2011.6.24
系统打包验收
install4j使用
指导教师签字:
202011年6月15日
系主任签字:
2011年6月17日
个人联系簿java课程设计
目录
一概述6
二总体方案设计…………………………………………6
界面设计…………………………………………7
基本设计………………………………………………9
三详细设计10
四课程设计总结23
一、概述
1.程序具备的功能:
1.1登录系统
运行系统,输入密码后,进入系统;
1.2群组管理
输入群组信息,存入数据库,检索群组,编辑其信息后存入数据库,检索群组,从数据库中删除;
1.3联系人管理
输入联系人信息,存入数据库;检索联系人,编辑其信息后存入数据库,检索联系人,从数据库中删除;输入联系人个别信息,检索联系人;
1.4系统打包
2.课程的主要设计思想
个人联系簿是用来记录、维护个人的亲朋好友的各种联系方式的一个微型系统。
该系统所具有的功能为:
系统登录,群组管理,联系人管理。
本系统采用C/S构架,系统整体分为系统界面层,系统业务层,系统持久层;其中,系统界面采用swing技术来搭建,系统业务逻辑层采用java面向对象程序设计(oop)的思想来编写,系统持久层采用jdbc技术使用数据库为SQLServer2005。
二、总体方案设计
1.界面设计
界面设计要求用GUI,界面设计中有用到swing组件的TextField和JFrame,JSplitpane,Jpanel,Button等,用到awt中的BorderLayoutGrid,BagLayout和GridLayout布局管理方式,其图形登陆界面以及主界面如下:
个人登记界面
个人编辑界面
群编辑界面
2.基本设计
2.1系统结构模式图
2.2组件程序清单
编号
功能名
操作
组件程序
1
登录系统
登录界面
LoginGui.java
登录处理
LoginManager.java
2
群组管理
操作群组界面
GroupGui.java
GroupAddGui.java
GroupEditGui.java
GroupQueryGui.java
操作群组
GroupManager.java
3
联系人管理
操作联系人界面
PersonGui.java
PersonAddGui.java
PersonEditGui.java
PersonQueryGui.java
操作联系人
PersonManager.java
4
数据库操作
数据操作封装
JDBCUtil.java
二、设计过程
1.1功能模块图
1.2部分模块代码说明:
JDBCUtil.Java:
封装数据库操作的工具类,具体代码如下:
/**
*@author杨尧软件1091
*
*/
publicclassJDBCUtil{
privatestaticConnectionconn=null;
privatestaticfinalResourceManagerresourceManager=newResourceManager(
JDBCUtil.class);
static{
if(conn==null){
synchronized(JDBCUtil.class){
if(conn==null){
try{
Stringdriver=resourceManager.getString("jdbc.driver");
Stringurl=resourceManager.getString("jdbc.url");
Stringuser=resourceManager.getString("jdbc.user");
Stringpass=resourceManager
.getString("jdbc.password");
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
publicList
List
try{
Statementsta=conn.createStatement();
Statementsta2=conn.createStatement();
ResultSetres=sta.executeQuery("select*fromGroups");
Groupgroup=null;
while(res.next()){
intid=res.getInt("id");
Stringname=res.getString("name");
Stringdescription=res.getString("description");
group=newGroup(id,name,description);
ResultSetres2=sta2.executeQuery("select*fromContactswheregroupid="+id);
while(res2.next()){
intpid=res2.getInt("id");
Stringpname=res2.getString("name");
Stringphoto=res2.getString("photo");
Stringnickname=res2.getString("nickname");
Stringcellphone=res2.getString("cellphone");
Stringqq=res2.getString("QQ");
Stringhomepage=res2.getString("homepage");
Stringbirthday=res2.getString("birthday");
Stringpdescription=res2.getString("description");
group.addPerson(newPerson(pid,pname,photo,nickname,cellphone,qq,homepage,birthday,group,pdescription));
}
res2.close();
groups.add(group);
}
res.close();
sta2.close();
sta.close();
}catch(Exceptione){
closeConn();
e.printStackTrace();
}finally{
}
returngroups;
}
publicList
List
try{
Statementsta=conn.createStatement();
Statementsta2=conn.createStatement();
ResultSetres=sta.executeQuery(sql);
for(;res.next();){
intid=res.getInt("id");
Stringname=res.getString("name");
Stringphoto=res.getString("photo");
Stringnickname=res.getString("nickname");
Stringcellphone=res.getString("cellphone");
Stringqq=res.getString("QQ");
Stringhomepage=res.getString("homepage");
Stringbirthday=res.getString("birthday");
intgroupid=res.getInt("groupid");
Stringdescription=res.getString("description");
ResultSetrs=sta2.executeQuery("select*fromGroupswhereid="+groupid);
Groupgroup=null;
if(rs.next())
group=newGroup(rs.getInt("id"),rs.getString("name"),rs
.getString("description"));
rs.close();
persons.add(newPerson(id,name,photo,nickname,cellphone,
qq,homepage,birthday,group,description));
}
res.close();
sta2.close();
sta.close();
}catch(Exceptione){
closeConn();
e.printStackTrace();
}finally{
}
returnpersons;
}
publicvoidupdatePerson(PersonnewValue){
try{
PreparedStatementpre=conn.prepareStatement("updateContactssetname=?
photo=?
nickname=?
cellphone=?
qq=?
homepage=?
birthday=?
groupid=?
description=?
whereid=?
");
pre.setString(1,newValue.getName());
pre.setString(2,newValue.getPhoto());
pre.setString(3,newValue.getNickname());
pre.setString(4,newValue.getCellphone());
pre.setString(5,newValue.getQq());
pre.setString(6,newValue.getHomepage());
pre.setString(7,newValue.getBirthday());
pre.setInt(8,newValue.getGroup().getId());
pre.setString(9,newValue.getDescription());
pre.setInt(10,newValue.getId());
pre.executeUpdate();
System.out.println("更新person");
pre.close();
}catch(SQLExceptione){
e.printStackTrace();
closeConn();
}
}
/*publicstaticUserfindUser(Stringusername){
Useruser=null;
try{
PreparedStatementpre=conn.prepareStatement("select*fromUserswhereusername=?
");
pre.setString(1,username);
ResultSetrs=pre.executeQuery();
while(rs.next()){
Stringname=rs.getString("username");
Stringpass=rs.getString("password");
user.setUsername(name);
user.setPassword(pass);
}
}catch(SQLExceptione){
e.printStackTrace();
closeConn();
}
returnuser;
}*/
publicPersonqueryPerson(Stringname){
Personperson=null;
try{
Statementstat=conn.createStatement();
Statementsta2=conn.createStatement();
ResultSetrs=stat.executeQuery("select*fromContactswherename="+"'"+name+"'");
if(rs.next()){
intid=rs.getInt("id");
Stringpname=rs.getString("name");
Stringphoto=rs.getString("photo");
Stringnickname=rs.getString("nickname");
Stringcellphone=rs.getString("cellphone");
Stringqq=rs.getString("QQ");
Stringhomepage=rs.getString("homepage");
Stringbirthday=rs.getString("birthday");
intgroupid=rs.getInt("groupid");
Stringdescription=rs.getString("description");
ResultSetres=sta2.executeQuery("select*fromGroupswhereid="+groupid);
Groupgroup=null;
if(rs.next())
group=newGroup(rs.getInt("id"),rs.getString("name"),rs
.getString("description"));
res.close();
person=newPerson(id,name,photo,nickname,cellphone,
qq,homepage,birthday,group,description);
}
rs.close();
sta2.close();
stat.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnperson;
}
publicvoidaddPerson(PersonnewValue){
//TODOAuto-generatedmethodstub
try{
PreparedStatementpre=conn.prepareStatement("insertintoContacts(name,photo,nickname,cellphone,qq,homepage,birthday,groupid,description)values(?
?
?
?
?
?
?
?
?
)");
pre.setString(1,newValue.getName());
pre.setString(2,newValue.getPhoto());
pre.setString(3,newValue.getNickname());
pre.setString(4,newValue.getCellphone());
pre.setString(5,newValue.getQq());
pre.setString(6,newValue.getHomepage());
pre.setString(7,newValue.getBirthday());
pre.setInt(8,newValue.getGroup().getId());
pre.setString(9,newValue.g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 联系 java 课程设计