java课程设计报告--班级通讯录管理系统

java课程设计报告--班级通讯录管理系统本文简介:12目录一、班级通讯录管理系统1.问题及功能分析.……………………………………3页1.1需求分析…………………………………………3页1.2系统功能结构……………………………………3页1.3目录结构……………………………………….4页1.4数据库表的设计2.概要设计………………………………………………
java课程设计报告--班级通讯录管理系统本文内容:
12
目
录
一、班级通讯录管理系统
1.
问题及功能分析.……………………………………3
页
1.1需求分析…………………………………………3
页
1.2系统功能结构……………………………………
3
页
1.3目录结构……………………………………….4页
1.4数据库表的设计
2.
概要设计……………………………………………….6页
2.1构建开发环境………………………………………6页
2.2图形用户界面构成……………………………………6页
3.详细设计………….……………………………………7
页
4.课程设计总结及心得………………………………….12
页
4.1收获…………………………………………….12页
4.2遇到的问题及思考………………………………13页
班级通讯录管理系统
一、
问题及功能分析
需求分析
功能需求:
1、
提供身份验证:能否使用该系统。
2、
提供用户注册及修改密码功能。
3、提供对同学通讯信息的增加、删除、修改和查询功能。
4、查询功能要求:能实现根据学号、姓名的精确查询,也能对地区的模糊查询,比如:查询“广州市天河区”,能列出所有家在广州市天河区的同学信息。
性能需求:
1、
操作界面美观、友好。
2、
通讯录采用MySQL数据库再用JDBC连接。
系统功能结构
经过需求分析,此班级通讯录主要包括用户的注册登录模块和对联系人的信息管理模块,系统结构如图
班级通讯录管理系统
注册登录
联系人信息管理
用户登录
修改登录密码
注册新用户
显示联系人信息
联系人照片管理
查询联系人信息
添加联系人
修改联系人资料
系统结构图
目录结构
该软件主要的实体有用户、联系人和照片,下面介绍各实体的E-R图,通过E-R图来了解实体属性,这里主要介绍联系人和联系人照片的E-R图。
数据库表的设计
本软件共建了三张表:用户表、联系人表和照片表。
联系人表
字段名称
数据类型
字段大小
是否主键
说明
Pid
文本
20
是
联系人编号
pname
文本
20
否
联系人姓名
pgender
文本
4
否
性别
pbirthday
文本
20
否
生日
pnumber
文本
12
否
联系电话
pQQ
文本
20
否
QQ号码
pemail
文本
20
否
电子邮件
padress
文本
50
否
联系地址
pphoto
OLE
对象
N/A
否
照片
Uid
文本
20
否
所属用户
照片表
字段名称
数据类型
字段大小
是否主键
说明
pid
文本
2
否
所属联系人
photoname
文本
50
是
照片名称
photo
OLE
对象
N/A
否
照片数据
用户表
字段名称
数据类型
字段大小
是否主键
说明
uid
文本
20
是
用户登录名
pwd
文本
20
否
登录密码
二、
概要设计
1、
构建开发环境
开发此通讯录所用到的软件环境
l
JDK
1.7版本
l
MySQL
5.5
l
Navicat
Premium
数据库可视化工具
l
Myeclipse开发工具
2、
图形用户界面构成
l
登录模块
用户名、密码两个JLabel
,登录、注册、修改密码按钮JButton
,输入用户名、密码的文本框。如图
l
联系人信息管理模块
界面上部分是实现查询功能的组件,中间部分是信息显示组件,下面部分是查询返回的JTable列表。如图
三、
详细设计
1、
登录界面的搭建
login.java
运用了PS设计一些icon以及页面布局方法,实现了登录界面的美化。(详细代码请看工程文件夹下文件login.java)
3、
登录窗口功能的实现
login.java、DButil.java
提供了登录校验方法,包括账号密码合法性、修改密码、注册等。(详细代码请看工程文件夹下文件login.java、
DButil.java)
4、
主窗体的搭建及功能
MainFrame.java
窗体界面布局,各个事件的监听以及实现。如:查询操作。(详细代码请看工程文件夹下文件MainFrame.java)
5、
登录窗体及联系人信息管理窗体所用到的数据库操作方法
DButil.java
定义各种数据库操作方法。如:登录验证、注册、查询、插入等。(详细代码请看工程文件夹下文件DButil.java)
四、
调试分析
1、
登录窗体功能调试
l
注册
在文本框输入用户名、密码,点击注册,提示注册成功,用户名与编号存入数据库user表。
l
登录
输入正确的用户名与密码,点击登录进入主窗体
l
修改密码
输入已注册过的正确的用户名与密码,点击修改密码,在弹出得窗口输入新密码,确定后新密码会存入数据库替换原密码,提示修改成功。
2、
联系人信息管理窗体功能调试
l
添加联系人
在各个资料输入文本框输入资料,点击保存按钮,联系人资料存进数据库contacts表中,若学号或姓名以存在,则保存失败。
l
查询功能
精确查询:
按姓名查询,查询后信息框不允许编辑,点击编辑可解锁编辑,并修改信息。
按学号查询:
l
模糊查询功能
在查询框输入关键字,点击模糊查询按钮,查询数据库存在此关键字的所以记录并以JTabel的形式打印在主窗体下方。
两个模块设计是遇到的问题:
1、
所遇到最多的问题就是与数据库之间参数的传递问题,如在模糊查询功能的时候,想把结果集生成一个列表,要用JTabel,然后就在将结果集返回到主窗体。
解决办法:百度,参考了网上的一个小例子。
2、
登录模块,页面美化问题,后来觉得实在是很难看,用户体验不好。
解决办法:用PS作了几张图,使用背景、图片设置以及组件定位布局。
五、
课设总结
1、
课程设计过程的收获
1)
最大的收获就是在开发此系统的时候,复习了Java
SE
的大部分内容,包括Swing,异常处理、IO等等。而且还运用到了刚学到的sqlserver数据库设计知识,还熟悉了mysql的使用.
2)
虽然此系统使用了数据库储存数据,但是数据结构的应用也不少。如Arrays数组类的应用。java集合框架中的列表:动态数组存储方式Vector
等。
3)
课题设计过程中,分为逻辑设计和详细设计两个步骤实现.逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据为中心的原则划分模块,定义主程序模块和各抽象数据类型;详细设计则为定义相应的方法并写出各函数的伪码算法.作为逻辑设计的结果,应写出每个抽象数据类型的定义。
4)
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
2、
遇到的问题及思考
1、
数据库之间参数的传递问题,这个问题开始弄得我心烦意乱,后来静心分析了login、MainFrame、DButil这三个文件的关系后,理清了逻辑关系,问题慢慢得到了解决。
2、
安装及设置mysql时没设置好编码问题,导致保存联系人信息到数
据库时出现乱码问题,后来百度后修改了设置。
3、
未完全熟悉Myeclipse开发工具的使用,部分功能不会使用。
4、
发现断点调试很有用
5、
弹出对话框的使用:本软件中填写用户信息时,需要对这些信息进行合法性验证,当用户输入不合法时,就需要用弹出对话框进行提示。在开发过程中,适当的使用弹出对话框,可以大大简化开发过程,减少许多不必要的操作
6、思考了数据库设计方面的知识,查阅了相关资料,发现数据库结构复杂的时候,表的设计是非常重要的,因为数据库系统设计的好坏将直接决定数据库系统的性能。
