1、数据库原理课程设计 报告学生成绩管理系统设计专业计算机科学与技术学生姓名周阳班级D计算机131学号1320704130指导教师李萍完成日期2015年7 月 10日信息学院目录一、成绩管理系统的背景分析4二、系统运行环境42.1、Microsoft SQL Server 200842.2、eclipse52.3、JDK6三、目标分析63.2、学生需求6四、需求分析64.1行业现状74.2可行性分析71、社会可行性82、技术可行性83、经济可行性8五、概念模型E-R图85.1STU用户名实体E-R图85.2TEA用户名实体E-R图95.3学生实体E-R图95.4成绩实体ER图10六、学生成绩管理系
2、统设计的逻辑结构设计106.1STU用户名表106.2TEA用户名表106.3 STU表106.4 计算机系成绩表11七数据截图117.1STU用户名表截图117.2 TEA用户名表截图117.3 STU表截图127.4 计算机系成绩表截图12八、学生成绩管理系统功能的实现128.1学生登录128.2教师登录14九、课程设计总结17一、成绩管理系统的背景分析 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理
3、,计算机能够充分发挥它的优越性。 管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识
4、,它进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样的一套成绩管理系统成为很有必要的事情。 学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询、留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。二、系统运行环境2.1、Microsoft SQL Server 20
5、08Microsoft SQL Server 2008支持WinNT、Win9X、Win2000、WinXP。而且Microsoft SQL Server 2008 Express Edition(SQL Server Express)是基于Microsoft SQL Server 2005的数据库平台,主要的特征是提供了易于使用强大的功能和Microsoft SQL Server 2008的整合SQL Server Express在提供了服务器端广泛的功能以外,还同时提供强健的客户端数据库。Microsoft SQL Server 2008是一个全面的数据库平台,使用集成的商业智能(BI)工
6、具提供了企业级的数据管理。Microsoft SQL Server 2008数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。Microsoft SQL Server 2008数据引擎是该企业数据管理解决方案的核心。此外Microsoft SQL Server 2008结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团对通过积分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。与Microsoft Visual Studio、Microsoft
7、Office System以及新的开发工具包(包括Business Intelligence Development Studio)的紧密集成使Microsoft SQL Server 2008与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,Microsoft SQL Server2008都可以为您提供创新的解决方案,帮助您从数据中更多地获益。2.2、eclipse Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组建构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java
8、Developmeng Kit,JDK)。虽然大多数用户很乐于将Eclipse当做Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于JAVA开发工具。尽管Eclipse是使用Java
9、语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C+、COBOL、PHP、Android等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于Eclipse的应用程序的一个突出例子是IBM Rational Software Architect,它构成了IBM Java开发工具系列的基础。2.3、JDKJdk是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK(Java Development Kit)是Java语言的软件开发工具包(SDK)。SE(J2SE)sta
10、ndard edition,标准版,是我们通常用的一个版本,从JDK5.0开始,改名为Java SE。EE(J2EE)enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK5.0开始,改名为Java EE。ME(J2么)micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK5.0开始,改名为Java ME。没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。三、目标分析 3.1、教师需求1. 教师(管理员)够实现对整个学生信息的添加、修改、删除、查询等操作,对教师(管理员)用户的添加、删除
11、、修改等操作。2. 教师(管理员)可以将学生成绩的数据库发布到网上,学生的信息发布的网上,方便学生教师进行查询,达到资源共享的目的。 3.教师(管理员)能够在一定的权限内对所有学生成绩的查询、删除、修改是、查看等,对,登录密码的修改。 3.2、学生需求学生可以在自己的权限内对对自己成绩的查询,以及个人信息的查询,登录密码的修改,的相关操作。 四、需求分析该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能。(一)用户密码登录:在登录程序之前会先弹出一个
12、登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序。(二)成绩查询1、成绩修改前选中要修改的成绩信息,然后进行修改。2、成绩添加直接弹出添加对话框,然后进行添加。3、成绩删除前选中要删除的成绩信息,然后直接删除。(三)学生查询查询学生个人信息以及成绩。(四)学生信息查询1、学生信息修改前选中要修改的学生信息,然后进行修改。2、学生信息添加前直接弹出添加对话框,然后进行添加。3、学生信息删除前选中要删除的学生信息,然后直接删除。4.1行业现状 在现代,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重
13、。目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。为各高校教务工作人,提高工作效率,所以制作了学生成绩管理系统。学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。比较系统地对教务、教学上的各项服务和信息进行管理,使数据管理更现代化、自动化、智能化、人性化。同时,减轻了学院教务人员管理的工作量,缩小开支,提高工作效率和准确率,使其变得更具有条理性,科学性,为教育行业做出了巨大的贡献,也为今天的民办教育在未来市场的竞争力有所提高。 学生成绩管理系统使用了全新的成绩管理理
14、念,系统从完善的基础信息管理,和对创建新用户、已创建的成绩数据的录入,修改,浏览,统计等功能操作,基本能够满足各高校教师的需要。4.2可行性分析本次课程设计题目:“学生成绩管理系统”,主要目的是设计一个登陆界面,连接数据库系统,用以实现学生、班级以及考核成绩等多项管理。同时对整个系统的分析、设计过程给出一个完整的论证。学生成绩管理系统是一种基于集中统一规划的数据库数据管理新模式,其实就对学生、班级、考核成绩的管理。 在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加
15、,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的成绩管理系统几乎都以数据库技术作为核心。由于本系统管理的对象简单,且每个数据内容之间都具有较强的关联性,涉及过程并不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其他程序的功能,因此完全可以实现。1、社会可行性现代社会是信息高速发展的社会,尤其是计算机科学日趋成熟,选择使用计算机对学生成绩信息进行管理已经成为现代学校的必然选择,所以从社会角度对本系
16、统进行分析是完全具有可行性的。2、技术可行性开发数据库管理管理系统需要选择两种工具,即前台开发语言以及后台数据库。本系统运用了JAVA作为前台开发,Microsoft SQL Server 2008作为后台数据库。3、经济可行性经济可行性主要包括:“成本-收益”分析和“短期-长远收益”分析。相对于本课题来说,这两点并不重要。五、概念模型E-R图5.1STU用户名实体E-R图学生用户名学生账号学生登录密码5.2TEA用户名实体E-R图教师用户名教师账号教师登录密码学生登录密码学号姓名性别班级学院5.3学生实体E-R图成绩学号计算机网络Linux操作系统计算机专业英语计算机信息技术基础 数据库应用
17、实训教程高等数学XML5.4成绩实体ER图六、学生成绩管理系统设计的逻辑结构设计6.1STU用户名表表中列名数据类型允许null值说明IDcharnot null学生账号Pwdcharnot null学生登录密码6.2TEA用户名表表中列名数据类型允许null值说明IDcharnot null教师账号Pwdcharnot null教师登录密码6.3 STU表表中列名数据类型可否为空说明IDcharnot null学生学号Pwdcharnot null学生密码Namecharnot null学生姓名Sexcharnot null学生性别Classcharnot null学生班级Collagech
18、arnull学生学院6.4 计算机系成绩表表中列名数据类型可否为空说明IDcharnot null学生学号计算机网络charnot null课程成绩Linux操作系统charnot null课程成绩计算机专业英语charnot null课程成绩计算机信息技术基础charnot null课程成绩Java程序设计charnot null课程成绩高等数学charnot null课程成绩XMLcharnot null课程成绩七数据截图7.1STU用户名表截图7.2 TEA用户名表截图7.3 STU表截图7.4 计算机系成绩表截图八、学生成绩管理系统功能的实现8.1学生登录(1)通过学号,密码进行登录自
19、己的账户,从而显示登录成功 图8.1学生登录界面以及登录成功界面(2)以账户“1320704130”登录查看自己的个人信息以及自己的成绩:图8.2查询学生信息的界面图8.3查询成绩的界面8.2教师登录(1)通过教师号,密码进行登录自己的账户,从而显示登录成功图8.4教师登录界面以及登录成功界面(2)以账户“30”登录录入学生信息图8.5录入学生信息界面以及成功录入的界面(3)修改学生信息图8.6修改学生信息前、后的界面(4)删除学生信息图8.7删除学生信息前、后的界面(5)录入学生成绩图8.8录入学生成绩界面以及录入成功的界面(6)修改学生成绩图8.9修改学生成绩前、后的界面(7)删除学生成绩
20、图8.10删除学生成绩前、后的界面九、课程设计总结两个礼拜的时间很快就过去了,这两个礼拜我不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。虽说上过数据库相关的课程,但是没有亲身经历过相关的设计工作细节。这次课程设计给我提供了一个很好的机会。通过这次课程设计发现这其中需要的很多知识我们都没有接触过,上网查找资料的时候发现我们以前所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个
21、过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。这次的数据库课程设计,我选择的是学生成绩管理系统的设计。从各种文档的阅读到需求分析、概要设计、数据库总体设计、代码编写与调试,我都准备了好长时间。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去返工,在各种反复中不断完善自己的想法。我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户
22、需要什么功能就忙着开发,这就是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。所以以后的课程设计要特别注意这一块的设计。在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和用户的需要,分析现有情况及问题。在两个礼拜的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题,最终把它解决了。通过这次课程设计,我对数据库的设计更加熟练了。通过本次课程设计,对SQL语言,数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表,学会了数据库的基本操作。很多事情不是想象中的
23、那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。通过本次课程设计,我觉得不管做什么,始终都要相信自己。不要畏惧,不要怕遇到困难,什么都要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你你想象的那么难。如果没有自信,没有目标,没有信心就很难把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标。从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕
24、业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!通过这次课程设计的完成,使我对自己所学知识进一步的了解,同时通过实践发现自己的不足,对知识的掌握及运用存在诸多的不完善。本系统也存在着很多不足,如系统十分简单,实现功能也不够完善,安全性问题也没有很好的解决。所以在今后的学习中我会继续努力,完善自我,同学的帮助、指导老师的用心辅导和学校的精心安排使这个课题能够顺利进行。但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,也难免存在错漏,恳请老师谅解。附录:源程序代码用户登录界面:import java.awt.*;import javax.swing
25、.*;import java.awt.event.*;import java.sql.*;public class Systems extends JFrame implements ActionListenerstatic Systems ss;JPanel panel = new JPanel();JLabel label1 = new JLabel(输入姓名:);JTextField name = new JTextField();JLabel label2 = new JLabel(密 码:);JPasswordField pwd = new JPasswordField();JBut
26、ton Enter = new JButton(登录);JButton Exit = new JButton(退出);String url = E:mysqlTM1.jpg;ButtonGroup bgp = new ButtonGroup();JRadioButton stu = new JRadioButton(学生);JRadioButton tch = new JRadioButton(教师);public Systems()super(登录系统);this.setResizable(false); JLabel img = new JLabel(new ImageIcon(url);
27、img.setBounds(0,0,500,125);panel.add(img);stu.setBounds(165,210,70,20);tch.setBounds(265,210,70,20);bgp.add(stu);bgp.add(tch);panel.add(stu);panel.add(tch);Enter.setBounds(150,250,80,20);Exit.setBounds(270,250,80,20);Enter.addActionListener(this);Exit.addActionListener(this);panel.add(Enter);panel.a
28、dd(Exit); panel.setLayout(null);this.add(panel);label1.setBounds(135,130,100,25);panel.add(label1); name.setBounds(265,130,100,25);panel.add(name);label2.setBounds(135,165,100,25);panel.add(label2); pwd.setBounds(265,165,100,25);panel.add(pwd);this.setBounds(100,100,500,350);this.setVisible(true);pu
29、blic void actionPerformed(ActionEvent e)if(e.getSource()=Enter)String username , password;username = name.getText(); password = new String(pwd.getPassword();tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage();if(stu.isSelec
30、ted()tryConnection con = DriverManager.getConnection(jdbc:odbc:shujuku,sa,); Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select * from STU); while(rs.next() if(rs.getString(ID).equals(username) if(rs.getString(Pwd).equals(password) JOptionPane.showMessageDialog(ss,登陆成功);
31、tudents stu = new Students(); else JOptionPane.showMessageDialog(ss,登录失败); rs.close(); stmt.close(); catch (SQLException se) JOptionPane.showMessageDialog(ss,se.getMessage(); else if(tch.isSelected()tryConnection con = DriverManager.getConnection(jdbc:odbc:shujuku,sa,);Statement stmt = con.createSta
32、tement();ResultSet rs = stmt.executeQuery(select * from TCH);while(rs.next()if(rs.getString(ID).equals(username)if(rs.getString(Pwd).equals(password)JOptionPane.showMessageDialog(ss,登陆成功);Teachers tch=new Teachers();elseJOptionPane.showMessageDialog(ss,登录失败);catch (SQLException se)JOptionPane.showMe
33、ssageDialog(ss,se.getMessage();elseSystem.exit(0);public static void main(String args)Systems sys = new Systems();学生登录界面:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Students extends JFrame implements ActionListenerJMenuBar jmb = new JMenuBar();JMenu Message = new JMen
34、u(信息);JMenu Score = new JMenu(成绩);JMenuItem Item1 = new JMenuItem(插入);JMenuItem Item2 = new JMenuItem(查询);JMenuItem Item3 = new JMenuItem(查询);public Students()super(学生界面);this.setSize(500,400);this.setVisible(true);this.setResizable(false);this.setJMenuBar(jmb);jmb.add(Message);jmb.add(Score);Messag
35、e.add(Item1);Message.add(Item2);Score.add(Item3);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this); public void actionPerformed(ActionEvent e)if(e.getSource()=Item1)AddMsg ad = new AddMsg();else if(e.getSource()=Item2)Serch ser = new Serch();elseScore so = new
36、 Score();public static void main(String args)Students stu = new Students();教师登录界面:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Teachers extends JFrame implements ActionListenerJMenuBar bar = new JMenuBar();JMenu menu1 = new JMenu(信息);JMenu menu2 = new JMenu(成绩);JMenuIt
37、em item1 = new JMenuItem(录入信息);JMenuItem item2 = new JMenuItem(录入成绩);JPanel jpl = new JPanel();public Teachers()super(教师界面);this.setSize(500,300);this.setResizable(false);this.setVisible(true);this.setJMenuBar(bar);this.add(jpl);jpl.setLayout(null);bar.add(menu1);bar.add(menu2);menu1.add(item1);menu
38、2.add(item2);item1.addActionListener(this);item2.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=item1)AddMsg msg = new AddMsg();elseAddscore as = new Addscore();public static void main(String args)Teachers tch = new Teachers();学生用户添加界面:import java.awt.*;import jav
39、ax.swing.*;import java.awt.event.*;import java.sql.*;public class AddMsg extends JFrame implements ActionListenerstatic AddMsg s;/*添加学生信息控件*/JPanel jpl = new JPanel();JLabel label1 = new JLabel(添加基本信息,JLabel.CENTER);JLabel label2 = new JLabel(学号:,JLabel.CENTER);JLabel label3 = new JLabel(姓名:,JLabel.
40、CENTER);JLabel label4 = new JLabel(性别:,JLabel.CENTER);JLabel label5 = new JLabel(班级:,JLabel.CENTER);JLabel label6 = new JLabel(学院:,JLabel.CENTER);JTextField num = new JTextField(2);JTextField nam = new JTextField(4);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton(男);JRadioBut
41、ton women = new JRadioButton(女);JTextField clas = new JTextField();JTextField scl = new JTextField();JButton reset = new JButton(重置);JButton addmsg = new JButton(添加);public AddMsg()super(添加学生信息);this.setResizable(false);this.setSize(500,400);this.setVisible(true);this.add(jpl);jpl.setLayout(null);ad
42、dmsg.addActionListener(this);reset.addActionListener(this);/*插入面板*/label1.setBounds(100,20,300,20);jpl.add(label1);label2.setBounds(100,50,70,20);jpl.add(label2);num.setBounds(190,50,140,20);jpl.add(num);label3.setBounds(100,90,70,20);jpl.add(label3);nam.setBounds(190,90,140,20);jpl.add(nam);label4.setBounds(100,130,70,20);jpl.add(label4);man.setBounds(190,130,60,20);women.setBounds(270,130,60,20);jpl.add(man);jpl.add(women);bgp.add(man);bgp.add(women);label5.setBounds(100,170,70,20);jpl.add(label5);clas.setBounds(190,170,140,20);jpl.add(clas);label6.setBounds(10