本科论文(java版学籍管理系统).doc_第1页
本科论文(java版学籍管理系统).doc_第2页
本科论文(java版学籍管理系统).doc_第3页
本科论文(java版学籍管理系统).doc_第4页
本科论文(java版学籍管理系统).doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 概述11.1 系统功能11.2 研究的意义12 系统分析12.1功能需求分析12.2性能需求分析22.3数据库需求分析数据流图22.4数据结构分析数据流图22.4.1 数据结构:22.4.2 数据流:33系统设计43.1系统配置43.2系统功能结构设计43.3数据库概念结构设计43.4逻辑结构设计54详细设计及功能实现54.1用户登录模块设计与实现54.2学生基本信息管理模块的实现64.3成绩管理模块的实现74.4查询模块的实现84.5其他模块的实现95参考文献106 附录 (程序清单)10201 概述1.1 系统功能 本学生成绩管理系统具备两方面的功能:一是学生基本信息管理(包括学生记录的录入、修改、查询、删除等);二是成绩管理(成绩的录入、修改、查询、删除等)。1.2 研究的意义随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统教育管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成教学管理工作。提高教学管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。基于Java与SQL server数据库技术建立一个高校成绩管理系统该系统为管理员、学生和教师提供了查询、修改、增加记录、删除等功能,功能比较落齐全,基本上能满足学生和老师的要求。2 系统分析2.1功能需求分析 该学生成绩管理系统具备两方面的功能:一是学生基本信息管理(包括学生记录的录入、修改、查询、删除等);二是成绩管理(成绩的录入、修改、查询、删除等)。具体功能的详细描述如下:1. 选择基本信息菜单,该菜单有三个子菜单,点击增加信息即可进入添加学生信息功能窗体,在其中输入学生的相关信息,输入新信息后单击“添加”就可以了。点击修改信息菜单,即可进入修改信息功能窗体。点击删除信息菜单,即可进入删除信息功能窗体。2. 选择成绩管理菜单,该菜单也有三个子菜单。点击录入成绩即可进入录入成绩功能窗体,在其中输入学生的各科成绩,单击“添加”就可以了。点击修改成绩菜单,即可进入修改成绩功能窗体。点击删除成绩菜单,即可进入删除成绩功能窗体。3.选择查询菜单,该菜单有两个子菜单。选择基本信息查询项,即可进入基本信息查询窗体,根据条件语句进行查询。选择成绩查询项,即可查询某位学生的课程成绩。4. 选择其他菜单,该菜单下有子菜单“退出”,单击,即可退出本系统。2.2性能需求分析时间特性要求:在软件方面,响应时间有点慢,因为是用netbeans做的,它占用内存比较大,更新处理时间比较快而且迅速。安全性:设立口令号和密码验证方式,防止非法用户登录进行操作。也就是用户只有管理员、学生和教师才能进入这个系统,用户凭口令号和密码进入此系统,系统会自动判断用户是那种类型,分别拥有不同的权限。2.3数据库需求分析数据流图在教务系统中功能模块主要牵涉到的信息包括:是学生信息、课程信息、成绩表、选课表。学生信息:包含学号(id)、姓名(name)、班级(class)、性别(sex)。课程信息:包括课程编号(course_id)、课程名称(coursename)。成绩表:编号(number)、学号(id)、课程名称(coursename)、成绩(result)。班级信息:班级编号(bjbh)、学号(id)、姓名(name)班级名称(bjmc)。用 户数 据 库返回信息账号信息2 开发环境与工具介绍前端客户端我用的是Macromedia Dreamweaver 8来编写JSP文件。中间业务逻辑层的JavaBeans用的是JBuilderX EnterpriseX版。数据库的编写是采用MYSQL数据库。2.1开发环境由于我用的是JBuilderX Enterprise版开发的这个系统,这个开发软件功能十分强大,所以自然对开发环境要求相对来说比较高。1对系统硬件的要求:最小512M RAM,推荐786MB RAM。2. 对系统平台的要求: Windows平台 CPU:Intel PentiumIII 及以上兼容系列500MHz以上。 操作系统:Microsoft Windows2000(SP4)、WindowXP或者WindowsServer2003。Linux平台 CPU:Intel PentiumIII 及以上兼容系列500MHz以上。操作系统:Sun Java Desktop System Release2或者RedHat Enterprise Linux 3 .0 2.2 运行环境: 硬件:适用于数据吞吐量较大的不同服务器; 软件 :服务器端:WINDOWS XP+MySQL用户端: WindowXP+IE登陆信息操 作登 录根据以上划分的具体数据信息,得到数据流图如1.1所示: 寻找信息错误信息1.1数据库需求分析数据流图2.4数据结构分析数据流图2.4.1 数据结构:学生信息=组成: 学号(id)、姓名(name)、班级(class)、性别(sex)课程信息=组成: 编号(course_id)、课程名称(coursename)成绩表包括=组成:编号(number)、学号(id)、课程名称(coursename)、成绩(result) 班级信息=组成:班级编号(bjbh)、年级(nj)、班级名称(bjmc)、人数(rs)2.4.2 数据流:对图1.1中所涉及的数据流描述如下:(1)数据流名:口令号说明:根据这个口令号定位到用户管理数据库,以便进行身份验证。数据流来源:登陆界面输入的口令号和密码。数据流去向:其中用户口令信息将存在于整个操作过程中,防止非法登陆。数据流组成:口令号(文本);密码(文本)(2)数据流名:寻找信息说明:根据用户在学生信息维护的时候所填写的信息。数据流来源:学生信息维护界面学生输入包含学号、班级编号、名称等。数据流去向:学号将存在整个操作,其它的存入数据库。数据流组成:学号(文本);姓名(文本)等(3)数据流名:寻找信息说明:根据用户在成绩管理的时候所填写的信息。数据流来源:成绩输入、修改、添加等界面用户输入包含课程编号、课程名称、成绩。数据流去向:学号、班级编号、课程编号将存在整个操作,其它的存入数据库。数据流组成:课程编号(文本)、课程名称(文本)、教师(文本)等。(4)数据流名:返回信息说明:根据用户在学生信息维护的时候所填写的信息存入了数据库之后。数据流来源:由学生信息维护界面学生输入的包含学号、姓名、性别等存入数据库的。数据流去向:学生信息维护界面。数据流组成:学号(文本)、姓名(文本)、班级名称(文本)、性别(文本)等。(5)数据流名:返回信息说明:根据用户在成绩管理的时候所填写的信息存入数据库后。数据流来源:由成绩管理输入的包含班级名称、课程名、成绩存入数据库的。数据流去向:成绩管理的各子界面。数据流组成:班级编号(文本);班级名称(文本);教师(文本)等;对图1.1中所涉及的处理过程描述如下:(1)处理过程名:登陆输入数据流:口令号、密码输出数据流:不符合输入条件的错误信息 处理过程逻辑:用 IF条件进行判断。(2)处理过程名:班级信息维护输入数据流:班级编号、班级名称、教师等输出数据流:班级编号、班级名称等 ,其中班级编号将存在整个操作。处理过程号:班级编号,其中班级编号将存在整个操作。(3)处理过程名:学生信息维护输入数据流:学号、姓名、班级编号、性别等。输出数据流:学号、姓名、班级编号、性别等。其中学号将存在整个操作。(4)处理过程名:成绩输入输入数据流:课程编号、课程名称输出数据流:编号、学号、课程名称、成绩 、其中编号和学号将存在整个操作。3系统设计3.1系统配置1.软件配置:Windows xp操作系统,java JDK5.0环境,NetBeans开发平台(基本配置要求)。2.硬件配置10G以上硬盘,intel celeron(R)处理器,512M内存(基本配置要求)。3.2系统功能结构设计该学生成绩管理系统具备两方面的功能:一是学生基本信息管理(包括学生记录的录入、修改、查询、删除等);二是成绩管理(成绩的录入、修改、查询、删除等),重新登陆系统、退出。 模块功能大概可以分为如下4个方面:这几个模块学生基础维护、成绩管理、登陆、退出。其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。3.3数据库概念结构设计 根据需求分析阶段得到的数据字典以及数据流图,由以上分析可以得到系统中出现的实体有:学生信息实体、班级信息实体、成绩表实体等等。可以画出对应的E-R图如下:得到总E-R图如下:Class_infochengjibiao belongstadym1Base_infon 1 choose111loginstadyn1nxuankebiaostucourse_info3.4逻辑结构设计根据上面概念结构设计阶段得到的E-R图,下一步应该将它转化为关系模型。可以得到对应的关系模式为:Base_info(id、name、class、sex、address)Class_info(class_id、classname、teacher、id)xuankebiao(number、id、coursename teacher、class_id、classname、result)chengjibiao(number、id、name、course、result) stu(id、password、rights)4详细设计及功能实现4.1用户登录模块设计与实现设计思路:为了检验登录用户是否是一个合法用户,当用户输入用户名和密码后,需要查询数据库以便验证该用户是否为非法用户。同时通过用户输入的口令号就可知道用户是管理员、学生,还是教师,他们的权限不同。实现功能:用户可以从登陆界面进入到教务管理系统界面,然后进行一些操作。 4.2学生基本信息管理模块的实现该模块主要包括添加、删除、修改学生基本信息三个小部分。所以在编程实现的过程中,构造三个.java源文件。依次为:AddStudent.java,DeleteStudent.java,GetStudent.java。其运行界面如下所示:4.3成绩管理模块的实现该模块主要包括添加、删除、修改学生成绩三个小部分。所以在编程实现的过程中,构造三个.java源文件。依次为:AddGrade.java,DeleteGrade.java,GetGrade.java。其运行界面如下所示:4.4查询模块的实现该模块主要包括查询学生基本信息和查询成绩两个小部分。所以在编程实现的过程中,构造三个.java源文件。依次为:SetStuduent ,SetGrade.java。其运行界面如下所示:4.5其他模块的实现该模块是系统退出菜单,对应文件为UsingExit.java。单击“退出”,即退出本系统。5参考文献1 JAVA学习笔记 清华大学出版社 20062 施平安 清华大学出版社, 20053 徐慧慧,叶达峰,JBuilder编程技术与实例,人民邮电出版社,20064 杨文龙,软件工程,电子工业出版社,19975 郑莉,王行言 ,清华大学出版社 20076 附录 (程序清单)由于源程序文件较多,在此只显示部分.java文件源代码:Info_Manage.java:package xuesheng;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.event.*;public class Info_Manage extends Frameimplements ActionListenerJLabel JLUserName =new JLabel(用户名:);JLabel JLPaw =new JLabel(密 码:);JTextField JTUserName=new JTextField(); JLabel Jbanquan =new JLabel(关于软件使用,请联系作者:);JPasswordField JPsw =new JPasswordField();JButton JB1 =new JButton(登录);JButton JB2 =new JButton(取消);public Info_Manage()this.setTitle(学生成绩管理系统);this.setLayout(null);JLUserName.setBounds(100,40,100,20);this.add(JLUserName);JTUserName.setBounds(200,40,80,20);this.add(JTUserName);Jbanquan.setBounds(100,200,250,60); this.add(Jbanquan);JLPaw.setBounds(100,100,60,20);this.add(JLPaw);JPsw.setBounds(200,100,80,20);this.add(JPsw );JB1.setBounds(100,150,60,20);this.add(JB1);JB1.addActionListener(this); JB2.setBounds(200,150,60,20);this.add(JB2);JB2.addActionListener(this);this.setVisible(true);this.setBounds(10,10,400,250);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );public static void main(String args)new Info_Manage();public void actionPerformed(ActionEvent e)if(e.getSource()=JB1)String name=JTUserName.getText();String password=new String(JPsw.getPassword();if(name!=null&(name.equals(daishu)&(password!=null&(password.equals(0816)new student_manage();elsestudent_manage.java:package xuesheng;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.event.*;class student_manage extends JFrameimplements ActionListenerJMenuBar jm =new JMenuBar();JMenu jm1 =new JMenu(基本信息);JMenuItem jmi1=new JMenuItem(增加信息);JMenuItem jmi2=new JMenuItem(删除信息);JMenuItem jmi3=new JMenuItem(修改信息);JMenu jm4= new JMenu(成绩管理);JMenuItem jm41=new JMenuItem(录入成绩);JMenuItem jm42=new JMenuItem(删除成绩);JMenuItem jm43=new JMenuItem(修改成绩);JMenu jm2=new JMenu(查询);JMenuItem jmi21=new JMenuItem(基本信息查询);JMenuItem jm22=new JMenuItem(成绩查询);JMenu jm3=new JMenu(其它);JMenuItem jmi31=new JMenuItem(退出); Container con=new Container(); JLabel label=new JLabel(欢迎登录学生信息系统,JLabel.CENTER); JPanel pCenter=new JPanel();public student_manage()this.setTitle(学生基本信息);this.setLayout(new CardLayout(); con=getContentPane(); pCenter.setLayout(new CardLayout(); label.setFont(new Font(TimesRoman,Font.BOLD,24); label.setForeground(Color.red);this.setJMenuBar(jm);jm.add(jm1);jm.add(jm4);jm.add(jm2);jm.add(jm3);jm1.add(jmi1); jm1.add(jmi2); jm1.add(jmi3); jm4.add(jm41); jm4.add(jm42); jm4.add(jm43) jm2.add(jmi21); jm2.add(jm22); jm3.add(jmi31);jmi1.addActionListener(this);jmi2.addActionListener(this);jmi3.addActionListener(this);jm41.addActionListener(this);jm42.addActionListener(this);jm43.addActionListener(this);jm2.addActionListener(this);jmi21.addActionListener(this);jm22.addActionListener(this);jm3.addActionListener(this);jmi31.addActionListener(this); con.add(pCenter,BorderLayout.CENTER); con.validate();this.setBounds(10,10,500,400);this.setVisible(true);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );public void actionPerformed(ActionEvent e)if(e.getSource()=jmi1)new AddStudent();if(e.getSource()=jmi2)new DeleteStudent();if(e.getSource()=jmi3)new GetStudent();if(e.getSource()=jmi21)new SetStudent();if(e.getSource()=jmi31)new UsingExit().setVisible(true);if(e.getSource()=jm41)new AddGrade();if(e.getSource()=jm42)new DeleteGrade();if(e.getSource()=jm43)new GetGrade();if(e.getSource()=jm22)new SetGrade();public static void main(String args)new student_manage();AddStudent.java:package xuesheng;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;class AddStudent extends JFrameimplements ActionListenerJLabel JL =new JLabel(添 加 基 本 信 息,JLabel.CENTER);JLabel JLNumber=new JLabel(学号:);JTextField JTNumber=new JTextField();JLabel JLName =new JLabel(姓名:);JTextField JTName =new JTextField();JLabel JLClass =new JLabel(班级:);JTextField JTClass =new JTextField();JLabel JLsex =new JLabel(性别:);ButtonGroup BG =new ButtonGroup();JRadioButton JRB1 =new JRadioButton(男);JRadioButton JRB2 =new JRadioButton(女);JLabel JL1 =new JLabel(学院:);JTextField JT1 =new JTextField();JLabel JL2 =new JLabel(生日:);JTextField JT2 =new JTextField();JButton JBAdd =new JButton(添加); JButton JBNext =new JButton(重置);JButton JBExit =new JButton(退出); String sql=;public AddStudent()this.setTitle(添加学生信息);this.setLayout(null);JL.setFont(new Font(TimesRoman,Font.BOLD,24); JL.setForeground(Color.red);JL.setFont(new java.awt.Font(宋体,Font.PLAIN,19);JL.setBounds(100,30,200,40);this.add(JL);JLNumber.setBounds(100,80,100,20);this.add(JLNumber);JTNumber.setBounds(200,80,80,20);this.add(JTNumber);JLName.setBounds(100,120,60,20);this.add(JLName);JTName.setBounds(200,120,80,20);this.add(JTName);JLsex.setBounds(100,160,100,20);this.add(JLsex);JRB1.setBounds(200,160,40,20);JRB2.setBounds(300,160,40,20);this.add(JRB1);this.add(JRB2);BG.add(JRB1);BG.add(JRB2);JL2.setBounds(100,200,80,20);this.add(JL2);JT2.setBounds(200,200,80,20);this.add(JT2);JLClass.setBounds(100,240,60,20);this.add(JLClass);JTClass.setBounds(200,240,80,20);this.add(JTClass);JL1.setBounds(100,280,60,20);this.add(JL1);JT1.setBounds(200,280,80,20);this.add(JT1);JBAdd.setBounds(80,320,90,20);this.add(JBAdd);JBAdd.addActionListener(this);JBNext.setBounds(190,320,90,20);this.add(JBNext);JBNext.addActionListener(this);JBExit.setBounds(300,320,90,20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(10,10,500,400);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=JBAdd)System.out.println(ffffffffffffffffffff);String snumber=JTNumber.getText();String sname=JTName.getText();String sclass=JTClass.getText();String ssex=女;if(JRB1.isSelected() ssex=男;String scollect=JT1.getText();String sbir=JT2.getText();sql=select * from student where Id=+snumber+;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection cot=DriverManager.getConnection(jdbc:odbc:student1,);Statement stm=cot.createStatement();ResultSet rs=stm.executeQuery(sql); if(rs.next()JOptionPane.showMessageDialog(null,该号已经存在!);elsesql=insert into student values(+snumber+,+sname+,+sclass+,+ssex+,+scollect+,+sbir+); int i=stm.executeUpdate(sql);if(i0)JOptionPane.showMessageDialog(null,添加成功!);elseJOptionPane.showMessageDialog(null,删除失败!);catch(Exception ee)if(e.getSource()=JBNext)JTNumber.setText(null);JTName.setText(null);JTClass.setText(null);JT1.setText(null);JT2.setText(null);if(e.getSource()=JBExit) setVisible(false);public static void main(String args)new AddStudent();AddGrade.java:package xuesheng;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.event.*;class AddGrade extends JFrameimplements ActionListenerJLabel JL =new JLabel(添 加 成 绩,JLabel.CENTER);JLabel JLNumber=new JLabel(学号:);JTextField JTNumber=new JTextField();JLabel JLName =new JLabel(姓名:);JTextField JTName =new JTextField();JLabel JLClass =new JLabel(语文:);JTextField JTClass =new JTextField();JLabel JLsex =new JLabel(性别:);ButtonGroup BG =new ButtonGroup();JRadioButton JRB1 =new JRadioButton(男);JRadioButton JRB2 =new JRadioButton(女);JLabel JL1 =new JLabel(数学:);JTextField JT1 =new JTextField();JLabel JL2 =new JLabel(班级:);JTextField JT2 =new JTextField();JButton JBAdd =new JButton(添加); JButton JBNext =new JButton(重置);JButton JBExit =new JButton(退出); String sql=;public AddGrade()this.setTitle(添加成绩);this.setLayout(null);JL.setFont(new Font(TimesRoman,Font.BOLD,24); JL.setForeground(Color.red);JL.setFont(new java.awt.Font(宋体,Font.PLAIN,19);JL.setBounds(100,30,200,40);this.add(JL);JTName.setBounds(200,120,80,20);this.add(JTName);JLsex.setBounds(100,160,100,20);this.add(JLsex);JRB1.setBounds(200,160,40,20);JRB2.setBounds(300,160,40,20);this.add(JRB1);this.add(JRB2);BG.add(JRB1);BG.add(JRB2);JL2.setBounds(100,200,80,20);this.add(JL2);JT2.setBounds(200,200,80,20);this.add(JT2);JBAdd.addActionListener(this);JBNext.setBounds(190,320,90,20);this.add(JBNext);JBNext.addActionListener(this);JBExit.setBounds(300,320,90,20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(10,10,500,400);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=JBAdd)String snumber=JTNumber.getText();String sname=JTName.getText();String sclass=JTClass.getText();String ssex=女;if(JRB1.isSelected() ssex=男;String scollect=JT1.getText();String sbir=JT2.getText();sql=select * from grade where Id=+snumber+;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection cot=DriverManager.getConnection(jdbc:odbc:student1,);Statement stm=cot.createStatement();ResultSet rs=stm.executeQuery(sql); if(rs.next()JOptionPane.showMessageDialog(null,该号已经存在!);elsesql=insert into grade values(+snumber+,+sname+,+sclass+,+ssex+,+scollect+,+sbir+); int i=stm.executeUpdate(sql);if(i0)JOptionPane.showMessageDialog(null,添加成功!);elseJOptionPane.showMessageDialog(null,删除失败!);catch(Exception ee)if(e.getSource()=JBNext)JTNumber.setText(null);JTName.setText(null);JTClass.setText(null);JT1.setText(null);JT2.setText(null);if(e.getSource()=JBExit) setVisible(false);public static void main(String args)new AddGrade();SetStudent.java:package xuesheng;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;import java.util.Vector;class SetStudent extends JFrameimplements ActionListenerJLabel JL =new JLabel(查 询 基 本 信 息,JLabel.CENTER);JLabel JLNumber=new JLabel(请输入学号:);JTextField JTNumber=new JTextField();JLabel JLName =new JLabel(姓名:);JTextField JTName =new JTextField();JLabel JLClass =new JLabel(班级:);JTextField JTClass =new JTextField();JLabel JLsex =new JLabel(性别:);ButtonGroup BG =new ButtonGroup();JRadioButton JRB1 =new JRadioButton(男);JRadioButton JRB2 =new JRadioButton(女);JLabel JL1 =new JLabel(学院:);JTextField JT1 =new JTextField();JLabel JL2 =new JLabel(生日:);JTextField JT2 =new JTextField();JButton JBSet =new JButton(查询);JButton JBNext =new JButton(重置);JButton JBExit =new JButton(退出);String sql=;public SetStudent()this.setTitle(查询学生信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论