51CTO下载课程报告.docx

上传人:b****5 文档编号:28616653 上传时间:2023-07-19 格式:DOCX 页数:29 大小:259.64KB
下载 相关 举报
51CTO下载课程报告.docx_第1页
第1页 / 共29页
51CTO下载课程报告.docx_第2页
第2页 / 共29页
51CTO下载课程报告.docx_第3页
第3页 / 共29页
51CTO下载课程报告.docx_第4页
第4页 / 共29页
51CTO下载课程报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

51CTO下载课程报告.docx

《51CTO下载课程报告.docx》由会员分享,可在线阅读,更多相关《51CTO下载课程报告.docx(29页珍藏版)》请在冰豆网上搜索。

51CTO下载课程报告.docx

51CTO下载课程报告

JAVA高级应用

课程报告

题目:

电话本管理系统的设计与实现

姓 名:

薄洋

学 号:

2008030331217

学院:

商务学院

专业:

信息管理与信息系统

指导教师:

陈默

2011年11月11日

目录

1绪论4

1.1开发背景4

1.2开发目的4

1.3开发意义4

2需求分析5

2.1系统需求分析5

2.2用例图5

3系统设计11

3.1概念结构设计11

3.1.1数据库实例说明11

3.1.2数据表的对应关系说明11

3.2逻辑结构设计12

3.3物理结构设计13

3.4实施14

3.5界面设计16

3.5.1首页登录界面16

3.5.2注册界面16

3.5.3管理首页界面17

3.5.4添加界面17

3.5.5删除界面18

3.5.6修改界面18

4系统实现20

4.1.登录界面20

4.2注册20

4.3模糊查询21

4.4按姓名查询22

4.5按加入序号查询23

4.6添加25

4.7删除26

4.8修改26

总结28

5小结29

1绪论

1.1开发背景

电话号码管理软件是一个比较新型和使用的系统软件,随着科技的日益发展,手机已经成为一种非常普通和普遍的通讯工具,在日常的生活和交往中起到举足轻重的作用。

但是当手机中的存储量不够或者遗忘的时候,可以使用网上电话本管理系统,在网站上有相应的空间进行号码管理,方便出行安全性强。

1.2开发目的

本软件几乎为所有人士所设计,特别是成功人士,这些人的交流那么广,业务往来如此的繁忙,很难想像如果没有一个高效的“小秘书”作为助理,他们的生活将会是一个什么样的状态:

每天焦头烂额不说,但是最关键的是到头来发现所做的在很大程度上都是无用功,也只能算作是对时间的一种挥霍和浪费。

1.3开发意义

拥有了此软件则会给你带来完全不同的感受,首先最明显的就是办事效率大幅度提高,并且显得游刃有余。

无论何时何地只要能后连接互联网的地方就不怕找不到所需的电话号码,因为该软件会利用当今很流行的技术,数据库管理技术来帮你有条不紊地管理好你的关系网中的所有人士的资料“随时待命”,其中最主要的就是联系方式了。

2需求分析

2.1系统需求分析

在设计电话号码管理软件的时候用到的最重要的功能就是要调用数据库,并且通过数据库来储存和修改一些资料,方便、简单、易行。

在该系统中,处理最基本的添加、查找、修改、删除之外还支持当今最流行的模糊查询、用户修改密码和资料,提高了我们执行操作的效率。

另外,在系统中利用JAVA设计界面的优势,使得界面非常友好,给人一种赏心悦目的感觉。

在该系统的主界面中即可操作完成添加、查找(包括模糊查询)、按照进入数据库的顺序排序、按照姓名排序等功能,而修改和删除操作则是通过主界面上按钮的连接转换到另外一个界面执行操作,因此整个操作流程显得非常有条理,即使在很多数据和操作的情况下也不会“忙中出错”。

2.2用例图

图2-1一层用例图

描述用例

1.用例名称:

登录

执行者:

用户

目的:

完成一次完整的用户登录过程

类别:

主要的,基本的

级别:

一级

过程描述:

用户通过正确的用户名和密码进行登录,管理使用电话本管理系统

异常事件流处理过程:

用户名和密码不匹配或者用户名不存在,不能进行之后的管理操作,重新输入正确的用户名和密码。

2.用例名称:

注册

执行者:

用户

目的:

完成一次完整的用户注册过程

类别:

主要的,基本的

级别:

一级

过程描述:

根据相应的内容进行注册新用户信息

异常事件流处理过程:

用户名已经存在,重新输入用户名。

两次密码输入的内容不一致,提示错误清空密码内容。

3.用例名称:

管理号码

执行者:

用户

目的:

完成一次用户管理界面的操作过程

类别:

主要的,基本的

级别:

一级

过程描述:

用户登录成功之后进入号码管理界面。

异常事件流处理过程:

用户名和密码不匹配,登录不成功,重新返回登录界面

图2-2二层用例图

描述用例

