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

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

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

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

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

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

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

表4-2管理员信息表

字段名

类型

空值

约束条件

管理员ID

number(10)

notnull

主键

登录密码

varchar2(10)

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

表4-5学生信息表

学号

number(10)

姓名

varchar2(20)

性别

varchar2(3)

年龄

number

(2)

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

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

流程图层次设计

图的格式如下所示:

图1管理员对学生信息管理系统局部E-R图

数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能。

2.4系统功能层次图

学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结合.,进入系统,有两个用户,分别是普通学生、和管理员。

3系统模块的详细设计

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

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

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

3.1登录模块设计

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

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

3.2管理员模块设计

学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个级别登陆,系统在后台程序有自动限制设置,可以自动识别登陆者的限制。

其系统登陆模块算法如下:

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

2输入用户名和密码;

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

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

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

添加学生信息功能

学生信息管理系统对学生信息的管理非常重要,其中对信息的录入是系统最为关键的地方,以往我们管理学生信息的时候都是手工操作,而随社会不断发展的今天计算机的应用已全部取带了手工操作的方法,利用计算机可以方便的录入各类信息,进行高效的管理.学生信息的录入就是利用计算机通过程序读入数据库,录入学生信息模块算法描述如下:

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

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

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

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

查找学生信息功能

学生信息管理系统对查询学生信息管理也很重要,方法和增添学生信息类似,也同样是利用计算机通过程序读入数据库,查询学生信息模块算法描述如下:

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

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

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

删除学生信息功能

学生选课模块主要是给删除学生信息的功能,本功能主要由管理员进入数据库,然后学生管理系统,其删除学生信息模块算法描述如下:

1.管理员成功登陆;

2.点击删除学生;

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

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

修改学生信息功能

此信息修改模块主要是给学生和管理员建立信息库,方便管理员查询操作,信息修改模块算法描述如下:

2.点击修改学生信息;

3.输入学生的编号;

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

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

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

3.3学生模块设计

查看学生个人信息功能

学生信息管理系统方便了学生查看自己的学籍信息,如果学校由于疏忽输入了错误信息,自己可以查看并且及时通知学校管理员,及时修改,减少不必要的麻烦.

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

1学生成功登陆;

2.点击查询学生信息;

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

修改学生登录密码功能

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

1.学生成功登陆;

2.单击修改密码;

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

4.提交修改完成修改。

4程序运行与测试

packagecom.briup.view;

importjava.awt.*;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjavax.swing.*;

importcom.briup.bean.Admin;

importcom.briup.bean.Student;

importcom.briup.dao.AdminDao;

//登录窗口

importcom.briup.dao.StudentDao;

