学生信息管理系统数据库java.docx

上传人:b****8 文档编号:10470112 上传时间:2023-02-13 格式:DOCX 页数:88 大小:658.89KB
下载 相关 举报
学生信息管理系统数据库java.docx_第1页
第1页 / 共88页
学生信息管理系统数据库java.docx_第2页
第2页 / 共88页
学生信息管理系统数据库java.docx_第3页
第3页 / 共88页
学生信息管理系统数据库java.docx_第4页
第4页 / 共88页
学生信息管理系统数据库java.docx_第5页
第5页 / 共88页
点击查看更多>>
下载资源
资源描述

学生信息管理系统数据库java.docx

《学生信息管理系统数据库java.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库java.docx(88页珍藏版)》请在冰豆网上搜索。

学生信息管理系统数据库java.docx

学生信息管理系统数据库java

 

《数据库原理与应用》

课程设计报告

 

选题名称:

学生信息管理系统

组长:

李盟

指导教师:

汤嘉立

设计日期:

2016.06.13——2016.06.24

学号

姓名

小组评分

教师评分

2014144414

李盟

90

2014144415

李玲

90

2014144429

徐兰

90

2014144431

许媛媛

90

1.课程设计目的:

数据库是一门实践性很强的课程,为了使学生加深对数据库基本知识的理解,掌握数据库设计和开发的基本方法,学生自选题目,要求学生完成一个完整的数据库设计过程和基本的开发过程,从而培养学生在数据库应用领域中的分析问题和解决问题的能力。

2.课程设计内容:

(1)数据库设计

教师讲解数据库的设计方法以及PowerDesigner的使用,学生自选题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告、用PowerDesigner建立概念模型、逻辑模型、物理模型。

在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,最后生成创建数据库的脚本,提出物理设计的文档。

要求学生提交的报告包含:

●需求说明书

●概念数据模型(E-R数据模型)

●逻辑数据模型(含关系规范化)

●物理数据模型(含约束、视图、触发器、存储过程、安全设计、恢复方案、事务设计等等)

●创建数据库的脚本(数据库对象的定义语言)

●物理设计的文档(数据库的实施规划)

(2)数据库开发

在数据库设计的基础上开发一个基本的数据库应用系统,要求有基本的数据查询功能和数据管理功能,并能将存储过程、触发器、事务控制等运用其中。

开发工具可以自己选择。

3.课程设计要求:

数据库课程设计单独设课,为2周独立实践环节(40学时),一般4人1组,指定1人为组长(也可申请独立完成),但每人要承担独立的工作、独立完成课程设计报告。

通过以上过程,锻炼学生从实际应用出发,进行需求分析,利用PD工具建立数据库模型、完善数据库模型,到最后的数据库实施和应用系统开发。

希望通过这个过程可以巩固所学知识,提高学生的综合分析问题和解决问题的能力。

4.实验条件:

(1)硬件条件:

PC机。

(2)软件条件:

(Elipse、SQLServer2008、PowerDesigner)

5.实验方法与步骤:

1、需求分析

(一)目标

学生信息管理系统的目标是方便学校教务处系统的管理学生的信息,并为学校和学生间提供一个信息共享的平台。

随着学校的普及和人们文化水平的提高,高效的教学管理系统越来越广泛应用于各类信息化学校。

学生信息管理系统要求实用性强、使用方便、效率高和安全可靠等特点。

用户管理:

用户共分为管理员,教师和学生。

学生和教师通过注册建立账户,管理员由系统设定统一的用户名和密码。

经分析我们认为学生学籍管理系统的具体要求为:

1.能全面管理学校教学相关的各类主体,如用户管理员,学生用户以及选修课程表

2.通过使用计算机能方便的维护(包括插入、删除、修改)各信息表

3.能方便的实现基于多个表的连接查询

4.系统具有操作方便、简捷等特点

(二)需求陈述

学生对功能的需求分析:

查询个人基本信息

查询学生课程信息

查询学生成绩信息

管理员对功能的需求分析:

 

添加、删除、修改、查询学生信息 

添加、删除、修改、查询课程信息 

修改、查询用户信息 

查询选课信息 