4.用例名称:

添加

执行者:

用户

目的:

完成一次完整的用户添加电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行添加

异常事件流处理过程:

添加的内容已经存在,提示错误请重新输入添加内容。

5.用例名称:

删除

执行者:

用户

目的:

完成一次完整的用户删除电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行删除

异常事件流处理过程:

删除的内容不存在,提示错误请重新输入删除内容。

6.用例名称:

修改

执行者:

用户

目的:

完成一次完整的用户修改电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行修改

7.用例名称:

查询

执行者:

用户

目的:

完成一次完整的用户查询电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行查询

异常事件流处理过程:

查询的内容不存在,提示错误请重新输入查询内容。

8.用例名称:

模糊查询

执行者:

用户

目的:

完成一次完整的用户模糊查询电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行模糊查询

异常事件流处理过程:

模糊查询的内容不存在,提示错误请重新输入模糊查询内容。

9.用例名称:

按姓名查询

执行者:

用户

目的:

完成一次完整的用户按姓名查询电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行按姓名查询

异常事件流处理过程:

按姓名查询的内容不存在,提示错误请重新输入姓名内容。

10.用例名称:

按加入序号查询

执行者:

用户

目的:

完成一次完整的用户按加入序号查询电话号码的过程

类别:

主要的,基本的

级别:

二级

过程描述:

用户成功进入管理号码界面,对号码进行按加入序号查询

异常事件流处理过程:

按加入序号查询的内容不存在,提示错误请重新输入序号。

2.3可行性分析

技术可行性:

这个应用程序使用MyEclipse8.5+SQLSever2005进行开发设计

经济可行性:

这是在网上记录管理自己电话本的软件,需要申请网域名。

准备投资10万元开发。

域名也年付为标准一年的费用1万。

人力物力和硬件设备进行评估。

2.4功能分析

这是一个电话本管理系统,主要实现的功能是单方进行的,用户可以注册这个系统,之后登录系统进行对电话号码的管理.

在管理界面用户可以对电话本进行添加,修改,删除,查询。

其中查询功能又分为模糊查询,按姓名查询和按加入序号查询这三个子查询。

功能如下图2-3

图2-3功能结构图

3系统设计

3.1概念结构设计

3.1.1数据库实例说明

用户和号码这2个实体。

用户:

相应的用户有自己的唯一用户名和密码,属性还有Email,主键是用户名。

号码:

这个实例表的主键是号码编号,其他属性分别为姓名,地址,关系,固定电话,手机和Email。

3.1.2数据表的对应关系说明

对应关系:

在用户和号码之间形成了一般的对应关系。

一个用户可以管理多个号码,这种一对多的对应关系。

3.1.3数据库E-R:

图3.1.3

图3-1概念模型E-R图

3.2逻辑结构设计

一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。

关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。

然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。

为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。

第一范式(1NF)

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。

如图3.2

图3-2第一范式

3.3物理结构设计

这次课程设计我选择使用SQLServer2005数据库,并新建数据库名为phoneBook,如图3.3

图3-3数据库结构

3.4实施

表3.4-1号码管理表(phoneInfo)

字段名

类型

长度(字节)

允许空

主键

注释

numNO

char

4

 

号码编号

name

char

20

 

 

姓名

Adss

char

20

地址

reation

20

关系

telephone

20

固话

mobile

20

手机

Email

char

100

 

邮箱

表3.4-2用户管理表(UserInfo)

字段名

类型

长度(字节)

允许空

主键

注释

userName

char

4

 

用户名

Password

char

20

 

 

密码

Email

char

20

邮箱

表3.4-3管理管理表(manageInfo)

字段名

类型

长度(字节)

允许空

主键

注释

userName

char

4

 

用户名

numNO

char

20

 

 

号码编号

Email

char

20

邮箱

建立字段信息:

如图3-4,图3-5,图3-6

图3-4用户表字段

图3-5管理表字段

图3-6号码表字段

建立视图:

图3-7

图3-7关系视图

3.5界面设计

3.5.1首页登录界面

首页是用户接触的第一个界面,这个界面主要是让用户进行登录的,从而进入到电话号码管理的界面.图3-8

图3-8首页登录

3.5.2注册界面

在用户打开网站的时候,有用户名和密码的用户可以直接登录,没有相应的用户名和密码的新用户通过注册信息,完成登录和管理功能.图3-9

图3-9注册界面

3.5.3管理首页界面

在拥有自己的用户名和密码之后就可以登录到管理界面,管理自己的电话本了.图3-10

图3-10管理首页

3.5.4添加界面

图3-11添加界面

3.5.5删除界面

图3-12删除界面

3.5.6修改界面

图3-13修改界面

4系统实现

4.1.登录界面

