数据库课程设计学生信息管理系统_第1页
数据库课程设计学生信息管理系统_第2页
数据库课程设计学生信息管理系统_第3页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书数据库题目:学生信息管理系统院 系:理学院专业班级:数学与应用数学11-1学 号:_8学生:罗森指导教师:小奎2015年1月22日理工大学课程设计(论文)任务书计算机软件教研室计算机科学与工程学院学号2011305058学生罗森专业(班级)数学11-1设计题目学生信息管理系统设计技术参数系统平台:wi ndows XP开发工具:JSP, Access设 计 要 求实现一个学生信息管理系统,并实现对数据库的基本操作。工 作 量课程设计报告要求不少于 3000字。源程序要求不少于 300行工 作 计 划6月29日:熟悉题目并理解,及找寻相关资料。6月30日-7月2日:建立数据库,并掌

2、握相关操作,熟悉JSP知识。7月3日-7月4日利用JSP去实现对数据库的基本操作。7月5日:完成界面及 word文档。参 考 资 料指导教师签字教研室主任签字理工大学课程设计(论文)成绩评定表学生: 罗森 学号:2011305058课程设计题目:学生信息管理系统指导教师评语:成绩: 指导教师:年 月 日摘要学生信息管理系统是典型的管理信息系统(MIS),其系统开发主要包括数据库的规划设计与维护、 客户端应用程序的开发两个方面。 对于前者要求建立起的数据库具有完整性和一致 性,且具有一定的数据安全性,而对于后者则要求程序界面友好、功能完备,容易使用,具 有流行软件的操作习惯等特点。经过详细的调查

3、分析,我选用Visual Basic 6.0 作为前端开发工具,利用其提供的集成开发环境及支持面向对象的各种标准化的控件,尤其是对ADO的支持完成对数据库的各种操作, 达到对学生学籍管理的目的。 设计时首先在短时间先建立 系统应用原型, 然后对初始原型系统进行需求迭代, 不断修正和改进, 直到形成用户满意的 实际可行系统。关键词: 学生档案 , 管理 , 分析, 设计 , 实现 , ADO目录1 需求分析1.1 用户调查1.2 构造系统的逻辑模型 .1.3确定目标系厶匕能.21.4 数据分析概念模型分析1.4.1 数据库建模1.4.2 关系描述的设计2.1 软件系统结构的设计.62.2 数据库

4、的设计 .2.2.1 数据库的物理设计3 详细设计 103.1 具体描述 103.2 具体实现步骤 . 114 总结 194.1设计体会.194.2 系统改进 .19参考文献 201 需求分析1.1 用户调查 经过详细的调研,并多次与学生档案管理的老师进行研讨后,首先加深了对学生信息管 理业务的深刻了解, 其次在充分熟悉学生档案管理业务的同时, 将整个学生档案管理的业务 流程描述如下: 新生入校,首先报到并进行注册登记,然后到财务部门缴费。根据学生被录取的专业, 持缴费单到所在系或部注册。 到系或部注册后,根据选报专业分配到班级。 进入正常大学生活,参加各种教学活动,学期期末要求每位同学参加各

5、课的期末考试。 考试结束, 由各系或部将各位同学的考试成绩及其他一些相关信息纪录至每个同学的档 案中。根据以上总结,得到其现行的业务流程如图 1-1 所示。新生办理登记手续财务处图1学生行学生信息管理业务流程|图至系或部系或部 t分班安排课程教室开始学习活动 形表动示数据的源点和终点(或称为外部项),圆或椭圆表示变换数据的处理档向右开口的矩考试成绩示数据存储|,箭头表示数据流,即特定数据的流动方向。学生学生处根据现行学生信息管理的业务流程信息首先确定数据流图中的源点和终点都选定为学生,如此就得到了学生档案管理系统的基本系1.2构造系统的逻辑模型构造系统的逻辑模型的工具是数据流图和数据字典。数据

