学生学籍管理系统课程方案设计书报告.docx

上传人:b****0 文档编号:12735561 上传时间:2023-04-21 格式:DOCX 页数:23 大小:108.47KB
下载 相关 举报
学生学籍管理系统课程方案设计书报告.docx_第1页
第1页 / 共23页
学生学籍管理系统课程方案设计书报告.docx_第2页
第2页 / 共23页
学生学籍管理系统课程方案设计书报告.docx_第3页
第3页 / 共23页
学生学籍管理系统课程方案设计书报告.docx_第4页
第4页 / 共23页
学生学籍管理系统课程方案设计书报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

学生学籍管理系统课程方案设计书报告.docx

《学生学籍管理系统课程方案设计书报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统课程方案设计书报告.docx(23页珍藏版)》请在冰豆网上搜索。

学生学籍管理系统课程方案设计书报告.docx

学生学籍管理系统课程方案设计书报告

学生学籍管理系统

1.问题描述

随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。

在各大中小学校,用计算机管理学校的信息已经越来越普遍了。

用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性,提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。

该课程设计要求设计一个学籍管理的数据库系统,数据库中包含学生的基本信息,学校院系信息,班级信息以及课程设置的信息。

同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。

而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:

第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第四,本系统可以使敏感文档更加安全,等等。

我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

 

1.1系统功能分析

系统开发的总体任务是实现各种信息的系统化、规范化和自动化。

系统功能分析是在系统开发的总体任务的基础上完成。

本系统需要完成的功能主要有:

●院系管理,包括院系的查询、插如、编辑。

●班级管理,包括班级的查询、插如、编辑、人数的管理等。

●课程管理,包括课程的查询、插入、编辑。

●学生信息查询管理,包括学生基本信息的查询如学号、年龄、所属班级、所属院系、民族、籍贯等。

●学生学籍管理,可根据院系来查看学生的基本信息,还可对学生进行查询、编辑、删除等操作。

●学生注册管理,提供给系统学生的基本信息,如学号、年龄、所属班级、所属院系、籍贯、政治面貌等。

●成绩录入管理,登记学生的每门课程的成绩。

●成绩查询管理,提供给系统学生的学号从而查询出学生在校期间每门课程的成绩。

●资料统计管理,统计各专业学生某学期的学习成绩情况。

以考试为例,分作90~100分,80~89分,70~79分,60~69分,60分以下五档人数及占总人数的百分率。

按照学生的年龄大小、地区的来源、政治面貌作人数的统计等。

 

1.2系统功能模块设计

对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1所示的系统功能模块图。

图1系统功能模块图

2.数据库系统设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。

设计数据库系统时应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。

数据库设计一般包括以下几个步骤:

需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行和维护。

 

2.1需求分析

用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库接受能充分满足各种信息的输入和输出。

针对学生学籍管理系统的需求,通过对学生学籍管理工作过程进行分析,设计如下所示的数据项和数据结构:

●院系信息,包括的数据项有:

院系名称、院系代码。

●班级信息,包括的数据项有:

班级名称、班级代码、班级人数、院系代码。

●课程信息,包括的数据项有:

课程名称、课程号、课程学时、院系代码。

●学生信息,包括的数据项有:

学生学号、学生姓名、所属班级代码、所属院系代码、年龄、性别、民族、籍贯、政治面貌、奖惩记录、休复转退记录。

●成绩信息,包括的数据项有:

学生学号、所选课程代码、成绩。

2.2概念设计

概念模型是数据库系统的核心和基础。

根据以上分析结果,绘制出本系统的E-R图,如图2所示。

图2系统E-R图

2.3逻辑设计

现在需要将上面的数据库概念结构(E-R图)转化为Oracle数据库系统所支持的数据模型,也就是数据库的逻辑结构。

根据数据库的需求分析和概念设计,设计了名为student的数据库。

数据库由下面多个表组成,其详细信息如表1-*所示。

表1-1院系信息表

列名

数据类型

可否为空

说明

departmentID

Char(20)

Notnull

院系代码(主键)

Departmentname

Vachar(50)

Notnull

院系名称

 

