基于Oracle数据库的学生信息管理系统
oracle数据库学生信息管理系统

Part 4
4.2实体的属性
该系统涉及到的实体分别为管理员实体,教师实体,学生实体.根据系统需求,我们将以下实体的属性确定如下: 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.
8
管理员:
可以对学生信息修改、删除、添加、查询; 可以对教师信息修改、删除、添加、查询; 可以对课程信息修改、删除、添加、查询;
所有的学生信息,全部保存在中心数据库,并且只有管理 员本人才能对这些信息进行增加、修改和删除操作。 软件 提供对信息的增加、修改和删除的操作。 同时,软件提供 对信息的查询、查找操作,以方便用户查找到特定的信息。
学生信息管理系统数据库设计
《 oracle 大型数据库》课程演讲
刘昊 计144-2 201458504221
主讲人:刘昊
项目背景
Part 1
项目来源
1 开发背景
2
3
开发意义
随着学校规模的不断扩大,学生数量急剧增加, 有关学生的各种信息也成倍增加。面对庞大的 信息量,传统的人工方式管理会导致学生信息 管理上的混乱,人力与物力过多浪费,管理费 用的增加,从而使学校管理人员的负担过重, 影响整个学校的运作和控制管理,因此,必须 制定一套合理、有效,规范和实用的学生信息 管理系统,对学生信息进行集中统一的管理。 通过这样的系统,可以做到信息的规范管理、 科学统计和快速的查询,从而减少管理方面的 工作量。提高学生信息管理的工作效率,作到 信息的规范管理,科学统计和快速查询,让该 系统更好的为学校,社会服务。
实验十九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窗体用于接受用户的用户名/密码输入,判断是否为合法用户。
学生学籍信息管理系统oracle课程设计

目录一、系统目标 (4)二、系统功能需求 (4)三、非功能需求 (5)四、数据流图 (5)0层数据流 (5)1层数据流 (6)2层数据流 (4)五、数据字典 (7)数据流描述 (7)数据存储描述 (8)加工描述 (9)六、用例图 (10)系统用例图 (12)下层用例图 (13)用例详细描述 (14)七、概要设计与详细设计说明书 (17)数据库概要设计(ER图) (17)OOA类图 (18)顺序图 (19)系统结构图 (22)八、逻辑设计 (22)九、物理设计 (23)ORACLE数据库部分一、建立各表并向表中插入数据查询 (26)二、删除语句 (31)三、查看表结构 (32)四、视图的创建与查询 (33)五、聚簇的建立 (34)六、界面的实现 (35)学籍信息系统登录界面的实现 (35)学籍注册界面的实现 (36)查询成绩界面的实现 (37)查询学生选课情况的实现 (38)七、参考文献 (40)八、附录 (40)学生学籍信息管理系统一、系统目标建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
二、系统功能需求根据上述系统目标,学生学籍信息管理系统的系统功能需求如下所示:1)界面需求用户界面简洁明了,提供功能实用,按钮逻辑排列清晰,容易使用2)管理员需求管理员对功能的需求管理员权限最大,可以对学生,课程,老师的管理,管理员对功能的需求细分如下:(1)系统管理员有自己的账号和密码,通过身份验证登录系统(2)系统管理员可以修改自己的密码(3)学生学籍的注册,删除,修改,查询(4)教师信息的添加,删除,修改,查询(5)学籍变更管理包括添加,删除,修改,查询(6)奖惩的管理的包括添加,删除,修改,查询(7)成绩的管理包括添加,删除,修改,查询3)学生的需求学生只是利用此系统进行与自己有关的信息查询,输入等,不必关心其他的内容,学生对功能的需求如下:(1)查看个人基本信息,具体内容包括学号,姓名,性别,登录密码,入学日期,所在系名,所学专业名,所在班级名,班级号,政治面貌,身份号码,获奖记录,处分记录,家庭住址,联系电话。
基于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.*;。
学生课程管理系统Oracle大数据库论文设计

