收藏 分销(赏)

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

上传人:w****g 文档编号:2993134 上传时间:2024-06-12 格式:DOC 页数:33 大小:270.54KB
下载 相关 举报
JAVA数据库学生成绩标准管理系统实验报告.doc_第1页
第1页 / 共33页
JAVA数据库学生成绩标准管理系统实验报告.doc_第2页
第2页 / 共33页
JAVA数据库学生成绩标准管理系统实验报告.doc_第3页
第3页 / 共33页
JAVA数据库学生成绩标准管理系统实验报告.doc_第4页
第4页 / 共33页
JAVA数据库学生成绩标准管理系统实验报告.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、实训汇报实训名称: 学生成绩管理系统 系 (部): 专业班级: 学生姓名: 学 号: 指导老师: 完成日期: 南京铁道职业技术学院装订线目 录目 录31 实训概述32 Java访问并处理数据库课题描述32.1 课题介绍32.2 模块介绍32.3 数据库结构设计42.4系统功效层次图63 系统模块具体设计63.1登录模块设计63.2管理员模块设计63.3学生模块设计84 程序运行和测试95 实训总结30Java访问并处理数据库设计和实现1 实训概述南京铁道职业技术学院浦口校区级网络L1301班于大二上学期组织了为期一周Java实训,此次实训课题是“学生成绩管理系统”。 经过综合实训,掌握利用Ja

