JAVA数据库学生成绩管理系统实验报告.docx

上传人:b****8 文档编号:10109401 上传时间:2023-02-08 格式:DOCX 页数:23 大小:21.07KB
下载 相关 举报
JAVA数据库学生成绩管理系统实验报告.docx_第1页
第1页 / 共23页
JAVA数据库学生成绩管理系统实验报告.docx_第2页
第2页 / 共23页
JAVA数据库学生成绩管理系统实验报告.docx_第3页
第3页 / 共23页
JAVA数据库学生成绩管理系统实验报告.docx_第4页
第4页 / 共23页
JAVA数据库学生成绩管理系统实验报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

JAVA数据库学生成绩管理系统实验报告.docx

《JAVA数据库学生成绩管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《JAVA数据库学生成绩管理系统实验报告.docx(23页珍藏版)》请在冰豆网上搜索。

JAVA数据库学生成绩管理系统实验报告.docx

JAVA数据库学生成绩管理系统实验报告

 

实训报告

 

实训名称:

学生成绩管理系统

 

系(部):

专业班级:

 

学生姓名:

学号:

 

指导教师:

完成日期:

 

南京铁道职业技术学院

 

 

Java访问并处理数据库的设计与实现

 

1实训概述

 

南京铁道职业技术学院浦口校区2013级网络L1301班于大二上学期组织了为期一周的Java实训,本次实训的课题是“学生成绩管理系统”。

通过综合实训,掌握运用Java语言基本知识和技能、JAVA的基本语法与JDBC数据库技

术的应用;进一步熟悉Oracle数据库的数据库管理(数据库的创建、应用)。

的创建、修改、删除,约束及关系等、数据的查询处理(insert、update、delete、

select语句等技术。

 

2Java访问并处理数据库的课题描述

 

课题简介

经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,

Java?

技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人

PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有

全球最大的开发者专业社群。

使用的数据库是Oracle,Oracle数据库功能强大,

学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形

成用户满意的可行系统。

通过实训,我们掌握运用Java语言知识和技能,运用JAVA的基本语法与

JDBC数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表

的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、

update、delete、select语句的应用)等技术;并能结合数据库应用技术和jdbc进

行小型数据库管理系统的开发。

 

模块简介

管理员模块功能需求:

管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对

学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。

学生模块功能需求:

学生信息管理系统中需要在学生登录或验证身份后,,可以自行完成学生个

人信息的查询,也可以进行修改和删除个人信息、修改学生密码等操作。

 

数据库结构设计

 

数据表设计

定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的

物理设计如下:

1.表admin保存用户的个人信息

用户信息表主要是用来保存管理员用户的基本信息,包括管理员的ID和管理员的登录密码,只有符合这两个字段的格式要求,才能登录成功,结构表如下:

 

 

4-2

 

管理员信息表

 

字段名

管理员

 

ID

类型

number(10)

空值

notnull

约束条件

主键

 

登录密码

varchar2(10)

notnull

 

2.表student保存学生基本信息,结构表如下:

表4-5学生信息表

字段名

类型

空值

约束条件

学号

number(10)

notnull

主键

姓名

varchar2(20)

notnull

性别

varchar2(3)

年龄

number

(2)

登录密码

varchar2(10)

notnull

 

逻辑结构是独立于任何一种数据模型的信息结构。

逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

 

流程图层次设计

 

图的格式如下所示:

 

开始

 

进入登录页面

 

选择权限

(例如管理员)

 

选择要实现的按钮1.添加2.查询3.删除

 

添加按钮

添加一个学生信息,包括

ID,

姓名,年龄,性别

查找按钮

查找数据库中一个学生信息,

包括ID,姓名,年龄,性别

删除按钮

删除一个学生信息,包括他的

ID,姓名,年龄,性别

 

返回

结束

图1

管理员对学生信息管理系统局部

E-R图

数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并

表现系统的逻辑处理功能。

 

系统功能层次图

 

学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结

合.,进入系统,有两个用户,分别是普通学生、和管理员。

 

学生信息管理系统

 

登陆管理

 

 

 

 

图2学生信息管理系统功能层次图

 

3系统模块的详细设计

 

本学生信息管理系统主要模块,即用户登录模块、用户操作模块。

用户操作

模块又分为学生操作模块、管理员操作模块。

下面将显示系统的主要功能模块。

 

登录模块设计

学生信息管理系统前台登陆模块可以勾选管理员身份信息,代表以管理员身份进入。

不勾选即为普通学生身份登录。

管理员模块设计

 

学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个级

别登陆,系统在后台程序有自动限制设置,可以自动识别登陆者的限制。

其系统登

陆模块算法如下:

 

1判断是否勾选管理员身份;

2输入用户名和密码;

3判断用户名和密码是否匹配;

(1)若提示输入信息错误,则重新输入;

