JAVA课程设计报告Word文档格式.docx
《JAVA课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计报告Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
5
3.2.3用户信息管理模块。
6
(1)密码修改。
(2)用户信息添加和删除。
8
3.2.4学生息管理模块。
10
(1)添加信息。
(2)信息查看。
11
(3)信息修改。
12
(4)删除信息。
14
3.2.5系统管理模块。
15
3.2.6主窗体菜单设计。
四软件测试。
五总结。
15参考资料:
.......................................................17
2
一需求分析
本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效
率,降低管理成本.
系统中需要对拥护身份进行管理,采取登陆进入系统的形式.
二概要设计
/************************************************************************
概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作
流程等。
项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。
概要设计的
主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规
则约束,以达到各个模块之间可以相互交流的目的。
概要设计关乎到系统的整体架构,因此
想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。
2.1概要设计的原则
概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。
概要设计要坚持以下几个原则。
(1)细分原则:
软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。
解决复杂问题的方法是将其分解成几个小问题,一个个来解决。
(2)提高代码重用性:
在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。
(3)从上而下层层分析:
概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。
(4)一致性原则:
概要设计要求所有功能模块在定义时使用统一的规范。
(5)提高独立性,减少耦合:
各个模块与模块之间尽量减少关联,否则修改一个地方
就会引起其他多处的变动,不符合面向对象的原则。
一般情况下,对类封装后,只允许对类
进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完
成一个功能。
(6)模块的大小要尽量适中:
不是结构算法越复杂的模块越好,模块的大小要根据实
际工作目标和其他类的耦合紧密程度来决定。
经验表明,一个模块的规模不应过大,模块的
总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。
过长的
模块往往是分解不充分的表现,会增加阅读理解的难度;
但小规模太多也会使模块之间联系
变得复杂,增大系统在模块调用时传递信息所花费的开销。
由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设
计,才能在今后软件开发过程中不再反复。
现在软件行业流行模式化驱动设计,将一些市场
上比较成功的模式拿来用在自己的设计中。
2.2将用户需求模块化
根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模
块。
什么样的需求才是一个模块?
模块应该具备如下3个特征。
(1)输入和输出:
模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。
(2)处理功能:
模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。
(3)程序代码:
用来实现模块功能的源代码。
3.3确定系统最终模块
3
概要设计中最重要的就是确定此项目包括哪些模块。
根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。
**************************************************************************/2.1UML用例图
1用户登录信息管理
2用户信息管理3学生信息管理
4系统管理
系统首
页
用户用户信学生信
登陆息管理息管理
信息
管理
系统管
理
通过
添加
修改
查看
删除
重新
退出登
身份
密码
登陆
陆
请求
用户
2.2模块设计
4
1数据库设计模块
2用户登录识别模块
3用户信息管理模块
4学生信息管理模块
5系统管理模块三详细设计
3.1数据库设计
数据库名称:
student
表名:
user,stud
表user:
存放登陆用户的用户名和密码
表stud:
存放学生基本信息学生表(stus)
字段名
类型
备注
stusID
Varchar(30)
学生id
stuName
Nvarchar(50)
Notnull
stuSex
Nchar
(1)
性别
'
男'
或者'
女'
stuAge
int
年龄
>
stuDept
Nvarchar(30)
所在系
,
3.2模块及窗体设计
3.2.1数据库模块设计
将数据库的连接包装在一个database类中,以便其他模块能够轻松调用,避免每次重写数据
库连接代码。
下表是他的基本属性
文件名成员变量成员方法
publicstaticConnectioncn;
publicstaticbooleanjoinDB()
database.javapublicstaticStatementst;
publicstaticbooleanexecuteSQL(StringsqlString)
publicstaticResultSetrs;
publicstaticbooleanquery(StringsqlString)
代码如下:
importjava.sql.*;
//引入包
publicclassdatabase{
//定义一个连接对象
publicstaticStatementst;
//定义一个SQL语句对象
//定义一个数据集
publicstaticbooleanjoinDB(){//用来判断是否连接成功
booleanjoinFlag;
try{
joinFlag=true;
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
//通过调用java.lang中的Class类的forName方法来实现JDBC—ODBC桥接器
cn=DriverManager.getConnection("
jdbc:
odbc:
student"
"
sa"
"
创建一个连接对象cn.setCatalog("
//加载数据库
System.out.println("
数据库连接成功"
5
st=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//返回一个可滚动的结果集,数据库变化时结果集跟着变化;
不能用结果集更新数据
库中的表
returnjoinFlag;
}catch(SQLExceptionsqlEx){System.out.println(sqlEx.getMessage());
joinFlag=false;
}catch(ClassNotFoundExceptionnotfoundEX){System.out.println(notfoundEX.getMessage());
}
publicstaticbooleanexecuteSQL(StringsqlString){
booleanexecuteFlag;
st.execute(sqlString);
executeFlag=true;
}catch(Exceptione){executeFlag=false;
sqlexception:
+e.getMessage());
returnexecuteFlag;