学生信息管理系统数据库课程设计呕心沥血整理版.docx
- 文档编号:24039577
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:29
- 大小:624.50KB
学生信息管理系统数据库课程设计呕心沥血整理版.docx
《学生信息管理系统数据库课程设计呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库课程设计呕心沥血整理版.docx(29页珍藏版)》请在冰豆网上搜索。
学生信息管理系统数据库课程设计呕心沥血整理版
苏州卫生学院
开发思路说明书
数据库
题目:
学生信息管理系统
院系:
苏州卫生学院基础部
专业班级:
11卫生信息管理专业
学号:
71110021
学生姓名:
夏婷婷
2013年6月28日
系统开发思路、目标
苏州卫生职业技术学院
学号
71110021
学生姓名
夏婷婷
专业(班级)
卫生信息管理
设计题目
学生信息管理系统
设
计
技
术
参
数
系统平台:
windowsXP
开发工具:
JSP,Access
设
计
要
求
实现一个学生信息管理系统,并实现对数据库的基本操作。
工
作
计
划
6月29日:
熟悉题目并理解,及找寻相关资料。
6月30日—7月2日:
建立数据库,并掌握相关操作,熟悉JSP知识。
7月3日-7月4日:
利用JSP去实现对数据库的基本操作。
7月5日:
完成界面及word文档.
2013年6月28日
摘要
学生信息管理系统是典型的管理信息系统(MIS),其系统开发主要包括数据库的规划设计与维护、客户端应用程序的开发两个方面。
对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,而对于后者则要求程序界面友好、功能完备,容易使用,具有流行软件的操作习惯等特点。
经过详细的调查分析,我选用VisualBasic6。
0作为前端开发工具,利用其提供的集成开发环境及支持面向对象的各种标准化的控件,尤其是对ADO的支持完成对数据库的各种操作,达到对学生学籍管理的目的.设计时首先在短时间内先建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。
关键词:
学生档案,管理,分析,设计,实现,ADO
1需求分析1
1。
1用户调查1
1.2构造系统的逻辑模型1
1.3确定目标系统的功能………………………………………….。
。
2
1。
4数据分析——概念模型分析...。
。
。
。
。
。
。
。
.。
。
。
..。
.。
。
..。
。
。
..3
1。
4。
1数据库建模..。
..。
。
..。
。
。
.。
..。
。
。
。
。
。
。
。
。
。
。
.。
。
.。
。
。
。
.。
..。
.。
。
。
。
。
。
.3
1。
4。
2关系描述的设计。
。
。
。
。
。
.。
..。
。
。
。
。
.。
。
。
.。
.。
..。
.。
。
。
。
。
.。
。
。
.。
。
。
。
。
。
。
5
2总体设计。
.。
.。
......。
.。
.。
..。
.。
...。
。
.。
。
.。
。
。
。
。
。
。
.。
..。
。
.。
..。
。
。
.。
..。
。
。
。
.。
.。
.。
。
。
。
。
.。
.。
.。
...。
。
.。
。
。
。
.。
。
..。
。
。
。
..。
6
2.1软件系统结构的设计6
2.1.1得到新的业务流程……………………………………………………….6
2.1。
2系统功能结构图.。
。
。
。
。
.。
.。
。
。
.。
。
...。
.。
。
..。
.。
。
。
。
..。
。
.。
。
。
。
。
。
。
。
。
。
6
2.2数据库的设计7
2.2.1数据库的逻辑设计.。
。
.。
..。
。
。
。
。
.。
.。
。
。
。
。
.。
.。
。
。
.。
。
...。
。
.。
。
.。
.。
。
7
2.2.2数据库的物理设计。
.。
..。
.。
。
.。
..。
。
。
。
。
。
。
.....。
。
。
。
.。
...。
。
。
。
.。
。
8
3详细设计10
3.1具体描述10
3。
2具体实现步骤11
4总结19
4.1设计体会………………………………………………………..19
4.2系统改进……………………………………………………….。
19
1需求分析
1.1用户调查
经过详细的调研,并多次与学生档案管理的老师进行研讨后,首先加深了对学生信息管理业务的深刻了解,其次在充分熟悉学生档案管理业务的同时,将整个学生档案管理的业务流程描述如下:
1新生入校,首先报到并进行注册登记,然后到财务部门缴费。
根据学生被录取的专业,持缴费单到所在系或部注册。
2到系或部注册后,根据选报专业分配到班级。
3进入正常大学生活,参加各种教学活动,学期期末要求每位同学参加各课的期末考试。
4考试结束,由各系或部将各位同学的考试成绩及其他一些相关信息纪录至每个同学的档案中。
根据以上总结,得到其现行的业务流程如图1-1所示.
图1—1现行学生信息管理业务流程图
1。
2构造系统的逻辑模型
构造系统的逻辑模型的工具是数据流图和数据字典.数据流图中没有任何具体的物理元素,只是用来描绘信息在系统中的流动和处理情况。
数据流图共有四种基本符号:
矩形表示数据的源点和终点(或称为外部项),圆或椭圆表示变换数据的处理,向右开口的矩形表示数据存储,箭头表示数据流,即特定数据的流动方向。
根据现行学生信息管理的业务流程,首先确定数据流图中的源点和终点都选定为学生,如此就得到了学生档案管理系统的基本系统模型,如图1-2所示。
图1—2学生档案管理系统的基本系统模型
根据基本系统模型,对其逐步西化,得到描绘逻辑系统西化后的数据流图,如图1—3所示。
图1—3学生档案系统数据流图
1。
3确定目标系统的功能
通过详细的用户调查,在现行的业务处理流程和数据流图的基础上,就可以基本确定目标系统要达到的目标了。
需求分析的任务是确定系统必须完成的工作,也就是对目标系统提出完整、标准、清晰、具体的要求.在经过多方了解和调查后,基本清楚了学生档案信息管理的功能需求,学生档案管理系统必须完成以下功能:
1数据添加功能:
对于新生报道,系统必须具有班级的建立、课程的设置,如果新增专业,则能添加新专业,期末学生的考试成绩及奖惩信息必须能够录入。
2数据修改功能:
当上述资料发生变化或有错误信息输入时,应能够及时对数据进行修改和补充。
3数据查询功能:
该系统的主要功能致意即根据用户提供的相关信息,能够及时查找出对应的学生信息,系统应该提供多种查询方法,以便满足用户的不同需求。
4数据打印功能:
学生基本信息和成绩录入后应可以打印出来形成文字档案,装入学生档案,这也是学生学籍管理系统必须具备的功能。
1。
4数据分析——概念模型分析
需求分析阶段主要有两个方面的任务:
分析用户的数据要求和分析用户的处理要求。
通过以上分析,我们已经基本了解了用户对处理的要求,接下来需要的工作是分析用户对数据的要求。
为了把用户的数据清晰明确地表达出来,系统分析员通常建立一个概念性的数学模型。
概念性模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模.最常用的表示概念性数据模型的方法是实体—联系方法(Entity—RelationshipApproach)。
这种方法用E—R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型,E—R图中共用三种符号:
实体、属性和联系。
通常实体用矩形来表示,属性用椭圆或圆角矩形来表示,联系用菱形来表示。
联系有分为一对一、一对多和多对多三种类型。
1.4.1数据库建模
经过上面的分析,能够提取以下几个实体:
学生、课程、专业、班级等.它们的实体图分别如图1-4、图1—5、图1-6、图1-7所示。
图1—4学生实体图
图1-5课程实体图
图1-6专业实体图
图1—7班级实体图
在找到所有实体的基础上,需要进一步分析各实体之间的联系.经过分析两两实体之间的联系,然后进行合并,给出所有尸体的联系图即E—R图,如图1-8所示。
图1-8学生信息管理的E—R图
从以上E—R图中可以看到,学生和课程两个实体之间的联系的类型是多对多的,其他实体之间的类型都是属于一对一或一对多的联系.在考察多对多的联系中,一定要注意这时的联系“学”有时也可以有属性“成绩”,表示某位同学选修某门课程时必须给出其成绩,该属性既不属于实体学生,也不属于实体课程。
特别需要提醒的是,一般只有多对多的联系才需要考虑其联系的属性。
1。
4.2关系描述的设计
根据以上各实体图和学生信息管理的E—R图,经过转换,可以导出各个关系.其转换规则为:
首先每个实体转化为一个关系,有属性的联系也应转化为一个关系,然后需要给出每个关系的关键字。
根据以上规则,直接给出所有关系。
学生(学号、姓名、性别、政治面貌、出生日期、专业、班级、家庭住址、联系方式、备注)关键字为学号.
课程(课程名称、所属专业)关键字是课程名称。
专业(专业名称、所属院系)关键字为专业名称。
班级(班级名称、所属院系、辅导员、教室、人数)关键字为班级编号。
成绩(学号、姓名、专业、课程名称、所在学院、性别、成绩)关键字是学号与课程名称。
在考虑系统安全的前提下,需要增加用户关系和使用关系,其关系模式如下:
用户(用户名、密码、用户ID)关键字为用户名。
系统日志(用户名、登录日期、登录时间)。
2.总体设计
系统设计一般分为总体设计和详细设计.经过需求分析阶段的工作,已经清楚系统必须完成的工作,下面的工作就应该是决定“如何做”的问题,总体设计的基本目的的就是“概要地说系统应该如何实现?
"。
通过该阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、文档等,另一方面的主要工作是设计软件的结构,即确定系统都由哪些模块组成及模块之间的相互关系。
2.1软件系统结构的设计
2。
1.1得到新的业务流程
根据系统分析得到的现行业务处理流程,在与用户反复研究协商后,首先得到目标系统即学生学籍管理系统的业务流程,其处理流程如图2—1所示.
图2—1学生信息系统的业务流程
针对新的处理流程,现具体描述如下:
1用户登录:
对系统进行初始化设置,包括对专业、课程和班级的设置。
2新生报道:
按专业分班进行教学,并为每位新同学分配学号,然后对学生基本信息进行录入。
3学生分配到班级、领教材开始新的大学学习生活。
4用户对学生在校期间得到的奖惩信息进行录入,并可以对基本信息发生变化的学生在系统中进行修改。
5期末考试结束,用户把每个学生的考试成绩进行录入、修改和查询。
2。
1。
2系统功能结构图
根据系统分析阶段得到的数据流图,采用软件设计的概念和原理,在与用户反复研究和协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所有功能,由此给出学生学籍管理系统的系统功能结构图,如图2—2所示。
图2—2学生学籍管理系统功能结构图
2.2数据库的设计
在需求分析阶段已完成了系统的数据分析.根据数据分析阶段建立的概念模型,已经得出满足第三范式的若干个关系描述,这阶段的主要工作就是把前一阶段的成果转化为具体的数据库.一般把数据库的设计分为数据库的逻辑设计和数据库的物理设计两个步骤.
2。
2.1数据库的逻辑设计
在完成数据的概念模型设计即E—R图后,即可进入数据库的逻辑设计阶段.数据库的逻辑设计即把得到的满足第三范式的关系转化为特定的数据库管理系统下的数据库.根据前面得到的各个关系,现把它们转化为数据表.
1学生信息表:
学号、姓名、性别、政治面貌、出生日期、专业、班级、家庭住址、联系电话、备注.此表共10个字段,由于在校所有学生中,不可能存在两个学生的学号相同,所以在本表中学号作为学生信息表的主键.
2课程信息表:
课程名称、所属专业。
3专业信息表:
专业名称、所属院系。
此表以专业名称为主键。
4班级信息表:
班级名称、所属专业、辅导员、教室、人数.此表公有五个字段,以学号和班级共同为主键,用于纪录学生所在班级的信息。
5成绩信息表:
学号、姓名、专业、程名称、所在学院、性别、成绩。
此表共有七个字段,以学号和课程名称共同为主键,用于纪录学生在校期间的各课考试。
6用户名:
用户名、密码、用户ID.此表用于系统对操作员的设置。
7系统日志:
用户名、登录时间、登录时间、此表用于纪录系统的使用情况.
2。
2.2数据库的物理设计
在完成数据库的逻辑设计后,即可开始数据库的物理设计。
基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本学生学籍管理系统采用Microsoft的Access2003数据库,并在其下创建9个数据库,其结构分别如下:
1学生信息表(xsXJ),共有10个字段,分别为:
学号、姓名、性别、政治面貌、出生日期、专业、班级、联系电话、家庭住址、备注。
见表2—1。
表2—1学生信息表结构
字段名
数据类型
字段长度与格式
关键字
学号
文本
15
是
姓名
文本
20
否
性别
文本
5
否
政治面貌
文本
12
否
出生日期
日期型
YYYY—MM—DD
否
专业
文本
20
否
班级
文本
20
否
家庭住址
文本
50
否
联系电话
文本
15
否
备注
文本
50
否
2课程信息表(xsKC),本表有两字段:
课程名称、所属专业。
见表2-2。
表2-2课程信息表的结构
字段名
数据类型
字段长度与格式
关键字
课程名称
文本
20
是
所属专业
文本
20
否
3班级信息表(xsBJ),共有四个字段分别为:
班级名称、所属院系、辅导员、教室、人数.见表2—3.
表2-3班级信息表的结构
字段名
数据类型
字段长度与格式
关键字
班级名称
文本
20
是
所属院系
文本
20
否
辅导员
文本
10
否
教室
文本
15
否
人数
文本
3
否
④专业信息表(xsZY),本表有两个字段:
专业名称、所属院系。
见表2-4.
表2-4专业信息表的结构
字段名
数据类型
字段长度与格式
关键字
专业名称
文本
20
是
所属院系
文本
20
否
⑤成绩信息表(xsScore),共有6个字段分别为:
学号、姓名、专业、课程名称、成绩。
见表2-5.
表2—5成绩信息表的结构
字段名
数据类型
字段长度与格式
关键字
学号
文本
15
是
姓名
文本
20
否
专业
文本
20
否
课程名称
文本
20
是
所在学院
文本
20
否
性别
文本
5
否
成绩
文本
5
否
3.详细设计
3.1具体描述
详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序.把经过总体设计得到的各个模块详细的加以描述。
其中系统功能模块图如图3—1所示,主程序流程图如图3—2所示。
图3—1软件系统的模块结构图
图3—2软件系统主程序的程序流程图
3。
2具体实现步骤:
登录界面如下图:
图3—3
登录之后,进入选择对数据库进行什么操作,如图:
图3—4
(1)若选择查询操作,则进入如下界面:
图3-5
(2)若选择修改操作,则进入如下界面:
界面实现代码:
<%@pagecontentType=”text/html;charset=GB2312”%〉
〈html〉
〈head>〈title〉修改学生信息〈/title〉〈/head>
〈h2〉修改学生信息
jsp"method="post”〉 学生学号: 〈inputtype=”text”name=”StNo”/〉〈br> 学生姓名: 所选专业: 〈inputtype=”text”name=”StZy”/〉 学生课程: 〈inputtype=”text"name=”StCourse”/〉〈br〉 所在学院: 学生性别: 学生成绩: 〈inputtype="text”name=”StScore"/〉〈br> 〈inputtype=”reset”value=”重置"/〉 〈/center> 〈/body> 〈/html〉 图3—6 修改操作实现代码: 〈%@pagecontentType=”text/html;charset=gb2312"language=”java"%〉 〈%@pageimport="java.sql。 *”%> <%@pageimport=”java。 util。 Date"%> 〈%@includefile=”convert.jsp"%> <% Connectionconn=null; try { Class。 forName("sun。 jdbc。 odbc.JdbcOdbcDriver”); StringstrConn=”jdbc: odbc: shopData”; StringstrUser="sa”; StringstrPassword="”; conn=DriverManager。 getConnection(strConn,strUser,strPassword); Statementstmt=conn.createStatement(); StringStNo=Bytes(request.getParameter("StNo")); StringStName=Bytes(request.getParameter(”StName")); StringStZy=Bytes(request.getParameter("StZy”)); StringStCourse=Bytes(request.getParameter(”StCourse")); StringStDep=Bytes(request。 getParameter(”StDep”)); StringSex=Bytes(request。 getParameter(”Sex”)); StringStScore=Bytes(request。 getParameter("StScore”)); Datedate=newDate(); StringstrSql=”updatexsScoresetStName=’”+StName+”’,StZy=’”+StZy+"’,StCourse='”+StCourse+"',StDep='”+StDep+"’,Sex='”+Sex+"’whereStNo=’”+StNo+"’orStName=’"+StName+”'”; intintTemp=stmt。 executeUpdate(strSql); if(intTemp! =0) { out。 println(”〈center>〈fontsize=7ptcolor='green’〉”+"学生信息修改成功! "+”〈/font〉
}
else
{
out。
println("〈center〉 "+"”); } StringstrSql2=”SELECTStNo,StName,StZy,StCourse,StDep,Sex,StScorefromxsScoreorderbyStNoASC"; ResultSetrs=stmt。 executeQuery(strSql2); %> 〈center>〈h2〉部分学生信息〈/h2>〈/center〉 〈th〉学生姓名〈/th〉 〈th〉专业 〈th〉课程〈/th> 〈th〉成绩〈/th〉 〈/tr〉 〈%while(rs。 next()){%〉 〈td〉<%=rs。 getString(”StName")%> getString("StZy”)%〉〈/td> 〈td〉〈%=rs。 getString(”StCourse")%〉 〈td〉〈%=rs。 getString("StDep”)%> 〈td〉<%=rs。 getString(”Sex”)%〉〈/td> 〈/tr> <%}%〉 〈% rs。 close(); stmt.close(); conn.close(); } catch(Exceptione) { out。 println(e.toString()); } %〉 〈/body〉 〈/html〉 修改结果如下: 将学号为200614320的学生课程改为神学 图3-7 (3)若选择添加操作,则进入如下界面: 图3—8 (4)若选择删除操作,则进入如下界面: 界面实现代码: 〈%@pagecontentType=”text/html;charset=GB2312"%〉 〈head〉〈title>删除学生信息〈/title> 〈center> 〈formaction=”scoredelete.jsp"method="post"〉 学生学号: 学生姓名: 所选专业: 〈inputtype=”text”name=”StZy"/〉〈br〉 学生课程: 〈inputtype=”text"name=”StCourse”/〉 所在学院: 学生性别: 〈inputtype="text”name=”Sex”/> 学生成绩: 〈inputtype=”text"name="StScore”/〉〈br〉 〈inputtype=”submit"value=”删除"/〉 〈/center> 〈/body〉 〈/html〉 图3—9 删除 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1性别〈/th〉 <%=rs.getString(”StNo”)%> 〈%=rs。