欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新JAVA数据库学生管理系统实训报告.doc

    • 资源ID:35278243       资源大小:373KB        全文页数:38页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新JAVA数据库学生管理系统实训报告.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJAVA数据库学生管理系统实训报告学生综合信息网络平台设计与实施实训报告实训名称: 学生成绩管理系统实训 系 (部): 软件与艺术学院 专业班级: 网络L1301 学生姓名: 刘鑫 学 号: 13173120102 指导教师: 戎小群 完成日期: 2015/1/20 南京铁道职业技术学院-装订线目 录目 录31 实训概述32 Java访问并处理数据库的课题描述32.1 课题简介32.2 模块简介32.3 数据库结构设计42.4系统功能层次图63 系统模块的详细设计63.1登录模块设计63.2管理员模块设计63.3学生模块设计84 程序运行与测试95 实训总结30Java访问并处理数据库的设计与实现1 实训概述南京铁道职业技术学院浦口校区2013级网络L1301班于大二上学期组织了为期一周的Java实训,本次实训的课题是“学生成绩管理系统”。 通过综合实训,掌握运用Java语言基本知识和技能、 JAVA的基本语法与JDBC数据库技术的应用;进一步熟悉Oracle数据库的数据库管理(数据库的创建、应用)。表的创建、修改、删除,约束及关系等、数据的查询处理(insert、update、delete、select语句等技术。2 Java访问并处理数据库的课题描述2.1 课题简介经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。使用的数据库是Oracle,Oracle数据库功能强大,学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。通过实训,我们掌握运用Java语言知识和技能,运用JAVA的基本语法与JDBC数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和jdbc进行小型数据库管理系统的开发。2.2 模块简介管理员模块功能需求:管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。学生模块功能需求:学生信息管理系统中需要在学生登录或验证身份后,,可以自行完成学生个人信息的查询,也可以进行修改和删除个人信息、修改学生密码等操作。2.3 数据库结构设计数据表设计定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的物理设计如下:1.表admin保存用户的个人信息用户信息表主要是用来保存管理员用户的基本信息,包括管理员的ID和管理员的登录密码,只有符合这两个字段的格式要求,才能登录成功,结构表如下:表4-2管理员信息表字段名 类型空值约束条件管理员ID number(10)not null主键登录密码varchar2(10)not null2.表student保存学生基本信息,结构表如下:表4-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,姓名,年龄,性别删除一个学生信息,包括他的ID,姓名,年龄,性别结束图1 管理员对学生信息管理系统局部E-R图数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能。2.4系统功能层次图学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结合.,进入系统,有两个用户,分别是普通学生、和管理员。学生信息管理系统登陆管理学生登录管理员登录查询信息增加学生修改密码查找学生删除学生修改学生图2 学生信息管理系统功能层次图3 系统模块的详细设计本学生信息管理系统主要模块,即用户登录模块、用户操作模块。用户操作模块又分为学生操作模块、管理员操作模块。下面将显示系统的主要功能模块。3.1登录模块设计 学生信息管理系统前台登陆模块可以勾选管理员身份信息,代表以管理员身份进入。不勾选即为普通学生身份登录。3.2管理员模块设计学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个级别登陆,系统在后台程序有自动限制设置,可以自动识别登陆者的限制。其系统登陆模块算法如下: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输入正确,进入修改页面进行相关修改。3.3学生模块设计查看学生个人信息功能学生信息管理系统方便了学生查看自己的学籍信息,如果学校由于疏忽输入了错误信息,自己可以查看并且及时通知学校管理员,及时修改,减少不必要的麻烦.此信息查询模块主要是方便学生查询操作,信息查询模块算法描述如下:1 学生成功登陆;2点击查询学生信息;3输入学生的编号;4编号为空,重新输入;5输入不为数字,重新输入;6输入正确,进入信息查询页面进行相关修改。修改学生登录密码功能学生可以进入学生管理系统进行登录密码的修改1. 学生成功登陆;2单击修改密码;3输入旧密码、新密码确认后,若旧密码正确则修改成功,则提示重新输入旧密码;4提交修改完成修改。4 程序运行与测试package com.briup.view;import java.awt.*;import java.awt.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 JTextField 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/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.addMouseListener(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)/说明此管理员不存在JOptionPane.showMessageDialog(null, "用户名或密码不正确", "提示信息", JOptionPane.WARNING_MESSAGE);else/管理员存在 /密码正确/密码不正确if(a.getPassword().equals(password)/后台保存的密码和用户从客户端输入的密码是一样的JOptionPane.showMessageDialog(null, "登录成功", "提示信息", JOptionPane.WARNING_MESSAGE);/关闭当前的登录窗口LoginFrame.this.dispose();/开启管理员界面new AdminFrame(a.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(password)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();/组件放到哪个位置由用户自己来制定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,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 JCheckBox("管理员");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 LoginFrame().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=null;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.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().findAdminByName("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 javax.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,ageLbl,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();private 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 JPanel();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=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(genderInput);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.addWindowListener(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(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=genderInput.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.showMessageDialog(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.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 java.util.List;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import 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 FindStudentFrame()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 JTextField();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(p2);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(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.parseLong(idStr); if(nameStr.length()!=0)studentName=nameStr;List<Student> students=studentDao.findStudentByConditions(studentId, studentName);/将查询的结果传递给显示界面new ShowResul

    注意事项

    本文(最新JAVA数据库学生管理系统实训报告.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开