学生信息管理系统数据库javaWord文档下载推荐.docx
《学生信息管理系统数据库javaWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库javaWord文档下载推荐.docx(78页珍藏版)》请在冰豆网上搜索。
在数据库设计的基础上开发一个基本的数据库应用系统,要求有基本的数据查询功能和数据管理功能,并能将存储过程、触发器、事务控制等运用其中。
开发工具可以自己选择。
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)将逻辑数据模型转化成物理数据模型
(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
性别
sd
院系
c(课程信息表)
cno
课程号,关键字
cn
char(30)
课程名
pcno
先行课程号
sc(选课信息表)
g
成绩
unpw(用户信息表)
un
用户名,关键字
pw
密码
qx
角色
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姓名:
李萌成绩:
2014144415姓名:
李玲成绩:
2014144429姓名:
徐兰成绩:
2014144431姓名:
许媛媛成绩:
源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。
附件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("
管理员"
学生"
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();
}
con=DriverManager.getConnection(
"
jdbc:
sqlserver:
//localhost:
1433;
DatabaseName=student"
sa"
"
123"
stmt=con.createStatement();
}catch(SQLExceptione){
publicvoidcloseDB()//关闭连接
{
stmt.close();
con.close();
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"
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("
}
}
}
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、管理员界面
classManagerFraneextendsJFrameimplementsActionListener{//管理员界面
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JButtonbtns=newJButton("
学生信息管理"
JButtonbtnc=newJButton(