JAVA课程设计报告.docx
- 文档编号:4844271
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:15
- 大小:96.72KB
JAVA课程设计报告.docx
《JAVA课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
JAVA课程设计报告
《JAVA程序设计》
课程设计报告
设计题目:
学生信息管理系统
学院名称:
信息工程学院
专业班级:
13计本1
姓名:
学号:
一需求分析。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
二概要设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
三详细设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
数据库设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
模块及窗体设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
数据库模块设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
用户登录识别模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
用户信息管理模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
(1)密码修改。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
(2)用户信息添加和删除。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
8
学生息管理模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
10
(1)添加信息。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
10
(2)信息查看。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
11
(3)信息修改。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
12
(4)删除信息。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
14
系统管理模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
主窗体菜单设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
四软件测试。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
五总结。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
参考资料:
.......................................................17
一需求分析
本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.
系统中需要对拥护身份进行管理,采取登陆进入系统的形式.
二概要设计
/************************************************************************
概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。
项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。
概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。
概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。
概要设计的原则
概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。
概要设计要坚持以下几个原则。
(1)细分原则:
软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。
解决复杂问题的方法是将其分解成几个小问题,一个个来解决。
(2)提高代码重用性:
在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。
(3)从上而下层层分析:
概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。
(4)一致性原则:
概要设计要求所有功能模块在定义时使用统一的规范。
(5)提高独立性,减少耦合:
各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。
一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。
(6)模块的大小要尽量适中:
不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。
经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。
过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。
由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。
现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。
将用户需求模块化
根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。
什么样的需求才是一个模块模块应该具备如下3个特征。
(1)输入和输出:
模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。
(2)处理功能:
模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。
(3)程序代码:
用来实现模块功能的源代码。
确定系统最终模块
概要设计中最重要的就是确定此项目包括哪些模块。
根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。
**************************************************************************/
UML用例图
1用户登录信息管理
2用户信息管理
3学生信息管理
4系统管理
模块设计
1数据库设计模块
2用户登录识别模块
3用户信息管理模块
4学生信息管理模块
5系统管理模块
三详细设计
数据库设计
数据库名称:
student
表名:
user,stud
表user:
存放登陆用户的用户名和密码
表stud:
存放学生基本信息
学生表(stus)
字段名
类型
备注
stusID
Varchar(30)
学生id
stuName
Nvarchar(50)
Notnull
stuSex
Nchar
(1)
性别
'男'或者'女'
stuAge
int
年龄
>0
stuDept
Nvarchar(30)
所在系
……
模块及窗体设计
数据库模块设计
将数据库的连接包装在一个database类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。
下表是他的基本属性
文件名
成员变量
成员方法
publicstaticConnectioncn;
publicstaticStatementst;publicstaticResultSetrs;
publicstaticbooleanjoinDB()
publicstaticbooleanexecuteSQL(StringsqlString)
publicstaticbooleanquery(StringsqlString)
代码如下:
import.*;
howMessageDialog(null,"用户名或密码错误!
","",;
}
}catch(Exceptionex){
}
}
else{
"连接数据库不成功!
!
!
");
}
}
按钮“确定”的监听事件代码:
publicvoidactionPerformed(ActionEvente){
if().equals("")){
newJOptionPane().showMessageDialog(null,"用户名不能为空!
");
}
elseif().equals("")){
newJOptionPane().showMessageDialog(null,"密码不能为空!
");
}
else{
Stringsql="select*fromuserwhereuser_id='"+()+"'andpassword='"+()+"'";
Judge(sql);
quals())){
Stringsupdate="updateusersetpassword='"+()+"'whereuser_id='"+name+"'";
(supdate);
newJOptionPane().showMessageDialog(null,"密码更改成功!
");
}
else{
newJOptionPane().showMessageDialog(null,"两次密码不同!
");
}
}
else{
newJOptionPane().showMessageDialog(null,"旧密码不正确!
");
}
}
}
catch(Exceptionel){
}
}
});
(2)用户信息添加和删除
上半部分用来添加用户,下半部分用来删除用户
基本属性如下
文件名
控件名
privateJButtonbutACancel,butDCancel,butDelete,butOk;
privateJComboBoxcbUserName;
privateJLabeljLabel1,jLabel2,jLabel3,jLabel4,jLabel5;
privateJPasswordFieldpas1,pas2,pas3;
privateJTextFieldtxtname;
quals("")){howMessageDialog(null,"用户名不能为空!
");
}
elseif().equals("")){
newJOptionPane().showMessageDialog(null,"密码不能为空!
");
}
elseif().equals())){
Stringsql="insertintouservalues('"+()+"','"+()+"')";
try{
if(sql)){howMessageDialog(null,"添加成功!
");
());
}
}
catch(Exceptionea){}
}
}
});
删除按钮监听事件代码
(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=""+();howMessageDialog(null,"删除成功!
");
("");
();howMessageDialog(null,"密码不正确!
");
}}
}
catch(Exceptionel){
}}
});
学生信息管理模块
(1)添加信息
该添加是按照先添加学生信息,添加学生信息中的“添加“按钮代码:
(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if().equals("")){
newJOptionPane().showMessageDialog(null,"学号不能为空");
}
elseif().equals("")){
newJOptionPane().showMessageDialog(null,"姓名不能为空");
}
elseif().equals("")){
newJOptionPane().showMessageDialog(null,"性别不能为空");
}
else{
Stringsql="insertintostudvalues('"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"')";
try{
if(sql)){
newJOptionPane().showMessageDialog(null,"添加成功!
");
}
}
catch(Exceptionea){}
}
}
});
(2)信息查看
分为查看学生基本信息和查看学生成绩信息,因为代码和窗体大致相识,进取其一讲述
下面是他的属性
文件名称
控件名称
JtextArea:
te=newJTextArea();
代码为:
classviewstudextendsJInternalFrame
{viewstud()
{super("查看学生基本信息");
quals("")){
newJOptionPane().showMessageDialog(null,"请输入学号");
}
else{
Stringsql="select*fromgradewhere学号="+"'"+()+"'";
try{
if(sql)){.");
}
quals("")){
newJOptionPane().showMessageDialog(null,"请输入学号");
}
else{
Stringsql="select*fromstudwhere学号="+"'"+()+"'";
try{
if(sql)){.");
}
else{Stringsqq="deletefromstudwhere学号='"+()+"'";
Stringqll="deletefromgradewhere学号='"+()+"'";
Stringslq="select*fromgradewhere学号='"+()+"'";
if(slq)){
if}if(sqq)){(null,"删除成功");}
}}
}}
}
系统管理模块
重新登陆监听事件代码:
(newActionListener(){//重新登陆监听
publicvoidactionPerformed(ActionEvente){
"Land");
setVisible(false);
newLand();
}
});
退出菜单监听事件代码:
(newActionListener(){//退出系统监听
publicvoidactionPerformed(ActionEvente){
setVisible(false);
}
});
主窗体菜单设计
分为三个主菜单:
系统管理、用户管理、学生信息管理
系统管理分为:
重新登陆和退出
用户管理:
密码修改、添加/删除用户
学生信息管理:
删除学生信息及二级菜单--添加记录、信息查看、信息修改
添加记录:
学生基本信息添加
信息查看:
基本信息查看
修改信息:
基本信息修改
五软件测试
测试数据截图
/******************************************************************************
测试的方法
软件测试的方法和技术是多种多样的,网路上也提供了很多免费的工具。
对于软件测试技术,可以从不同的角度加以划分。
(1)从是否需要执行被测软件的角度,可分为静态测试和动态测试。
(2)从是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。
下面具体介绍黑盒测试和白盒测试。
(1)黑盒测试。
又叫功能测试,由测试人员在不知道程序如何实现的情况下,输入功能需要的数据,查看输出结果的正确性。
所谓“黑盒”,其实就是把程序看成是一个完全密封的盒子,测试人员不考虑程序的内部构造,只是按照需求说明,进行数据的录入操作,并查看结果是否满足需求要完成的功能。
“黑盒”法着眼于程序外部结构,不考虑内部运算,针对界面和功能进行测试。
“黑盒”法是穷举测试,只有把所有可能的输入都进行测试,才能查处程序中所有的错误。
实际上测试情况有无穷多个,测试人员不仅要测试合法的输入,还要对那些不合法的输入进行测试。
(2)白盒测试。
又叫逻辑结构测试。
测试人员需要了解功能的内部构造,对所有逻辑路径都进行测试。
“白盒”法是穷举路径测试。
测试人员必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
即使每条路径都测试了,仍然可能有错误。
第一,穷举路径测试无法查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试查不出程序中因遗漏路径而出错的情况。
第三,穷举路径测试可能发现不了输入数据的错误。
******************************************************************************/
六总结
本次java课程设计主要侧重在对学生信息管理里的添加、删除、修改、查看等最基本的操作,掌握这些最基本的设计思想是很重要的,能够帮助我们开发更加复杂的软件提供依据和基础,所以看似简单的课程设计,却是对我们设计软件的一次考验,一次磨练,所以我一直都保持着很认真地精神来进行设计的,通过这次课程设计对java类和对象的概念有了更深一步的了解,也培养了我们对java课程设计的兴趣的,增强了设计软件的思维能力,虽然时间很短,但还是收获了很多,每次课程设计都是一种锻炼。
在今后的学习里,一定要更加努力,学好这门编程语言。
参考资料
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 报告