(2)否则以管理员身份进入系统。

添加学生信息功能

学生信息管理系统对学生信息的管理非常重要,其中对信息的录入是系统最

为关键的地方,以往我们管理学生信息的时候都是手工操作,而随社会不断发展的

今天计算机的应用已全部取带了手工操作的方法,利用计算机可以方便的录入各

类信息,进行高效的管理.学生信息的录入就是利用计算机通过程序读入数据库,

录入学生信息模块算法描述如下:

1.管理员登陆后,录入学生信息管理界面;

2.单击增加学生按钮,键入学生ID;

3.当录入学号已经存在,提示该学生信息已存在,请重新输入;

4.否则学生信息添加成功。

查找学生信息功能

学生信息管理系统对查询学生信息管理也很重要,方法和增添学生信息类

似,也同样是利用计算机通过程序读入数据库,查询学生信息模块算法描述如下:

1.管理员登陆后,点击查询学生;

2.当录入学生信息不存在时,提示没有该学生信息,重新输入;

3.当录入学生ID已经存在,提示该学生信息存在,显示学生信息;

删除学生信息功能

学生选课模块主要是给删除学生信息的功能,本功能主要由管理员进入数据

库,然后学生管理系统,其删除学生信息模块算法描述如下:

1.管理员成功登陆;

2.点击删除学生;

3.输入学生相关信息,如学生ID;

4.如该学生不存在,则提示信息不存在,否则删除该学生。

 

修改学生信息功能

此信息修改模块主要是给学生和管理员建立信息库,方便管理员查询操作,信

息修改模块算法描述如下:

1.管理员成功登陆;

2.点击修改学生信息;

3.输入学生的编号;

4.编号为空,重新输入;

5.输入不为数字,重新输入;

6.输入正确,进入修改页面进行相关修改。

 

学生模块设计

 

查看学生个人信息功能

学生信息管理系统方便了学生查看自己的学籍信息,如果学校由于疏忽输入

了错误信息,自己可以查看并且及时通知学校管理员,及时修改,减少不必要的麻

烦.

此信息查询模块主要是方便学生查询操作,信息查询模块算法描述如下:

1学生成功登陆;

2.点击查询学生信息;

3.输入学生的编号;

4.编号为空,重新输入;

5.输入不为数字,重新输入;

6.输入正确,进入信息查询页面进行相关修改。

修改学生登录密码功能

学生可以进入学生管理系统进行登录密码的修改

1.学生成功登陆;

2.单击修改密码;

3.输入旧密码、新密码确认后,若旧密码正确则修改成功,则提示重新输

入旧密码;

4.提交修改完成修改。

 

4程序运行与测试

 

package.*;

import.*;

import登录窗口

importclassLoginFrameextendsJFrame{

privateJCheckBoxc;

privateJButtonloginBtn,resetBtn;

privateJTextFieldnameInput;

privateJPasswordFieldpwdInput;

privateAdminDaoadminDao=newAdminDao();privateStudentDaostudentDao=newStudentDao();publicLoginFrame(){

etScreenSize();

intwidth=;

intheight=;

rim();

Stringpassword=().trim();

quals(password)){

o();

}else{

(null,"用户名或密码不正确","提示信息",;

}}

}else{

quals(password)){

(null,"登录成功","提示信息",;

new

StudentFrame(s,null).go();

}else{

 

(null,"用户名或密码不正确","提示信息",;

}

}

}

}

});}

publicvoidinit(){

o();}}

 

package和管理员相关的数据库操作

publicclassAdminDao{

indAdminByName("admi").getPassword());}}

 

package添加学生