if((jTextField1.getText()).equals("123")

&&(jTextField2.getText()).equals("123")){

JOptionPane.showMessageDialog(null,"登录成功!

");}else

JOptionPane.showMessageDialog(null,"登录失败,请重新登录!

");

newguanli().setVisible(true);}//使用已经给出的用户名和密码登录系统

4.2注册

Connectioncon;//连接数据源

Statementsql;

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){

System.out.println(""+e);

}

try{

con=DriverManager.getConnection("jdbc:

odbc:

boyang","","");

sql=con.createStatement();

System.out.println("数据注册操作");

sql.executeUpdate("insertintoUserInfovalues('"+jTextField1.getText().trim()+"','"+jTextField2.getText().trim()+"','"+jTextField4.getText().trim()+"')");//添加用户名和密码,等同于注册

if(jTextField2.getText().equals(jTextField3.getText())){

JOptionPane.showInputDialog("恭喜您,注册成功!

");

newguanli().setVisible(true);

}else{

JOptionPane.showInputDialog("两次输入密码不一样,请重新输入!

");

}

con.close();

}catch(SQLExceptione1){

}

4.3模糊查询

DefaultTableModeldtm;

//定义表格的数据模型

VectorcolumnName=newVector();

Vector>vector=newVector>();

Connectioncon;

Statementsql;

ResultSetrs;

columnName.add("numNO");

columnName.add("name");

columnName.add("adss");

columnName.add("reation");

columnName.add("telephone");

columnName.add("mobile");

columnName.add("Email");

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){

System.out.println(""+e);

}

try{

con=DriverManager.getConnection("jdbc:

odbc:

boyang","","");

sql=con.createStatement();

System.out.println("数据表查询操作");

rs=sql

.executeQuery("SELECTnumNO,name,adss,reation,telephone,mobile,EmailFROMphoneInfowherenamelike'"

+("%"+jTextField1.getText()+"%")+"'");//查询文本框中的姓名号码

while(rs.next()){

Vectorcom=newVector();

com.add(rs.getString("numNO"));

com.add(rs.getString("name"));

com.add(rs.getString("adss"));

com.add(rs.getString("reation"));

com.add(rs.getString("telephone"));

com.add(rs.getString("mobile"));

com.add(rs.getString("Email"));

vector.add(com);

}

con.close();

}catch(SQLExceptione1){

}

dtm=newDefaultTableModel(vector,columnName);//定义

DefaultTableCellRendererr=newDefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable1.setDefaultRenderer(Object.class,r);

jTable1.setModel(dtm);//设定表模式

4.4按姓名查询

DefaultTableModeldtm;

//定义表格的数据模型

VectorcolumnName=newVector();

Vector>vector=newVector>();

Connectioncon;

Statementsql;

ResultSetrs;

columnName.add("numNO");

columnName.add("name");

columnName.add("adss");

columnName.add("reation");

columnName.add("telephone");

columnName.add("mobile");

columnName.add("Email");

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){

System.out.println(""+e);

}

try{

con=DriverManager.getConnection("jdbc:

odbc:

boyang","","");

sql=con.createStatement();

System.out.println("数据表查询操作");

rs=sql.executeQuery("SELECT*FROMphoneInfoorderbynameDESC");

while(rs.next()){

Vectorcom=newVector();

com.add(rs.getString("numNO"));

com.add(rs.getString("name"));

com.add(rs.getString("adss"));

com.add(rs.getString("reation"));

com.add(rs.getString("telephone"));

com.add(rs.getString("mobile"));

com.add(rs.getString("Email"));

vector.add(com);

}

con.close();

}catch(SQLExceptione1){

}

dtm=newDefaultTableModel(vector,columnName);//定义

DefaultTableCellRendererr=newDefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable1.setDefaultRenderer(Object.class,r);

jTable1.setModel(dtm);

4.5按加入序号查询

DefaultTableModeldtm;

//定义表格的数据模型

VectorcolumnName=newVector();

Vector>vector=newVector>();

Connectioncon;

Statementsql;

ResultSetrs;

columnName.add("numNO");

columnName.add("name");

columnName.add("adss");

columnName.add("reation");

columnName.add("telephone");

columnName.add("mobile");

columnName.add("Email");

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){

System.out.println(""+e);

}

try{

con=DriverManager.getConnection("jdbc:

odbc:

boyang","","");

sql=con.createStatement();

System.out.println("数据表查询操作");

rs=sql.executeQuery("SELECT*FROMphoneInfoorderbynumNOASC");

while(rs.next()){

Vectorcom=newVector();

com.add(rs.getString("numNO"));

com.add(rs.getString("name"));

com.add(rs.getString("adss"));

com.add(rs.getString("reation"));

com.add(rs.getString("telephone"));

com.add(rs.getString("mobile"));

com.add(rs.getString("Email"));

vector.add(com);

}

con.close();

}catch(SQLExceptione1){

}

dtm=newDefaultTableModel(vector,columnName);//定义

DefaultTableCellRendererr=new

展开阅读全文
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1