《大型数据库系统应用》集中实训报告系统名称:学生课程管理系统专业:信息管理与信息系统班级:信管B1201学号: 123629 姓名:晓雪指导教师:王希娟2015 年 6 月11 日目录1前言 (1)1.1 课题简介 (1)1.2 方案及其论证 (1)2需求分析 (2)2.1可行性分析 (2)2.2性能需求 (2)3概念结构设计 (3)3.1功能模块设计 (3)3.2 E-R图 (4)4逻辑结构设计 (5)4.1关系模式 (5)4.2规处理 (5)4.3视图设计 (5)5详细设计 (6)5.1数据库设计部分代码 (6)5.2前台界面开发部分代码 (7)5.3数据库连接部分代码 (11)6总结与体会 (12)7参考文献 (12)1前言1.1课题简介(1)开发系统的名称:学生课程管理系统(2)实训目的:通过《大型数据库系统应用》课程的学习,将数据结构、数据库应用在具体的编程方面,更加了解课程所学习的容及思维逻辑。
(3)实训意义:利用信息系统开发与实践课程设计,了解学生对Oracle数据库的理解、应用,以及加强学生对软件开发方面的应用知识。
希望今后学生好好利用所学的软件开发方面的知识和思想,解决各方面的编程难题。
(4)实训容:按照系统开发基本原理,综合运用所学的知识,设计开发一个小型的管理系统。
(5)实训预期实现效果:系统开发文档+能运行的小系统或者部分模块1.2 方案及其论证语言:VB+Oracle 11g运行环境:Microsoft Visual Studio 20102需求分析2.1可行性分析(1)技术可行性:学生选课系统,数据库方面采用Oracle 11g,采用VB语言。
(2)经济可行性:随着网络技术的发展,各高校纷纷建立自己的高速校园网,并建有属于的学生选课系统,利用计算机对学生的信息进行管理,减少了人力的投资;而且学校对选课系统大力支持,开发经费没有问题。
从长远来看,其好处是乐观的。
(3)操作可行性:界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规、可靠;统计准确;制表灵活;适应力强;容易扩充。
Oracle数据库的信息管理系统