publicclassLoginFrameextendsJFrame{

privateJCheckBoxc;

privateJButtonloginBtn,resetBtn;

privateJTextFieldnameInput;

privateJPasswordFieldpwdInput;

privateAdminDaoadminDao=newAdminDao();

privateStudentDaostudentDao=newStudentDao();

publicLoginFrame(){

//初始化窗口本身

Dimensiond=Toolkit.getDefaultToolkit().getScreenSize();

intwidth=d.width;

intheight=d.height;

//设置坐标为400-400宽为300高为200

setBounds(width/2-200,height/2-100,400,200);

setTitle("

登录界面"

);

//设置窗口为不可缩放

setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

init();

event();

}

privatevoidevent(){

//为按钮添加事件处理

resetBtn.addMouseListener(newMouseAdapter(){

//监听鼠标单击事件

@Override

publicvoidmouseClicked(MouseEvente){

System.exit(0);

}});

loginBtn.addMouseListener(newMouseAdapter(){

//获取用户输入的值

Stringusername=nameInput.getText().trim();

Stringpassword=pwdInput.getText().trim();

//判断是否勾选了管理员多选框

if(c.isSelected()){

//从管理员表中检测数据

Admina=adminDao.findAdminByName(username);

//如果a不为null说明用户输入的管理员是存在的

if(a==null){

//说明此管理员不存在

JOptionPane.showMessageDialog(null,"

用户名或密码不正确"

"

提示信息"

JOptionPane.WARNING_MESSAGE);

}else{

//管理员存在//密码正确//密码不正确

if(a.getPassword().equals(password)){

//后台保存的密码和用户从客户端输入的密码是一样的JOptionPane.showMessageDialog(null,"

登录成功"

//关闭当前的登录窗口

LoginFrame.this.dispose();

//开启管理员界面

newAdminFrame(a.getUsername()).go();

}else{

JOptionPane.showMessageDialog(null,"

}}

}else{

//从普通用户表中检测数据

Students=studentDao.findStudentByStudentId(username);

if(s==null){

if(s.getPassword().equals(password)){

newStudentFrame(s,null).go();

}}}}});

}

publicvoidinit(){

//初始化窗口内部的组件

Containercontainer=getContentPane();

//组件放到哪个位置由用户自己来制定

container.setLayout(null);

JLabeltitle=newJLabel("

用户登录"

title.setFont(newFont("

楷体"

0,32));

title.setBounds(110,5,200,33);

container.add(title);

JLabelnameLabel=newJLabel("

用户名:

"

nameLabel.setBounds(70,55,60,30);

container.add(nameLabel);

nameInput=newJTextField();

nameInput.setBounds(130,60,150,20);

//设置提示内容

nameInput.setToolTipText("

此处写登录用户名"

container.add(nameInput);

JLabelpwdLabel=newJLabel("

密码:

pwdLabel.setBounds(70,80,60,30);

container.add(pwdLabel);

pwdInput=newJPasswordField();

pwdInput.setBounds(130,85,150,20);

pwdInput.setToolTipText("

此处写密码"

container.add(pwdInput);

c=newJCheckBox("

管理员"

c.setBounds(68,115,70,30);

container.add(c);

loginBtn=newJButton("

登录"

loginBtn.setBounds(140,115,60,30);

container.add(loginBtn);

resetBtn=newJButton("

取消"

resetBtn.setBounds(215,115,60,30);

container.add(resetBtn);

publicvoidgo(){

setVisible(true);

publicstaticvoidmain(String[]args){

newLoginFrame().go();

}}

packagecom.briup.dao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importcom.briup.util.ConnectionFactory;

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

publicclassAdminDao{

//根据用户名查找指定管理员

publicAdminfindAdminByName(Stringusername){

Adminadmin=null;

Connectionconn=null;

PreparedStatementpstat=null;

ResultSetrs=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="

selectusername,passwordfromadminwhereusername=?

;

pstat=conn.prepareStatement(sql);

pstat.setString(1,username);

rs=pstat.executeQuery();

//如果查不到任何数据下方while内部的代码不会执行

while(rs.next()){

//如果能执行到这个地方说明指定管理员是存在的

admin=newAdmin();

admin.setUsername(username);

admin.setPassword(rs.getString("

password"

));

}

}catch(Exceptione){

//TODO:

handleexception

e.printStackTrace();

}finally{

ConnectionFactory.close(rs,pstat,conn);

returnadmin;

AdminDao().findAdminByName("

admi"

).getPassword());

importjava.awt.Container;

importjava.awt.GridLayout;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

//添加学生

publicclassAddStudentFrameextendsJFrame{

privateAdminFrameadmin;

privateJPanelp1,p2,p3,p4,p5;

privateJLabelidLbl,nameLbl,ageLbl,genderLbl;

privateJTextFieldidInput,nameInput,ageInput,genderInput;

privateJButtonsubmitBtn,cancelBtn;

publicAddStudentFrame(AdminFrameadmin){

this.admin=admin;

添加学生"

setBounds(400,100,300,400);

privatevoidinit(){

container.setLayout(newGridLayout(5,1));

p1=newJPanel();

p1.setLayout(null);

idLbl=newJLabel("

学籍号:

idLbl.setBounds(50,30,50,20);

idInput=newJTextField();

idInput.setBounds(100,30,120,20);

p1.add(idLbl);

p1.add(idInput);

container.add(p1);

p2=newJPanel();

p2.setLayout(null);

nameLbl=newJLabel("

姓名:

nameLbl.setBounds(50,10,50,20);

nameInput.setBounds(100,10,120,20);

p2.add(nameLbl);

p2.add(nameInput);

container.add(p2);

p3=newJPanel();

p3.setLayout(null);

ageLbl=newJLabel("

年龄:

ageLbl.setBounds(50,10,50,20);

ageInput=newJTextField();

ageInput.setBounds(100,10,120,20);

p3.add(ageLbl);

p3.add(ageInput);

container.add(p3);

p4=newJPanel();

p4.setLayout(null);

genderLbl=newJLabel("

性别:

genderLbl.setBounds(50,10,50,20);

genderInput=newJTextField();

genderInput.setBounds(100,10,120,20);

p4.add(genderLbl);

p4.add(genderInput);

container.add(p4);

p5=newJPanel();

p5.setLayout(null);

submitBtn=newJButton("

确定"

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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