Oracle 综训学生成绩管理系统
实验十九Oracle数据库系统开发实例-学生成绩管理系统
实验十九Oracle数据库系统开发实例-学生成绩管理系统【一】实验目的1.掌握采用开发Oracle数据库系统的方法;2.掌握开发C/S模式的数据库系统的方法。
【二】实验内容利用SQL Developer,在scott用户下创建6张表:student、teacher、course、allocate、score和users表,如表19-1至19-7所示。
表19-1 users表结构表19-2 users表的数据表19-3 student表的结构表19-4 teacher表的结构表19-5 course表的结构表19-6 allocate表的结构表19-7 score表的结构一、系统功能1.实现学生基本数据的编辑和相关查询。
2.实现教师基本数据的编辑和相关查询。
3.实现课程基本数据的编辑和相关查询。
4.实现各课程任课教师安排和相关查询。
5.实现学生成绩数据的编辑和相关查询。
6.实现用户管理和控制功能。
二、系统结构本系统对应的项目为“学生成绩管理系统.sln”,共有20个窗体和1个公共模块。
本项目的启动窗体为pass,该窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。
如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入3次,便自动退出系统运行。
如果是合法用户,则调用main多文档窗体启动相应的菜单,用户通过该系统菜单执行相应的操作。
系统结构图,如图19-1所示。
main窗体学生数据管理menu13_Click过程系统维护setuser窗体setuser1窗体pass窗体editstudent窗体editstudent1窗体querystudent窗体教师数据管理editteacher窗体editteacher1窗体queryteacher窗体课程数据管理editcourse窗体editcourse1窗体querycourse窗体成绩数据管理editscore窗体queryscore窗体课程安排管理allocatecourse窗体allocatecourse1窗体queryallocate窗体menu62_Click过程2.pass窗体pass窗体用于接受用户的用户名/密码输入,判断是否为合法用户。
基于Java和Oracle的学生信息管理系统
学生信息管理系统自己做的学生信息管理系统,由于能力有限,其中的错误和不足较多,但可以正常运行也加入了必要的提示操作,希望能为有需要的童鞋一些启示。
附录:学生信息管理系统代码1.登录界面1.1登录界面模块//函数库import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;//登录界面主程序public class system extends JFrame implements ActionListener{private static final long serialVersionUID = 1L;static system ss;JPanel panel = new JPanel();JMenuBar jmb1 = new JMenuBar();JMenuBar mBar=new JMenuBar();JMenu Help = new JMenu(" 帮助 ");JMenu About = new JMenu(" 关于 ");JMenuItem Password = new JMenuItem("忘记密码");JMenuItem Aboutus = new JMenuItem("关于软件");//设置姓名、密码、登陆、退出按钮JLabel label1 = new JLabel("账号");JTextField usernumber = new JTextField();JLabel label2 = new JLabel("密码");JPasswordField pwd = new JPasswordField();JButton Enter = new JButton("登录");JButton Exit = new JButton("退出");//设置主题图片String url = "C:\\Users\\Design\\Capture.PNG";ButtonGroup bgp = new ButtonGroup();//设置学生、教师角色,并设置角色按钮JRadioButton stu = new JRadioButton("学生"); JRadioButton tch = new JRadioButton("教师"); public system(){//设置窗口题头super("***学生管理系统");this.setSize(500,400);this.setResizable(false);panel.setOpaque(false);this.setJMenuBar(jmb1);JLabel img = new JLabel(new ImageIcon(url)); img.setBounds(0,0,575,70);Password.addActionListener(this);Aboutus.addActionListener(this); setJMenuBar(jmb1);//向面板中一次添加图片、按钮,并设置按钮尺寸jmb1.add(Help);jmb1.add(About);Help.add(Password);About.add(Aboutus);mBar.add(Help);mBar.add(About);setJMenuBar(mBar);panel.add(img);stu.setBounds(210,150,70,30);tch.setBounds(310,150,70,30);bgp.add(stu);bgp.add(tch);panel.add(stu);panel.add(tch);Enter.setBounds(210,180,70,20);Exit.setBounds(290,180,70,20);Enter.addActionListener(this);Exit.addActionListener(this);Help.setForeground(Color.blue);Password.setForeground(Color.blue);About.setForeground(Color.blue);Aboutus.setForeground(Color.blue);panel.add(Enter);panel.add(Exit);panel.setLayout(null);this.add(panel);label1.setBounds(175,90,50,25);panel.add(label1);usernumber.setBounds(210,90,150,25);panel.add(usernumber);label2.setBounds(175,125,50,25);panel.add(label2);pwd.setBounds(210,125,150,25);panel.add(pwd);this.setBounds(110,60,540,320);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);//setVisible(true);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String id , password;id= usernumber.getText();password = pwd.getText();if(e.getSource()==Password)JOptionPane.showMessageDialog(this,"请联系任课教师重置密码!","忘记密码",RMATION_MESSAGE);if(e.getSource()==Aboutus)JOptionPane.showMessageDialog(this,"作者: 张三\n\n单位: 信息工程学院\n\n版本: Version 1.1.8","关于软件",RMATION_MESSAGE);if(e.getSource()==Exit){System.exit(0);}if(e.getSource()==Enter){//加载数据库驱动try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(ss,ce.getMessage());}if(!(stu.isSelected())&&!(tch.isSelected())){JOptionPane.showMessageDialog(this,"请选择学生或教师!");}else if(stu.isSelected()){if(id.equals("")||password.equals(""))//如果没输账号或密码,则提示对不起,请输入账号或密码{JOptionPane.showMessageDialog(this,"对不起,你输入账号或密码为空!");}else//如果都有数据了就开始连接数据库验证{try{Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","system","manager");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from STU");rs=stmt.executeQuery("select * from STU where ID='"+id+"'");if(rs.next())//如果账号存在,则验证密码{if(rs.getString("Pwd").equals(password))//如果密码正确就提示,反之{this.setVisible(false);@SuppressWarnings("unused")Students stu = new Students();}else{JOptionPane.showMessageDialog(this,"对不起,密码错误,请重新输入!");}}else//如果没有查找到用户名就提示{JOptionPane.showMessageDialog(this,"账号不存在,请重新输入!");}rs.close();stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(ss,se.getMessage());}}}else{if(id.equals("")||password.equals(""))//如果没输账号或密码,则提示对不起,请输入用户名或密码{JOptionPane.showMessageDialog(this,"对不起,请输入账户或密码!");}else//如果都有数据了就开始连接数据库验证{try{Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl ","system","manager");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from TCH");rs=stmt.executeQuery("select * from TCH whereID='"+id+"'");if(rs.next())//如果存在,就验证密码{if(rs.getString("PWD").equals(password))//如果密码正确就提示,反之{this.setVisible(false);@SuppressWarnings("unused")Teachers tch = new Teachers();} else{JOptionPane.showMessageDialog(this,"对不起,密码错误,请重新输入!");}}else//如果没有查找到账号就提示{JOptionPane.showMessageDialog(this,"账号不存在,请重新输入!");}rs.close();stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(ss,se.getMessage());}}}}}public static void main(String[] args){@SuppressWarnings("unused")system sys = new system();}}2.学生管理2.1学生界面模块//函数库import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyPanel extends JPanel{private static final long serialVersionUID = 1L;Imageimg1=Toolkit.getDefaultToolkit().getImage("C:/Users/lincy/workspace/D esign/1.png");public void paint(Graphics g){g.drawImage(img1,0,0,this);}}public class Students extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;JMenuBar jmb = new JMenuBar();JMenu Message = new JMenu("信息");JMenu Score = new JMenu("成绩");JMenu logpassword = new JMenu(" 密码 ");JMenuItem Item1 = new JMenuItem(" 添加 ");JMenuItem Item2 = new JMenuItem(" 查询 ");JMenuItem Item3 = new JMenuItem(" 修改登录密码 ");JMenuItem Item4 = new JMenuItem("查询");JPanel jpl = new JPanel();public Students(){super("学生界面");this.setSize(500,400);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);setContentPane(new MyPanel());this.setVisible(true);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setJMenuBar(jmb);this.add(jpl);jmb.add(Message);jmb.add(Score);jmb.add(logpassword);jpl.setBackground(Color.white);Message.add(Item1);Message.add(Item2);logpassword.add(Item3);Score.add(Item4);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this);Item4.addActionListener(this);}@SuppressWarnings("unused")public void actionPerformed(ActionEvent e){if(e.getSource()==Item1){AddMessage ad = new AddMessage();}else if(e.getSource()==Item2){Search ser = new Search();}else if(e.getSource()==Item3){stulogpassword change = new stulogpassword();}else{Score sc = new Score();}}public static void main(String[] args){@SuppressWarnings("unused")Students stu = new Students();}}2.2.学生添加个人信息模块//函数库import javax.swing.*;import java.awt.event.*;import java.sql.*;public class AddMessage extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;static AddMessage s;/*添加学生信息控件*/JPanel jpl = new JPanel();JLabel label1 = new JLabel("密码",JLabel.CENTER);JLabel label2 = new JLabel("学号",JLabel.CENTER);JLabel label3 = new JLabel("姓名",JLabel.CENTER);JLabel label4 = new JLabel("性别",JLabel.CENTER);JLabel label6 = new JLabel("班级",JLabel.CENTER);JLabel label7 = new JLabel("学院",JLabel.CENTER);JTextField oldpassword = new JTextField(8);JTextField num = new JTextField(2);JTextField nam = new JTextField(4);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JTextField clas = new JTextField();JTextField scl = new JTextField();JButton reset = new JButton("清空");JButton addmsg = new JButton("添加");public AddMessage(){super("添加基本信息");this.setSize(500,400);this.setVisible(true);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);addmsg.addActionListener(this);reset.addActionListener(this);/*插入面板*/label1.setBounds(130,60,80,20);jpl.add(label1);oldpassword.setBounds(190,60,140,20);jpl.add(oldpassword);label2.setBounds(135,20,70,20);jpl.add(label2);num.setBounds(190,20,140,20);jpl.add(num);label3.setBounds(135,100,70,20);jpl.add(label3);nam.setBounds(190,100,140,20);jpl.add(nam);label4.setBounds(135,140,70,20);jpl.add(label4);man.setBounds(210,140,60,20);women.setBounds(280,140,60,20);jpl.add(man);jpl.add(women);bgp.add(man);bgp.add(women);label6.setBounds(135,180,70,20);jpl.add(label6);clas.setBounds(190,180,140,20);jpl.add(clas);label7.setBounds(135,220,70,20);jpl.add(label7);scl.setBounds(190,220,140,20);jpl.add(scl);reset.setBounds(190,260,65,20);addmsg.setBounds(265,260,65,20);jpl.add(reset);jpl.add(addmsg);}@SuppressWarnings("unused")public void actionPerformed(ActionEvent e) {if(e.getSource()==addmsg){String sex=null;String id,b,c,d, f;id= num.getText();b= nam.getText();c= oldpassword.getText();d= clas.getText();f= scl.getText();if(id.equals("")||b.equals("")||c.equals("")||d.equals("")) {JOptionPane.showMessageDialog(this,"你输入的信息不全,无法完成添加!");}else if((!man.isSelected())&&(!women.isSelected())){sex="";JOptionPane.showMessageDialog(this,"性别不可为空,无法完成添加!");}else{if(man.isSelected()){sex="男";}else{sex="女";}try{Class.forName("oracle.jdbc.OracleDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(s,ce.getMessage());}try{Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl"," system","manager");Statement stmt1 = con.createStatement();ResultSet rs1 = stmt1.executeQuery("select * from STU");rs1=stmt1.executeQuery("select * from STU where ID='"+id+"'");if(rs1.next())//如果账号存在则进行添加信息操作 {if(rs1.getString("PWD").equals(c)){String sql1="delete from message whereid="+id+"";stmt1.executeUpdate(sql1);int a = stmt1.executeUpdate("insert into message(ID , Name , Sex , Class ,College)values('"+num.getText()+"','"+nam.getText()+"','"+sex+"','"+c las.getText()+"','"+scl.getText()+"')");if(a==1){JOptionPane.showMessageDialog(s,"信息已成功添加!");setVisible(false);}else{JOptionPane.showMessageDialog(s,"信息添加失败!");setVisible(true);}}else{JOptionPane.showMessageDialog(s,"对不起,添加失败,密码不正确!");}}else{JOptionPane.showMessageDialog(this,"对不起,添加失败,您输入的学号不存在!");}rs1.close();stmt1.close();}catch (SQLException se){JOptionPane.showMessageDialog(s,se.getMessage());}}}else{num.setText("");oldpassword.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();}}public static void main(String[] args){@SuppressWarnings("unused")AddMessage amg = new AddMessage();}}2.3.学生查询个人信息模块//函数库import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Search extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;/*查询学生信息控件*/static Search s;JPanel jpl = new JPanel();JLabel label1 = new JLabel("学号",JLabel.CENTER);JButton search = new JButton("查询");JLabel label2 = new JLabel("姓名",JLabel.CENTER);JLabel label3 = new JLabel("班级",JLabel.CENTER);JLabel label4 = new JLabel("学院",JLabel.CENTER);JLabel label5 = new JLabel("性别",JLabel.CENTER);JLabel label6 = new JLabel("密码",JLabel.CENTER);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JTextField num = new JTextField();JTextField password = new JTextField();JTextField nam = new JTextField();JTextField clas = new JTextField();JTextField scl = new JTextField();JButton reset = new JButton("重置");public Search(){super("查询信息");this.setSize(500,400);this.setVisible(true);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);search.addActionListener(this);reset.addActionListener(this);/*查询面板*/label1.setBounds(110,30,100,20);jpl.add(label1);num.setBounds(180,30,160,20);jpl.add(num);/*查询面板*/label6.setBounds(110,70,100,20);jpl.add(label6);password.setBounds(180,70,160,20);jpl.add(password);search.setBounds(180,110,65,20);reset.setBounds(275,110,65,20);jpl.add(search);jpl.add(reset);label2.setBounds(125,150,70,20);jpl.add(label2);nam.setBounds(180,150,160,20);jpl.add(nam);label5.setBounds(125,190,70,20);jpl.add(label5);man.setBounds(205,190,60,20);women.setBounds(290,190,60,20);bgp.add(man);bgp.add(women);jpl.add(man);jpl.add(women);label3.setBounds(125,230,70,20);jpl.add(label3);clas.setBounds(180,230,160,20);jpl.add(clas);label4.setBounds(125,270,70,20);jpl.add(label4);scl.setBounds(180,270,160,20);jpl.add(reset);jpl.add(scl);}public void actionPerformed(ActionEvent e){String id = num.getText();String oldpad = password.getText();if(e.getSource()==search){try{Class.forName("oracle.jdbc.OracleDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(s,ce.getMessage());}if(id.equals("")){JOptionPane.showMessageDialog(s,"学号未填写!");}else{try{Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl"," system","manager");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from STU where ID = "+ id + "");if(rs.next()){if(rs.getString("PWD").equals(oldpad)){ResultSet rs1 = stmt.executeQuery("select * from message where ID = "+ id + "");if(rs1.next()){nam.setText(rs1.getString("Name"));if(rs1.getString("Sex").equals("男")){man.setSelected(true);}else{women.setSelected(true);}clas.setText(rs1.getString("Class"));scl.setText(rs1.getString("College"));setVisible(true);}else{JOptionPane.showMessageDialog(s,"查询失败!");setVisible(true);}}else{JOptionPane.showMessageDialog(s,"登录密码错误,查询失败!");setVisible(false);}rs.close();}else{JOptionPane.showMessageDialog(s,"学号不存在,查询失败!");setVisible(true);}rs.close();stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(s,se.getMessage());}}}else{num.setText("");password.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();}}public static void main(String[] args){@SuppressWarnings("unused")Search sch = new Search();}}2.4.学生查询成绩模块//函数库import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Score extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;static Score s;JPanel jpl = new JPanel();JLabel label1 = new JLabel("学号",JLabel.LEFT);JLabel label2 = new JLabel("密码",JLabel.LEFT);JTextField num = new JTextField();JTextField password = new JTextField();JButton search = new JButton("查询");JButton reset = new JButton("清空");JTextField txt1=new JTextField();JTextField txt2=new JTextField();JTextField txt3=new JTextField();JTextField txt4=new JTextField();JTextField txt5=new JTextField();JTextField txt6=new JTextField();JTextField txt7=new JTextField();JTextField txt8=new JTextField();JTextField txt9=new JTextField();JTextField txt10=new JTextField();JTextField txt11=new JTextField();JTextField txt12=new JTextField();JTextField txt13=new JTextField();JTextField txt14=new JTextField();public Score(){super("查询成绩");this.setSize(500,500);this.setVisible(true);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);label1.setBounds(140,40,80,20);jpl.add(label1);num.setBounds(180,40,170,20);jpl.add(num);label2.setBounds(140,80,80,20);jpl.add(label2);password.setBounds(180,80,170,20);jpl.add(password);search.setBounds(180,120,65,20);reset.setBounds(285,120,65,20);jpl.add(search);jpl.add(reset);search.addActionListener(this);reset.addActionListener(this);txt1.setBounds(270,160,80,20);txt2.setBounds(270,200,80,20);txt3.setBounds(270,240,80,20);txt4.setBounds(270,280,80,20);txt5.setBounds(270,320,80,20);txt6.setBounds(270,360,80,20);txt7.setBounds(270,400,80,20);txt8.setBounds(180,160,80,20);txt9.setBounds(180,200,80,20);txt10.setBounds(180,240,80,20);txt11.setBounds(180,280,80,20);txt12.setBounds(180,320,80,20);txt13.setBounds(180,360,80,20);txt14.setBounds(180,400,80,20);jpl.add(txt1);jpl.add(txt2);jpl.add(txt3);jpl.add(txt4);jpl.add(txt5);jpl.add(txt6);jpl.add(txt7);jpl.add(txt8);jpl.add(txt9);jpl.add(txt10);jpl.add(txt11);jpl.add(txt12);jpl.add(txt13);jpl.add(txt14);}public void actionPerformed(ActionEvent e){if(e.getSource()==search){String id = num.getText();String oldpad = password.getText();try{Class.forName("oracle.jdbc.OracleDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(s,ce.getMessage());}try{Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl"," system","manager");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from STU"); rs=stmt.executeQuery("select * from STU where ID='"+id+"'");if(id.equals("")){JOptionPane.showMessageDialog(this,"学号未填写!"); }else if(rs.next())//如果账号存在{if(oldpad.equals("")){JOptionPane.showMessageDialog(this,"密码未填写!"); }else if(rs.getString("PWD").equals(oldpad)){ResultSet rs1 = stmt.executeQuery("select * from object where object.ID ='" + id + "'");while(rs1.next()){txt8.setText(rs1.getString(2));txt9.setText(rs1.getString(3));txt10.setText(rs1.getString(4));txt11.setText(rs1.getString(5));txt12.setText(rs1.getString(6));txt13.setText(rs1.getString(7));txt14.setText(rs1.getString(8));}ResultSet rs2 = stmt.executeQuery("select score.* from STU,score where STU.ID ='" + id + "' AND STU.ID = score.ID");while(rs2.next()){txt1.setText(rs2.getString(2));txt2.setText(rs2.getString(3));txt3.setText(rs2.getString(4));txt4.setText(rs2.getString(5));txt5.setText(rs2.getString(6));txt6.setText(rs2.getString(7));txt7.setText(rs2.getString(8));}}else{JOptionPane.showMessageDialog(this,"密码错误,请重新输入!");}}else//如果没有查找到学号就提示{JOptionPane.showMessageDialog(this,"学号不存在,请重新输入!");}rs.close();stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(s,se.getMessage());}}else{num.setText("");password.setText("");txt1.setText("");txt2.setText("");txt3.setText("");txt4.setText("");txt5.setText("");txt6.setText("");txt7.setText("");txt8.setText("");txt9.setText("");txt10.setText("");txt11.setText("");txt12.setText("");txt13.setText("");txt14.setText("");num.setText("");}}public static void main(String[] args){@SuppressWarnings("unused")Score s = new Score();}}2.5.学生修改登录密码模块//函数库import javax.swing.*;import java.awt.event.*;import java.sql.*;public class stulogpassword extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;/*学生修改登陆密码控件*/static Changepassword s;JPanel jpl = new JPanel();JLabel label1 = new JLabel("学号",JLabel.LEFT);JLabel label2 = new JLabel("原密码",JLabel.LEFT);JLabel label3 = new JLabel("新密码",JLabel.LEFT);JTextField ID = new JTextField();JTextField oldpassword = new JTextField();JTextField password = new JTextField();JButton Changepassword = new JButton("重置");JButton reset = new JButton("清空");public stulogpassword(){super("修改登陆密码(学生)");this.setSize(500,400);this.setVisible(true);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);Changepassword.addActionListener(this);reset.addActionListener(this);label1.setBounds(140,120,50,20);jpl.add(label1);ID.setBounds(190,120,150,20);jpl.add(ID);label2.setBounds(140,160,50,20);jpl.add(label2);oldpassword.setBounds(190,160,150,20);jpl.add(oldpassword);label3.setBounds(140,200,50,20);jpl.add(label3);password.setBounds(190,200,150,20);jpl.add(password);Changepassword.setBounds(190,240,65,20);jpl.add(Changepassword);reset.setBounds(275,240,65,20);jpl.add(reset);}public void actionPerformed(ActionEvent e){String id = ID.getText();String oldpad = oldpassword.getText();String pad = password.getText();if(e.getSource()==Changepassword){try{Class.forName("oracle.jdbc.OracleDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(s,ce.getMessage());}try{Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl"," system","manager");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from STU"); rs=stmt.executeQuery("select * from STU where ID='"+id+"'");if(id.equals(""))//如果账号为空{JOptionPane.showMessageDialog(s,"学号未填写!");}else if(rs.next())//如果账号存在{if(oldpad.equals("")){JOptionPane.showMessageDialog(s,"原密码未填写!");}else{if(rs.getString("PWD").equals(oldpad))//如果密码正确就提示,反之{if(pad.equals(0)){JOptionPane.showMessageDialog(s,"密码不能为空!");}else{int a = stmt.executeUpdate("update STU set PWD = '"+pad+"' where PWD ='"+oldpad+"'");if(a==1){JOptionPane.showMessageDialog(s,"密码已重置!");this.setVisible(false);}else{JOptionPane.showMessageDialog(s,"密码失败!");}rs.close();stmt.close();}}else{JOptionPane.showMessageDialog(s,"原密码不正确!");}}}else{JOptionPane.showMessageDialog(s,"学号不存在,请重新输入正确的学号!");}}catch (SQLException se){JOptionPane.showMessageDialog(s,se.getMessage());}}else{ID.setText("");oldpassword.setText("");password.setText("");ID.requestFocus();}}public static void main(String[] args){@SuppressWarnings("unused")stulogpassword chang = new stulogpassword();}}3.教师管理3.1.教师界面模块//函数库import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyPanel1 extends JPanel{private static final long serialVersionUID = 1L;Imageimg2=Toolkit.getDefaultToolkit().getImage("C:/Users/lincy/workspace/D esign/2.png");public void paint(Graphics g){g.drawImage(img2,0,0,this);}}public class Teachers extends JFrame implements ActionListener{private static final long serialVersionUID = 1L;JMenuBar bar = new JMenuBar();JMenu menu1 = new JMenu(" 信息 ");JMenu menu2 = new JMenu(" 成绩 ");JMenu menu3 = new JMenu(" 登陆密码管理 ");JMenuItem item1 = new JMenuItem("录入学生信息");JMenuItem item2 = new JMenuItem("录入学生成绩");JMenuItem item3 = new JMenuItem("重置学生登陆密码");JMenuItem item4 = new JMenuItem("修改登录密码");JPanel jpl = new JPanel();public Teachers(){super("教师界面");this.setSize(500,400);//将当前窗口防止在屏幕中央setLocationRelativeTo(null);setContentPane(new MyPanel1());this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setJMenuBar(bar);this.add(jpl);jpl.setLayout(null);bar.add(menu1);bar.add(menu2);bar.add(menu3);menu1.add(item1);menu2.add(item2);menu3.add(item3);menu3.add(item4);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);}public void actionPerformed(ActionEvent e){if(e.getSource()==item1){@SuppressWarnings("unused")TCHAddMessage mge1 = new TCHAddMessage();}if(e.getSource()==item2){@SuppressWarnings("unused")AddScore as = new AddScore();}if(e.getSource()==item3){@SuppressWarnings("unused")Changepassword ch = new Changepassword();}if(e.getSource()==item4){@SuppressWarnings("unused")tchlogpassword change = new tchlogpassword();}}public static void main(String[] args){@SuppressWarnings("unused")Teachers tch = new Teachers();}}3.2教师添加学生信息模块//函数库import javax.swing.*;。
基于Java+Oracle学生信息管理系统的设计与实现
目录摘要 (1)ABSTRACT (2)第一章绪论 (3)1.1 课题背景和意义 (3)1.2 国内外研究现状 (3)1.3 本系统主要功能模块 (4)1.4章节安排 (4)第二章学生信息管理系统需求分析 (5)2.1 系统的可行性调查 (5)2.1.1系统的经济可行性 (5)2.1.2系统的技术可行性 (5)2.1.3系统的社会可行性 (5)2.1.4用户使用可行性 (6)2.2 需求分析概述 (6)2.3 系统的数据性能需求 (7)2.4系统功能需求分析 (8)2.4.1管理员模块功能需求 (8)2.4.2教师登录模块功能需求 (8)2.4.3学生模块功能需求 (8)2.5系统数据流图 (8)第三章总体设计 (10)3.1系统功能层次图 (10)3.2设计目标 (11)3.2.1系统管理员管理模块 (12)3.2.2教师登录管理模块 (12)3.2.3学生登录管理模块 (12)第四章数据库设计 (13)4.1数据库分析 (13)4.1.1实体的分析 (13)4.1.2实体的属性 (13)4.1.3数据表设计 (14)4.2 SQL语句实现 (16)第五章系统模块详细设计 (18)5.1管理员模块设计 (18)5.1.1添加学生信息功能 (18)5.1.2添加教师信息功能 (18)5.1.3添加新课程功能 (18)5.1.4修改学生信息功能 (19)5.1.5修改教师信息功能 (19)5.1.6修改课程信息功能 (19)5.2教师模块设计 (20)5.2.1查看教师信息功能 (20)5.2.2查看所授课程功能 (20)5.2.3查看听课通知功能 (20)5.3学生模块设计 (21)5.3.1学生选课功能 (21)5.3.2查看学生信息功能 (21)5.3.3查看已选课程功能 (21)5.3.4删除已选课程功能 (22)第六章系统实现 (23)6.1系统登录界面 (23)6.2录入学生信息界面 (23)6.3修改学生信息界面 (24)6.4学生选课界面 (24)结束语 (25)参考文献 (26)致谢 (27)附录 (28)摘要随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长.面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然.通过该系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量.学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立起数据一致性和完整性强、数据安全性好的库.而对于后者则要求应用程序功能完备,易使用等特点.经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群.使用的数据库是Oracle,Oracle数据库功能强大,学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统.本文将分六个章节来叙述,第一章,概述,主要叙述系统开发的背景和选题意义,以及开发的必要性和可能性;第二章,系统需求分析,架构系统的框架,为下面的内容做好准备;第三章,系统总体设计,叙述数据库设计和系统子模块的功能;第四章,数据库设计,主要介绍实体和数据表和SQL语句实现;第五章,系统模块的详细设计,主要讲述了各个模块的功能;第六章,系统实现;叙述系统运行情况及个人开发感受.在文中将会涉及一些其他的专业知识,但是只针对所用到的做大体的说明.关键词:学生信息 Java Oracle ODBC 数据库ABSTRACTWith the expansion of schools, the number of students increases sharply, all kinds of information about the students also doubled. Faced with such a large amount of information, developing the student information management systems to improve the efficiency of the management of students has become an inevitable. Through the system, the information can be standardized management, scientific statistics and fast query, thereby reducing the workload of management.Student Information Management System is a typical management information system (MIS), which mainly includes the establishment and maintenance of back-end database and front-end application development aspects. For the former requirement to establish data consistency and integrity, data security, a good library. For the latter requires the application fully functional, easy to use features.After analysis, we use Java development tools, the use of its various object-oriented development tools, Java technology, excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data centers, gaming control Taiwan, scientific supercomputers, cell phones and the Internet, also has the world's largest developer of professional community. Use of the database is Oracle Database, Oracle Database powerful, it is not difficult to learn, then, the initial prototype of the system needs to constantly revise and improve user satisfaction until the formation of a viable system.This article will be divided into six chapters to describe the first chapter, an overview of the main narrative system development background and significance of the topic, and the development of the necessity and possibility; second chapter, system requirements analysis, system architecture framework for the following content prepared; Chapter overall system design, database design and system description sub-module functions; fourth chapter, database design, introduces entities and data tables and SQL statements; fifth chapter, detailed system modules design, mainly about the function of each module; Chapter VI, system implementation; narrative system operation and personal development experience. In the text will involve some of the other's expertise, but only for the general description used to do.Key words:Student information ; Java ; Oracle; ODBC; database第一章绪论1.1 课题背景和意义随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.随着计算机网络技术发展,Web数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web提供了与用户进行通信联络的有效手段,利用Web技术,实现Web 服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据.学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件.1.2 国内外研究现状计算机在管理中的应用开始于1954年,当时美国首先用计算机处理工资单.40多年来,计算机在处理管理信息方面发展迅速.例如,60年代美国计算机在管理中应用项目不到300项,到了1975年达到2670项.而现在,美国在财务会计上90%的工作由计算机完成;物资管理中80—100%的信息处理由计算机完成;计划管理中是80—90%.据计算机应用方面发展较快的国家统计,计算机用于经济管理的约占80%;用于科技运算的占8%;用于生产过程控制的占12%.我国在全国范围内推广计算机在管理中的应用,是在70年代末开始的,虽然起步较晚,近几年发展却较快,特别是微型计算机的出现和普及为信息处理提供了物美价廉的手段,对于推动我国管理信息处理的现代化起了重要的作用.目前存在的问题是传统纸媒介管理的学生信息难于共享汇总,其统计数据正确性也难以考证.存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等.计算机在全国普及后,管理媒介有了质的飞跃.并且随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长.面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量.由于计算机和网络的普及,若建立一个C/S或B/S结构的学生信息管理系统,学生便可以通过网络来选课并且查询自己的有关信息,使得学生信息管理工作系统化,规范化,自动化,大大提高了学校管理学生的效率.1.3 本系统主要功能模块本系统的主要任务就是负责对学生信息管理.主要用户为老师、学生和管理员,其中,学生可对自己的信息进行查询,可以进行选课,也可以进行删除已选课程,教师可对自己的信息进行查询,查看自己的课表信息,查看听课通知等功能,管理员拥有所有的权限,可以添加删除学生信息,教师信息,课程.系统提供友好界面,操作简单.为实现这些功能,系统一个包含如下几个基本模块:1.用户登陆模块.用户可以选择自己的登陆身份.2.添加信息模块.管理员可以实现对学生信息和教师信息的添加.3.修改信息模块.管理员可以实现对学生信息和教师信息的修改.4.查询信息模块.学生和教师可以在此界面进行操作.5.删除信息模块.管理员可以实现对学生、教师和课程信息的删除.1.4章节安排第一章:本章主要介绍了课题的研究背景,国内外研究现状.第二章:本章给出了需求分析,简单介绍了可行性分析,各功能模块的功能需求.第三章:本章给出了系统的总体设计,通过对用户需求的分析,明确了系统的架构设计和各模块功能的实现方法.第四章:本章主要对Oracle数据库进行设计,分别对数据库分析,数据实体进行分析,并对数据表进行设计.第四章:本章主要对该学生信息管理系统进行系统模块的详细设计.第五章:本章主要介绍了系统模块的详细设计,分别对各个模块进行详细设计.第六章:本章主要介绍了本系统的功能模块具体实现.第二章学生信息管理系统需求分析2.1 系统的可行性调查可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解. 建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化. 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排.明确开发风险及其所带来的经济效益.本报告经审核后,交软件负责人审查.可行性分析包括两部分内容:分析建立新的管理信息系统的必要性和可能性.分析建立信息系统的必要性时要注意用户提出的理由是否充分和合理;分析建立信息系统的可能性主要包括经济可行性、技术可行性和社会可行性.经济可行性研究的目的是使新系统能达到以最小的开发成本取得最佳的经济效益.需要作投资估算,对开发中所需人员、硬软件支持以及其它费用进行估算,并对系统投入使用后带来的经济效益进行估计.技术可行性研究就是弄清现有技术条件能否顺利完成开发工作,硬软件配置能否满足开发的需要等等.社会可行性研究是指新系统在投入使用后,对社会可能带来的影响进行分析.2.1.1系统的经济可行性学生信息管理系统提供访问者相互交流信息以及向网站咨询信息的平台,可提供一个在线交互的动态平台供学生、教师和管理员进行信息的操作,大大的减少了以往手工资源操作带来的各类问题.2.1.2系统的技术可行性学生信息管理系统提供一个在线交互的信息平台,管理员可以对系统信息进行添加、修改、删除查询等操作,教师可以对班级信息进行处理,学生可以查询自己所需信息.2.1.3系统的社会可行性本学生信息管理系统不仅能够让管理员更清晰的掌握学生和教师的信息,同时也让学生自己更容易的知道如何准确的选课.这就大大的为老师提供了便利.同学们在家中只需要上网就可以在第一时间知道自己的已选课程.还有,学生们也可通过我们的系统进行选课来凑够学分完成学业和其所占学分及任课老师的资料,其应用性之强得到充分发挥.学校的电脑普及率已达到了很高的水平,尤其是我们拥有设备先进管理完善的机房,而信息学院的老师和学生们对电脑的操作也是驾轻就熟.因此,只要这套学生学籍选课系统操作简单,实用,合理,大家肯定是乐于接受并积极响应和支持的.2.1.4用户使用可行性本系统操作简单, 有计算机基础的人无需培训即可使用, 即使是没有计算机基础的人只需经过简单的培训就可以很熟练的使用本系统.系统运行后,就用户方而言,由于用户使用本系统时,不会也不必关心系统内部的结构及实现方法,即对用户来说是透明的,所以本系统对用户而言,是定位在界面友好、操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各界面上的选项卡或按钮就能执行相应的功能,就管理者而言,关心的是如何处理各种数据,只要把用户的信息输入计算机,管理者就可运行相应的后台程序进行处理.而以上的这些功能都能在所选择的开发环境中用所选择的开发工具来实现.所以说本系统在用户使用可行性上是没有问题的.2.2 需求分析概述学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了.该软件用Java[1]语言编写,开发工具是MyEclipse[2],该工具比较容易上手,Oracle数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息和教师信息的添加,查询,修改,删除的操作等.用ODBC驱动实现前台Java与后台SQL数据库的连接.Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好Oracle[3]数据库高效安全,两者结合可相互利用各自的优势.该系统实现的大致功能:1.用户登陆界面.该界面可以选择使用者的身份,“管理员,教师,学生”.不同的身份有不同的操作界面和功能权限.ID号和密码输入正确即可登录.学生管理界面.提供了学生学籍信息的查询,相关科目信息查询,修改登录密码等功能.2.教师管理界面.提供了对所教授课程信息的查询;可以查询听课通知,修改密码等功能.3.管理员管理界面.拥有最高的权限.允许添加教师信息和课程信息,提供了对学生学籍信息的查询,添加,修改,删除;提供了对教师信息的查询,添加,修改,删除;修改密码等功能.4. 登录的用户信息分别存储在SQL数据库的“管理员信息表”, “教师信息表”, “学生信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统,以保证系统的安全性.2.3 系统的数据性能需求学生信息管理系统主要提供信息查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己有关的各科成绩,教师可以通过该系统对学生的信息进行添加、删除、修改和查询.为了保证系统能够长期、安全、稳定、可靠、高效的运行,学生信息管理系统应该满足以下的性能需求:1.系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能.在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足各使用者对信息处理的需求.由于信息查询系统的查询功能对于整个系统的功能和性能完成举足轻重.作为系统的很多数据来源,而学生的信息的准确性很大程度上决定了学生信息管理系统的成败.在系统开发过程中,必须采用一定的方法保证系统的准确性.2.系统的开放性和系统的可扩充性学生信息管理系统在开发过程中,应该充分考虑以后的可扩充性.例如科目的改变和学生基本信息的改变,学生查询的需求也会不断的更新和完善.所有这些,都要求系统提供足够的手段进行功能的调整和扩充.而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件.通过软件的修补、替换完成系统的升级和更新换代.3.系统的易用性和易维护性学生信息管理系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉.这就要求系统能够提供良好的用户接口,易用的人机交互界面.要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程.学生信息管理系统中涉及到的数据是学生的重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作.4.系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件.所有这些都要符合主流国际、国家和行业标准.例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准.如规范的数据库操纵界面、作为业界标准TCP/IP 网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性.5.系统的响应速度学生信息管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息.在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率.2.4系统功能需求分析综上所述本系统具体需要完成功能如下:1.全面展示学生信息管理系统所包含的信息.2.登陆窗口模块区分管理员、教师和学生身份.3.系统管理员模块:管理员登陆系统后可以对教师、学生信息进行相关操作.4.教师登陆模块:教师登陆系统可以查看自己的个人信息和查看教课信息.5.学生登陆模块:学生登陆系统后可以对自己的基本情况进行操作.该系统使用了先进的数据库技术与数据管理技术,使数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善.2.4.1管理员模块功能需求管理员登陆系统后,可以对教师、学生信息进行添加、修改和查询等操作,对学生课程进行添加、修改和查询功能操作,还可以修改管理员的登录密码.2.4.2教师登录模块功能需求教师登陆系统后可以对自己的个人信息进行查询操作,然后教师可以对自己所教课程的课表进行查询功能操作;并且可以查看听课通知和讲课帮助.2.4.3学生模块功能需求通过调研得出学生信息管理系统中需要在学生登录或验证身分后,可以自行完成学生的选课以及学生个人信息的查询,也可以进行选课和删除已选课程等操作,方便用户使用.2.5系统数据流图根据该系统需求进行分析,使用数据流图示描述数据处理过程.数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程.数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能.图2-1管理模块数据流图第三章 总体设计3.1系统功能层次图学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结合.,进入系统,有三个用户,分别是学生、教师和管理员,图3-1登陆层次图图3-2学生管理层次图学生信息管理系统登陆管理 学 生 登 陆管理员登陆教师登陆学生登录学生选课添加课程删除课程 查询信息 查看公告图3-3管理员层次图图3-4教师管理层次图3.2设计目标学生信息管理系统为用户提供信息交流的交互平台,让老师、学生间建立良学生信息查询学生信息修改教师信息修改添加教师信息添加课程信息管理员学生信息操作添加学生信息教师信息操作教师信息操作教师信息查询查看能选课程修改能选课程教师个人信息教师管理操作查看个人信息 查看课表信息 查看讲课帮助 查看同科通知子系统链接教师登陆好联系,主要实现如下目标.3.2.1系统管理员管理模块1.基本信息录入,对系统的所有基本信息进行管理操作.2.学生信息操作,对学生的信息进行管理操作.3.系统管理,对管理员信息进行管理操作.3.2.2教师登录管理模块1.修改个人信息,对教师自己的个人信息进行管理操作.2.教师管理操作,对所教课程和听课通知进行查询操作3.2.3学生登录管理模块学生管理操作,对学生自己的个人信息、选课和删除已选课程进行管理操作.系统中数据库起着非常重要的作用,不能随意存取或改动,因此必须对数据库的存取和改动进行严格的控制,对系统数据进行有效的保护,防止对数据库的非法操作,防止计算机病毒对数据的破坏,定期对数据库进行备份.第四章数据库设计4.1数据库分析4.1.1实体的分析根据学生信息管理系统的总体设计,我们将这个系统分为三大模块.由此我们可以首先确定三大实体:管理员、教师和学生,而由于用户可以进行选课、查询等操作.所以确定该系统共有以下实体:1.管理员实体.2.教师实体.3.学生实体.4课程实体.5.选课实体.7.专业实体.4.1.2实体的属性该系统涉及到的实体分别为管理员实体,教师实体,学生实体.根据系统需求,我们将以下实体的属性确定如下:表4-1实体属性表1.管理员实体,包含管理员的信息,详细属性如下:(1)管理员ID.(2)登录密码.2.教师实体,包含教师的信息,详细属性如下:(1)教师ID.(2)教师姓名.(3)登录密码.3.学生实体,包含学生的基本信息,详细属性如下:(1)学生ID.(2)所属系别.(3)姓名.(4)性别.(5)年龄.(6)出生日期.(7)电话.(8)系别.(9)籍贯.(10)入学日期.(11)职务.(12)班级号.(13)学位.(14)登录密码.4课程实体,包含课程的信息,详细属性如下:(1)课程号.(2)课程名称.(3)课程教师.(4)教师ID.4.1.3数据表设计逻辑结构是独立于任何一种数据模型的信息结构.逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化.定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的物理设计如下:1.表admin保存用户的个人信息用户信息表主要是用来保存管理员用户的基本信息,包括管理员的ID和管理员的登录密码,只有符合这两个字段的格式要求,才能登录成功,结构表如下:表4-2管理员信息表。
Oracle数据库课程设计报告学生成绩管理系统方案
Oracle数据库课程设计题目学生考试管理系统班级11网工2班马路瑶学号指导老师超峰目录一、前言 (2)二、需求分析 (3)三、系统设计 (5)四、数据库设计 (7)五、编程步骤 (19)六、测试 (25)七、课程设计总结 (33)八、参考资料 (34)九、附录 (34)一、前言学生考试管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生考试管理系统得到了更大的发展空间,通过对学生考试管理系统的开发,可以提高校务人员的工作效率。
学生成绩管理是一个学校不可缺少的部分,一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。
学生考试管理系统对学校加强学生考试管理有着极其重要的作用.由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生考试数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
已不能适应时代的发展。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。
例:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等。
这些优点能够极提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。
因此,开发设计这样一套学生成考试理软件成为很有必要的事情.二、需求分析1.功能需求1.学生基本信息及所选科目成绩的录入或导入。
2.基本信息的查询(分系、班级;分科目)与修改。
3.对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)6.不及格情况的统计、导出、打印2.系统需求该学生成绩管理系统采用java语言开发研制, JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。
ORACLE学生成绩管理系统
华东交通大学理工学院课程设计报告书所属课程名称ORACLE数据库题目学生成绩管理系统分院电信分院专业班级计算机科学与技术ﻩ学号学生姓名指导教师2013年1月4 日华东交通大学理工学院课程设计( 论文)任务书专业计算机科学与技术班级姓名一、课程设计(论文)题目学生成绩管理系统二、课程设计(论文)工作:自2012 年12 月31 日起至2013 年 1 月 4 日止。
三、课程设计(论文)的内容要求:1、学生成绩管理系统的设计1.在对数据库理论及知识理解的基础上,针对具体的实际问题,设计合适的数据库表。
2.给出系统的概要设计、详细设计,完成相关的算法描述。
3.设计必要的视图、触发器、存储过程4.完成规范化的课程设计说明书的编写本设计是我和戈振军2个合作完成,我主要负责各个模块的界面设计与源代码的编译,最后测试系统的运行。
戈振军(20090210440123)主要负责各种数据的收集整理,数据库的设计,E-R图的设计与系统框架的搭建。
学生签名:2013 年1 月4日课程设计(论文)评阅意见评阅人职称20 年月日ﻬ目录第一章系统概述ﻩ错误!未定义书签。
1.1系统背景ﻩ错误!未定义书签。
1.2 可行性研究............................................................. 错误!未定义书签。
第二章需求分析................................................................ 错误!未定义书签。
2.1 运行环境:ﻩ错误!未定义书签。
2.2数据需求ﻩ错误!未定义书签。
第三章软件设计................................................................ 错误!未定义书签。
3.1总体设计............................................................. 错误!未定义书签。
PBOracle+学生成绩管理系统
实习 PB/Oracle 学生成绩管理系统项目1 创建与Oracle 8数据库的连接1.新建操作XSCJ数据库数据源新建操作XSCJ数据库数据源的方法如下.(1)单击PB工具栏的Database按钮,如图:打开数据库的连接“Database"对话框,如图:(2)双击ODB ODBC,选择Utilities,双击ODBC Administrator,添加新的数据源(3)单击“添加”按钮,为数据源选择驱动程序,选择Oracle ODBC Driver(4)单击“完成“按钮,系统显示Oracle ODBC配置(2)(3)(4)如图:在Database Source Name栏输入数据库名“XSCJ”;TNS ServiceName栏输入(选择)服务器名:XSCJ。
输入相应的内容后,单击“OK”按钮,数据源完成设置。
如图:2.新建Profile:xscj_pro与数据源相连新建Profile:xscj_pro与数据源相连的具体步骤如下。
(1)在Database对话框中,单击ODB ODBC,选择Profile Name,如图:(2)在Profile Name输入XSCJ,在Data Source选择XSCJ,在User ID 选择SYSMAN,在Password选择dcr48,单击“OK”按钮即可完成。
完成后ODB ODBC的子目录中就会出XSCJ,如图:(3)用鼠标右键单击XSCJ,选择connect连接XSCJ数据库即可,该数据库中的表就会列在Tables中,如图:项目2 主应用程序和界面1。
主应用程序在应用程序xscj的open()事件中添加代码,用于和数据库的连接,具体步骤及代码如下:2.新建数据界面d_cr新建数据界面d_cr的步骤如下。
(1)单击“New”,选取“DataWindow”下的“FreeFrom",单击“OK”,选择“Quick Selcet”图标,单击“Next”.如图:(2)在弹出的界面中选取需要建立查询的表,如OFFICE。
PBOracle+学生成绩管理系统
实习 PB/Oracle 学生成绩管理系统项目1 创建与Oracle 8数据库的连接1.新建操作XSCJ数据库数据源新建操作XSCJ数据库数据源的方法如下。
(1)单击PB工具栏的Database按钮,如图:打开数据库的连接“Database”对话框,如图:页脚内容1(2)双击ODB ODBC,选择Utilities,双击ODBC Administrator,添加新的数据源(3)单击“添加”按钮,为数据源选择驱动程序,选择Oracle ODBC Driver(4)单击“完成“按钮,系统显示Oracle ODBC配置(2)(3)(4)如图:在Database Source Name栏输入数据库名“XSCJ”;TNS ServiceName栏输入(选择)服务器名:XSCJ。
输入相应的内容后,单击“OK”按钮,数据源完成设置。
如图:页脚内容22.新建Profile:xscj_pro与数据源相连新建Profile:xscj_pro与数据源相连的具体步骤如下。
页脚内容3(1)在Database对话框中,单击ODB ODBC,选择Profile Name,如图:(2)在Profile Name输入XSCJ,在Data Source选择XSCJ,在User ID 选择SYSMAN,在Password选择dcr48,单击“OK”按钮即可完成。
完成后ODB ODBC的子目录中就会出XSCJ,如图:页脚内容4(3)用鼠标右键单击XSCJ,选择connect连接XSCJ数据库即可,该数据库中的表就会列在Tables 中,如图:页脚内容5项目2 主应用程序和界面1.主应用程序在应用程序xscj的open()事件中添加代码,用于和数据库的连接,具体步骤及代码如下:页脚内容62.新建数据界面d_cr新建数据界面d_cr的步骤如下。
页脚内容7(1)单击“New”,选取“DataWindow”下的“FreeFrom”,单击“OK”,选择“Quick Selcet”图标,单击“Next”。
Oracle数据库学生管理系统
create table Course(
cNo char(3) primary key,
cName varchar2(20) not null,
credit number(2,1),
tNo char(4) references LoginUser(userName)
);
insert into Course values('001','Oracle',5,'1001');
这些控件拥有各种功能,开发用户界面、处理用户的交互将非常简单、有趣。想要全面了解各种技术是不可能的,所以这里只介绍最常用的技术,包括Jsp、Html、J2ee等。
1.2
1.目前针对学校的大量扩招,使学生管理也越发困难,考虑到为学校减轻管理上的负担,这次主任带领我们做了一个小型的学生管理系统。它可以减轻管理员的统计负担,帮助管理员及时查看,修改,和定义新增加进来的学生,达到事半功倍的效果。我们用Swing技术和Web技术分别制作了学生管理系统。Web技术是一种B/S模式下的开发技术,它将用户的请求和相应都封装为控件。让开发者认为自己是在操作一个windows界面。极大地提高了开发效率。
Keywords:Javalanguage;Web services;
绪论
在最近的几年来,程序员使用工具,通过直观的窗体设计器创建高质量的用户界面,其编程语言的易学易用,为快速开发应用程序提供了尽可能好的环境,所以赢得了广泛的好评。快速应用程序开发(RAD)工具的一个优点是提供了许多预制控件,开发人员可以使用它们快速建立应用程序的用户界面。为程序员提供了空前巨大的重用代码池,以及仅通过鼠标单击就可以完全测试的代码。
对于J2ee部分,Servlet要掌握其生命周期,他只有在类第一次被加载时才调用它的初始化函数,之后则不在调用,然后调用distroy函数将servlet销毁。Servlet中的主要函数是doGet()和都doPost()函数,他们是函数的核心内容之所在。doPost()的传输数据量比
Oracle数据库课程设计-学生成绩管理系统(1)
毕业设计(论文)院系移动通信与软件开发学院专业软件手机嵌入式年级11级学号2011007120121学生姓名罗丽娟指导老师许勇2013 年 12 月四川科技职业学院毕业论文(设计)鉴定院系专业_________________________ 年级姓名 _______________________ 题目 ______________________________指导教师评语________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________指导教师 (签章)评阅人评语_________________________________________________________________________________________________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________评阅人 (签章)成绩答辩委员会主任 (签章)年月日目录第一节概述1、课题---------------------------------------------------------------------32、背景说明-----------------------------------------------------------------33、编写目的-----------------------------------------------------------------34、软件定义-----------------------------------------------------------------35、开发环境-----------------------------------------------------------------3数据库设计步骤第二节需求分析1、分析的重要性------------------------------------------------------------42、需求分析的任务和过程----------------------------------------------------43、数据流程图--------------------------------------------------------------54、数据字典----------------------------------------------------------------5第三节概念结构设计1、实体和属性之间的关系----------------------------------------------------72、E-R图------------------------------------------------------------------7第四节逻辑结构设计1、E—R图向关系模型的转换-------------------------------------------------82、设计用户子模式----------------------------------------------------------8第五节数据库的物理设计1、数据库安装与配置--------------------------------------------------------82、SQL脚本----------------------------------------------------------------9第六节数据库的实施1、触发器和存储过程--------------------------------------------------------102、ASP 链接ORACLE 数据库---------------------------------------------------10数据库安全性和完整性第七节数据库安全性1、计算机系统的安全性概述-------------------------------------------------10 2、授权与回收(SQL 语句描述)-----------------------------------------------10 第八节数据库完整性1、数据库完整性的概述-----------------------------------------------------11 2、三大完整性(SQL 语句描述)-----------------------------------------------11第九节课程小结------------------------------------------------------------12第一节概述1、课题Oracle 数据库课程设计(论文)---------------asp/oracle学生成绩管理系统2、背景说明asp/oracle学生成绩管理系统当今社会已进入信息时代,作为信息管理的主要工具的数据库已经成为举足轻重的角色。
Oracle成绩管理系统
数据库项目设计报告题目:Oracle学生成绩管理系统姓名:郎元钊班级: 144-2学号: 201458504242 学院:计控学院1.系统调查分析1.1任务概述1.1.1项目背景当今社会已进入信息时代,作为信息管理的主要工具的数据库已经成为举足轻重的角色。
无论是企业,组织的管理还是电子商务或电子政务等应用系统的管理,都需要数据库的支持,Oracle是目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、Internet、电子商务网站等领域作为应用数据的后台处理系统。
1.1.2开发意图采用学生成绩管理系统,可以方便地对学生和学生成绩进行管理。
1.1.3用户特点本系统的最终用户只有一个:管理员。
系统的管理员主要是对学生信息以及学生成绩进行一些操作。
这些操作包括对学生信息的添加、对学生成绩的录入以及对学生成绩进行分析等。
1.1.4可行性分析随着我国的市场经济的发展,各大高校的学生数目增多,以前的人工管理学生成绩方式已经不能再适应现在的环境,取而代之的是先进的学生管理系统,通过使用oracle 9i创建的asp/oracle学生成绩管理系统可以让管理人员方便而快捷的进行管理、查询、插入、更新等工作。
因此,开发一套适和大众的、兼容性好的系统是很有必要的。
1.2功能描述1.2.1模块划分该系统主要分为三个模块:信息数据管理、基本信息管理和成绩管理。
1.2.2详细功能描述◆信息数据管理模块1.进入系统后台2.学生基本信息录入:可选择两种方式进行学生信息录入,一个是单条录入,另一个是批量导入。
批量导入是将一个Excel表提交给系统,系统负责将该表中的数据存储到数据库中,Excel需要按照一定的格式。
3.学生基本信息导出:可按班或系导出基本信息到Excel表中。
4.所选科目成绩录入:在教师批阅卷完毕后,由教师录入该科目的学生考试成绩,并打印提交成绩单。
可选择两种方式进行成绩录入,一个是单条录入,另一个是批量导入。
Oracle学生信息管理系统
oracle数据库学生信息管理系统数据库源码+实现一结构及主要功能1.1学生信息管理系统的主要功能有:(1)、用户信息管理可以修改、删除、添加用户;(2)、班级信息管理可以添加、修改、删除班级;(3)、学籍信息管理可以添加、查询、修改、删除学籍;(4)、课程信息管理可以查看各班的课程信息;(5)、成绩信息管理可以用一个或几个条件查询、添加、删除,修改成绩;(6)、奖惩信息管理可以添加、查询、删除奖惩信息(7)、个人信息管理可以查询学生的个人信息。
1.2、系统的功能模块结构如下:二数据库设计2.1创建数据库用户在设计数据库表结构之前,首先要创建一个学生信息管理的数据库用户,这里定义为zengym,所有相关的表都属于这个用户。
创建用户的脚本为:CREATE user zengymidentified by zengymdefault tablespace userstemporary tablespace tempquota 10m on users;grant create session,resource to zengym;这样在设置ODBC时,使用户zengym登录,就可以直接在程序中调用用户zengym的表和视图等数据库对象了。
2.2数据库逻辑结构设计根据学生信息管理系统的功能要求,选取Oracle为后台数据库,数据库前台控制界面使用Visual Basic 6.0来实现。
该数据库由8个表组成。
这8个表包括班级课程信息(class_cour)表、班级信息(class_Form)表、课程信息(course_Form)表、获奖信息(prize_Form)表、获奖学生信息(Prize_Stud)表、学生成绩信息(score_Form)表、学生信息(student_Form)表、用户(user_Form)表。
2.3创建表的脚本语言(1)班级课程信息(class_cour)表CREATE TABLE zengym.class_Cour(class_NO number Primary Key,course_Name varchar2(50))TABLESPACE USERS;(2)班级信息(class_Form)表CREATE TABLE zengym.class_Form(class_No number Primary Key,class_Name varchar2(50),class_Teacher varchar2(50),class_Remarks varchar2(50))TABLESPACE USERS;(3)课程信息(course_Form)表CREATE TABLE zengym.course_Form(course_Name Varchar2(50) Primary Key, course_Rem Varchar2(50))TABLESPACE USERS;(4)奖惩信息(prize_Form)表CREATE TABLE zengym.prize_Form(prize_name varchar2(50) Primary Key, prize_Rem Varchar2(50))TABLESPACE USERS;(5)奖惩学生信息(Prize_Stud)表CREATE TABLE zengym.prize_Stud(prize_NO number Primary Key,prize_Stu number,prize_Dat date,prize_Nam Varchar2(50))TABLESPACE USERS;(6)学生成绩信息(score_Form)表CREATE TABLE zengym.score_Form(score_NO number Primary Key,score_per Varchar2(50),score_Cla number,score_Stu number,score_Cou Varchar2(50),score_Sco Varchar2(50))TABLESPACE USERS;(7)学生信息(student_Form)表CREATE TABLE zengym.student_Form(student_NO number Primary Key,student_Name Varchar2(50),student_Sex Varchar2(5),student_Bir Date,student_Cla number,student_Tel Varchar2(50),student_Esd Date,student_Add Varchar2(50),student_Rem Varchar2(50))TABLESPACE USERS;(8)用户(user_Form)表CREATE TABLE er_Form(user_ID Varchar2(50) Primary Key,user_PWD Varchar2(50),user_DATE date)TABLESPACE USERS;三数据库连接3.1、创建数据源为了能够在程序中访问到数据库House,需要创建系统数据源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院综合训练项目报告书课程名称Oracle数据库项目名称学生成绩管理系统专业班级组别成员任课教师刘腊梅2015 年 6 月目录1.设计时间 (3)2.设计任务 (3)3.设计内容 (3)3.1系统设计 (3)3.1.1系统功能概述 (3)3.1.2系统功能模块设计 (4)3.2数据库设计 (5)3.2.1数据库需求分析 (5)3.2.2数据库逻辑结构设计 (9)3.3数据库实现 (11)3.3.1创建用户 (11)3.3.2创建表和约束 (11)3.3.3创建存储过程、函数及触发器 (13)3.4测试与分析 (16)3.4.1测试 (16)3.4.2分析 (19)3.5代码 (19)4.总结与展望 (30)5.参考文献 (31)1 设计时间2015/6/1~2015/6/72 设计任务信息管理系统—学生成绩管理系统掌握ORACLE数据库的特点,熟悉SQL命令和PL/SQL的编程特点,运用所学知识解决现实问题,完成学生成绩管理系统的后台数据库设计,提高系统性能。
在该项目中,不考虑需求分析过程,要求建立以下关系:院系信息:院系编号、院系名称、院系主管、地址、院系人数;学生基本信息:院系编号、学号、姓名、性别、学生类型、入学日期、籍贯、身份证号、详细地址、出生日期、所学专业、民族、电话(家) 、缴费总计、已修学分、备注;课程信息:课程号、课程名称、开设年级、学时数、学分;成绩单:学号、课程号、学期、成绩、备注。
使用存储过程统计每个学生的‘已修学分’。
使用触发器实现当登记学生成绩(60分以上)时自动统计学生的‘已修学分’。
使用函数实现统计各课程的未及格人数,要求输入参数课程号后,返回各课程的人数NUM。
并实现调用,查‘数据库系统设计’的未及格人数。
将上实验中的存储过程与本实验中函数创建包。
3 设计内容3.1系统设计图3-1-2 业务流程图3.2数据库设计图3-2-6 0层数据流图图3-2-7 1层数据流图3.3.2创建表和约束1.创建院系信息表。
1 create table college(2 cno varchar2(10) primary key,3 cname varchar2(10),4 manager varchar2(10),5 address varchar2(50),6 population number(10)7* )SQL> /表已创建。
2.创建学生信息表1 create table student(2 sno varchar2(20) primary key,3 cno varchar2(10),4 sname varchar2(10),5 sex varchar2(2),6 type varchar2(10),7 in_date date,8 jiguan varchar2(10),9 id varchar2(20),10 address varchar2(50),11 birth date,12 major varchar2(10),13 nation varchar2(10),14 tele varchar2(11),15 payment number(10),16 credit number(5),17 remark varchar2(50),18 foreign key (cno) references college(cno) 19* )SQL> /表已创建。
3.创建课程信息表1 create table course(2 cno varchar2(10) primary key,3 cname varchar2(30),4 grade varchar2(5),5 study_time number(4),6 credit number(4) not nullSQL> /表已创建。
4.创建成绩单表1 create table score(2 cno varchar2(10),3 sno varchar2(10),4 term number(2),5 scores number(10),6 remark varchar2(50),7 primary key (cno,sno),8 foreign key (cno) references course(cno),9 foreign key (sno) references student(sno)10* )SQL> /表已创建。
3.3.3创建存储过程、函数及触发器1.创建存储过程Statistic_credit,用于统计每个学生的‘已修学分’。
1 create or replace procedure Statistic_credit3 cursor c14 is select * from student ;5 stu_info student%rowtype;6 begin7 open c1;8 fetch c1 into stu_info;9 while c1%found10 loop11 dbms_output.put_line(stu_info.sno||' '||stu_info.sname||' '||stu_info.credit);12 fetch c1 into stu_info;13 end loop;14 close c1;15* end;SQL> /过程已创建。
2.创建触发器t1,实现当登记学生成绩(60分以上)时自动统计学生的‘已修学分’。
1 create or replace trigger t12 after insert or update of scores on score3 for each row4 begin5 if :new.scores>=60 then6 update student set student.credit=student.credit+(select credit from course where o=:o)7 where student.sno=:new.sno;8 end if;9* end;SQL> /触发器已创建3.创建函数statistc_num,使用函数实现统计各课程的未及格人数,要求输入参数课程号后,返回各课程的人数NUM。
1 create or replace function statistc_num(cno in o%type)2 return number3 is4 num number:=0;5 begin6 select count(*) into num from score7 where o=cno and scores<60;8 return num;9* end;SQL> /函数已创建。
4.创建存储过程db_num,调用statistc_num函数来查‘数据库系统设计’的未及格人数。
1 create or replace procedure db_num2 is3 num number(4);4 v_cno o%type;5 begin6 select cno into v_cno from course7 where cname='数据库系统设计';8 num:=statistic_num(v_cno);9 dbms_output.put_line('未及格人数:'||num);10 exception11 when no_data_found then12 dbms_output.put_line('没有这门课程!');13* end;SQL> /过程已创建。
3.4测试与分析3.4.1测试现在向college表格中插入数据SQL> insert into college(cno,cname) values(&c,&n);输入c 的值: 1输入n 的值: '软件学院'原值1: insert into college(cno,cname) values(&c,&n)新值1: insert into college(cno,cname) values(1,'软件学院')已创建1 行。
此时的college表:图3-4-1 运行截图现在向college表格中插入数据SQL> insert into student(cno,sno,sname,credit) values(‘1’, ‘1220010311’,0);SQL> insert into student(cno,sno,sname,credit) values(‘1’, ‘1220010315’,‘刘畅',0);SQL> insert into student(cno,sno,sname,credit) values(‘1’, ‘1220010319’,‘马明',0);SQL> insert into student(cno,sno,sname,credit) values(‘1’, ‘1120010325’,‘邢少强',0);图3-4-2 运行截图向course表中添加学生所需要修的课程信息SQL> insert into course(cno,cname,credit) values(‘1’, 'oracle数据库管理与应用',3);SQL> insert into course(cno,cname,credit) values(‘2’,'编译原理',4)SQL> insert into course(cno,cname,credit) values(‘3’,‘数据库系统设计’,2) SQL> insert into course(cno,cname,credit) values(‘4’,‘日语',4)图3-4-3 运行截图向成绩表中录入成绩SQL> insert into score(sno,cno,scores) values(‘1220010311‘,’1’,90);SQL> insert into score(sno,cno,scores) values(‘1220010319‘,’3’,59);图3-4-4 运行截图插入90分的成绩后,自动更新已选修学分:图3-4-5 运行截图前面有插入一条59的成绩:图3-4-6 运行截图3.4.2分析在开始的时候,总会遇到这样或那样的问题,在做的过程中,慢慢摸索和研究,把其中的一个个问题逐个解决。