2、va语言基础知识和技能、 JAVA基础语法和JDBC数据库技术应用;深入熟悉Oracle数据库数据库管理(数据库创建、应用)。表创建、修改、删除,约束及关系等、数据查询处理(insert、update、delete、select语句等技术。2 Java访问并处理数据库课题描述2.1 课题介绍经过分析,我们使用Java开发工具,利用其提供多种面向对象开发工具,Java技术含有卓越通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大开发者专业社群。使用数据库是Oracle,Oracle数据库功效强大,学习起来也不难,然后,

3、对初始原型系统进行需求迭代,不停修正和改善,直到形成用户满意可行系统。经过实训,我们掌握利用Java语言知识和技能,利用JAVA基础语法和JDBC数据库技术应用,完成对甲骨文数据库数据库管理、比如表设计(表创建、修改、删除,字段默认值、约束及关系等)、数据查询处理(insert、update、delete、select语句应用)等技术;并能结合数据库应用技术和jdbc进行小型数据库管理系统开发。2.2 模块介绍管理员模块功效需求:管理员身份登陆系统后,能够对学生信息进行添加、修改和查询等操作,对学生进行添加、修改和查询功效操作,还能够修改管理员登录密码。学生模块功效需求:学生信息管理系统中需要

4、在学生登录或验证身份后,,能够自行完成学生个人信息查询,也能够进行修改和删除个人信息、修改学生密码等操作。2.3 数据库结构设计数据表设计定义每个表数据类型和字段限制,使数据库达成一定完整性.每个表物理设计以下:1.表admin保留用户个人信息用户信息表关键是用来保留管理员用户基础信息,包含管理员ID和管理员登录密码,只有符合这两个字段格式要求,才能登录成功,结构表以下:表4-2管理员信息表字段名 类型空值约束条件管理员ID number(10)not null主键登录密码varchar2(10)not null2.表student保留学生基础信息,结构表以下:表4-5学生信息表字段名 类型空

5、值约束条件学号number(10)not null主键姓名varchar2(20)not null性别varchar2 (3)年纪number(2)登录密码varchar2(10)not null逻辑结构是独立于任何一个数据模型信息结构。逻辑结构任务是把概念结构设计阶段设计好基础E-R图转化为宜选择DBMS所支持数据模型相符合逻辑结构,并对其进行优化。步骤图层次设计图格式以下所表示:开始选择要实现按钮1.添加2.查询3.删除进入登录页面选择权限(比如管理员)添加按钮查找按钮删除按钮返回添加一个学生信息,包含ID,姓名,年纪,性别查找数据库中一个学生信息,包含ID,姓名,年纪,性别删除一个学生信

6、息,包含她ID,姓名,年纪,性别结束图1 管理员对学生信息管理系统局部E-R图数据流图是结构化系统分析关键工具,它表示了系统内部信息流向,并表现系统逻辑处理功效。2.4系统功效层次图学生信息管理系统是一个经典数据库开发应用程序,系统是和数据库相结合.,进入系统,有两个用户,分别是一般学生、和管理员。学生信息管理系统登陆管理学生登录管理员登录查询信息增加学生修改密码查找学生删除学生修改学生图2 学生信息管理系统功效层次图3 系统模块具体设计本学生信息管理系统关键模块,即用户登录模块、用户操作模块。用户操作模块又分为学生操作模块、管理员操作模块。下面将显示系统关键功效模块。3.1登录模块设计 学生

7、信息管理系统前台登陆模块能够勾选管理员身份信息,代表以管理员身份进入。不勾选即为一般学生身份登录。3.2管理员模块设计学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个等级登陆,系统在后台程序有自动限制设置,能够自动识别登陆者限制。其系统登陆模块算法以下:1 判定是否勾选管理员身份;2 输入用户名和密码;3 判定用户名和密码是否匹配;(1)若提醒输入信息错误,则重新输入;(2)不然以管理员身份进入系统。添加学生信息功效学生信息管理系统对学生信息管理很关键,其中对信息录入是系统最为关键地方,以往我们管理学生信息时候全部是手工操作,而随社会不停发展今天计算机应用已全部取带了手工操作方

8、法,利用计算机能够方便录入各类信息,进行高效管理.学生信息录入就是利用计算机经过程序读入数据库,录入学生信息模块算法描述以下:1.管理员登陆后,录入学生信息管理界面;2.单击增加学生按钮,键入学生ID;3.当录入学号已经存在,提醒该学生信息已存在,请重新输入;4.不然学生信息添加成功。查找学生信息功效学生信息管理系统对查询学生信息管理也很关键,方法和增添学生信息类似,也一样是利用计算机经过程序读入数据库,查询学生信息模块算法描述以下:1.管理员登陆后,点击查询学生;2.当录入学生信息不存在时,提醒没有该学生信息,重新输入;3.当录入学生ID已经存在,提醒该学生信息存在,显示学生信息;删除学生信

9、息功效学生选课模块关键是给删除学生信息功效,本功效关键由管理员进入数据库,然后学生管理系统,其删除学生信息模块算法描述以下:1管理员成功登陆;2点击删除学生;3输入学生相关信息,如学生ID;4. 如该学生不存在,则提醒信息不存在,不然删除该学生。修改学生信息功效此信息修改模块关键是给学生和管理员建立信息库,方便管理员查询操作,信息修改模块算法描述以下:1管理员成功登陆;2点击修改学生信息;3输入学生编号;4编号为空,重新输入;5输入不为数字,重新输入;6输入正确,进入修改页面进行相关修改。3.3学生模块设计查看学生个人信息功效学生信息管理系统方便了学生查看自己学籍信息,假如学校因为疏忽输入了错

10、误信息,自己能够查看而且立即通知学校管理员,立即修改,降低无须要麻烦.此信息查询模块关键是方便学生查询操作,信息查询模块算法描述以下:1 学生成功登陆;2点击查询学生信息;3输入学生编号;4编号为空,重新输入;5输入不为数字,重新输入;6输入正确,进入信息查询页面进行相关修改。修改学生登录密码功效学生能够进入学生管理系统进行登录密码修改1. 学生成功登陆;2单击修改密码;3输入旧密码、新密码确定后,若旧密码正确则修改成功,则提醒重新输入旧密码;4提交修改完成修改。4 程序运行和测试package com.briup.view;import java.awt.*;import java.awt.

11、event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.*;import com.briup.bean.Admin;import com.briup.bean.Student;import com.briup.dao.AdminDao;/登录窗口import com.briup.dao.StudentDao;public class LoginFrame extends JFrameprivate JCheckBox c;private JButton loginBtn,resetBtn;private JT

12、extField nameInput;private JPasswordField pwdInput;private AdminDao adminDao=new AdminDao();private StudentDao studentDao=new StudentDao();public LoginFrame()/初始化窗口本身Dimension d=Toolkit.getDefaultToolkit().getScreenSize();int width=d.width;int height=d.height;/设置坐标为400-400 宽为300 高为200setBounds(width

13、/2-200, height/2-100, 400, 200);setTitle(登录界面);/设置窗口为不可缩放setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event();private void event() /为按钮添加事件处理resetBtn.addMouseListener(new MouseAdapter() /监听鼠标单击事件 Overridepublic void mouseClicked(MouseEvent e) System.exit(0););loginBtn.ad

14、dMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) /获取用户输入值String username=nameInput.getText().trim();String password=pwdInput.getText().trim();/判定是否勾选了管理员多选框if(c.isSelected()/从管理员表中检测数据 Admin a=adminDao.findAdminByName(username);/假如a不为null说明用户输入管理员是存在 if(a=null)/说明此管理员

15、不存在JOptionPane.showMessageDialog(null, 用户名或密码不正确, 提醒信息, JOptionPane.WARNING_MESSAGE);else/管理员存在 /密码正确/密码不正确if(a.getPassword().equals(password)/后台保留密码和用户从用户端输入密码是一样JOptionPane.showMessageDialog(null, 登录成功, 提醒信息, JOptionPane.WARNING_MESSAGE);/关闭目前登录窗口LoginFrame.this.dispose();/开启管理员界面new AdminFrame(a.

16、getUsername().go();elseJOptionPane.showMessageDialog(null, 用户名或密码不正确, 提醒信息, JOptionPane.WARNING_MESSAGE);else/从一般用户表中检测数据Student s=studentDao.findStudentByStudentId(username);if(s=null)JOptionPane.showMessageDialog(null, 用户名或密码不正确, 提醒信息, JOptionPane.WARNING_MESSAGE);elseif(s.getPassword().equals(pas

17、sword)JOptionPane.showMessageDialog(null, 登录成功, 提醒信息, JOptionPane.WARNING_MESSAGE);LoginFrame.this.dispose();new StudentFrame(s,null).go();elseJOptionPane.showMessageDialog(null, 用户名或密码不正确, 提醒信息, JOptionPane.WARNING_MESSAGE););public void init()/初始化窗口内部组件Container container=getContentPane();/组件放到哪个位

18、置由用户自己来制订container.setLayout(null);JLabel title=new JLabel(用 户 登 录);title.setFont(new Font(楷体,0,32);title.setBounds(110,5,200,33);container.add(title);JLabel nameLabel=new JLabel(用户名:);nameLabel.setBounds(70, 55, 60, 30);container.add(nameLabel);nameInput=new JTextField();nameInput.setBounds(130,60,

19、150,20);/设置提醒内容nameInput.setToolTipText(此处写登录用户名);container.add(nameInput);JLabel pwdLabel=new JLabel(密 码:);pwdLabel.setBounds(70, 80, 60, 30);container.add(pwdLabel);pwdInput=new JPasswordField();pwdInput.setBounds(130,85,150,20);pwdInput.setToolTipText(此处写密码);container.add(pwdInput);c=new JCheckBo

20、x(管理员);c.setBounds(68, 115, 70, 30);container.add(c);loginBtn=new JButton(登录);loginBtn.setBounds(140, 115, 60, 30);container.add(loginBtn);resetBtn=new JButton(取消);resetBtn.setBounds(215, 115, 60, 30);container.add(resetBtn);public void go()setVisible(true);public static void main(String args) new L

21、oginFrame().go();package com.briup.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.briup.bean.Admin;import com.briup.util.ConnectionFactory;/和管理员相关数据库操作public class AdminDao /依据用户名查找指定管理员public Admin findAdminByName(String username)Admin admin=nu

22、ll;Connection conn=null;PreparedStatement pstat=null;ResultSet rs=null;try conn=ConnectionFactory.getConnection();String sql=select username,password from admin where username=?;pstat=conn.prepareStatement(sql);pstat.setString(1, username);rs=pstat.executeQuery();/假如查不到任何数据 下方while内部代码不会实施 while(rs.

23、next()/假如能实施到这个地方 说明指定管理员是存在admin=new Admin();admin.setUsername(username);admin.setPassword(rs.getString(password); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallyConnectionFactory.close(rs, pstat, conn);return admin;public static void main(String args) AdminDao().findAdminBy

24、Name(admi).getPassword();package com.briup.view;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import j

25、avax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;/添加学生public class AddStudentFrame extends JFrameprivate AdminFrame admin;private JPanel p1,p2,p3,p4,p5;private JLabel idLbl,nameLbl,a

26、geLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JButton submitBtn,cancelBtn;private StudentDao studentDao=new StudentDao();public AddStudentFrame(AdminFrame admin)this.admin=admin;setTitle(添加学生);setResizable(false);setBounds(400, 100, 300, 400);init();event();privat

27、e void init()Container container=getContentPane();container.setLayout(new GridLayout(5, 1);p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(学籍号:);idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPa

28、nel();p2.setLayout(null);nameLbl=new JLabel(姓名:);nameLbl.setBounds(50, 10, 50, 20);nameInput=new JTextField();nameInput.setBounds(100, 10, 120, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);p3=new JPanel();p3.setLayout(null);ageLbl=new JLabel(年纪:);ageLbl.setBounds(50, 10, 50, 20);ageInput=

29、new JTextField();ageInput.setBounds(100, 10, 120, 20);p3.add(ageLbl);p3.add(ageInput);container.add(p3);p4=new JPanel();p4.setLayout(null);genderLbl=new JLabel(性别:);genderLbl.setBounds(50, 10, 50, 20);genderInput=new JTextField();genderInput.setBounds(100, 10, 120, 20);p4.add(genderLbl);p4.add(gende

30、rInput);container.add(p4);p5=new JPanel();p5.setLayout(null);submitBtn=new JButton(确定);submitBtn.setBounds(130, 10, 60, 20);cancelBtn=new JButton(取消);cancelBtn.setBounds(195, 10, 60, 20);p5.add(submitBtn);p5.add(cancelBtn);container.add(p5);private void event()/设置目前窗口关闭操作/此处可自定义窗口关闭时所作操作this.addWind

31、owListener(new WindowAdapter() public void windowClosing(WindowEvent e) /将之前传输过来那个管理窗口设置为可用if(admin!=null)admin.setEnabled(true);/释放目前窗口AddStudentFrame.this.dispose(););/取消按钮操作cancelBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) if(admin!=null)admin.setEnabled

32、(true);AddStudentFrame.this.dispose(););/确定按钮操作submitBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) /接收用户在用户端输入值/正则表示式 String studentId=idInput.getText().trim();String studentName=nameInput.getText().trim();String age=ageInput.getText().trim();String gender=genderInpu

33、t.getText().trim();Student s=new Student();/注意别输入了已存在学籍号s.setStudentid(Long.parseLong(studentId);s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age);s.setGender(gender);/将取得值封装成Student对象调用指定方法存放到数据库boolean result=studentDao.addStudent(s);if(result)JOptionPane.showMe

34、ssageDialog(null, 添加成功!);if(admin!=null)admin.setEnabled(true);AddStudentFrame.this.dispose();elseJOptionPane.showMessageDialog(null, 添加失败,请检验学籍号是否已存在!););public void go()setVisible(true);public static void main(String args) new AddStudentFrame(null).go();package com.briup.view;import java.awt.Conta

35、iner;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.List;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;imp

36、ort javax.swing.JTextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;public class FindStudentFrame extends JFrameprivate StudentDao studentDao=new StudentDao();private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFr

37、ame()setTitle(查找学生);setBounds(405, 100, 200, 390);setResizable(false);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(3, 1);JPanel p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(学籍号:);idLbl.setBounds(20, 55, 50, 20);idInput=new JTextFiel

38、d();idInput.setBounds(73, 55, 100, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel(姓名:);nameLbl.setBounds(20, 55, 50, 20);nameInput=new JTextField();nameInput.setBounds(73, 55, 100, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p

39、2);JPanel p3=new JPanel();p3.setLayout(null);findBtn=new JButton(搜索);findBtn.setBounds(60,30,60,20);cancelBtn=new JButton(取消);cancelBtn.setBounds(123,30,60,20);p3.add(findBtn);p3.add(cancelBtn);container.add(p3);private void event()this.addWindowListener(new WindowAdapter() public void windowClosing

40、(WindowEvent e) FindStudentFrame.this.dispose(););findBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) String idStr=idInput.getText().trim();String nameStr=nameInput.getText().trim();Long studentId=null;String studentName=null;if(idStr.length()!=0)/假如id有值 studentId=Long

41、.parseLong(idStr); if(nameStr.length()!=0)studentName=nameStr;List students=studentDao.findStudentByConditions(studentId, studentName);/将查询结果传输给显示界面new ShowResultFrame(students).go();public void go()setVisible(true);public static void main(String args) new FindStudentFrame().go();/System.out.println( .trim().length(); 正则表示式 s/System.out.println();/System.out.println(1 2 .replaceAll(s, ).length();package com.briup.view;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.e

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服