计算机软件实践报告.docx

上传人:b****0 文档编号:8934953 上传时间:2023-05-16 格式:DOCX 页数:18 大小:966.85KB
下载 相关 举报
计算机软件实践报告.docx_第1页
第1页 / 共18页
计算机软件实践报告.docx_第2页
第2页 / 共18页
计算机软件实践报告.docx_第3页
第3页 / 共18页
计算机软件实践报告.docx_第4页
第4页 / 共18页
计算机软件实践报告.docx_第5页
第5页 / 共18页
计算机软件实践报告.docx_第6页
第6页 / 共18页
计算机软件实践报告.docx_第7页
第7页 / 共18页
计算机软件实践报告.docx_第8页
第8页 / 共18页
计算机软件实践报告.docx_第9页
第9页 / 共18页
计算机软件实践报告.docx_第10页
第10页 / 共18页
计算机软件实践报告.docx_第11页
第11页 / 共18页
计算机软件实践报告.docx_第12页
第12页 / 共18页
计算机软件实践报告.docx_第13页
第13页 / 共18页
计算机软件实践报告.docx_第14页
第14页 / 共18页
计算机软件实践报告.docx_第15页
第15页 / 共18页
计算机软件实践报告.docx_第16页
第16页 / 共18页
计算机软件实践报告.docx_第17页
第17页 / 共18页
计算机软件实践报告.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机软件实践报告.docx

《计算机软件实践报告.docx》由会员分享,可在线阅读,更多相关《计算机软件实践报告.docx(18页珍藏版)》请在冰点文库上搜索。

计算机软件实践报告.docx

计算机软件实践报告

计算机软件技术

实践报告

 

 

       学院:

 电自学院

   班级:

 

   姓名:

     

   学号:

 

  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

NOTNULL

Sex

性别

字符

2

NOTNULL

Age

年龄

数字

1

NOTNULL

Pro

专业名

长字符

20

NOTNULL

3.课程表和课程类型表

课程表(Course)

字段

字段说明

类型

宽度

备注

Num

课程编号

字符

6

主键2,对应于course表中的Num字段

Name

课程名

长字符

20

NOTNULL

Credit

学分

整型

4

NOTNULL

5.以上各表的关系

上述所涉及的各个表之间存在着紧密的联系。

根据这一情况,需要建立各个表相应字段之间的关系,如下图所示。

七、功能实现及运行结果

登录界面

系统主界面

学生管理信息系统

添加、修改学生信息界面

学生成绩查询界面

选课信息界面

学生个人成绩情况系统

八、系统核心代码的设计

前台程序与数据库的关联模块

PublicconnAsNewADODB.Connection

PublicrsAsNewADODB.Recordset

PublicSubopenconn()

OnErrorGoTochek

Setconn=NewADODB.Connection

conn.ConnectionString="provider=sqloledb.1;integratedsecurity=sspi;PersistSecurityInfo=False;InitialCatalog=学生管理系统;DataSource=127.0.0.1"

conn.Open

ExitSub

chek:

MsgBox"开操作失败!

",vbRetryCancel+vbExclamation,"错误提示"

EndSub

登陆

登陆按钮

PrivateSubcmdLogin_Click()

IftxtUser.Text=""Then