非空
*
主要代码—成绩单表
CREATE TABLE PERINFO ( SNO NUMBER(4, 0) NOT NULL , CNO NUMBER(4, 0) , PDATE VARCHAR2(20 BYTE) , PANCE NUMBER(3, 0) , PBEIZHU VARCHAR2(20 BYTE) , CONSTRAINT PERINFO_PK PRIMARY KEY ( SNO ) ADD CONSTRAINT PERINFO_FK1 FOREIGN KEY ( CNO ) REFERENCES COURSEINFO ( CNO )
create or replace function select_fu2 (v_cno in o%type) return varchar2 is v_sno number; v_return varchar2(100); begin select count(a2.sno) into v_sno from courseinfo a1,perinfo a2 where a2.pance<60 and O=v_cno; v_return:='数据结构的未及格人数是:'||v_sno; return v_return; end; select select_fu2(60) from dual;
Oracle综合训练项目
班级: 组别:第四组 组员:
设计任务
利用所学的有关数据库设计知识,设计一个基
于Oracle数据库的信息管理系统。通过该部分 的操作与实践,使学生能够进一步巩固Oracle 数据库应用的方法和技术,提高基于Oracle数 据库的应用程序综合设计能力。
系统中表的设计—成绩单表
主要代码—创建视图及索引
基于Java+oracle学生信息管理系统的设计与实现毕业设计论文

本科毕业设计(论文)题目基于Java+Oracle学生信息管理系统的设计与实现学院名称信息学院专业班级计科高职09-3学生姓名任苏宁导师姓名董爱美二○一三年六月十日基于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。
基于Oracle数据库的学生信息管理系统设计

基于Oracle数据库的学生信息管理系统设计作者:李红霞来源:《电脑知识与技术》2018年第35期摘要:Oracle数据库是一种实用性很强且功能非常强大的数据库技术,该文分析了适用于高职院校的学生信息管理系统的需求,给出了详细的系统设计方案,包括系统结构设计、数据库设计,分析了学生信息管理系统的实现及软件测试。
关键词:Oracle数据库;学生信息管理系统;软件测试中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)35-0013-02Abstract: Oracle database is a very practical and powerful database technology. This paper analyses the requirements of student information management system for Higher Vocational colleges, and gives a detailed system design scheme, including system structure design, database design, and the realization and software of student information management system and Part test.Key words: Oracle database; student information management system; software testing在软件开发里,数据库技术是软件开发中的非常重要的一个步骤,数据库技术的发展已成为信息技术中最重要的组成部分之一。
早期的层次数据库、网状数据库和关系数据库,都在很多领域取得了巨大的成就。
但是关系数据库也存在一定的局限,尤其是随着应用领域的不断扩展,这种不足就更加明显。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于数据库的学生信息管理系统1 引言1.1 课题来源及意义21世纪是信息化的时代,信息化以更快捷更为方便为目标来融入各行各业。
学校也不能例外。
当前,我国的学校正在加紧实施信息化建设,其中学生信息管理是相当重要的一部分。
目前社会上信息管理系统发展飞快,各个事业单位都引入了信息管理系统来管理自己日益增长的各类信息,学生信息管理系统也是有了很大的发展,商业化的学生信息管理系统也不少。
但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作[1]。
学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都是至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段[2]。
但一直以来人们使用传统人工的方式管理文件,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
在各大高校,用计算机管理学校的信息已经越来越普遍了。
用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。
提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
1.2 研究内容与目标主要工作包括:新系统在原有系统的基础上加入新的数据库的支持,使用了现金的数据库技术与数据管理技术,是数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善。
利用虚拟机的运行环境与数据库相结合实现了主要原型系统。
设计了基于三层结构的设计思想。
第 1 页共39 页尽量达到人力与设备费用的节省,并且是软件处理数据的速度提高,系统的整个设计过程必须通过生产能力的提高,系统的整个设计过程必须通过生产能力的提高,人员工作效率的提高等等是软件开发成本最小化,实现保证软件质量的前提下的资金投入最小化[3]。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。
这些优点能够用极大地提高的效率,也是学校科学化、正规化管理的重要条件[4]。
1.3 的内容结构第一部分述了项目的来源和意义、课题的研究目标及本论文所做的主要工作。
第二部分总述了对学生管理系统的需求分析,介绍本系统的开发环境和所用到的开发工具。
第三部分是对系统的总体设计。
包括系统功能设计、系统模块划分、系统数据库设计等。
第四部分介绍了系统详细设计,介绍了各个页面实现的具体功能。
第五部分介绍了系统的运行效果。
最后总结了的主要工作,指出的主要贡献和不足,以及进一步的研究工作。
的论文结构图如图所示:第 2 页共39 页绪论第一章第二章系统的研究现状第三章系统的总体设计第四章系统的详细设计图内容结构图结论1.4 本章小结本章简要的概括了项目的来源和意义。
教育是科学之本,随着我国教育的普及和当前全球范围的知识的突飞猛进,一套高质量高效率的学生信息管理系统更是必不可少的,当前不仅是我国还是海外其他国家,均把学校教育放在战略地位,投入巨大的人力物力研制各种教育模式,其中,学生管理信息系统的开发首当其冲。
一套号的管理系统是良好学习环境的组织者[5]。
于信息系统数据量大,传统观的人工操作不仅效率低,准确性不高,而且其完整性、保密性均得不到保证[6]。
信息管理系统,是一种利用计算机软硬件资源以及数据库的人机系统。
本学生信息管理系统是建立在数据库基础上的应用系统,此信息管理系统可以实现学生信息的高效查询、修改、删除等操作,是使学生信息关系系统化,规范化和自动化。
第 3 页共39 页2 需求分析需求分析是一个渐进的过程,通过开发人员和用户的不断交流,逐步加深对系统功能和性能的认识,并且加以细化、分解软件需求。
需求分析是软件开发过程中系统的推理过程,涉及到领域内问题及其组成部分,目的在于理解需要什么和必须做什么,并将用户的需求用书面形式表达出来[7]。
21世纪以来,人类经济高速发展,人们社会发生了日新月异的变化,特别是计算机的应用及到经济和社会生活的各个领域。
使原本的旧的管理办法越来越不适应现在社会的发展。
许多人还停留在以前的手工操作。
这大大地阻碍了人类经济的发展。
为了适应现代社会人们高度强烈的时间观念,学校信息管理系统为学校办公室带来了极大的方便。
开发的这个系统所采用的是当前较为流行的编程语言作为主要工具,以数据库作为系统的后台操作,其功能在系统内部有源代码直接完成。
我们只需按系统要求输入即可操作。
2.1 系统功能需求学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息,学生成绩信息等。
对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管理学生信息,对学校学生的变动和统计起着重要的管理作用[8]。
本系统根据学校管理的实际要求,结合学生信息管理的实际流程要求,需实现以下功能:1、能够对学生的有关信息进行输入、查询、修改、删除。
2、能够对学校提供强大的查询功能,以便管理人员了解和掌握学生的具体情况。
3、能够对数据进行导入和导出。
4、可以对用户进行修改密码,新增用户。
2.2 系统的性能需求第 4 页共39 页为了保证系统能够长期、安全、稳定、可靠、高效的运行,学生信息管理系统应该满足以下的性能需求:1、系统处理的准确性与及时性系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求[9]。
2、系统对开放性和系统的可扩充性学生信息管理系统在开发过程中,应该充分考虑以后的可扩充性。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补替换完成系统的升级和更新换代。
3、系统的易用性和易维护性学生信息管理系统使用人员往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面:针对用户可能出现的使用问题,要提供足够的帮助,缩短用户对系统熟悉的过程[10]。
2.3 系统数据要求学生信息管理系统的数据需求包括如下几点:1、数据录入和处理的准确性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而是系统的工作失去意义。
数据的输入来源是手工输入。
手工输入要通过系统界面上的安排系统具有容错性,从而降低出错概率。
2、数据的一致性与完整性学生信息管理系统对数据的处理有很高的要求,因为对学生信息的处理非常频第 5 页共39 页繁,所以要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要求其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据[11]。
3、数据的独立性学生信息的管理对学校来说是非常重要的一个部分,不可能让每一个人都对其进行操作,应该有特定的人员对学生信息管理系统进行管理,对系统进行独立操作。
2.4 功能需求分析权限功能:系统具有动态的权限分配功能,可按用户权限对用户进行分组。
可分为管理员和学生用户。
学生用户只能修改自己的个人信息,修改密码,以及查询班级成绩和个人成绩。
而管理员则有以下功能:录入功能:管理员用户提供对所有信息的录入功能。
查询功能:管理员提供查询的功能,可查询允许范围内的所有信息,以及学生用户可以查询班级成绩。
维护功能:管理员用户提供对所有信息的修改删除功能。
退出功能:结束并关闭系统。
本系统性能力求易于使用,具体有较高的扩展性和可维护性。
2.5 可行性分析2.5.1 经济可行性随着社会的发展及经济的发展,知识经济已成趋势并在某些方面尤其突出,各大高校都随之扩招。
学生也日趋增多,这个给学籍管理带来了沉重的压力,使用人力来管理已经不可能了,一个好的有规模的信息管理系统已经迫在眉睫了,所以在经济上是十分可行的[12]。
第 6 页共39 页2.5.2 技术可行性系统的性质为管理软件,因而数据库的设计与操纵是系统设计的核心。
之前学习的数据库原理,数据库及有关数据库建设,前台程序与后台数据库的连接,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵。
2.6 本章小结需求分析是软件开发过程的初始阶段,是一个系统的推理过程,涉及到领域问题及其组成部分,目的在于理解需要什么和必须做什么,并将用户的需求用书面形式表达出来。
软件产品的质量,正在很大程度上取决于时候进行过系统的需求分析,并是否取得正确、一致和比较完全的需求文档。
通过需求分析解释信息的流程和结构,为软件设计提供基础,通过表示接口细节提供一个深入的功能说明来描述软件,并确定约束条件和定义软件的有效性[13]。
第7 页共39 页 3 系统概要设计3.1 系统功能设计学生信息管理系统是一个完整的信息管理系统,在本系统中主要包括用户和管理员登录功能、用户和角色管理功能、班级信息管理功能、学生成绩管理功能、学生信息管理功能等。
它们的具体描述如下:用户登录登录功能主要包括的功能如下:用户登录:验证用户的信息是否合法,以及验证用户是否为系统的合法用户。
对于非正确用户用不对应的身份登录进行阻止。
普通用户学生用户:学生用户只能查询自己的个人信息,修改密码,以及查询个人成绩和班级成绩。
系统管理员a、学生信息管理功能学生信息管理功能主要对学生信息的管理,如学生信息的添加,修改和删除等。
在系统中主要包括:查询新的学生信息、添加新的学生信息、修改学生信息、删除学生信息。
b、班级信息管理功能班级信息管理功能主要实现班级的信息管理功能,如班级人数、班级学年平均成绩和所获集体荣誉的添加、修改和删除。
c、学生成绩管理功能学生成绩管理功能主要对学生成绩的管理,如学生成绩的添加、修改和删除等。
其中学习成绩主要包括所学课程、成绩、学分和是否有挂科。
第8 页共39 页3.2 系统功能设计按系统功能设计,可以把学生信息管理系统划分为用户登录模块、用户和角色管理模块、教师信息管理模块、班级和管理模块、课程信息管理模块、学生信息管理模块、学生成绩管理模块。
它们之间的关系如同所示。
管理员普通用户学生信息管理系统图系统结构图学生管理成绩管理班级管理用户管理数据管理个人信息查询个人成绩查询班级成绩查询个人密码修改程序逻辑查询模块当登录用户需要对查询时,要先输入查找关键字,看是否符合条件要求,当符合条件要求时在数据库中的数据表进行查询调用并显示在前台界面上供用户查看,如果不符合条件则直接退出。