修改、查询成绩信息

2、概念数据模型设计

(A)局部E-R模型

(B)整体E-R模型

3、逻辑模型设计

(A)将概念数据模型转化成逻辑数据模型

(B)对模型进行必要的完善和优化

4、物理模型设计

(A)将逻辑数据模型转化成物理数据模型

(B)对模型进行必要的完善和优化

(C)根据需要设计视图、存储过程和触发器等

(D)描述安全管理方案、备份恢复策略、并发控制策略等

5、系统实现

描述数据库实施的方法和过程,详细文档以附件1形式提交。

 

6.个人工作报告

除上一步骤要求的完整文档外,每个人需陈述自己所承担的工作、在讨论中的个人见解,提供个人所承担工作的有关文档(可能是不完整的),并对个人的工作情况、收获等进行总结。

(1)承担的工作及贡献

●需求分析阶段

●概念模型设计阶段

局部E-R模型:

整体E-R模型:

●逻辑模型设计阶段

Student(sno,sn,sa,ss,sd)

Course(cno,cn,pcno)

Sc(sno,cno,g)

Unpw(un,pw,qx)

●物理模型设计阶段

s(学生信息表)

字段名称

数据类型

描述

sno

char(10)

学号,关键字

sn

char(20)

姓名

sa

int

年龄

ss

char(10)

性别

sd

char(10)

院系

c(课程信息表)

字段名称

数据类型

描述

cno

char(10)

课程号,关键字

cn

char(30)

课程名

pcno

char(10)

先行课程号

sc(选课信息表)

字段名称

数据类型

描述

sno

char(10)

学号,关键字

cno

char(10)

课程号,关键字

g

int

成绩

unpw(用户信息表)

字段名称

数据类型

描述

un

char(10)

用户名,关键字

pw

char(10)

密码

qx

int

角色

1.视图:

2.s(学生信息表)

3.c(课程信息表)

4.sc(选课信息表)

5.unpw(用户信息表)

●实施和实现阶段

详细见附件1。

(2)课程设计个人总结

徐兰:

两个星期的时间非常快就过去了,这半个月我不敢说自己有多大的进步,但是获得了不少的知识,也了解了项目开发的部分过程。

虽说上过数据库相关的课程,有做过数据库相关的实验,但是没有亲身经历过相关的设计工作细节。

这次课程设计给我提供了一个很好的机会。

通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。

同时也发现有狠毒已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的时间,通过不断的自学,不断地发现问题,思考问题,进而解决问题。

这次的课程设计也是为我们以后的毕业设计作品提前打好基础。

在这次的课程设计中,我负责的是创建数据库,这些就让我用到了数据库的很多知识,对SQL语言,数据库的创建、修改、删除有了更深的了解,并且更加熟练的掌握了数据库中的SQL语句。

我想我做的是组里面最简单的工作,因为我做的是有基础的,组长做的JAVA前台就比较的累了,她还要先去学习。

在她做的时候我也学习了一下,为之后打个基础。

通过这次课程设计的完成,是我对自己所学知识进一步的了解,同时通过实践发现自己的不足,对知识的掌握及运用存在诸多的不完善。

所以在今后的学习中,我会继续努力,完善自我,同学的帮助和学校的精心安排是这个课题能够顺利进行。

李玲:

在本次课程设计中,我负责课程设计报告的整理与编写,通过整理报告,我对于SQL,JAVA的编程方式以及他们之间的相互连接,基本运用有了全方位的认识,我的分析能力,独立思考能力都得到了一定程度的提高。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。

果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。

让我更加深切的体会到团队合作的重要性。

许媛媛:

这次的数据库课程设计,我主要是负责前期资料的收集,在设计期间及时提供相关的有利资料。

两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了系统开发的过程。

两周课程设计让我对java语言等编程技术产生了浓厚的兴趣,更重要的是增强了我学习的自信心。

刚开始我们查找资料、了解有关的知识,相互探讨,了解学生信息管理系统的需求,做好需求分析后,开始系统的设计,画出E-R图,写出各个实体的属性。

在我搜集资料的过程中,发现这其中需要的很多知识是我们之前没有接触过的,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。