publicclassAddStudentFrameextendsJFrame{

privateAdminFrameadmin;

privateJPanelp1,p2,p3,p4,p5;

privateJLabelidLbl,nameLbl,ageLbl,genderLbl;

privateJTextFieldidInput,nameInput,ageInput,genderInput;privateJButtonsubmitBtn,cancelBtn;

privateStudentDaostudentDao=newStudentDao();publicAddStudentFrame(AdminFrameadmin){

=admin;

setTitle("添加学生");

setResizable(false);

setBounds(400,100,300,400);

 

init();

event();}

privatevoidinit(){

Containercontainer=getContentPane();

(newGridLayout(5,1));

p1=newJPanel();

(null);

idLbl=newJLabel("学籍号:

");

(50,30,50,20);

idInput=newJTextField();

(100,30,120,20);

(idLbl);

(idInput);

(p1);

p2=newJPanel();

(null);

nameLbl=newJLabel("姓名:

");

(50,10,50,20);

nameInput=newJTextField();

(100,10,120,20);

(nameLbl);

(nameInput);

(p2);

p3=newJPanel();

(null);

ageLbl=newJLabel("年龄:

");

(50,10,50,20);

ageInput=newJTextField();

(100,10,120,20);

(ageLbl);

 

(ageInput);

(p3);

p4=newJPanel();

(null);

genderLbl=newJLabel("性别:

");

(50,10,50,20);

genderInput=newJTextField();

(100,10,120,20);

(genderLbl);

(genderInput);

(p4);

p5=newJPanel();

(null);

submitBtn=newJButton("确定");

(130,10,60,20);

cancelBtn=newJButton("取消");

(195,10,60,20);

(submitBtn);

(cancelBtn);

(p5);}

privatevoidevent(){

rim();

StringstudentName=().trim();

Stringage=().trim();

Stringgender=().trim();

Students=newStudent();

o();

}

}

 

package;

publicclassFindStudentFrameextendsJFrame{privateStudentDaostudentDao=newStudentDao();privateJLabelidLbl,nameLbl;

privateJTextFieldidInput,nameInput;

privateJButtonfindBtn,cancelBtn;

publicFindStudentFrame(){

setTitle("查找学生");

setBounds(405,100,200,390);

setResizable(false);

init();

event();}

privatevoidinit(){

Containercontainer=getContentPane();

(newGridLayout(3,1));

JPanelp1=newJPanel();

 

(null);

idLbl=newJLabel("学籍号:

");

(20,55,50,20);

idInput=newJTextField();

(73,55,100,20);

(idLbl);

(idInput);

(p1);

JPanelp2=newJPanel();

(null);

nameLbl=newJLabel("姓名:

");

(20,55,50,20);

nameInput=newJTextField();

(73,55,100,20);

(nameLbl);

(nameInput);

(p2);

JPanelp3=newJPanel();

(null);

findBtn=newJButton("搜索");

(60,30,60,20);

cancelBtn=newJButton("取消");

(123,30,60,20);

(findBtn);

(cancelBtn);

(p3);}

privatevoidevent(){

(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

}});

 

(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

StringidStr=().trim();

StringnameStr=().trim();

LongstudentId=null;

StringstudentName=null;

if()!

=0){o()}

});

}

publicvoidgo(){

setVisible(true);}

publicstaticvoidmain(String[]args){

newFindStudentFrame().go();

rim().length());正则表达式\s

eplaceAll("\\s","").length());}}

 

packageclassShowResultFrameextendsJFrame{

privateListstudents;

privateStudentDaostudentDao=newStudentDao();

publicShowResultFrame(Liststudents){setTitle("查询结果");

if()>0){

setBounds(100,100,300,60*());

}else{

setBounds(100,100,300,150);}

 

=students;

init();}

privatevoidinit(){

Containercontainer=getContentPane();

(newGridLayout(),2));

o();}}});

(newColor(253,253,187)));

JButtonb=newJButton("删除");

finalLongstudentId=();

(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

intchoose=(null,"确定删除?

");

o();

(studentId);

}}});

(l);(b);}}}

privatevoidevent(){

 

publicvoidwindowClosing(WindowEvente){

}});}

publicvoidgo(){setVisible(true);

 

}

publicstaticvoidmain(String[]args){

}}

 

packageclassStudentFrameextendsJFrame{

privateJPanelp1,p2,p3,p4,p5,p6;

privateJLabelidLbl,pwdLbl,nameLbl,ageLbl,genderLbl;privateJTextFieldidInput,nameInput,ageInput,genderInput;privateJPasswordFieldpwdInput;privateStudentstudent;

privateJButtonmodifyPwdBtn,submitBtn,exitBtn;

privateStringnPassword;

privateStudentDaodao=newStudentDao();

o();

}});

(newMouseAdapter(){

rim();

StringnewName=().trim();

StringnewAgeStr=().trim();

StringnewGender=().trim();

quals(newPassword)){

newStudentFrame(newStudent,null).go();

}else{

o();

}}});}

publicStudentgetStudent(){

 

returnstudent;}

publicstaticvoidmain(String[]args){

o();}}

 

5实训总结

 

本系统是采用Java技术开发的,由于在这个阶段中,基本是处于边学习边

实践的状态,基础知识还不是很牢靠,加之自身水平原因,程序还是有许多不足

之处。

,比如界面模块做的不够好、实现的功能不够完整、界面需要更精确的美

化。

 

经过这一段时间的努力,收获了很多,在收获的同时也发现了很多的不足,

回首论文的写作过程,得到了许多人的帮助,尤其是我的实训老师,在我论文的

完成过程中给予了我许多的帮助和鼓励。

在系统开发的两个月里,我受到了指导

老师的细心指导,甄磊老师老师严谨的指导态度与深厚的理论知识都让我受益非

浅,让我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高。

通过本次实训,我掌握了Java编程技能,对Oracle数据库有了较深的理解。

比较

全面的巩固了编程思想.也通过本次实训,使我懂得在在编程工作中,程序员的

工作态度以及良好的习惯的重要性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

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

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