课程设计报告书.docx
《课程设计报告书.docx》由会员分享,可在线阅读,更多相关《课程设计报告书.docx(27页珍藏版)》请在冰豆网上搜索。
课程设计报告书
小型学生成绩管理系统
单位机械工程分院(系)
专业机械设计制造及其自动化
学号
学生姓名
指导教师
完成日期2009年9月26日
摘要
管理系统是一个学校不可缺少的部分,它的内容对于学校管理者来说是至关重要,所以学生成绩信息管理系统应该能够为学校管理者提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理学生信息,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:
更新迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本文介绍了在VisualBasic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析某一学校学生成绩信息管理的不足,创建了一套行之有效的计算机管理学生的方案。
文章介绍了学生成绩信息管理系统的系统分析部分,包括需求性分析、可行性分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。
关键词:
学生成绩管理系统、学生信息管理、VisualBasic应用。
目录
第一章选题的意义4
第二章系统功能需求分析5
2.1系统概述5
2.2系统的构成5
2.3各模块功能6
2.4系统的运行环境6
第三章系统设计6
3.1总体结构设计6
3.2数据库设计7
第四章系统实现8
4.1系统登录模块的设计与实现8
4.2成绩维护模块的设计与实现9
4.3学生成绩查询模块的设计与实现:
13
4.4学生成绩统计15
第五章总结21
5.1总结21
5.2存在的主要问题22
致谢词23
参考文献24
第一章选题的意义
现在我国的一些院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。
在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。
如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。
学生成绩管理系统是为本校开发的,本系统所采用的语言是VisualBasic语言,通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。
我这次选的课程设计题目是小型学生成绩管理系统,该课程设计题目主要围绕学生成绩信息录入、管理与维护展开的,通过对系统的设置将各方面的信息联系在一起,使用户对学生成绩的信息一目了然,能够简洁、迅速的浏览信息,查询信息,快速的找到自己想要的信息。
本次课程设计应达到的目的是通过对该题目的设计,掌握软件开发过程的问题分析,系统设计,程序编码,测试等基本方法和技能;掌握数据库的基础知识,利用数据库管理器进行数据库设计的方法,使用Data空间访问数据的方法和掌握利用VB开发数据库系统的方法。
通过这次课程设计,我对VB课程设计有了更深入的了解。
由于以前只是一些抽象的理论课程,所以对一些具体的课程设计没有具体的接触,对一些语言功能也不是很了解,没有独立完成一次真正的课程设计。
通过这次实际操作,我收获很大,对VB的认识也不仅仅停留在以前的层面上,认识到自身存在很大的不足,对VB的认识还需要更深入的了解,进行更详尽的学习,并且需要多次的实践练习。
第二章系统功能需求分析
2.1系统概述
本次创建的学生成绩管理系统能够方便、迅速的实现有关学生成绩信息的录入、查询、统计和维护。
本系统由四部分组成:
用户的登录、学生成绩信息的录入、学生信息的维护和学生成绩的查询和统计。
利用该系统,可以对学生的信息进行编辑、添加、删除和查询,可以快捷灵活的查找信息,利于大量信息的输入,节约时间。
2.2系统的构成
2.3各模块功能
(1)用户登录
通过输入用户名和密码登录学生信息管理系统。
(2)学生成绩的维护
能够输入学生信息,实现对数据的添加、删除、修改功能。
基础数据包括用户信息的添加和修改,学生高数、英语、计算机成绩的添加和修改,添加学生密码的录入,实现管理员管理。
(3)学生成绩的查询
基础数据包括学生基本信息和其学科成绩信息的记录,可以按学生名称和按学生学号进行查询和浏览。
(4)学生成绩的统计
能够根据数据库中的学生成绩信息进行统计,可以统计男生成绩、统计女生成绩、统计数学不及格人数、统计英语不及格人数、统计计算机不及格人和平均成绩由高到低排列,并进行浏览。
2.4系统的运行环境
VisualBasic6.0,WindowXP,Window2003等。
第三章系统设计
3.1总体结构设计
(1)建立“小型学生成绩管理系统”文件夹,并设置其为默认文件夹,系统产生的文件均保存到其中。
(2)建立“学生库”项目。
(3)在“学生库”项目中建立数据库,在数据库中建立数据库表—“成绩表”。
(4)在“小型学生成绩管理系统”文件夹中建立“用户登录”和“学生成绩信息”两个窗体。
(5)最终形成名为“小型学生成绩管理系统”的可执行性文件。
3.2数据库设计
数据库是指存放数据的仓库,即与一定的组织方式存储在一起、能够为多个用户共享且独立于应用程序的相关联的数据集合
数据库是一个表的集合,本次所做的系统只需要一个数据库,数据库设计是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度等。
本次系统需设置的表如下:
(1)学生基本信息表结构如下:
字段说明
字段名
字段类型
字段长度
学号
ID
Text
8
姓名
Name
Text
性别
Sex
Text
1
年龄
Age
Integer
英语成绩
English
Single
高数成绩
Maths
Single
计算机成绩
Computer
Single
平均分
average
Single
用户名
user
Text
密码
password
Text
(2)数据库中“成绩表”学生信息初始化情况如下:
学号
姓名
性别
年龄
英语成绩
高数成绩
计算机成绩
平均分
用户名
密码
20080601
莫嘉
女
19
89
78
77
81.33
莫嘉
10
20080602
林峰
男
20
58
69
54
60.33
林峰
11
20080603
李静
女
19
68
89
81
79.33
李静
12
20080604
贺伟
男
19
88
91
86
88.33
贺伟
13
20080605
韩羽轩
男
19
47
73
76
65.33
韩羽轩
14
20080606
程敬南
男
20
77
84
67
76
程敬南
15
20080607
杨茜
女
19
68
58
82
69.33
杨茜
16
20080608
留白
女
19
88
85
90
87.67
留白
17
20080609
张扬
男
19
74
68
78
73.33
张扬
18
20080610
赵默笙
女
19
67
86
79
77.33
赵默笙
19
第四章系统实现
4.1系统登录模块的设计与实现
登录模块的启动在封面表单运行之后,正确输入密码就可以登录,程序界面如下:
当密码或用户名错误,显示MsgBox,提示用户名或密码错误,并从新登录:
登录代码如下:
PrivateSubForm1_Load()
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndSub
PrivateSubCommand1_Click()
U=Trim(Text1.Text)
P=Trim(Text2.Text)
IfU=""Then
MsgBox"输入用户名"
Text1.SetFocus
EndIf
IfP=""Then
MsgBox"输入密码"
Text2.SetFocus
EndIf
Data1.Recordset.FindFirst"User='"&U&"'andPassword='"&P&"'"
IfData1.Recordset.NoMatchThen
DimI
I=MsgBox("用户名或密码错误",vbOKOnly+vbOKCancel,"错误提示")
Text1.Text=""
Text2.Text=""
Text1.SetFocus
Else
Form1.Hide
Form2.Show
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndSub
4.2成绩维护模块的设计与实现
(1)学生成绩维护界面:
单击不同按钮对学生信息进行不同操作:
单击“添加”按钮,添加学生信息,此时此按钮为“确定”;
单击“修改”按钮,修改学生信息,此时此按钮为“确定”;
单击“删除”按钮,删除当前学生记录,并提示。
当添加信息不完整时:
添加成功:
信息修改后提示:
删除提示:
删除成功:
(2)成绩维护设计代码如下:
PrivateSubCmdadd_Click()
Cmddel.Enabled=NotCmddel.Enabled
Cmdedit.Enabled=NotCmdedit.Enabled
IfCmdadd.Caption="确定"Then
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrCombo1.Text=""OrText9.Text=""OrText10.Text=""Then
MsgBox"字段不能为空"
Cmddel.Enabled=False
Cmdedit.Enabled=False
Text1.SetFocus
Else
Data2.Recordset.Update
Cmdadd.Caption="添加"
Data2.Visible=True
Text1.Locked=True:
Text2.Locked=True:
Text3.Locked=True:
Text4.Locked=True:
Text5.Locked=True:
Text6.Locked=True:
Text7.Locked=True:
Text9.Locked=True:
Text10.Locked=True:
Combo2.Locked=True
MsgBox"添加成功!
",vbExclamation,"信息提示"
EndIf
Else
Text1.Locked=False:
Text2.Locked=False:
Text3.Locked=False:
Text4.Locked=False:
Text5.Locked=False:
Text6.Locked=False:
Text7.Locked=False:
Text9.Locked=False:
Text10.Locked=False:
Combo2.Locked=False
Cmdadd.Caption="确定"
Data2.Recordset.AddNew
Data2.Visible=False
Text1.SetFocus
EndIf
EndSub
PrivateSubCmdcancel_Click()
Cmdadd.Caption="添加"
Cmdedit.Caption="修改"
Cmdadd.Enabled=True
Cmdedit.Enabled=True
Cmddel.Enabled=True
Text1.Locked=True:
Text2.Locked=True:
Text3.Locked=True:
Text4.Locked=True:
Text5.Locked=True:
Text6.Locked=True:
Text7.Locked=True:
Text9.Locked=True:
Text10.Locked=True:
Combo2.Locked=True
Data2.UpdateControls
Data2.Recordset.MoveNext
IfData2.Recordset.EOFThenData2.Recordset.MoveFirst
Data2.Visible=True
EndSub
PrivateSubCmddel_Click()
DimmsAsInteger
ms=MsgBox("是否删除当前记录?
",4+32+256,"信息提示")
Ifms=vbYesThen
Data2.Recordset.Delete
MsgBox"成功删除!
",vbExclamation,"信息提示"
Data2.Recordset.MoveNext
IfData2.Recordset.EOFThenData2.Recordset.MoveLast
EndIf
EndSub
PrivateSubCmdedit_Click()
Cmdadd.Enabled=NotCmdadd.Enabled
Cmddel.Enabled=NotCmddel.Enabled
IfCmdedit.Caption="确认"Then
Cmdedit.Caption="修改"
Data2.Recordset.Edit
Data2.Recordset.Update
Data2.Visible=True
MsgBox"修改成功!
",vbExclamation,"信息提示"
Text1.SetFocus
Else
Cmdedit.Caption="确认"
Data2.Visible=False
Text1.Locked=False:
Text2.Locked=False:
Text3.Locked=False:
Text4.Locked=False:
Text5.Locked=False:
Text6.Locked=False:
Text7.Locked=False:
Text9.Locked=False:
Text10.Locked=False:
Combo2.Locked=False
EndIf
EndSub
PrivateSubText5_Change()
IfText5.Text<>""AndText6.Text<>""AndText7.Text<>""Then
Text3.Text=(Val(Text5)+Val(Text6)+Val(Text7))/3
EndIf
EndSub
PrivateSubText7_Change()
IfText6.Text<>""AndText7.Text<>""AndText5.Text<>""Then
Text3.Text=(Val(Text5)+Val(Text6)+Val(Text7))/3
EndIf
EndSub
PrivateSubText6_Change()
IfText6.Text<>""AndText7.Text<>""AndText5.Text<>""Then
Text3.Text=(Val(Text5)+Val(Text6)+Val(Text7))/3
EndIf
EndSub
4.3学生成绩查询模块的设计与实现:
(1)查询界面如下:
在第一个选项卡中添加一个MSFlexGrid控件、一个下拉列表框、一个命令按钮,一个文本框,界面如下图所示:
在下拉列表框选择相应条件,输入查询信息,点击查询按钮即可。
(2)成绩查询代码设计如下:
PrivateSubCommand1_Click()
DimcxAsString
IfText8.Text<>""Then
IfCombo1.Text="按姓名"Then
cx="where成绩表.name='"&Text8.Text&"'"
Else
cx="where成绩表.ID='"&Text8.Text&"'"
EndIf
Else:
cx=""'如果条件为空,则显示所有记录
EndIf
Data1.RecordSource="select*from成绩表"&cx
Data1.Refresh
IfData1.Recordset.EOFThen
MsgBox("无匹配记录")
Text8.Text=""
Text8.SetFocus
Data1.RecordSource="select*from成绩表"&""
Data1.Refresh
EndIf
EndSub
4.4学生成绩统计
(1)程序界面设计
在第三个选项卡中添加一个MSFlexGrid控件、一个下拉列表框、一个命令按钮,界面如图4.4-1所示,控件的属性设置如下表所示:
控件名
控件属性
属性值
MSFlexGrid
RecordSource
Data3
Combo3
Command2
Caption
统计
Frame2
Caption
统计条件
图4.4-1
(2)学生成绩统计代码设计如下:
PrivateSubForm_Load()
Combo1.AddItem("按姓名")
Combo1.AddItem("按学号")
Combo2.AddItem("男")
Combo2.AddItem("女")
Combo3.AddItem("统计男生成绩")
Combo3.AddItem("统计女生成绩")
Combo3.AddItem("统计数学不及格人数")
Combo3.AddItem("统计英语不及格人数")
Combo3.AddItem("统计计算机不及格人数")
Combo3.AddItem("平均成绩由高到低排列")
Combo3.AddItem("统计不及格人数")
Form2.Picture=LoadPicture()
EndSub
PrivateSubCommand2_Click()
IfCombo3.Text="统计男生成绩"Then
Data3.RecordSource="select*from成绩表wheresex='男'"
Data3.Refresh
ElseIfCombo3.Text="统计女生成绩"Then
Data3.RecordSource="select*from成绩表wheresex='女'"
Data3.Refresh
ElseIfCombo3.Text="统计数学不及格人数"Then
Data3.RecordSource="select*from成绩表wheremaths<60ORDERBYmathsDESC"
Data3.Refresh
ElseIfCombo3.Text="统计英语不及格人数"Then
Data3.RecordSource="select*from成绩表whereenglish<60ORDERBYenglishDESC"
Data3.Refresh
ElseIfCombo3.Text="统计计算机不及格人数"Then
Data3.RecordSource="select*from成绩表wherecomputer<60ORDERBYcomputerDESC"
Data3.Refresh
ElseIfCombo3.Text="统计不及格人数"Then
Data3.RecordSource="select*from成绩表whereenglish<60ormaths<60orcomputer<60"
Data3.Refresh
ElseIfCombo3.Text="平均成绩由高到低排列"Then
Data3.RecordSource="select*from成绩表ORDERBYaverageDESC"
Data3.Refresh
EndIf
EndSub
运行程序,选择统计条件(统计男生成绩、统计女生成绩、统计数学不及格人数、统计英语不及格人数、统计计算机不及格人数、平均成绩由高到低排列),单击“统计”按钮,可以实现学生成绩信息的统计功能。
运行结果如图
(1)男生成绩统计界面如下:
(2)女生成绩统计界面如下:
(3)英语不及格人数统计界面如下:
(4)计算机不及格人数统计界面如下:
(5)不及格人数统计界面如下:
(6)平均分由高到低排列统计界面如下:
第五章总结
5.1总结
VB课程设计的实习任务很快就结束了,回想这十天的实习过程,真是