6、流图中没有任何具体的物理元素,只是用来描绘信息在系统中的流动和处理情况。数据流图共有四种基本符号:矩统模型,如图1-2所示。图1-2学生档案管理系统的基本系统模型对其逐步西化,得到描绘逻辑系统西化后的数据流图,如图根据基本系统模型,1-3所示。新生报道图1-3学生档案系统数据流图1.3确定目标系统的功能通过详细的用户调查,在现行的业务处理流程和数据流图的基础上,就可以基本确定目标系统要达到的目标了。需求分析的任务是确定系统必须完成的工作,也就是对目标系统提出完整、标准、清晰、具体的要求。在经过多方了解和调查后,基本清楚了学生档案信息管 理的功能需求,学生档案管理系统必须完成以下功能: 数据添加

7、功能:对于新生报道,系统必须具有班级的建立、课程的设置,如果新增专业,贝U能添加新专业,期末学生的考试成绩及奖惩信息必须能够录入。 数据修改功能:当上述资料发生变化或有错误信息输入时,应能够及时对数据进行修改和补充。 数据查询功能:该系统的主要功能致意即根据用户提供的相关信息,能够及时查找出对应的学生信息,系统应该提供多种查询方法,以便满足用户的不同需求。 数据打印功能:学生基本信息和成绩录入后应可以打印出来形成文字档案,装入学生档案,这也是学生学籍管理系统必须具备的功能。1.4数据分析一一概念模型分析需求分析阶段主要有两个方面的任务:分析用户的数据要求和分析用户的处理要求。通过以上分析,我们

8、已经基本了解了用户对处理的要求,接下来需要的工作是分析用户对数据的要求。为了把用户的数据清晰明确地表达出来,系统分析员通常建立一个概念性的数学模型。概念性模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模。最常用的表示概念性数据模型的方法是实体-联系方法(Entity-RelationshipApproach )。这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型,E-R图中共用三种符号:实体、属性和联系。通常实体用矩形来表示,属性用椭圆或 圆角矩形来表示,联系用菱形来表示。联系有分为一对一、一对多和多对多三种类型。数据库建模经过上面

9、的分析,能够提取以下几个实体:学生、课程、专业、班级等。它们的实体图分别如图1-4、图1-5、图1-6、图1-7所示。图1-4学生实体图图1-7班级实体图在找到所有实体的基础上,需要进一步分析各实体之间的联系。经过分析两两实体之间的联系,然后进行合并,给出所有尸体的联系图即E-R图,如图1-8所示。图1-8学生信息管理的E-R图从以上E-R图中可以看到,学生和课程两个实体之间的联系的类型是多对多的,其他实体之间的类型都是属于一对一或一对多的联系。在考察多对多的联系中, 一定要注意这时的联系“学”有时也可以有属性“成绩”,表示某位同学选修某门课程时必须给出其成绩,该属性既不属于实体学生,也不属于

10、实体课程。 特别需要提醒的是, 一般只有多对多的联系才需要考虑其联系的属性。142关系描述的设计根据以上各实体图和学生信息管理的E-R图,经过转换,可以导出各个关系。其转换规则为:首先每个实体转化为一个关系,有属性的联系也应转化为一个关系,然后需要给出每个关系的关键字。根据以上规则,直接给出所有关系。学生(学号、性别、政治面貌、出生日期、专业、班级、家庭住址、联系方式、备注) 关键字为学号。课程(课程名称、所属专业)关键字是课程名称。专业(专业名称、所属院系)关键字为专业名称。班级(班级名称、所属院系、辅导员、教室、人数)关键字为班级编号。成绩(学号、专业、课程名称、所在学院、性别、成绩)关键

11、字是学号与课程名称。在考虑系统安全的前提下,需要增加用户关系和使用关系,其关系模式如下:用户(用户名、密码、用户 ID)关键字为用户名。系统日志(用户名、登录日期、登录时间)2 总体设计系统设计一般分为总体设计和详细设计。经过需求分析阶段的工作,已经清楚系统必须完成的工作,下面的工作就应该是决定“如何做”的问题,总体设计的基本目的的就是“概 要地说系统应该如何实现?” 。通过该阶段的工作将划分出组成系统的物理元素一程序、文 件、数据库、文档等,另一方面的主要工作是设计软件的结构,即确定系统都由哪些模块组 成及模块之间的相互关系。2.1软件系统结构的设计2.1.1 得到新的业务流程根据系统分析得