MsgBox("请输入用户名!

")

txtUser.SetFocus

Else

Callopenconn

sql="select*fromloginwhereusername='"&Trim(txtUser.Text)&"'andpassword='"&Trim(txtPwd.Text)&"'"

rs.Opensql,conn,adOpenDynamic,adLockOptimistic

Ifrs.EOFThen

MsgBox"用户不存在!

"

Else

UnloadMe

frmMain.Show

EndIf

EndIf

EndSub

退出按钮

PrivateSubcmdRegister_Click()

UnloadMe

EndSub

学生管理

查找按钮

PrivateSubcmdFind_Click()'查询功能

IfcboFind.Text="学号"Then

IftxtInput.Text=""Then

MsgBox("学号输入不能为空!

")

txtInput.SetFocus

Else

Dimsql1AsString

Setrs1=NewADODB.Recordset

sql1="select*fromstuInfowhereID='"&txtInput.Text&"'"

rs1.CursorLocation=adUseClient

rs1.Opensql1,conn,adOpenDynamic,adLockOptimistic,adCmdText

Ifrs.EOFThen

MsgBox("查不到相关信息")

txtInput.SetFocus

Else

SetDataGrid1.DataSource=rs1

DataGrid1.Refresh

EndIf

EndIf

Else

IftxtInput.Text=""Then

MsgBox("姓名输入不能为空!

")

txtInput.SetFocus

Else

Dimsql2AsString

Setrs2=NewADODB.Recordset

sql2="select*fromstuInfowherename='"&txtInput.Text&"'"

rs2.CursorLocation=adUseClient

rs2.Opensql2,conn,adOpenDynamic,adLockOptimistic,adCmdText

Ifrs.EOFThen

MsgBox("查不到相关信息")

txtInput.SetFocus

Else

SetDataGrid1.DataSource=rs2

DataGrid1.Refresh

EndIf

EndIf

EndIf

EndSub

成绩查询

确定按钮

PrivateSubCommand1_Click()

lblGrade.Caption=Trim(cboCourse.Text)+"课程成绩"

Dimsql1AsString

Setrs1=NewADODB.Recordset

sql1="selectscore.ID,score.Num,score.scorefromscore,coursewherename='"&cboCourse.Text&"'andscore.Num=course.Num"

'sql1="select*fromcourse"

rs1.CursorLocation=adUseClient

rs1.Opensql1,conn,adOpenDynamic,adLockOptimistic,adCmdText

SetDataGrid1.DataSource=rs1

EndSub

选课管理

提交按钮

PrivateSubcmdSubmit_Click()

IftxtID=""Then

MsgBox("请输入学号!

!

")

txtID.SetFocus

ElseIflstCourse.Text=""Then

MsgBox("请选择课程!

!

")

Else

Dimsql1AsString

Dimsql2,nameAsString

Setrs2=NewADODB.Recordset

Setrs1=NewADODB.Recordset

sql1="selectscore.ID,score.Numfromscore,coursewhereID='"&txtID.Text&"'andname='"&lstCourse.Text&"'andscore.Num=course.Num"

name=lstCourse.Text

sql2="selectNumfromcoursewherename='"&name&"'"

rs1.Opensql1,conn,adOpenDynamic,adLockOptimistic

rs2.Opensql2,conn,adOpenDynamic,adLockOptimistic

Ifrs1.EOFThen

rs1.AddNew

rs1("ID")=txtID.Text

rs1("Num")=rs2("Num")

rs1.Update

MsgBox("选课成功!

!

")

rs1.Close

Else

MsgBox("已选过该课!

!

")

EndIf

EndIf

EndSub

查询

确定按钮

PrivateSubcmdOK_Click()

IftxtID=""Then

MsgBox("学号不能为空!

!

")

txtID.SetFocus

Else

DimsqlAsString

Dimsum1,sum2AsSingle

DimnAsInteger

Setconn=NewADODB.Connection

Setrs=NewADODB.Recordset

Callopenconn

sql="selectcourse.name,score.score,course.creditfromscore,coursewherescore.ID='"&txtID.Text&"'andscore.Num=course.Num"

rs.CursorLocation=adUseClient

rs.Opensql,conn,adOpenDynamic,adLockOptimistic,adCmdText

SetDataGrid1.DataSource=rs

sum1=0

sum2=0

n=0

DoWhileNotrs.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

EndIf

EndSub

九、实践心得

通过这段时间的系统开发,我们从对SQLSever和VB6.0由初学者到开发系统,最后我们使用它可以完成一个系统的开发,在这个过程中确实得到了很大的锻炼,学到了很多的知识。

同时我也深深感到了自己的不足,在编程技巧方面还有很大的欠缺,许多东西不得不求助于网络。

所以我们以后还要继续学习,并决心以此次课程设计为开端,深入学习编程知识,在实践中应用所学知识。

一方面提高自己的编程水平,一方面提高自己的学习和工作效率。

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

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2