1、数据库系统原理课程设计报告学生成绩管理系统设计成员所在专业所在班级指导教师提交时间目录卷首语:读书笔记41、课程设计的目的62、课题组成员的设计任务73、学生信息管理系统概述84、系统需求分析105、数据库设计126、系统模块详细设计177、课程设计设计总结218、程序源代码22参考文献50学生信息管理系统班级:制作成员:指导教师:卷首语:I、 读书笔记关于网上花店管理系统的读书笔记:在网上购物逐步平民化的今天,网上购物人数不断增加,现代IT技术和互联网的结合。给了市场创造了无限商机!我阅读了一片“网上花店管理系统”的论文。该论文主要研究网上花店管理系统。该系统以MySQL作为后台数据库,JS
2、P作为前台开发工具,通过Java中的JDBC连接数据库。提供给用户网上浏览,购买,支付等功能,同时。管理员对可以该系统进行维护和管理!SQL Server安全可靠,性能好,易用性强,JSP的Web运用跨平台,系统底层采用Java开发.Java语言简单,面向对象,安全性高的特点,运用Serlvet模式和Tomcat服务器。这几点的综合搭配使得该系统灵活方便易用,简化了动态网站的开发。网上花店管理系统实现了用户注册,网上订购支付,留言,购物车,鲜花资料管理和用户管理,订单管理等功能.SQl数据库实现了用户注册登记信息的存储,和网站资料维护,更新等使得数据的管理更加便利,高效JSP则为用户提高动态图
3、形界面,简化了操作,提高了易用性。 论文还详细介绍了系统的逻辑结构设计,逻辑图,总功能设计,和数据库设计等。该系统即使是不懂web技术的人也可以熟悉运用。开发工具和数据库的工具有很多,各有各的优势。在互联网大行其道的时代,电脑技术顺应着时代的发展,只有我们把握运用好各类技术,相互结合与利用,才能制作出更好的软件和程序.在现在信息化高速发展的时代,信息只有快,准,精才能发挥其价值。所以机器代替人力是必然的历史发展趋势,人工操作必将被计算机代替.计算机在我们的日常生活中的使用越来越不可或缺,计算机进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥
4、它的优越性。数据库技术,已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心.数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入.数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了.计算机技术不断应用到各行各业,大量的企业数据存放于数据库中,并通过数据库进行快速查询,获取比传统方式
5、更高的效率。而学生成绩交由数据库进行保存、管理,则是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要.1、 课程设计的目的(1)加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;(2)在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;(3)学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;(4)为毕业设计和以后工作打下必要基础。(5)理解和掌握该课程中的有关基本概念,程序设计思想和方法。(6)培养综合运用所学知识独立完成课题的能力。(7)培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题
6、等科学技术人员应具有的素质。(8)掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。2、课题组成员的设计任务课题由三人共同协作完成,系统的组成和功能主要包括:2。1 系统组成:数据表组成:成绩表查询组成:查询学生、查询成绩菜单组成:主菜单由查询、删除、添加组成2。2系统功能:本系统的主要功能分别通过主菜单中的以下各项来实现: 通过系统维护菜单实现学生成绩的查询、删除、添加等模块功能 通过学生成绩管理菜单实现对学生成绩的录入、查询学生成绩、删除学生成绩 通过基本数据管理菜单实现对姓名、学号、课程的设置,录入学生记录,查询学生记录
7、和退出系统;3、学生信息管理系统概述3.1 研究背景90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件.企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tie
8、r结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构.显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分.随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人
9、工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的.3.2开发意义随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能. 学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信
10、息的管理得心应手。通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义在现在信息化高速发展的时代,信息只有快,准,精才能发挥其价值。所以机器代替人力是必然的历史发展趋势,人工操作必将被计算机代替。计算机在我们的日常生活中的使用越来越不可或缺,计算机进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。数据库技术,已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核
11、心。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。计算机技术不断应用到各行各业,大量的企业数据存放于数据库中,并通过数据库进行快速查询,获取比传统方式更高的效率.而学生成绩交由数据库进行保存、管理,则是一个教育单位不可缺少的部分,它的内容对于学校的决策者和
12、管理者来说都至关重要。4、系统需求分析4。1 开发环境和软件(1) 操作系统:Windows 7 (2) 数据库软件:MySQL (3) Java开发工具:Eclipse4。2 系统设计与功能分析学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了.该软件用java语言编写,用MySQL数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,删除的操作以及成绩的录入,查询,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,
13、方便简单,安全性好.MySQL数据库高效安全,两者结合可相互利用各自的优势.学生成绩管理系统设计的目标的分析(1)管理员能够实现对整个学生信息的添加,修改,删除,查询等操作,对教师用户的添加,删除,修改等操作,对留言信息的添加,删除,修改查询等操作. (2),可以将学生成绩的数据库发布到网上,教师的信息发布的网上,方便学生教师进行查询,达到资源共享的目的。 (3)教师能够在一定的权限内对所有学生成绩的查询,所有教师信息的查询,留言信息的添加,删除,修改是,查看等,对的自己的联系信息进行更新,登录密码的修改. (4)学生可以在自己的权限内对对自己成绩的查询,以及个人信息的查询,登录密码的修改,留
14、言的查看,提交留言信息的相关操作。学生成绩管理系统的功能需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台, ,查看留言,提交留言。教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言,学生留言,提交留言,留言的管理等相关操作。系统管理员可以学生可以通过该系统查阅与自己相关信息实现以上的所有功能,还有对学生的添加,删除,修改,教师的添加,删除,修改,数据库的备份,数据库的还原等相关操作。 系统的功能分析 学生成绩管理系统是用MySQl数据库+SQL查询语言编句,系统是基于网络在线的学生成绩管理系统,在系统中分为大的二个方面:一是教师登录页面,二是学生登录页面。
15、(1)系统管理员进入学生成绩管理系统的主要功能是:实现教师添加,教师修改,教师删除,教师查询,数据库的恢复,数据库的备份,学生的添加,学生的修改,学生的查询,学生成绩的录入,学生成绩的添加,学生成绩的修改,学生成绩的删除,留言的查询,留言的提交,留言的删除,留言的修改等基本功能. (2)教师进入学生成绩管理系统的主要功能是:实现学生的查询,学生成绩的查询,留言的删除,留言的查询,留言的查询,密码的修改,教师的查询,教师登陆密码的更改,教师个人信息的修改等基本功能。 (3)学生进行学生成绩管量系统的主要功能是:实现学生自己怕成绩查询,自己登录密码的修改,个人信息的查询,留言的查看,提交留言的基本
16、功能. 本系统实现的大致功能:1 管理员登陆界面.本系统设计通过管理员身份登录获取操作界面和功能权限。管理员账号和密码输入正确即可登录。学生管理界面.提供了学生成绩信息的查询,相关科目的成绩查询,添加,删除等功能。管理员拥有最高的权限.2 操作界面。提供了对学生学籍信息的查询,添加,,删除;学生成绩的录入,修改,查询等功能。5、 数据库设计5。1 系统概念结构设计系统登录界面管理员登录查询成绩添加信息删除信息输入学号显示:ID、学号、姓名、出生、各科成绩输入学号删除:ID、学号、姓名、出生、各科成绩输入学号添加:ID、学号、姓名、出生、各科成绩5.2 系统逻辑结构设计管理员信息表:字段名类型空
17、值约束条件管理员账号varchar(8)not null主键登录密码varchar(8)not null成绩信息表:字段名类型空值约束条件IDint学号int主键姓名varchar(8)not null出生varchar(8)not null数学成绩int英语成绩int5.3 数据库实现创建数据库:Create database 翰林学院学生成绩管理系统;创建成绩表:create table 成绩表(ID int,numberint primary key,namevarchar(8),birthdayvarchar(8),mathint,englishint)向数据库中添加信息:insert
18、 into 成绩表(ID,number,name,birthday,math,english)values(1,120101,刘产,19210306,90,59)insert into 成绩表(ID,number,name,birthday,math,english)values(2,120102,范剑,19200102,58,85)insert into 成绩表(ID,number,name,birthday,math,english)values(3,120103,夏建仁,19200406,90,99)insert into 成绩表(ID,number,name,birthday,math
19、,english)values(4,120104,史珍香,19200907,83,75)insert into 成绩表(ID,number,name,birthday,math,english)values(5,120105,范统,19210518,80,97)insert into 成绩表(ID,number,name,birthday,math,english)values(6,120106,秦寿生,19220806,52,55)insert into 成绩表(ID,number,name,birthday,math,english)values(7,120107,杜子腾,19190404
20、,81,88)insert into 成绩表(ID,number,name,birthday,math,english)values(8,120108,楚中天,19210306,46,77)显示存储数据:Select from 成绩表;6、系统模块详细设计6.1 登录模块6.2 管理员操作模块6.2.1 查询成绩6.2.2 添加信息6.2.3 删除信息7、课程设计总结一周多的课程设计,终于成功的验收了,虽然有些疲惫,但还是有很多的收获的,我又一次巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会.数据库也学了近四个月,有很多知识都是似懂非懂,通过平
21、时上机操作,自己也了解了一些,但让我有了更深的理解和更好的认识,则是在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很高兴.在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输进去之后,并编译让其运行,发现通过不了,再来检查出问题,是很费费力的事情,因此分析和规划代码是很重要的,最重要的是要把逻辑结构写好,这样就不会出现大问题,写代码就要先找出核心的内容,用多种方法来实现核心部分,这样可以尽可能的避免发现逻辑或编译不支持的错误。通过本次论文设计,我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验
22、,知道了如何整合资料和处理这些资料的能力,这位以后做毕设的论文打下了基础,使我感觉比较好的是有一种成功的喜悦,虽然在编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验越丰富,对人的考验也比较多,那么在最后编译成功时的喜悦就越浓烈,也是自己的能力有了进一步的提高。由于知识和经验的不足,这个程序编写的不是很尽如人意,但是融合了自己的心血,就觉得是最好的,所以在以后还是需要较多的努力的,还是会在以后的学习过程中不断地提高和改进的.8、程序源代码主窗口源程序设计:/zhuchuangkou.javapackagecom。test;importjava.awt。*;i
23、mportjava。awt。event。*;importjavax.swing.*;importjavax.swing。border.;public class Zhuchuangkou extends Frame implements ActionListenerButton button1,tuichu;Panel p1,p2,p3;Label l1,l2,l3;TextField a1,a2;Box b1,b2,b3,b4,b5;Chaxun s;public static void main(String args) Zhuchuangkou test1=new Zhuchuangko
24、u();publicZhuchuangkou()button1=new Button(”登陆);tuichu=new Button(退出);p1=new Panel();p2=new Panel();p3=new Panel();l1=new Label(”翰林学院学生成绩管理系统,Label。CENTER);l1。setFont(new Font(”宋体,Font。BOLD,60));l1。setBackground(Color.green);l2=new Label(管理员登录);l3=new Label(”登录密码”);a1=new TextField(10);a2=new TextFi
25、eld(10);a2。setEchoChar(*);b1=Box。createVerticalBox();b1.add(l2);b1。add(Box。createVerticalStrut(8);b1.add(l3);b2=Box。createVerticalBox();b2.add(a1);b2。add(Box。createVerticalStrut(8);b2.add(a2);b4=Box。createHorizontalBox();b4。add(button1);b4.add(Box.createHorizontalStrut(10);b4.add(tuichu);b3=Box。crea
26、teHorizontalBox();b3。add(b1);b3.add(Box.createHorizontalStrut(10));b3。add(b2);b5=Box。createVerticalBox();b5。add(b3);b5。add(Box.createVerticalStrut(8);b5。add(b4);button1。addActionListener(this);p1。add(l1);p2。add(b5);add(p1,BorderLayout。NORTH);add(p2,BorderLayout。CENTER);add(p3,BorderLayout。PAGE_END);
27、addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)dispose(););setBackground(Color.blue);setBounds(10, 10, 1000, 500);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e。getSource()=tuichu)System.exit(0);if(e。getSource()=button1)if(a1。getText()。equals
28、(”旷华勇)a2。getText()。equals(111)|a1。getText().equals(刘佳宇”)a2.getText().equals(111”)a1.getText().equals(”刘丹丹”)&a2。getText().equals(111”)newChuangkou();System.out。println(”请选择操作”);dispose();elseSystem.out。print(”输入错误”);窗口模块程序设计:/chuangkou.javapackagecom.test;importjava。awt。;importjava。awt。event。;importj
29、avax.swing。;importjavax.swing.border.;public class Zhuchuangkou extends Frame implements ActionListenerButton button1,tuichu;Panel p1,p2,p3;Label l1,l2,l3;TextField a1,a2;Box b1,b2,b3,b4,b5;Chaxun s;public static void main(String args) Zhuchuangkou test1=new Zhuchuangkou();publicZhuchuangkou()button
30、1=new Button(”登陆”);tuichu=new Button(”退出);p1=new Panel();p2=new Panel();p3=new Panel();l1=new Label(翰林学院学生成绩管理系统”,Label。CENTER);l1。setFont(new Font(宋体”,Font。BOLD,60));l1。setBackground(Color。green);l2=new Label(”管理员登录”);l3=new Label(”登录密码”);a1=new TextField(10);a2=new TextField(10);a2。setEchoChar();b
31、1=Box。createVerticalBox();b1。add(l2);b1。add(Box。createVerticalStrut(8));b1。add(l3);b2=Box。createVerticalBox();b2。add(a1);b2.add(Box。createVerticalStrut(8));b2。add(a2);b4=Box.createHorizontalBox();b4。add(button1);b4。add(Box。createHorizontalStrut(10));b4。add(tuichu);b3=Box.createHorizontalBox();b3。add
32、(b1);b3。add(Box。createHorizontalStrut(10));b3.add(b2);b5=Box。createVerticalBox();b5.add(b3);b5.add(Box。createVerticalStrut(8);b5.add(b4);button1。addActionListener(this);p1.add(l1);p2。add(b5);add(p1,BorderLayout.NORTH);add(p2,BorderLayout。CENTER);add(p3,BorderLayout。PAGE_END);addWindowListener(new Wi
33、ndowAdapter()public void windowClosing(WindowEvent e)dispose(););setBackground(Color。blue);setBounds(10, 10, 1000, 500);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=tuichu)System。exit(0);if(e.getSource()=button1)if(a1.getText().equals(旷华勇”)a2.getText()。equal
34、s(111”)a1。getText()。equals(刘佳宇)a2。getText()。equals(”111)a1。getText()。equals(”刘丹丹)&a2。getText()。equals(”111)newChuangkou();System。out。println(”请选择操作”);dispose();elseSystem.out。print(”输入错误);查找模块程序设计:/chazhao。javapackagecom.test;importjava。sql。Connection;importjava。sql.DriverManager;importjava。sql。Prep
35、aredStatement;importjava。sql.ResultSet;importjava.util。Vector;importjavax。swing.table。*;public class Chazhao extends AbstractTableModelVector rowData,columnNames;PreparedStatementps=null;Connection ct=null;ResultSetrs=null;public void init(String sql)if(sql.equals(”))sql=”select from 成绩表;/中间columnNa
36、mes=new Vector();/设置列名columnNames.add(ID);columnNames。add(学号);columnNames。add(”姓名”);columnNames.add(”出生);columnNames.add(数学”);columnNames。add(”英语”);rowData=new Vector();try Class。forName( org。gjt。mm.mysql。Driver” ); ct=DriverManager.getConnection( ”jdbc:mysql:/127。0.0。1:3306/翰林学院学生成绩管理系统”,”root”,111
37、111); ps=ct。prepareStatement(sql);rs=ps。executeQuery();while(rs.next()) Vector hang=new Vector();hang。add(rs.getInt(1));hang。add(rs。getString(2));hang。add(rs。getString(3);hang。add(rs。getString(4));hang.add(rs.getInt(5));hang.add(rs.getString(6);/加入rowdatarowData.add(hang); catch (Exception e) e。prin
38、tStackTrace();finally /关闭try if(rs!=null) rs。close();if(ps!=null) ps.close();if(ct!=null) ct。close();catch(Exception e) e.printStackTrace(); publicChazhao(String sql)this。init(sql);publicChazhao()this。init(”);publicintgetColumnCount() returnthis。columnNames。size();publicintgetRowCount() returnthis。r
39、owData。size();public Object getValueAt(int row, int column) return (Vector)this。rowData.get(row))。get(column); Overridepublic String getColumnName(int arg0) return (String) this。columnNames。get(arg0);查询模块程序设计:/chaxun。javapackagecom。test;importjavax.swing.;importjavax。swing。table。AbstractTableModel;i
40、mportjava。sql。Connection;importjava。sql。DriverManager;importjava.sql。PreparedStatement;importjava。sql.ResultSet;importjava.util。;importjava。awt.*;importjava.awt。event.;public class Chaxun extends JFrame implements ActionListenerJPanel jp1;JLabel jl1;JButton jb1,jb2,jb3,jb4;JTablejt;JScrollPanejsp;JT
41、extFieldjtf;public static void main(String args) Chaxun test=new Chaxun();publicChaxun()jp1=new JPanel();jtf=new JTextField(10);jb1=new JButton(”查询”);jb1。addActionListener(this); jl1=new JLabel(请输入学号);jp1。add(jl1);jp1。add(jtf);jp1。add(jb1);Chazhaocz=new Chazhao();jt=new JTable(cz);jsp=new JScrollPan
42、e(jt);this.add(jsp);this.add(jp1,”North);this.setSize(400,300);this。setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public void actionPerformed(ActionEvent arg0)if(arg0.getSource()=jb1)System。out。println(”用户查询);String name=this.jtf。getText().trim();String sql=Select from 成绩表 whe
43、re number=+name+”;Chazhaocz=new Chazhao(sql);jt.setModel(cz);添加模块程序设计/tianjia。javapackagecom。test;importjava.awt。;importjava.awt。event。*;importjava。sql.*;importjavax。swing。JDialog;importjavax.swing。JOptionPane;public class Tianjia extends JDialog implements ActionListener Button charu;TextField inpu
44、t1,input2,input3,input4,input5,input6;TextArea show;int k,s1,j;Connection con; Statement sql; int sum=0;ResultSetrs;Tianjia()Panel p=new Panel();charu= new Button(插入”);input1= new TextField(10);input2= new TextField(10);input3= new TextField(10);input4= new TextField(10);input5= new TextField(10);input6= new TextField(10);show= new TextArea(6,43);p.add(new Label(请输入要插入的数据”));p。add(new Label(”ID”));p。add(input6);p。add(new Label(number”));p.add(input1);p.add(new Label(”name);p。add(input2);p。add(new Label(”date”));p。add(input3);p.add(new Label(”math”);p.add(input4);p。