12、到的现行业务处理流程,在与用户反复研究协商后,首先得到目标系统即学生学籍管理系统的业务流程,其处理流程如图2-1所示。图2-1学生信息系统的业务流程针对新的处理流程,现具体描述如下: 用户登录:对系统进行初始化设置,包括对专业、课程和班级的设置。 新生报道:按专业分班进行教学, 并为每位新同学分配学号,然后对学生基本信息进行录入。 学生分配到班级、领教材开始新的大学学习生活。 用户对学生在校期间得到的奖惩信息进行录入,并可以对基本信息发生变化的学生在系统中进行修改。 期末考试结束,用户把每个学生的考试成绩进行录入、修改和查询。系统功能结构图根据系统分析阶段得到的数据流图,采用软件设计的概念和原

13、理,在与用户反复研究和 协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所 有功能,由此给出学生学籍管理系统的系统功能结构图,如图2-2所示。学生学籍管理系统系统学籍管理添加用户修改密码添加学籍信息查询修改信息添加奖惩信息打印学生信息卡退岀系统班级管理专业与课程添加班级修改班级专业信息课程信息设置专业课程成绩管理添加成绩信息查询修改成绩信息添加专业信息设置类型添加信息修改信息删除成绩信息图2-2学生学籍管理系统功能结构图2.2数据库的设计在需求分析阶段已完成了系统的数据分析。根据数据分析阶段建立的概念模型,已经得出满足第三式的若干个关系描述,这阶段的主要工作就是把

14、前一阶段的成果转化为具体的数 据库。一般把数据库的设计分为数据库的逻辑设计和数据库的物理设计两个步骤。数据库的逻辑设计在完成数据的概念模型设计即 E-R图后,即可进入数据库的逻辑设计阶段。数据库的逻 辑设计即把得到的满足第三式的关系转化为特定的数据库管理系统下的数据库。根据前面得到的各个关系,现把它们转化为数据表。 学生信息表:学号、性别、政治面貌、出生日期、专业、班级、家庭住址、联系、 备注。此表共10个字段,由于在校所有学生中,不可能存在两个学生的学号相同, 所以在本表中学号作为学生信息表的主键。 课程信息表:课程名称、所属专业。 专业信息表:专业名称、所属院系。此表以专业名称为主键。 班

15、级信息表:班级名称、所属专业、辅导员、教室、人数。此表公有五个字段,以 学号和班级共同为主键,用于纪录学生所在班级的信息。 成绩信息表:学号、专业、程名称、所在学院、性别、成绩。此表共有七个字段, 以学号和课程名称共同为主键,用于纪录学生在校期间的各课考试。 用户名:用户名、密码、用户ID。此表用于系统对操作员的设置。 系统日志:用户名、登录时间、登录时间、此表用于纪录系统的使用情况。数据库的物理设计在完成数据库的逻辑设计后,即可开始数据库的物理设计。基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本学生学籍管理系统采用Microsoft的Access 2003数据库,并在其下创建9个

16、数据库,其结构分别如下:学生信息表(xsXJ),共有10个字段,分别为:学号、性别、政治面貌、出生日期、 专业、班级、联系、家庭住址、备注。见表2-1。表2-1学生信息表结构字段名数据类型字段长度与格式关键字学号文本15是文本20否性别文本5否政治面貌文本12否出生日期日期型YYYY-MM-DD否专业文本20否班级文本20否家庭住址文本50否联系文本15否备注文本50否课程信息表(xsKC),本表有两字段:课程名称、所属专业。见表2-2。表2-2课程信息表的结构字段名数据类型字段长度与格式关键字课程名称文本20是所属专业文本20否班级信息表(xsBJ),共有四个字段分别为:班级名称、所属院系、

17、辅导员、教室、 人数。见表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.详细设计

18、3. 1具体描述详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。把经过总体设计得到的各个模块详细的加以描述。其中系统功能模块图如图3-1所示,主程序流程图如图3-2所示。3.2具体实现步骤:登录界面如下图:图3-3登录之后,进入选择对数据库进行什么操作,如图:图3-4(1 )若选择查询操作,则进入如下界面:图3-5(2 )若选择修改操作,则进入如下界面: 界面实现代码:<% page con te ntType="text/html;ch

