《基于.NET的学生成绩管理系统开发.doc》由会员分享,可在线阅读,更多相关《基于.NET的学生成绩管理系统开发.doc(31页珍藏版)》请在三一办公上搜索。
1、毕业设计论文题目: 基于.NET的学生成绩管理系统开发 摘 要学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键字:控件、窗体、域、数据库。目 录
2、前言 第一章 Visual Basic 概述 1.1 Visual Basic 语言的特点1.2 Visual Basic 系统几个程序应用中的常用名词第二章 Windows 下的Visual Basic 编程环境简介2.1 面对对象的编程2.2 实现菜单选项2.3 实现工具栏第三章 怎样开发一个学生信息管理系统的查询模块3.1 学生信息系统的设计分析3.2 编程环境的选择3.3 关系型数据库的实现3.4 二者的结合(DBA)第四章 使用Access2000 创建数据库4.1 数据库的概念4.2 新建一个数据库4.3 修改已建的数据库第五章 可行性分析第六章 系统总体规划6.1 系统功能6.2
3、 系统流程图第七章 系统具体实现7.1 各功能的实现7.1.1 课程管理7.1.2 打印统计结束语参考文献致谢前 言随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理
4、,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有:有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。学生信息的修改。班级管理信息的输入,包括输入班级设置、年级信息等。班级管理信息的查询。班级管理信息的修改。学生课程的设置和修改第一章 Visual Basic 概述1.1 Visual Basic 语言
5、的特点 Visual Basic 语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。(1) 可视化设计:表现在VB在设计应用于程序界面时有“所见即所得”的处理功能。(2) 事件驱动编程:在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。1.2 Visual Basic 系统几个在程序应用中的常用名词 Visual Basic 系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。其基本含义如下:(1) 视窗(Form)视窗是进行人机交
6、互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows 系统的标准视窗。(2) 对象 (Object)对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框 (Label Box),文本框 (Text Box),命令按扭 (Command Button),网格 (Data Grid),ADO控件 (Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对
7、象可以减少程序和开发时间,提高程序设计者的工作效率。(3) 属性 (Properties)属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。(4) 事件 (Events)事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击
8、鼠标)事件,DbDlicd(双击鼠标)。(5) 方法 (Method)方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。(6) 过程 (Procedure)过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。(7) 模块 (Module)模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。 第二章 Windows下的Visual Basic 编程环境简介2.1 面对对象的编程面向对象的设计方法 (
9、OOP, Objected Programming) 从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。Visual Basic 作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由 Visual Basic 自动生成对象的程序代码并封装起来。Visual Basic 应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。Visual Basi
10、c 应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。2.2 实现菜单选项菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic 也提供了强大的创建菜单功能是程序更加标准。本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。2.3 实现工具栏CoolBar控件与Office2000 中看到的CoolBar是类
11、似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。第三章 怎样开发一个学生
12、信息管理系统的查询模块?3.1查询模块的设计分析根据实际情况,我们使用原型法(Rapid Prototyping) 即以少量代价快速地构造一个可执行的软件模型。使用户可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。3.2编程环境的选择微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有
13、效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。3.3关系型数据库的实现Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关
14、系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。3.4二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。ADODC控件在数据库中的信息与将信息显示给用户看的Visual Basic 程序之间架起了一座桥梁。我们可以设置ADODC控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,ADODC控件根据数据库中的一个或多个数据库表建立一
15、个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。将ADODC控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。第四章 使用Access2000创建数据库4.1数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。4.2新建一个数据库
16、创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。1 标识需要的数据;2 收集被子标识的字段到表中;3 标识主关键字字段;4 规范数据;5 标识指定字段的信息;4.3修改已建的数据库 数据库的修改分为;添加、编辑和删除记录。这三种操作均可由Visual Basic创建的程序来完成,下面的章节将详细描述实现的具体方法。第五章 可行性分析学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数
17、据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉得比较繁琐,吃不消。针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。学生信息管理系统是为本校开发的,本系统所采用的语言是Visual Basic,用Microsoft Access 2000数据库完成。该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享
18、。本系统主要信息流程为:教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生选课是对学生进行相应选择自己相关的课程。最后进行打印。采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的(图一)一张表,所有信息都是根据这张学生档案进行有关
19、的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。数据库与VB的连接:本系统的数据链接采用的是ADO方法,打开控制面板,打开ODBC数据源图标,选择“系统DSN”标签,点击“添加”按钮,在弹出的“创建新数据源”
20、对话框中选择名称为“Microsoft Access Drive(*.mdb)”,点击“完成”按钮,在ODBC Microsoft Access 安装对话框中在数据源名中输入信息,在数据库这个框中, 单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“Access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。 在VB中,用ADODC链接数据库,用DataGrid或DATA将库中的数据在界面中显示出来,本系统采用DataGrid。在界面上右击Adodc控制,在
21、弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中, 选中单选框“Use ODBC Data Source Name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“RecordSoure”标签中,在Commard Text(SQL)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的DataGrid控件选中,在属性框中,将它的Datasoure设为Adodc。我们可以设置DataGrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择
22、“编辑”,我们就可以所在的表格的宽度进行调整。第六章 系统(查询模块)总体规划6.1系统功能(查询模块)1 查询信息的情况;2 判断信息是否符合要求;3 将符合条件的信息进行打印;6.2流程图学生注册基本信息输入学籍信息管理班级管理班级课程设置课程基本信息班级课程管理成绩信息输入成绩信息管理班级设置第七章 系统具体实现7.1各功能的实现7.1.1课程管理:课程设置(如:界面如图二)(图二)运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。下面为其代码:Private
23、Sub Command1_Click()Dim myCon As New ADODB.ConnectionDim myRs As New ADODB.RecordsetDim ZhuanYe, NianJi, XueQi, KeCheng, JiaoCai, RenKLS, KeShi, ShangKeDD, KeChengXZ, KaoShiXZ As StringZhuanYe = Text1.TextNianJi = Text2.TextXueQi = DTPicker1.ValueKeCheng = Text4.TextJiaoCai = Text5.TextRenKLS = Text
24、6.TextKeShi = Text7.TextShangKeDD = Text8.TextKeChengXZ = Combo1.TextKaoShiXZ = Combo2.TextIf Trim(ZhuanYe) = Or Trim(NianJi) = Or Trim(XueQi) = Or Trim(KeCheng) = Or Trim(JiaoCai) = Or Trim(RenKLS) = Or Trim(KeShi) = Or Trim(ShangKeDD) = Or Trim(KeChengXZ) = Or Trim(KaoShiXZ) = Then MsgBox 请填写要修改课程
25、资料的内容! Combo1.Text = Combo2.Text = Exit SubEnd IfmyCon.Open dsn=信息myRs.Open select * from 课程表 where 专业= & Text1.Text & , myCon, 3, 2 myRs!年级 = Text2.Text myRs!学期 = DTPicker1.Value myRs!课程名称 = Text4.Text myRs!教材 = Text5.Text myRs!任课老师 = Text6.Text myRs!课时 = Text7.Text myRs!上课地点 = Text8.Text myRs!课程性质
26、 = Combo1.Text myRs!考试性质 = Combo2.TextmyRs.UpdatemyRs.ClosemyCon.CloseMsgBox 您确定要修改吗?, vbYesNo, 提示Frm_UpdateGrean.Adodc1.RefreshFrm_UpdateGrean.DataGrid1.RefreshText1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Combo1.Text = Combo2.Text = End Sub
27、Private Sub Command2_Click() Unload MeEnd SubPrivate Sub Command3_Click() Unload Me Frm_FindGrean.Show 1End SubPrivate Sub DataGrid1_Click()Frm_UpdateGrean.Adodc1.RecordSource = select * from 课程表 where 专业 = & Trim(DataGrid1.Row) & Text1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(专业)Text2.Text =
28、Frm_UpdateGrean.Adodc1.Recordset.Fields(年级)Text3.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(学期)Text4.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(课程名称)Text5.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(教材)Text6.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(任课老师)Text7.Text = Frm_UpdateGrean.
29、Adodc1.Recordset.Fields(课时)Text8.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(上课地点)Combo1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(课程性质)Combo2.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(考试性质)End SubPrivate Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, By
30、Val CallbackField As String, CallbackDate As Date)End SubPrivate Sub Form_Activate()Frm_FindGrean.Adodc1.RecordSource = strTiaoJianFrm_FindGrean.Adodc1.RefreshSet DataGrid1.DataSource = Frm_FindGrean.Adodc1End SubPrivate Sub Form_Load()Combo1.AddItem (必修)Combo1.AddItem (选修)Combo1.AddItem (自开)Combo2.
31、AddItem (考试)Combo2.AddItem (查考)Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Combo1.Text = Combo2.Text = End SubPrivate Sub Text1_Change()End SubPrivate Sub Text2_Change()End SubPrivate Sub Text8_Change()End Sub课程管理:课程查询(如:界面如图三)(图三)当输入查询类别、运
32、算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。代码如下:Dim sqlstr As StringPrivate Sub Combo1_Change()End SubPrivate Sub Combo2_Change()End SubPrivate Sub Combo4_Change()End SubPrivate Sub Combo5_Change()End SubPrivate Sub Combo7_Change()End SubPrivate Sub Command1_Click()Dim a As StringDim KCCX1
33、 As StringDim KCCX2 As StringDim str1 As StringDim str2 As StringIf Option3.Value = True Thena = Trim(Combo2)Select Case a Case = KCCX1 = & Combo1.Text & & Combo2.Text & & Trim(Text1) & Case like KCCX1 = Instr(1, & Combo1.Text & , & Trim(Text1.Text) & )0 End Select a = Trim(Combo4)Select Case a Case
34、 = KCCX2 = & Combo3.Text & & Combo4.Text & & Trim(Text2) & Case like KCCX2 = Instr(1, & Combo3.Text & , & Trim(Text2.Text) & )0 End Select If Option1.Value = True Then If KCCX1 = Then strTiaoJian = select * from 课程表 where & KCCX2 ElseIf KCCX2 = Then strTiaoJian = select * from 课程表 where & KCCX1 Else
35、 strTiaoJian = select * from 课程表 where & KCCX1 & and & KCCX2 End IfElseIf Option2.Value = True Then If KCCX1 = Then strTiaoJian = select * from 课程表 where & KCCX2 ElseIf KCCX2 = Then strTiaoJian = select * from 课程表 where & KCCX1 Else strTiaoJian = select * from 课程表 where & KCCX1 & or & KCCX2 End IfEl
36、se If KCCX1 = Then strTiaoJian = select * from 课程表 where & KCCX2 ElseIf KCCX2 = Then strTiaoJian = select * from 课程表 where & KCCX1 Else MsgBox 请选择连接方式!, vbOKOnly, 警告 Exit Sub End IfEnd If If (KCCX1 & KCCX2) = Then MsgBox 请输入查询类别!, vbOKOnly, 警告Exit SubElse Unload Me Frm_UpdateGrean.Show 1End IfEnd If
37、If Option4.Value = True Then If Val(Combo6) Val(Combo9) Then MsgBox 请正确选择年份!, vbOKOnly + vbExclamation, 信息提示 Combo6.SetFocus Exit Sub Else If Val(Combo6) = Val(Combo9) Then If Val(Combo7) Val(Combo10) Then MsgBox 请正确选择月份!, vbOKOnly + vbExclamation, 信息提示 Combo7.SetFocus Exit Sub Else If Val(Combo7) =
38、 Val(Combo10) Then If Val(Combo8) Val(Combo11) Then MsgBox 请正确选择日期!, vbOKOnly + vbExclamation, 信息提示 Combo8.SetFocus Exit Sub End If End If End If End If End If If Combo6.Text = Or Combo7.Text = Or Combo8.Text = Or Combo9.Text = Or Combo10.Text = Or Combo11.Text = Then MsgBox 请输入完整的日期, vbOKOnly, 警告 E
39、xit Sub End If str1 = Trim(Combo6) & - & Trim(Combo7) & - & Trim(Combo8) str2 = Trim(Combo9) & - & Trim(Combo10) & - & Trim(Combo11) str1 = Format(str1, yyyy-mm-dd) str2 = Format(str2, yyyy-mm-dd) If sqlstr = Then sqlstr = & Trim(Combo5.Text) & =# & Format(str1, yyyy-mm-dd) & # and & Trim(Combo5.Tex
40、t) & =# & Format(str1, yyyy-mm-dd) & # and & Trim(Combo5.Text) & = # & Format(str2, yyyy-mm-dd) & # End If If sqlstr = Then MsgBox 请先输入查找时间! Exit Sub End If strTiaoJian = select 专业,年级,学期,课程名称,教材,任课老师,课时,上课地点,课程性质,考试性质 from 课程表 where & sqlstr Unload Me Frm_UpdateGrean.Show 1End IfIf Option3.Value Tru
41、e And Option4.Value True Then MsgBox 请选择查询方式!, vbOKOnly, 警告 Exit SubEnd IfEnd SubPrivate Sub Command3_Click() Unload MeEnd SubPrivate Sub Form_Load()Dim i, j As IntegerFor i = 1999 To 2010 Combo6.AddItem i Combo9.AddItem iNext i Combo6.ListIndex = 0 Combo9.ListIndex = 0 For i = 1 To 12 Combo7.AddItem i Combo10.AddItem iNext i Combo7.ListIndex = 0 Combo10.ListIndex = 0For i = 1 To 31 Combo8.AddItem i Combo11.AddItem iNext i Combo8.ListIndex = 0 Combo11.ListIndex = 0Combo1.AddItem (专业)Combo1.AddItem (年级)Combo1.AddItem (课程名称)Combo1.AddItem (教材)Combo1.AddItem (