表1-2班级信息表

列名

数据类型

可否为空

说明

classID

Char(20)

Notnull

班级代码(主键)

Classname

Varchar(50)

Notnull

班级名称

DepartmentID

Char(20)

院系代码(外键)

studentnumber

smallint

班级人数

 

表1-3课程信息表

列名

数据类型

可否为空

说明

courseID

Char(20)

Notnull

课程号(主键)

coursename

Varchar(50)

Notnull

课程名称

scorehour

smallint

课程学时

departmentID

Char(20)

院系代码(外键)

 

表1-4成绩信息表

列名

数据类型

可否为空

说明

courseID

Char(20)

Notnull

学生学号

studentID

Char(20)

Notnul

课程代码

score

smallint

分数

 

表1-5学生信息表

列名

数据类型

可否为空

说明

studentID

Char(10)

Notnull

学生学号(主键)

Studentname

Char(20)

Notnull

学生姓名

ClassID

Char(20)

班级代码(外键)

DepartmentID

Char(20)

院系代码(外键)

Sex

Char

(2)

性别

Age

Smallint

年龄

Nation

Varchar(10)

民族

Nativeplace

Varcahr(50)

籍贯

Status

Varchar(20)

政治面貌

Reward

Varchar(50)

奖惩记录

leavetype

Varchar(10)

休复转退记录

 

2.4物理设计

2.41确定关系模型的存取方法

在实际设计中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:

在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。

才能充分利用索引的作用避免因索引引起的负面作用。

2.42确定数据库的存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

因为该学籍管理系统的数据量小,而且只作实验之用,所以我只用把数据存储在使用的电脑硬盘上,不用作更多的安排。

2.43触发器与存储过程设计

触发器的设计

1.student表上的出发器触发器:

对于学生基本信息表,当注册学生信息时,限制学生性别只能填写’男’或者’女’,当填写错误时,系统自动提示错误;当填写年龄时,年龄限制在0和150之间,如果填写错误,系统自动报错。

●createtriggerinsert_or_update_age

beforeinsertorupdateonstudent

foreachrow

begin

