收藏 分销(赏)

javaSQL教学标准管理系统.doc

上传人:w****g 文档编号:2993206 上传时间:2024-06-12 格式:DOC 页数:42 大小:1.40MB 下载积分:12 金币
下载 相关 举报
javaSQL教学标准管理系统.doc_第1页
第1页 / 共42页
javaSQL教学标准管理系统.doc_第2页
第2页 / 共42页


点击查看更多>>
资源描述
摘要 本汇报关键介绍了利用JAVA基础语言、面向对象程序设计、图形用户界面编程、访问数据库等知识所设计开发出小型学生信息管理系统。共分为课题概述、数据库设计过程、系统设计和实现、取得结果、总结和体会、关键参考文件、附录(原程序代码、注释)六大部分。 每一部分全部对此次课程设计过程及结果进行了具体介绍。比如:在课题概述中,读者可了解到课程设计关键任务及要求;在取得结果中,展示了所实现界面效果;在总结和体会中,可了解到在课程设计中所需注意事项等内容。 关键字: JAVA 数据库 课程设计 目录 一、课题概述 - 3 - 1.1任务 - 3 - 1.2目标 - 3 - 1.3要求 - 3 - 二、数据库设计过程 - 3 - 2.1 需求分析 - 3 - 2.2 概念结构设计 - 4 - 2.3 逻辑结构设计 - 4 - 2.4 物理结构设计 - 5 - 2.5 数据库实施和运行维护 - 6 - 三、系统设计和实现 - 7 - 3.1 系统设计 - 7 - 3.1.1该系统实现大致功效 - 7 - 3.1.2 开发环境和软件 - 7 - 3.2设计思绪 - 7 - 3.2.1 系统模块图 - 7 - 3.3 采取方案 - 8 - 3.3.1登录界面 - 8 - 3.3.2注册界面 - 8 - 3.3.3管理员界面 - 8 - 3.4 学生主页 - 9 - 3.5 老师主页 - 9 - 四、取得结果 - 9 - 4.1 登录界面 - 9 - 3.2 管理员界面 - 10 - 3.3 学生主页 - 11 - 3.4 老师主页 - 11 - 3.3 录入界面 - 12 - 3.4 查询界面 - 13 - 3.5 修改/删除界面 - 13 - 五、总结和体会 - 14 - 六、关键参考文件 - 15 - 七、附录(部分原程序代码、注释等) - 15 - 6.1 登录 - 15 - 6.2 课程信息维护界面 - 19 - 一、课题概述 1.1任务 依据所学JAVA及SQL Server数据库知识,设计出符合要求学生信息管理系统。本系统可实现管理系统中登录、注册及增、删、改、查等功效,以实现前台对后台数据库管理。 1.2目标 1、经过此次课程设计实践操作,巩固和加深对高级语言程序设计课程基础知识了解和掌握,掌握java语言编程和程序调试基础技能; 2、利用java语言进行基础软件设计,提升利用java语言处理实际问题能力; 3、充足掌握面向用户界面中各组件及布局利用; 4、深入训练自顶向下逐步求精策略,并应用于实际问题; 1.3要求 要求利用JAVA及SQL数据库等方面知识,对学生信息管理系统开发,在功效上实现管理系统中增、删、改、查;在界面上注意设计美观程度。并能够经过登陆系统进入主界面,然后经过主界面管理学生信息。 二、数据库设计过程 2.1 需求分析 (1) 用户需求 此学生成绩管理系统用户分为管理员,老师和学生,其中管理员能够实现对学生和课程基础信息增、删、查、改等操作;而学生只能查看基础信息和成绩信息,所以合理分配用户权限显得十分关键。以用户登录用户名和密码来查对确定用户,管理好这些用户对系统安全有十分关键影响。 (2) 功效需求 ① 登录模块:关键分为老师,管理员和学生,对于登录后,根据各自需求深入进行。 ② 基础信息管理模块:管理员实现对学生信息增、删、查、改等操作;学生能够查看基础信息和成绩信息。 2.2 概念结构设计 2.3 逻辑结构设计 将概念设计阶段E-R图转换成关系模式,设计出“学生管理系统”逻辑结构,并依据程序需要设计视图。 1)关系设计 数据库关系图: 学生(学号,密码,姓名,性别,年级,专业) 老师(老师号,密码,姓名,性别,院系) 课程(课程号,课程名,学分,课时) 管理员(管理员账号,密码) 学生选课(学号,课程号,成绩) 将关系模式转换成为具体RDBMS中支持关系数据模型(表结构)。本系统在SQL Server 数据库管理系统中共设计5个表,分别为学生表、老师表、课程表、学生选课表、管理员表,表结构图所表示。 2)视图1:可用于管理员查询每门课选修人数; 视图2可用于管理员查询每门课平均成绩。 2.4 物理结构设计 索引查询 1) 2) 2.5 数据库实施和运行维护 在SQL Server中创建数据库“教学库”,创建其中5个表,并为表创建索引然后向表中添加数据,创建2个视图。再依据程序功效设计一个存放过程和一个表值函数。 1)存放过程teacherQElect,用于实现老师查询学生选课情况 create PROCEDURE teacherQElect @课程号 varchar(6) As if(SELECT COUNT(*) FROM 学生,学生选课 where 学生.学号=学生选课.学号 and 课程号=@课程号)>0 SELECT 学生.学号,姓名,年级,专业 from 学生,学生选课 where 学生.学号=学生选课.学号 and 课程号=@课程号 order by 专业,年级 else select 0 as 选课人数 return 结果: 2)一个表值函数stuscore,用于实现学生查询考试成绩。 三、系统设计和实现 3.1 系统设计 3.1.1该系统实现大致功效 1.用户登录界面。该界面能够进行管理员、老师、学生登录。用户经过验证经过后方可进入管理系统。一定程度上确保了信息安全性,预防她人未经许可篡改学生信息; 2. 注册新用户界面。该界面可创建新用户信息,完成注册; 3.学生主页。经过学生账号登录后,进入此界面进行课程查询及个人信息修改; 4.管理员主页。管理员能够经过此界面进行学生信息及课程信息; 5.老师主页。老师能够经过此界面进行学生成绩录入及个人信息修改。 3.1.2 开发环境和软件 (1)操作系统:Windows XP (2)数据库软件:SQL Server (3)Java开发工具:Eclipse 3.2设计思绪 学生信息管理系统,可用于学生信息管理、查询、更新和维护,使用方便,图形界面清楚明了。该系统利用java语言编写,用SQLServer数据库作为后台数据库进行信息存放,用SQL语句完成添加、查询、修改、删除操作。用JDBC驱动实现前台Java和后台SQL Server数据库连接。Java语言跨平台性强,能够在windows,linux,ubuntu等多个系统下使用,方便简单,安全性强。SQLServer数据库高效安全,二者结合可相互利用各自优势。 3.2.1 系统模块图 3.3 采取方案 3.3.1登录界面 1、先新建一个框架,在框架上添加所需标签(“欢迎使用学生信息管理系统”,“登录人员”,“用户名”,“密码”)、文本框和按钮(“登录”,“重置”,“注册”)。 2、点击“登录”后,依据所选择登录人员,对登录信息进行判定。若用户名和密码输入正确,登录到主界面;若输入错误,提醒“登录失败”。点击“重置”时,文本框清空。点击“注册”时,弹出“注册新用户”界面。 3.3.2注册界面 用户按要求输入信息,注册界面上包含有两个按钮(“注册”,“取消”),点击注册按钮,注册成功,新数据添加到数据库“用户表”中。点击“重置”后,文本框清空。 3.3.3管理员界面 此界面中添加有菜单(包含学生信息录入、修改或删除、查询及退出等菜单项)、工具条(添加有包含学生信息录入、修改或删除、查询及退出等按钮)和四个面板。 1、打开主界面,显示第一个面板“欢迎进入学生信息管理系统”。 2、经过点击学生信息录入菜单项或按钮,显示第二个面板。面板上添加有“添加”,“重置”,“返回”三个按钮。点击添加按钮,可将信息添加到数据库“student”表中;点击“重置”按钮,将文本框中信息清空;点击“返回”,返回到第一面板。 3、点击学生信息查询菜单项或按钮,显示第三个面板。面板上添加有文本框及下拉列表中。输入查询条件,选择查询项目,所需信息便显示在列表中。 4、点击学生信息修改/删除菜单项或按钮,显示第四个面板。面板上添加有查询、修改、删除三个按钮。点击查询,文本框中显示满足学号条件学生信息;点击修改,信息修改成功;点击删除,表中信息被删除。 5、点击退出按钮,退出主界面。 3.4 学生主页 此界面中添加有菜单(包含课程信息查询、个人资料修改及退出等菜单项)、工具条(添加有包含课程信息查询、个人资料修改及退出等按钮)。 3.5 老师主页 此界面中添加有菜单(包含学生成绩录入、个人信息修改及退出等菜单项)、工具条(添加有包含学生成绩录入、个人信息修改及退出等按钮)。 四、取得结果 4.1 登录界面 设计并开发出了满足试验要求“学生信息管理系统”,用户能够经过登录界面进入系统对数据进行管理,深入对数据进行录入、修改和查询。登录界面以下图所表示: 若用户不存在,则需要进入注册界面进行用户注册。注册界面以下图所表示: 3.2 管理员界面 课程信息维护: 学生信息维护: 3.3 学生主页 3.4 老师主页 如上述界面所表示,用户可经过工具栏按钮进行信息管理。另外,也可经过菜单栏进入,以下: 3.3 录入界面 在信息录入时,用户需依据要求,各项数据不可为空,若为空,系统将提醒用户。在各项数据输入完成后,点击“添加”,便可将新数据录入到已链接好数据库中。若已输入数据有误,用户可点击“重置”按钮,对数据进行清除。点击“返回”按钮,可使系统回到主界面。录入界面以下图所表示: 3.4 查询界面 在进行信息查询时,用户能够经过学号、姓名和所在系,并依据所需查询条件将所需信息显示出来,或直接点击学号,可显示全部信息,界面简练明了。查询界面以下图所表示: 3.5 修改/删除界面 在信息修改、删除功效中,界面效果是录入界面和查询界面结合,但在这一功效中,不可对学号进行编辑。信息修改完成后,点击“确定”,就实现了对原始信息修改。修改/删除界面以下图所表示: 五、总结和体会 课程设计是培养学生综合利用所学知识,发觉、提出、分析和处理实际问题,锻炼实践能力关键步骤,是对学生实际工作能力具体训练和考察过程。经过两个星期课程设计,利用JAVA和SQL数据库相关知识,设计并开发出了“学生信息管理系统”。并实现了登录、注册、增加、修改、删除、查询信息等功效,完成了试验任务。 另外,在设计过程中,因为对知识掌握程度不够,碰到了部分问题, 1、包引入。在设计早期设置颜色时,未引入颜色包,造成对“Color”无法识别问题; 2、在实现事件功效时,需要加连接数据库语句( con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=test","sa","123456"); ),以获取数据库中数据; 3. 在向主界面添加组件时,不能够将同一组件添加到多个面板中,不然会造成界面空白,组件无法显示; 4. 在注册用户时,系统提醒“INSERT 语句和 FOREIGN KEY 约束‘FK_用户_ student’冲突。该冲突发生于数据库‘test’,表‘student’,Column‘学号’”。此问题错在,用户中用户名和‘student’存在外键关系,插入对应字段值需要在‘student’中存在。所以,需要先将信息添加到‘student’表中,再添加到‘用户’表中; 5.在运行代码后,出现了组件不显示问题。在添加完组件后写入“validate();”,便可处理此问题; 6. 在设置背景颜色时,发觉面板不能够设置背景颜色,需要先在面板上添加一个设置好标签,再向标签上添加组件。 经过两个星期课程设计,总体感觉自己在面向对象程序设计方面有了一定提升。也让我深刻认识到部分事情: 1.编写程序时需目标明确,思绪清楚。 2.代码书写要规范,养成正确书写良好习惯,以避免更多错误发生。 3.编程时要充足利用学过知识,熟练掌握,融汇贯通,将理论和实践相结合。 另外,感谢老师能给出这次课程设计,让我们意识到,对于知识要一步一个脚印,多加练习。 六、关键参考文件 [1] 耿祥义.JSP基础编程[M].清华大学出版社,.55-162 [2] 萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,1998. [3] 刘慧琳.Java程序设计教程(第二版)[M].人民邮电出版社,. 七、附录(部分原程序代码、注释等) 6.1 登录 import java.awt.Choice; import java.awt.Color; import java.awt.Font; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.*; public class 登录 implements ActionListener,ItemListener{ private JFrame frame; private JLabel l1,l2,l3,l4,l5; private TextField t1; private TextField t2; private JButton button1,button2,button3; Connection con; Statement sql; ResultSet rs; Choice c=new Choice(); public 登录(){ frame = new JFrame(); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(200,100,672,420); frame.setLayout(null); l1 = new JLabel(); ImageIcon icon = new ImageIcon("die.jpg"); l1.setIcon(icon); frame.add(l1); l1.setBounds(0,0,672, 420); l1.setLayout(null); Font font1 = new Font("楷体_GB2312",1,30) ; Font font2 = new Font("幼圆",0,18) ; l5=new JLabel("登录人员"); l5.setFont(font2) ; l5.setForeground(Color.WHITE); c.add("管理员"); //添加下拉表 c.add("老师"); c.add("学生"); c.addItemListener(this); l1.add(l5); l5.setBounds(155, 100, 200, 50); l1.add(c); c.setBounds(250, 120, 200, 50); l2=new JLabel("欢迎使用学生信息管理系统"); l2.setFont(font1) ; l2.setForeground(Color.MAGENTA); l1.add(l2); l2.setBounds(125, 50, 400, 50); l3=new JLabel("用户名"); l3.setFont(font2) ; l3.setForeground(Color.WHITE); l1.add(l3); l3.setBounds(155, 151, 100, 50); l4=new JLabel("密 码"); l4.setFont(font2) ; l4.setForeground(Color.WHITE); l1.add(l4); l4.setBounds(155, 209, 100, 50); t1 = new TextField(); t2 = new TextField(); t2.setEchoChar('*'); l1.add(t1); l1.add(t2); t1.setBounds(250, 170, 200, 23); t2.setBounds(250, 220, 200, 23); button1 = new JButton("登录",new ImageIcon("星星.jpg")); button1.addActionListener(this); l1.add(button1); button1.setBounds(125, 270,100,30); button2 = new JButton("重置",new ImageIcon("星星.jpg")); button2.addActionListener(this); l1.add(button2); button2.setBounds(260, 270,100,30); button3 = new JButton("注册",new ImageIcon("星星.jpg")); button3.addActionListener(this); l1.add(button3); button3.setBounds(395, 270,100,30); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==button1) {if (t1.getText().toString().equals("")) { JOptionPane.showMessageDialog(null, "请输入登录名", "温馨提醒", JOptionPane.INFORMATION_MESSAGE); return; } else if (t2.getText().toString().equals("")) { JOptionPane.showMessageDialog(null, "请输入密码", "温馨提醒", JOptionPane.INFORMATION_MESSAGE); return; } try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch(ClassNotFoundException se){} try { con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=教学库","sa","123456"); Statement stmt=con.createStatement(); sql=con.createStatement(); String n1=c.getSelectedItem(); //下拉列表 String queryMima; if(n1.equals("管理员")) { queryMima="select * from 管理员 where 管理员账号 ='"+t1.getText().trim()+"' and 密码 ='"+t2.getText().trim()+"'"; ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {JOptionPane.showMessageDialog(null,"登录成功!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); new 管理员界面(); con.close(); frame.hide(); } else { JOptionPane.showMessageDialog(null,"登录失败!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); t1.setText(""); t2.setText(""); }} if(n1.equals("老师")) {queryMima="select * from 老师 where 老师号 ='"+t1.getText().trim()+"' and 密码 ='"+t2.getText().trim()+"'"; ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) { JOptionPane.showMessageDialog(null,"登录成功!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); new 老师主页(); con.close(); frame.hide(); } else { JOptionPane.showMessageDialog(null,"登录失败!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); t1.setText(""); t2.setText(""); } } else if(n1.equals("学生")) { queryMima="select * from 学生 where 学号 ='"+t1.getText().trim()+"' and 密码 ='"+t2.getText().trim()+"'"; ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {JOptionPane.showMessageDialog(null,"登录成功!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); new 学生主页(); con.close(); frame.hide(); } else { JOptionPane.showMessageDialog(null,"登录失败!","温馨提醒",JOptionPane.INFORMATION_MESSAGE); t1.setText(""); t2.setText(""); } } sql.close(); } catch (SQLException se) { se.printStackTrace();} } if(e.getSource()==button3) { new 用户注册(); } else if(e.getSource()==button2) { t1.setText(""); t2.setText(""); } } public static void main(String[] args){ new 登录(); } public void itemStateChanged(ItemEvent arg0) { } } 6.2 课程信息维护界面 import java.awt.*; import javax.swing.*; import javax.swing.ImageIcon; import java.awt.event.*; import java.sql.*; import java.util.EventObject; class 课程信息维护 extends JFrame implements ActionListener,ItemListener { Frame f; JLabel l1,l2,l3,l4,l5,l6,lb1,lb2,lb3,lb4,lb5,lb8,lb9,lb10,lb11,lb12,lb13,lb16; Panel p,p1,p2,p3,p4,p5,p6,p7; //p5为查询界面最下方面板 MenuBar mb1=new MenuBar(); Menu me1 =new Menu("文件"); JButton b1,b2,b3,b4,b5,b6,b7,bu1,bu2,bu3; JToolBar toolBar=new JToolBar(); CardLayout myCard = new CardLayout(); JTable table1; Object a[][],b[][]; Object name[]={"课程号","课程名","学分","课时","老师号"}; java.sql.Connection con; Statement sql; ResultSet rs; Choice c=new Choice(); TextField tx1=new TextField(); TextField tx2=new TextField(); TextField tx3=new TextField(); TextField tx4=new TextField(); TextField tx5=new TextField(); TextField tx6=new TextField(); TextField tx7=new TextField(); TextField tx8=new TextField(20); TextField tx9=new TextField(); TextField tx10=new TextField(); TextField tx11=new TextField(); TextField tx12=new TextField(); TextField tx13=new TextField(); TextField tx14=new TextField(); TextField tx15=new TextField(); TextField tx16=new TextField(20); public 课程信息维护() { f=new Frame("学生信息管理系统"); f.setSize(600,550); f.setLocation(400,100); f.setBackground(Color.white); f.setVisible(true); f.setMenuBar(mb1); f.validate(); l1=new JLabel("欢迎进入学生信息管理系统"); l2=new JLabel(); ImageIcon icon = new ImageIcon("lv.jpg"); l2.setIcon(icon); l3=new JLabel(); ImageIcon icon1 = new ImageIcon("hu.jpg"); l3.setIcon(icon1); l4=new JLabel(); ImageIcon icon2 = new ImageIcon("q.jpg"); l4.setIcon(icon2); l5=new JLabel(); ImageIcon icon3 = new ImageIcon("a.jpg"); l5.setIcon(icon3); l6=new JLabel(); ImageIcon icon4 = new ImageIcon("s.jpg"); l6.setIcon(icon4); bu1=new JButton("添加"); bu2=new JButton("重置"); bu3=new JButton("返回"); lb1=new JLabel("课 程 号"); lb2=new JLabel("课 程 名"); lb3=new JLabel("学 分"); lb4=new JLabel("课 时"); lb5=new JLabel("教 师 号"); lb8=new JLabel("查询条件"); lb9=new JLabel("课 程 号"); lb10=new JLabel("课 程 名"); lb11=new JLabel("学 分"); lb12=new JLabel("课 时"); lb13=new JLabel("教 师 号"); lb16=new JLabel("查询条件"); //菜单设置 mb1.add(me1); me1.add(new MenuItem("课程信息录入")); me1.add(new MenuItem("课程信息查询")); me1.add(new MenuItem("课程信息修改/删除")); me1.addSeparator(); me1.add(new MenuItem("退出")); me1.addActionListener(this); //按钮设置 b1=new JButton("课程信息录入"); b2=new JButton("课程信息查询"); b3=new JButton("课程信息修改/删除"); b4=new JButton("退出"); b6=new JButton("查询"); b6.addActionListener(this); b5=new JButton("修改"); b5.addActionListener(this); b7=new JButton("删除"); b7.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); //工具条 toolBar.add(b1); toolBar.add(b2); toolBar.add(b3); toolBar.add(b4); //面板设置 p=new Panel(myCard ); p1=new Panel(); p1.setLayout(null); p2=new Panel(); p2.setLayout(null); p3=new Panel(new BorderLayout()); p4=new Panel(new BorderLayout()); p5=new Panel(); p5.setLayout(null); f.add(toolBar,"North"); //给框架添加工具条 f.add(p,"Center"); //给框架添加总面板 p.add("p1",p1);
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服