1、JAVA数据库学生成绩管理系统实验报告实训报告实训名称: 学生成绩管理系统系 (部):专业班级 :学生姓名 :学 号:指导教师 :完成日期 :南京铁道职业技术学院目录Java 访问并处理数据库的设计与实现1实训概述南京铁道职业技术学院浦口校区 2013 级网络 L1301 班于大二上学期组织了为期一周的 Java 实训,本次实训的课题是“学生成绩管理系统” 。 通过综合实训,掌握运用 Java 语言基本知识和技能、 JAVA 的基本语法与 JDBC 数据库技术的应用;进一步熟悉 Oracle 数据库的数据库管理(数据库的创建、应用) 。表的创建、修改、删除,约束及关系等、数据的查询处理( in
2、sert、update、delete、select 语句等技术。2 Java 访问并处理数据库的课题描述课题简介经过分析 ,我们使用 Java 开发工具,利用其提供的各种面向对象的开发工具,Java?技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。使用的数据库是 Oracle, Oracle 数据库功能强大 ,学习起来也不难,然后,对初始原型系统进行需求迭代 ,不断修正和改进 ,直到形成用户满意的可行系统。通过实训,我们掌握运用 Java语言知识和技能,运用 JAVA 的基本语法与J
3、DBC 数据库技术的应用, 完成对甲骨文数据库的数据库管理、 例如表的设计(表的创建、修改、删除,字段的默认值、约束及关系等) 、数据的查询处理( insert、update、delete、select 语句的应用)等技术;并能结合数据库应用技术和 jdbc 进行小型数据库管理系统的开发。模块简介管理员模块功能需求 :管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作 ,对学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。学生模块功能需求 :学生信息管理系统中需要在学生登录或验证身份后 ,,可以自行完成学生个人信息的查询,也可以进行修改和删除个人信息、修改学生密码等操作
4、。数据库结构设计数据表设计定义每个表的数据类型以及字段限制 ,使数据库达到一定的完整性 .每个表的物理设计如下:1.表 admin 保存用户的个人信息用户信息表主要是用来保存管理员用户的基本信息 ,包括管理员的 ID 和管理员的登录密码 ,只有符合这两个字段的格式要求 ,才能登录成功 ,结构表如下:表4-2管理员信息表字段名管理员ID类型number(10)空值not null约束条件主键登录密码varchar2(10)not null2.表 student 保存学生基本信息 ,结构表如下:表 4-5 学生信息表字段名类型空值约束条件学号number(10)not null主键姓名varcha
5、r2(20)not null性别varchar2 (3)年龄number(2)登录密码varchar2(10)not null逻辑结构是独立于任何一种数据模型的信息结构。 逻辑结构的任务是把概念结构设计阶段设计好的基本 E-R 图转化为宜选用的 DBMS 所支持的数据模型相符合的逻辑结构,并对其进行优化。流程图层次设计图的格式如下所示:开始进入登录页面选择权限(例如管理员)选择要实现的按钮 1.添加 2.查询 3.删除添加按钮添加一个学生信息,包括ID ,姓名,年龄,性别查找按钮查找数据库中一个学生信息,包括 ID ,姓名,年龄,性别删除按钮删除一个学生信息,包括他的ID ,姓名,年龄,性别返
6、回结束图 1管理员对学生信息管理系统局部E-R 图数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向 ,并表现系统的逻辑处理功能。系统功能层次图学生信息管理系统是一个典型的数据库开发应用程序, 系统是和数据库相结合 .,进入系统 ,有两个用户 ,分别是普通学生、和管理员。学生信息管理系统登陆管理学生登录管理员登录修查增查删修改询加找除改密信学学学学码息生生生生图 2 学生信息管理系统功能层次图3系统模块的详细设计本学生信息管理系统主要模块 ,即用户登录模块、用户操作模块。用户操作模块又分为学生操作模块、管理员操作模块。下面将显示系统的主要功能模块。登录模块设计学生信息管理系统前台登
7、陆模块可以勾选管理员身份信息,代表以管理员身份进入。不勾选即为普通学生身份登录。管理员模块设计学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、 管理员两个级别登陆 ,系统在后台程序有自动限制设置 ,可以自动识别登陆者的限制。其系统登陆模块算法如下: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输入正确 ,进入修改页面进行相关修改。学生模块设计查看学生个人信息功能学生信息管理系统方
10、便了学生查看自己的学籍信息 ,如果学校由于疏忽输入了错误信息 ,自己可以查看并且及时通知学校管理员 ,及时修改 ,减少不必要的麻烦 .此信息查询模块主要是方便学生查询操作 ,信息查询模块算法描述如下:1学生成功登陆;2点击查询学生信息;3输入学生的编号;4编号为空 ,重新输入;5输入不为数字 ,重新输入;6输入正确 ,进入信息查询页面进行相关修改。修改学生登录密码功能学生可以进入学生管理系统进行登录密码的修改1.学生成功登陆;2单击修改密码;3输入旧密码、新密码确认后,若旧密码正确则修改成功,则提示重新输入旧密码;4提交修改完成修改。4程序运行与测试package .*;import .*;i
11、mport 登录窗口import 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()etScreenSize();int width=;in
12、t height=;rim();String password=().trim();quals(password)o();else(null, 用户名或密码不正确 , 提示信息 , ; elsequals(password)(null, 登录成功 , 提示信息 , ;newStudentFrame(s,null).go();else(null, 用户名或密码不正确 , 提示信息 , ;);public void init()o(); package 和管理员相关的数据库操作public class AdminDao indAdminByName(admi).getPassword(); pac
13、kage 添加学生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(); publ
14、ic AddStudentFrame(AdminFrame admin)=admin;setTitle(添加学生 );setResizable(false);setBounds(400, 100, 300, 400);init();event();private void init()Container container=getContentPane();(new GridLayout(5, 1);p1=new JPanel();(null);idLbl=new JLabel( 学籍号 :);(50, 30, 50, 20);idInput=new JTextField();(100, 30
15、, 120, 20);(idLbl);(idInput);(p1);p2=new JPanel();(null);nameLbl=new JLabel(姓名 :);(50, 10, 50, 20);nameInput=new JTextField();(100, 10, 120, 20);(nameLbl);(nameInput);(p2);p3=new JPanel();(null);ageLbl=new JLabel(年龄 :);(50, 10, 50, 20);ageInput=new JTextField();(100, 10, 120, 20);(ageLbl);(ageInput)
16、;(p3);p4=new JPanel();(null);genderLbl=new JLabel(性别 :);(50, 10, 50, 20);genderInput=new JTextField();(100, 10, 120, 20);(genderLbl);(genderInput);(p4);p5=new JPanel();(null);submitBtn=new JButton(确定 );(130, 10, 60, 20);cancelBtn=new JButton(取消 );(195, 10, 60, 20);(submitBtn);(cancelBtn);(p5);privat
17、e void event()rim();String studentName=().trim();String age=().trim();String gender=().trim();Student s=new Student();o();package ;public class FindStudentFrame extends JFrame private StudentDao studentDao=new StudentDao(); private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JB
18、utton findBtn,cancelBtn;public FindStudentFrame()setTitle(查找学生 );setBounds(405, 100, 200, 390);setResizable(false);init();event(); private void init()Container container=getContentPane();(new GridLayout(3, 1);JPanel p1=new JPanel();(null);idLbl=new JLabel( 学籍号 :);(20, 55, 50, 20);idInput=new JTextFi
19、eld();(73, 55, 100, 20);(idLbl);(idInput);(p1);JPanel p2=new JPanel();(null);nameLbl=new JLabel(姓名 :);(20, 55, 50, 20);nameInput=new JTextField();(73, 55, 100, 20);(nameLbl);(nameInput);(p2);JPanel p3=new JPanel();(null);findBtn=new JButton( 搜索 );(60,30,60,20);cancelBtn=new JButton(取消 );(123,30,60,2
20、0);(findBtn);(cancelBtn);(p3); private void event()(new WindowAdapter() public void windowClosing(WindowEvent e) );(new MouseAdapter() public void mouseClicked(MouseEvent e) String idStr=().trim();String nameStr=().trim();Long studentId=null;String studentName=null;if()!=0) o() );public void go()set
21、Visible(true); public static void main(String args) new FindStudentFrame().go();rim().length(); 正则表达式 seplaceAll(s, ).length(); package class ShowResultFrame extends JFrame private List students;private StudentDao studentDao=new StudentDao();public ShowResultFrame(List students) setTitle(查询结果 );if (
22、) 0) setBounds(100, 100, 300, 60 * (); else setBounds(100, 100, 300, 150); =students;init();private void init() Container container = getContentPane();(new GridLayout(), 2);o(); );(new Color(253, 253,187);JButton b = new JButton(删除 );final Long studentId = ();(new MouseAdapter() public void mouseCli
23、cked(MouseEvent e) int choose=(null, 确定删除 ?);o();(studentId); );(l); (b); private void event() public void windowClosing(WindowEvent e) ); public void go() setVisible(true);public static void main(String args) package class StudentFrame extends JFrameprivate JPanel p1,p2,p3,p4,p5,p6;private JLabel i
24、dLbl,pwdLbl,nameLbl,ageLbl,genderLbl; private JTextField idInput,nameInput,ageInput,genderInput; private JPasswordField pwdInput; private Student student;private JButton modifyPwdBtn,submitBtn,exitBtn;private String nPassword;private StudentDao dao=new StudentDao();o(););(new MouseAdapter() rim();St
25、ring newName=().trim();String newAgeStr=().trim();String newGender=().trim();quals(newPassword)new StudentFrame(newStudent,null).go();elseo(););public Student getStudent()return student; public static void main(String args) o();5实训总结本系统是采用 Java技术开发的,由于在这个阶段中,基本是处于边学习边实践的状态,基础知识还不是很牢靠, 加之自身水平原因, 程序还是
26、有许多不足之处。,比如界面模块做的不够好、实现的功能不够完整、界面需要更精确的美化。经过这一段时间的努力,收获了很多,在收获的同时也发现了很多的不足 ,回首论文的写作过程,得到了许多人的帮助, 尤其是我的实训老师, 在我论文的完成过程中给予了我许多的帮助和鼓励。在系统开发的两个月里 ,我受到了指导老师的细心指导,甄磊老师老师严谨的指导态度与深厚的理论知识都让我受益非浅,让我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高。通过本次实训,我掌握了 Java 编程技能 ,对 Oracle 数据库有了较深的理解。比较全面的巩固了编程思想 .也通过本次实训,使我懂得在在编程工作中,程序员的工作态度以及良好的习惯的重要性
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1