同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。

在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。

这次的系统设计不仅使我们学会了把数据库的各个模块联系起来,并与java相连接,更让我懂得了如何设计一个系统,了解了系统设计的过程。

李盟:

在本次课程设计中,本组课程选题名称为“学生信息管理系统”,由于我担任的是组长,因此我不仅负责自己的部分,还负责课题布置与集中交流。

我在本小组中的主要任务是java程序的编写及修改。

在课程设计初期,我们小组首先确定的课题题目,在细致地讨论了系统的需求,列出了相应的模块,并进行了结构化设计。

然后我再根据我们的初步研究结果,确定我的编程方向,开始我的任务。

我通过借阅相关书籍,上网查阅资料等方式,完成了我的系统编程初稿。

但在系统测试阶段,出现了很多的问题和错误。

比如数据库文件的导入路径出错,导致数据库连接错误;通过老师的指导,幸而解决了此问题。

通过这次课程设计,我不仅清楚地知道了自己在数据库原理知识和编程语言方面的不足,还认识到了在合作过程中,个人的力量总是不足的,需要大家一起协作。

我们真切地体验了软件项目管理技能和方法,熟悉了软件工具与环境,把课堂学习的理论知识很好的在实践中运用了起来。

我们小组成员之间合作默契,奋斗虽是艰苦的,但收获是快乐的。

我们相信,在大家的不懈努力之下目标一定可以达成,我们也将在学习数据库及其他网络编程语言的道路上更加进步。

7.总结(组长完成):

小组分工情况说明及工作量(工作量以百分比表示)

李盟:

前台页面设计31%

李玲:

报告整理23%

徐兰:

后台SQL建表23%

许媛媛:

收集资料23%

小组工作总结

课程设计诚然是一门专业课,给我们很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我们许多道,给了我们很多思,给了我们莫大的空间。

同时,设计让我们感触很深。

使我们对抽象的理论有了具体的认识。

在经历了将近两个星期的课程设计过程后,本系统基本能够完成学生学籍信息和学生的成绩的查询、插入、删除、修改等。

这次的课程设计是分组讨论和制作的。

我们小组从了解课题、理解课题、查找资料、确定思路到设计实施,学生信息管理系统初步形成。

我们能从中深刻的感受到自己又收获了很多东西。

首先,更进一步的了解了数据库的基本操作,在这之前,数据库的学习仅仅刚开了个头,我们只是在了解一些概念性的东西。

在做这个系统之前,连基本的连接数据库,配文件DSN,数据库查询语句等这些东西都不熟练。

现在对于数据库的增删改查操作比较熟练了,对于初学者来说,比较头疼的就是对于单引号的处理。

我的建议是如果不理解先把按照课本上正确的语句敲,然后在多次进行数据库的链接,增删改查操作中不断总结规律。

这次设计的学生信息管理系统,完全体现了自己在数据库语言和程序设计课程学习状况,充分地为自己以后更深入了数据库语言奠下深厚的基础。

纵观此学生信息管理系统的整体概况,目前,自我认为设计良好,相关功能都能够实现,功能强大,条理清晰,界面可观性比较好。

并且特色在于,所设计的表单都在一个表单系统桌面中运行,比较符合系统的观念。

通过本次实践,我们学习了许多数据库的知识以及它与JAVA的连接,而且学到了书本上学不到的东西,积累了一点经验和教训,有了些体会。

1、必须详细准确的做好需求分析。

2、软件工程原理和方法是软件开发得以顺利进行的保障,一定要遵守,否则既费时又费力。

3、通过本次课程设计,端正了我们的学习态度,提高了实践能力。

使我认识到应该以严谨的科学态度勇于去实践和探索。

这次课程设计既是一个学习的过程,也是一个实践的过程,它使我们获得了一些开发大型数据库系统的经验。

还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生学籍管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。

小组自评

学号:

2014144414姓名:

李萌成绩:

90

学号:

2014144415姓名:

李玲成绩:

90

学号:

2014144429姓名:

徐兰成绩:

90

学号:

2014144431姓名:

许媛媛成绩:

90

源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。

附件1系统实施

1、登录界面

图片:

代码:

packageli;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

classDLFrameextendsJFrameimplementsActionListener,ItemListener{//登录界面

JPanelp1=null;

JPanelp2=null;

JPanelp3=null;

JLabeluserName=newJLabel("用户:

");

JTextFieldtxtUser=newJTextField();

JLabelpassword=newJLabel("密码:

");

JPasswordFieldtxtPwd=newJPasswordField(6);

JLabelrole=newJLabel("角色:

");

JComboBoxcbrole=newJComboBox();

JButtonbtnLogin=newJButton("登录");

JButtonbtncz=newJButton("重置");

JButtonbtnCancel=newJButton("取消");

JLabelimageLabel;

Iconimage;

staticintOK=1;

staticintCANCEL=0;

intactionCode=0;

Connectioncon=null;

Statementstmt=null;

ResultSetrs=null;

intqxian=0;

publicDLFrame(){//构造方法

super("登录界面");

p1=newJPanel();

p2=newJPanel();

p3=newJPanel();

cbrole.addItem("管理员");

cbrole.addItem("学生");

image=newImageIcon("Tulips.jpg");

imageLabel=newJLabel(image);

p1.add(imageLabel);

this.setLayout(newFlowLayout());

this.setBounds(100,100,246,345);

p2.setLayout(newGridLayout(4,2));

p2.add(userName);

p2.add(txtUser);

p2.add(password);

p2.add(txtPwd);

p2.add(role);

p2.add(cbrole);

p3.add(btnLogin);

p3.add(btncz);

p3.add(btnCancel);

this.add(p1);

this.add(p2);

this.add(p3);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.show();

btnLogin.addActionListener(this);

cbrole.addItemListener(this);

btncz.addActionListener(this);

btnCancel.addActionListener(this);

}

publicvoidconnDB(){//连接数据库

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

try{

con=DriverManager.getConnection(

"jdbc:

sqlserver:

//localhost:

1433;DatabaseName=student",

"sa","123");

stmt=con.createStatement();

}catch(SQLExceptione){

e.printStackTrace();

}

}

publicvoidcloseDB()//关闭连接

{

try{

stmt.close();

con.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

publicvoiditemStateChanged(ItemEvente){

if(e.getStateChange()==ItemEvent.SELECTED){

JComboBoxjcb=(JComboBox)e.getSource();

qxian=jcb.getSelectedIndex();

}

}

publicvoidactionPerformed(ActionEvente){

Objectsource=e.getSource();

Stringun=null;

Stringpw=null;

booleansuccess=false;//用于判断是否登录成功

if(source==btnLogin){

if(txtUser.getText().equals("")||txtPwd.getText().equals("")){//判断是否输入了用户名和密码

JOptionPane.showMessageDialog(null,"登录名和密码不能为空!

");

}else{

this.connDB();

try{

rs=stmt.executeQuery("select*fromunpwwhereqx="+qxian);

while(rs.next()){

un=rs.getString("un").trim();

pw=rs.getString("pw").trim();

if(txtUser.getText().equals(un)){

if(txtPwd.getText().equals(pw)){

actionCode=OK;

this.setVisible(false);

if(qxian==0){

newManagerFrane();//进入管理员界面

}

if(qxian==1){

newStudentFrame();//进入学生界面

}

success=true;

break;

}else{

JOptionPane.showMessageDialog(null,"密码错误!

");

txtPwd.setText("");

success=true;

}

}

}

if(!

success){

JOptionPane.showMessageDialog(null,"登录名错误!

");

txtUser.setText("");

txtPwd.setText("");

}

}catch(SQLExceptione1){

e1.printStackTrace();

}

}

}elseif(source==btncz){

txtUser.setText("");

txtPwd.setText("");

}elseif(source==btnCancel){

System.exit(0);

}

}

publicstaticvoidmain(String[]args)

{

JPanelmainp=newJPanel();

DLFramestudent=newDLFrame();

}

}

2、管理员界面

图片:

代码:

packageli;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classManagerFraneextendsJFrameimplementsActionListener{//管理员界面

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JButtonbtns=newJButton("学生信息管理");

JButtonbtnc=newJButton(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1