分享
计算机软件实践报告-数据库-3000字.doc
下载文档

ID:3499964

大小:1.52MB

页数:13页

格式:DOC

时间:2024-05-16

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
计算机软件 实践 报告 数据库 3000
计算机软件技术 实践报告        学院:  电自学院     班级:      姓名:            学号:    2011年1月 一、 设计目的 学生成绩管理系统是学院重要的一部分,其内容对于学院管理者和学生至关重要,所以学生成绩管理系统应该为用户提供所需要的信息及其方便的管理作为主要目标。现代成绩查询系统理论已经不拘泥于传统的理论基础,不强调对教学活动的绝对控制,放弃了繁琐的设计模式,开始注重教学设计的关系性灵活性,这些优点能够极大地提高学生成绩查询的效率,从而更加有利于学生的管理和提高学生的主动性。 二、 设计题目 编辑学习成绩管理系统 三、 系统需求分析 需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和使用。所以,准确而无遗漏地弄清用户对系统的要求,是系统设计取得成功的重要前提。 1、功能需求:(1)掌握每个学生每一门课的成绩信息,并记录在数据库中以便其他管理信息系统的使用。 (2)分权限的管理。在成绩管理中,教师可以对任何一个学生的成绩进行查询和管理;但是对学生用户,它只能对自己的成绩进行查看,而且不能对其进行更改。 (3)教师类用户可以对成绩按照学生进行管理,可以对每一学生所选的课程成绩进行添加、删除和修改。 (4)教师类用户可以对成绩按照课程进行管理,可以对每一门课所修的学生进行添加、删除和修改。 (5)可以针对某一门课的学生列表及其成绩生成报表中。 (6)可以针对某一个学生所选课程及其对应的成绩生成报表。 2、组成模块:(1)登录系统: 模块功能概述:提供身份验证功能 界面描述:本界面有一个登录框,输入正确的信息则成功登录进入到教师页或学生页进行相应的操作。如果输入错误,则提示相应的错误信息。 (2)查阅成绩 模块功能概述:登录成功进入主页时,可以查阅自己的成绩。 界面描述:本界面是标准的对话框窗口,显示学生的考试成绩。 (3)修改授课考试成绩 模块功能概述:当教师已经进入显示此课程的成绩信息的对话框窗口时,即可在窗口中修改每条记录,并直接存储到数据库相应的表中。 界面描述:同样是显示某一课程的成绩信息的对话框窗口,在此窗口中修改记录。 四、系统功能模块 五、数据库概念结构设计 所谓概念结构设计即将需求分析得到的用户需求抽象为信息结构,它是整个数据库设计的关键。概念结构的主要特点是:能真实、充分地反映现实世界、包括事物与事物之间的联系,能满足用户对数据的处理要求;易于理解;易于更改;易于向关系、网状、层次等各种数据模型转换。 描述概念模型的有力工具是E-R模型。该模型有两个明显优点:一是接近人的思想,容易理解;二是与计算机无关,用户容易接受。E-R图提供了表示实体型、属性和联系的方法。 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n,m:n)。 在设计概念结构的时候,我们采用的策略是自底向上的方法,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。 局部E-R模型: 这里最关键的步骤是确定实体和属性。就是说,首先要决定在每一个应用中包含哪些实体,这些实体又包含哪些属性。当各子系统的分E-R模型设计好以后,就要将各个应用的分E-R模型综合成系统总的概念模型,采用的是合并分E-R图的方法,但由于通常各个局部的E-R图是由不同的设计人员设计的,导致各个分E-R图之间必定会存在一些不一致的地方,称之为冲突,各分E-R图之间的冲突主要有三类:属性冲突、命名冲突、结构冲突。 属性冲突:包括属性值的类型、取值范围、取值单位的不同。 命名冲突:包括实体名、联系名、属性名之间异名同义或同名异义等。 结构冲突:例如同一对象在一个局部E-R图中作为实体,而在另一个局部E-R图中作为属性,同一实体在不同的E-R图中属性个数和类型不同等。 在绘制总E-R图时,要注意合理消除各分E-R图的冲突,这是合并分E-R图的主要工作与关键所在。 总的E-R图: 六、数据库的逻辑结构 在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。 关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等查询操作,以及增、删、改等更新操作两大部分。而查询的表达能力是其中最主要的部分。 根据E-R图,需要制作5张数据表来存放学生成绩信息,数据表如下: 1. 成绩表的设计 成绩表(Score) 字段 字段说明 类型 宽度 备注 Id 学生学号 字符 10 主键1,对应于stuinfo表中的Id字段 Num 课程编号 字符 6 主键2,对应于course表中的Num字段 score 分数 短整型 1 2. 学生表的设计 学生表(Student) 字段 字段说明 类型 宽度 备注 Id 学生学号 字符 10 主键1,对应于stuinfo表中的Id字段 Name 姓名 长字符 10 NOT NULL Sex 性别 字符 2 NOT NULL Age 年龄 数字 1 NOT NULL Pro 专业名 长字符 20 NOT NULL 3. 课程表和课程类型表 课程表(Course) 字段 字段说明 类型 宽度 备注 Num 课程编号 字符 6 主键2,对应于course表中的Num字段 Name 课程名 长字符 20 NOT NULL Credit 学分 整型 4 NOT NULL 5. 以上各表的关系 上述所涉及的各个表之间存在着紧密的联系。根据这一情况,需要建立各个表相应字段之间的关系,如下图所示。 七、功能实现及运行结果 登录界面 系统主界面 学生管理信息系统 添加、修改学生信息界面 学生成绩查询界面 选课信息界面 学生个人成绩情况系统 八、系统核心代码的设计 前台程序与数据库的关联模块 Public conn As New ADODB.Connection Public rs As New ADODB.Recordset Public Sub openconn() On Error GoTo chek Set conn = New ADODB.Connection conn.ConnectionString = "provider=sqloledb.1;integrated security=sspi;Persist Security Info=False;Initial Catalog=学生管理系统;Data Source=127.0.0.1" conn.Open Exit Sub chek: MsgBox "开操作失败!", vbRetryCancel + vbExclamation, "错误提示" End Sub 登陆 登陆按钮 Private Sub cmdLogin_Click() If txtUser.Text = "" Then MsgBox ("请输入用户名!") txtUser.SetFocus Else Call openconn sql = "select * from login where username='" & Trim(txtUser.Text) & "' and password='" & Trim(txtPwd.Text) & "'" rs.Open sql, conn, adOpenDynamic, adLockOptimistic If rs.EOF Then MsgBox "用户不存在!" Else Unload Me frmMain.Show End If End If End Sub 退出按钮 Private Sub cmdRegister_Click() Unload Me End Sub 学生管理 查找按钮 Private Sub cmdFind_Click() '查询功能 If cboFind.Text = "学号" Then If txtInput.Text = "" Then MsgBox ("学号输入不能为空!") txtInput.SetFocus Else Dim sql1 As String Set rs1 = New ADODB.Recordset sql1 = "select * from stuInfo where ID='" & txtInput.Text & "'" rs1.CursorLocation = adUseClient rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText If rs.EOF Then MsgBox ("查不到相关信息") txtInput.SetFocus Else Set DataGrid1.DataSource = rs1 DataGrid1.Refresh End If End If Else If txtInput.Text = "" Then MsgBox ("姓名输入不能为空!") txtInput.SetFocus Else Dim sql2 As String Set rs2 = New ADODB.Recordset sql2 = "select * from stuInfo where name='" & txtInput.Text & "'" rs2.CursorLocation = adUseClient rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic, adCmdText If rs.EOF Then MsgBox ("查不到相关信息") txtInput.SetFocus Else Set DataGrid1.DataSource = rs2 DataGrid1.Refresh End If End If End If End Sub 成绩查询 确定按钮 Private Sub Command1_Click() lblGrade.Caption = Trim(cboCourse.Text) + "课程成绩" Dim sql1 As String Set rs1 = New ADODB.Recordset sql1 = "select score.ID,score.Num,score.score from score, course where name='" & cboCourse.Text & "' and score.Num=course.Num" 'sql1 = "select * from course" rs1.CursorLocation = adUseClient rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText Set DataGrid1.DataSource = rs1 End Sub 选课管理 提交按钮 Private Sub cmdSubmit_Click() If txtID = "" Then MsgBox ("请输入学号!!") txtID.SetFocus ElseIf lstCourse.Text = "" Then MsgBox ("请选择课程!!") Else Dim sql1 As String Dim sql2, name As String Set rs2 = New ADODB.Recordset Set rs1 = New ADODB.Recordset sql1 = "select score.ID, score.Num from score , course where ID='" & txtID.Text & "' and name='" & lstCourse.Text & "' and score.Num=course.Num" name = lstCourse.Text sql2 = "select Num from course where name='" & name & " '" rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic If rs1.EOF Then rs1.AddNew rs1("ID") = txtID.Text rs1("Num") = rs2("Num") rs1.Update MsgBox ("选课成功!!") rs1.Close Else MsgBox ("已选过该课!!") End If End If End Sub 查询 确定按钮 Private Sub cmdOK_Click() If txtID = "" Then MsgBox ("学号不能为空!!") txtID.SetFocus Else Dim sql As String Dim sum1, sum2 As Single Dim n As Integer Set conn = New ADODB.Connection Set rs = New ADODB.Recordset Call openconn sql = "select course.name , score.score , course.credit from score , course where score.ID='" & txtID.Text & "' and score.Num=course.Num" rs.CursorLocation = adUseClient rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText Set DataGrid1.DataSource = rs sum1 = 0 sum2 = 0 n = 0 Do While Not rs.EOF sum1 = sum1 + Val(rs("score")) sum2 = sum2 + Val(rs("credit")) n = n + 1 rs.MoveNext Loop lblAvg.Caption = Format(sum1 / n, "0.0") lblCredit.Caption = sum2 End If End Sub 九、实践心得 通过这段时间的系统开发,我们从对SQL Sever和VB6.0由初学者到开发系统,最后我们使用它可以完成一个系统的开发,在这个过程中确实得到了很大的锻炼,学到了很多的知识。同时我也深深感到了自己的不足,在编程技巧方面还有很大的欠缺,许多东西不得不求助于网络。所以我们以后还要继续学习,并决心以此次课程设计为开端,深入学习编程知识,在实践中应用所学知识。一方面提高自己的编程水平,一方面提高自己的学习和工作效率。

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开