if(:

new.age<0)or(:

new.age>150)thenraise_application_error(-20501,'请输入正确的年龄!

');

endif;

end;

●createtriggerinsert_or_update_ssex

beforeinsertorupdateonstudent

foreachrow

begin

if(:

new.sex<>'女')or(:

new.sex<>'男')thenraise_application_error(-20501,'请输入正确的性别!

');

endif;

end;

2.score表上的触发器,对于成绩表,当填写成绩时,成绩限制在0和100分之间,如果填写错误,系统自动报错。

●createtriggerinsert_or_update_sscore

beforeinsertorupdateonscore

foreachrow

begin

if(:

new.score<0)or(:

new.score>100)thenraise_application_error(-20501,'请输入正确的分数!

');

endif;

end;

2.44存储过程的设计

在本系统中,我设计了一个比较简单的存储过程,主要是在学生选择一门课程时,自动把成绩置为0,因为学期初刚开始学一门课程,并无成绩,所以设计了这样一个存储过程来实现成绩的变化。

createprocedureinsert_score(studentIDchar,courseIDchar,scoresmallint)

as

begin

insertintoscorevalues(studentID,courseID,-1);

commit;

end;

2.5数据库实施

首先配置oracle数据库要用到的服务,开始---控制面板---服务,启动oracleseverlab和oracletnslistener两项服务,然后在oracle数据库中建立一个学生数据库,填写数据库的用户名和密码(在学校五楼机房用户名scott,密码为tiger),然后连接,最后检测数据是否连接正确。

然后创建要建立的表,如下:

--------------------------创建院系信息表------------------------

createtabledepartment

(departmentIDchar(20)primarykey,

departmentNamevarchar(50)notnull

);

向院系表中插入数据(一部分,以下同上)

insertintodepartmentvalues('001','数学系');

insertintodepartmentvalues('002','工程物理');

insertintodepartmentvalues('003','土木工程');

 

-------------------创建班级信息表----------------

createtableclass

(classIDchar(20)primarykey,

classNamevarchar(50)notnull,

departmentIDchar(20),

studentnumbersmallint,

foreignkey(departmentID)referencesdepartment(departmentID)

);

向班级信息表中插入数据

insertintoclassvalues('GM021','工艺美院02级1班','006',5);

insertintoclassvalues('MA021','数学02级1班','001',5);

insertintoclassvalues('GW031','公物系03级1班','002',5);

--------------------------创建课程信息表-------------------

createtablecourse

(courseIDchar(20)primarykey,

coursenamevarchar(50)notnull,

scorehoursmallint,

departmentIDchar(20),

foreignkey(departmentID)referencesdepartment(departmentID)

);

向课程信息表中插入数据

insertintocoursevalues('1','微积分(上)',4,'001');

insertintocoursevalues('2','微积分(下)',4,'001');

insertintocoursevalues('3','计算机操作系统教程',4,'004');

insertintocoursevalues('4','新视野大学英语第一册(上)',4,'005');

insertintocoursevalues('5','新视野大学英语第一册(下)',4,'005');

-------------------------在课程表上建立索引------------------

createuniqueindexcourcnooncourse(courseID);

------------------------创建学生信息表-----------------------

createtablestudent

(studentIDchar(10)primarykey,

studentNamechar(20)notnull,

classIDchar(20),

departmentIDchar(20),

sexchar

(2),

agesmallint,

nationvarchar(10),

nativeplacevarchar(50),

statusvarchar(20),

rewardvarchar(50),

leavetypevarchar(10),

foreignkey(classID)referencesclass(classID),

foreignkey(departmentID)referencesdepartment(departmentID)

);

向学生信息表中插入数据

insertintostudentvalues('060861','张三','GM021','006','男',18,'汉','哈尔滨','党员','优秀三好学生','退学');

insertintostudentvalues('060862','李四','GM021','006','女',18,'汉','大庆','团员','优秀三好学生','退学');

insertintostudentvalues('060863','王五','GM021','006','男',18,'汉','佳木斯','党员','优秀三好学生','退学');

insertintostudentvalues('060864','杨二','GM021','006','女',19,'汉','齐齐哈尔','团员','优秀团员','休学');

insertintostudentvalues('060865','张三丰','GM021','006','男',19,'汉',牡丹江','团员','优秀团员','休学');

insertintostudentvalues('060831','张三','TM021','003','男',20,'汉','哈尔滨','团员','市级三好学生','休学');

insertintostudentvalues('060832','李四','TM021','003','男',20,'汉','大庆','党员','市级三好学生','否');

insertintostudentvalues('060833','王五','TM021','003','男',19,'汉','佳木斯','团员','优秀党员','否');

insertintostudentvalues('060834','杨二','TM021','003','男',19,'汉','齐齐哈尔','团员','优秀党员','否');

insertintostudentvalues('060835','张三丰','TM021','003','男',21,'汉','牡丹江','团员','优秀党员','否');

----------------在学生信息表上建立索引-------------------

createuniqueindexstusnoonstudent(studentID);

----------------创建成绩信息表---------------------------

createtablescore

studentIDchar(10),

courseIDchar(20),

scoresmallint,

primarykey(studentID,courseID)

);

向成绩信息表中插入数据

insertintoscorevalues('060861','1',75);

insertintoscorevalues('060862','1',85);

insertintoscorevalues('060863','1',66);

insertintoscorevalues('060864','1',90);

insertintoscorevalues('060821','7',98);

insertintoscorevalues('060822','7',78);

insertintoscorevalues('060823','7',80);

------------------在成绩表上建立索引------------------------

createuniqueindexscocnoonscore(studentIDASC,courseIDDESC);

 

3.系统实现

以上完成了对学生学习管理系统的功能分析和数据库设计后,接下来就是系统的具体实现了。

 

3.1开发环境

软件环境,本系统的设计采用的语言是C#,在MicrosoftVisualStudio2005和internetexplore软件环境下使用。

选择的是oracle数据库。

本次课程设计是对oracle数据库操作,所以要求的数据库的吞吐量和稳定性高,维持水平好。

我们还要考虑数据库与操作系统的配合,此次实验我们选择的是WindowsXP操作系统。

硬件环境,本系统适用于多种类型的计算机,内存容量为1G为最好。

3.2系统实现细节

此系统实现过程中,最重要的是对学生信息的操作,登记、修改、删除等。

在这个页面用C#进行编写的过程中拖动了两个GridView控件和一个FormView空间,我的设计思路是想显示院系的信息然后通过选择院系而现在院系的学生,从而在FormView控件中显示学生的所有信息并可对其进行修改、删除等操作。

而在实现过程中并没有按预想的显示,原因是我没有把department和student这两个表自然连接起来,后来找到原因通过两表的自然连接实现了此功能。

有很多功能都是通过数据库直接实现的,并不用写代码,而节省了很多时间和精力。

 

3.3程序调试情况

系统在调试过程中总是出现和数据库连接的错误,比如触发器和存储过程在连接的时候会连接不上提醒错误,通过帮助文档和同学的帮助解决。

调用触发器的时候就是系统自动调用不用在VS2005中另写代码,系统自动调用,而存储过程需要写部分代码,由于对存储过程不是很深入的了解,出现错误,后经帮助改正,并运行成功。

还有用VS2005编写代码的时候要特别注意拖动控件的ID名,不可写错,这样的错误和导致系统的失败,而且在找错误的时候很浪费时间。

3.4结论

学生学籍管理系统是学校必不可少的一部分,本系统在课程设计中,设计了一个学生学籍管理系统,其中包含了对学生基本信息的管理,学生课程以及成绩管理,学校班级以及院系等。

基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。

但是这是一个完全不能真正用与实际的系统,它没有操作界面,没有完善的数据完整性的约束,也不具有可靠的安全性。

有很多需要改进的方面,比如:

应该设有三个权限,数据库管理员,教师及学生,而本系统只有管理员权限不全面。

管理员可以对数据库进行所有操作,对学生和教师的信息进行插入,修改和删除等操作;教师只可以查看学生信息和登记学生成绩和修改;学生只可以查询自己的信息,不可修改和删除等操作,由于自己知识和时间的有限,做的不够完善,存在很多问题,会在以后的不断学习中慢慢改进和完善。

2.结束语

通过三星期的数据结构课程设计实习,我从中受益匪浅,并且对数据库这一门课程有了更深一步的认识。

在课程设计过程中,我可以把这学期所学的理论知识和实践联系起来,在所要开发的程序中渐渐融会贯通。

虽然我对这些知识还运用得还不是很熟练,但是相信在现在和今后的学习中会得到更加深刻的掌握。

在课程设计中,设计了一个学生学籍管理系统,其中包含了对学生基本信息的管理,学生课程以及成绩管理,学校班级以及院系等。

基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。

但是这是一个完全不能真正用与实际的系统,它没有操作界面,没有完善的数据完整性的约束,也不具有可靠的安全性。

但总之在设计当中我们学习到了许多东西,用到了很多的数据库的理论知识,增强了一定的实践能里。

课程设计过程中我们一边设计一边探索,发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。

在课程设计中我学到了很多,希望在以后我能充分利用课程设计的机会充实自己。

参考文献

[1]薛华成.管理信息系统.北京:

清华大学出版社,1993.

[2]霍斯尼RK著.李庆龙译.谷物科学与工艺学原理.北京:

中国食品出版社,1989.

[3]BorkoH,BernierCL.Indexingconceptsandmethods.NewYork:

AcademicPr.,1978.

[4]徐滨士,欧忠文,马世宁等.纳米表面工程.中国机械工程,2000,11(6):

707-712.

[5]KuehnlwMR,PeekenH,TroederCetal.TheToroidalDrive.MechanicalEngineering,1981,103

(2):

32-39.

附录:

源代码清单(部分)

----------------院系管理页面插入院系信息-----------------

代码如下:

if(TextBox3.Text=="")

Response.Write("alert('请输入院系代码!

');");

elseif(TextBox4.Text=="")

{

Re

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

当前位置:首页 > 工作范文 > 制度规范

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

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