本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号学生姓名所在专业所在班级指导教师成绩教师签字年月日课程设计时间:年月日至年月日目录目录设计总说明............................................................................................................................I1、需求分析.........................................................................................................................32、概念结构设计.................................................................................................................33、逻辑结构设计.................................................................................................................44、物理结构设计.................................................................................................................45、系统实现..........................................................................................错误!未定义书签。5.1前台界面.....................................................................................错误!未定义书签。5.2后台实现.....................................................................................错误!未定义书签。6、优缺点及自我评价..........................................................................错误!未定义书签。7、参考文献.........................................................................................................................7设计总说明I设计总说明(1)系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。(2)开发内容用数据库和Java相关技术开发一个学生信息管理系统(3)开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具1、操作系统:Windows72、数据库软件:SQLServer20083、Java开发工具:Eclipse(5)系统功能简介设计总说明II一、学生管理1、添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。2、删除学生记录。可以根据输入的“学号”或者”姓名”进行删除的操作。二、学生查询3、查询学生信息。用户可以选择通过“按姓名查询”,也可以选择“按学号查询”查询学生信息,查询到的信息会在窗口中显示出来。三、文件退出(6)开发分工情况本系统由本人独立完成广东海洋大学本科生课程设计3数据库原理及应用课程设计报告1、需求分析在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些年来许多人所研究的。随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑高效率处理数据信息成为可能。学生信息管理系统的出现,正是管理人员与信息数据,计算机进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。学生信息管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。提供了对学生信息添加,查询,删除等功能。实现了最基本的信息管理。2、概念结构设计教师教师ID教师姓名登录密码课程课程号教师ID课程名称成绩学号课程号广东海洋大学本科生课程设计43、逻辑结构设计StudentInfo表:字段名类型空值约束条件学号Char(10)notnull主键姓名varchar(10)出生日期datetime籍贯varchar(50)系号char(2)notnull外键班级号char(6)notnull外键4、物理结构设计createtableStudentInfo(学号char(10)primarykey,姓名varchar(10),性别char(2),出生日期datetime,籍贯varchar(50),成绩学生性别姓名学号籍贯班级号总人数登录密码籍贯班级名称班级号班级管理员登录密码管理员ID广东海洋大学本科生课程设计5系号char(2),班级号char(6),)5、系统实现5.1前台界面:广东海洋大学本科生课程设计65.2后台代码实现:见附录6、优缺点及自我评价由于时间仓促,本系统还有许多功能没有实现,也有一些漏洞。同时,也因为自己广东海洋大学本科生课程设计7掌握的知识不够扎实,不够全面,所以,这个学生信息管理系统只实现了一些简单的基本功能,其他功能还有待完善。本次课程设计自我感觉很辛苦,但是受益匪浅。因为数据库,Java这两门课的知识学的不够扎实,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手,通过在百度、书本、同学的帮助下有些得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计,逐渐能将课本上的知识应用到实际操作中,但是我发现我现在学到的知识还远远不够,要想做出一个功能比较全面,界面比较漂亮的系统还需要更多相关的知识。所以,在接下来的日子里,我还有待加强学习。在设计的过程中发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,导致设计系统的时候频频出现错误。通过这次课程设计使我懂得了理论与实际相结合很重要,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正达到学以致用的目的,从而提高自己的实际动手能力和独立思考的能力。7、参考文献(1)王珊,萨师煊.《数据库系统概论》[M],高等教育出版社,2014.(2)耿祥义,张跃平.《Java2实用教程》[M],清华大学出版社,2013.附录8附录1、添加学生面板类的代码packagejieweixiao;//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“添加学生面板”类publicclassAddStudentPanelextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象PreparedStatementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel(学号);JLabeljLabel2=newJLabel(姓名);JLabeljLabel3=newJLabel(性别);JLabeljLabel4=newJLabel(出生日期);JLabeljLabel5=newJLabel(籍贯);JLabeljLabel6=newJLabel(注意:出生日期格式为YYYY-MM-DD);JTextFieldjTextField1=newJTextField();JTextFieldjTextField2=newJTextField();JTextFieldjTextField3=newJTextField();JTextFieldjTextField4=newJTextField();JRadioButtonjRadioButton1=newJRadioButton(男);JRadioButtonjRadioButton2=newJRadioButton(女);ButtonGroupbuttonGroup1=newButtonGroup();JButtonjButton1=newJButton(存入数据库);//构造方法publicAddStudentPanel(){附录9try{//调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//界面初始化方法privatevoidjbInit()throwsException{//连接数据库//con=newConnection();//创建一个statement对象来将SQL语句发送到数据库Stringurl=jdbc:sqlserver://localhost:1433;DatabaseName=StudentManager;Stringdriver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driver);//加载驱动!con=DriverManager.getConnection(url,sa,xjw1123);//连接数据库!Stringsql=insertintoStudentInfo+values(?,?,?,?,?,?,?);st=con.prepareStatement(sql);//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(newRectangle(21,17,64,24));jLabel2.setBounds(newRectangle(21,51,53,22));jLabel3.setBounds(newRectangle(21,86,61,27));jLabel4.setBounds(newRectangle(21,122,59,25));jLabel5.setBounds(newRectangle(21,188,54,24));jLabel6.setBounds(newRectangle(102,153,219,27));jTextField1.setBounds(newRectangle(102,10,200,30));jTextField2.setBounds(newRectangle(102,49,200,30));jTextField3.setBounds(newRectangle(102,117,200,33));jTextField4.setBounds(newRectangle(102,183,200,29));jRadioButton1.setBounds(newRectangle(102,83,65,30));jRadioButto