19、arset=GB2312" %> <html><head><title> 修改学生信息 </title></head><body bgcolor="07920f'><ce nter><h2>修改学生信息</h2><form acti on="scoreupdate.jsp" method="post"> 学生学号:<input type="text" name="St

20、No"/><br> 学生:<input type="text" name="StName" /><br> 所选专业:<input type="text" name="StZy" /><br> 学生课程:<input type="text" name="StCourse" /><br> 所在学院:<input type="text" name="

21、;StDep" /><br> 学生性别:<input type="text" n ame="Sex" /><br> 学生成绩:<input type="text" name="StScore" /><br> <in put type="submit" value="修改"/><in put type="reset" value="重置"/>

22、;</form> </ce nter></body> </html>图3-6修改操作实现代码:<% page conten tType="text/html;charset=gb2312" Ian guage="java"%><% page import="java.sql.*" %><% page import="java.util.Date" %><html><head><title> 修改学

23、生信息 </title></head><body bgcolor="red"><% in clude file="c on vert.jsp" %><%Connection conn=n ull;tryClass.forName("su n.jdbc.odbc.JdbcOdbcDriver");String strC onn="jdbc:odbc:shopData"String strUser="sa"String strPassword=&

24、quot;"conn=DriverMa nager.getC onn ectio n(strC onn ,strUser,strPassword);Stateme nt stmt=c onn .createStateme nt();Stri ng StNo=Bytes(request.getParameter("StNo");Stri ng StName=Bytes(request.getParameter("StName");Stri ng StZy=Bytes(request.getParameter("StZy");S

25、tri ng StCourse=Bytes(request.getParameter("StCourse");Stri ng StDep=Bytes(request.getParameter("StDep");Stri ng Sex=Bytes(request.getParameter("Sex");Stri ng StScore=Bytes(request.getParameter("StScore");Date date=new Date();String strSql="update xsScore

26、 set StName='"+StName+"',StZy='"+StZy+"',StCourse='"+StCourse+"',StDep='"+StDep+"',S ex='"+Sex+"' where StNo='"+StNo+"'or StName='"+StName+"'"int intTemp=stmt.executeUpd

27、ate(strSql);if(intTemp!=0)学生信息修改学生信息修改strSql2="SELECTout.println( "<center><font size=7pt color='green'>" + "成功 !" + "</font></center>");elseout.println( "<center><font size=7pt color='blue'>" + " 失

28、败 !" + "</font></Center>");StringStNo,StName,StZy,StCourse,StDep,Sex,StScore from xsScore order by StNo ASC"ResultSet rs=stmt.executeQuery(strSql2); %> <center><h2> 部分学生信息 </h2></center><table border="1" align="center"

29、> <tr><th> 学生学号 </th><th> 学生 </th><th> 专业 </th><th>课程 </th><th> 所在学院 </th><th>性别 </th><th>成绩 </th></tr><%while(rs.next()%><tr bgcolor="lightblue"><td><%=rs.getString(&quo

30、t;StNo") %></td><td><%=rs.getString("StName") %></td> <td><%=rs.getString("StZy") %></td> <td><%=rs.getString("StCourse") %></td> <td><%=rs.getString("StDep") %></td> <td&

31、gt;<%=rs.getString("Sex") %></td> <td><%=rs.getString("StScore") %></td> </tr><% %><%rs.close();stmt.close();conn.close(); catch(Excepti on e)out.pri ntl n( e.toStri ng(); %> </body></html>修改结果如下:将学号为200614320的学生课程改为神学iT

32、用|2:<r.l 42T:花品r 对“干:<:!|2IVI61!427 j犷算|财半与挂木皱居结同35»social 1270歸r-| 4 -1r- r'-k1.时算机斛宁曲构女2CrJ61-L71hit吕、俚n*-:半与技木3卅:i i.l计昇4 .料三屮v30R 'i+<| .14-*U1 F知、iff |Ul< K卄OT4宁与拽术|共2(< 61 曲廿刖:料土与崔、女:ipixibl加茁i亠算怖芋与按*F “立半TFSt.ir 与热 k"女IjiJ. MIJU王玉剛:-*IL+-t-k.!-计舜忸科字与枝斗女I.HJIPi

33、iffl-Wl'it-T-kK蝕隹库肝罩机何宰与生尼女:.J-l J:L.、且IV呻誅术rirn- m i“SHM,T马找卞计鼻耕討手与技木Lu订财二販:''Htu r i-.n Fp®64321hwri'-T-h. 1;rtflT嚴'苗 IijT八i”置啖4址I卫即T马丨上1计鼻机刖辛爭业用_图3-7(3 )若选择添加操作,则进入如下界面:图3-8(4 )若选择删除操作,则进入如下界面: 界面实现代码:<% page con te ntType="text/html;charset=GB2312" %> <

34、;html><head><title> 删除学生信息 </title></head><body bgcolor="00ff3f"><ce nter><h2>删除学生信息</h2><form acti on="scoredelete.jsp" method="post"> 学生学号:<input type="text" name="StNo"/><br> 学生:

35、<input type="text" name="StName" /><br> 所选专业:<input type="text" name="StZy" /><br> 学生课程:<input type="text" name="StCourse" /><br> 所在学院:<input type="text" name="StDep" /><br>

36、; 学生性别:<input type="text" n ame="Sex" /><br> 学生成绩:<input type="text" name="StScore" /><br> <input type="submit" value="删除"/><in put type="reset" value="重置"/></form></ce nter&g

37、t;</body> </html>图3-9删除操作代码:<% page conten tType="text/html;charset=gb2312" Ian guage="java"%><% page import="java.sql.*" %><% page import="java.util.Date" %><html><head><title> 添加学生成绩信息 </title></head&g

38、t;<body bgcolor="red"><% in clude file="c on vert.jsp" %><%Connection conn=null;tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");String strConn="jdbc:odbc:shopData"String strUser="sa"String strPassword=""conn=DriverManager.ge

39、tConnection(strConn,strUser,strPassword);Statement stmt=conn.createStatement();String StNo=Bytes(request.getParameter("StNo");String StName=Bytes(request.getParameter("StName");String StZy=Bytes(request.getParameter("StZy");String StCourse=Bytes(request.getParameter(&qu

40、ot;StCourse");String StDep=Bytes(request.getParameter("StDep");String Sex=Bytes(request.getParameter("Sex");String StScore=Bytes(request.getParameter("StScore");Date date=new Date();if(StNo!=null)String strSql="delete from xsScore where StNo='"+StNo+&

41、quot;'and StName='"+StName+"'and StZy='"+StZy+"'and StCourse='"+StCourse+"'and StDep='"+StDep+"'and Sex='"+Sex+"'and StScore='"+StScore+"'"int intTemp=stmt.executeUpdate(strSql);if(in

42、tTemp!=0)out.println( "<center><font size=7pt color='red'>" + "要求的学生信息删除成功 !" + "</font></center>");elseout.println( "<center><font size=4pt color='red'>" + "要求的学生信息删除失败 !可能已删除过或不存在当前输入学生的信息 " + &qu

43、ot;</center><nt>");String strSql2="SELECT StNo,StName,StZy,StCourse,StDep,Sex,StScore from xsScore order by StNo ASC"ResultSet rs=stmt.executeQuery(strSql2);%><center><h2> 部分学生信息 </h2></center><table border="1" align="center&quo

44、t;><tr><th> 学生学号 </th><th> 学生 </th><th> 专业 </th><th> 课程 </th><th>所在学院</th><th>性别 </th><th>成绩 </th></tr><%while(rs. next()%> <tr bgcolor="lightblue"><td><%=rs.getStri ng(&

45、quot;StNo") %></td><td><%=rs.getStri ng("StName") %></td><td><%=rs.getStri ng("StZy") %></td><td><%=rs.getStri ng("StCourse") %></td><td><%=rs.getStri ng("StDep") %></td><td><%=rs.getStri ng("Sex") %></td> <td><%=rs.getStri ng("StScore") %></td> </tr><% %><%rs.close(); stmt.close(); conn. clos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论