学生成绩管理.docx
- 文档编号:26701385
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:13
- 大小:91.51KB
学生成绩管理.docx
《学生成绩管理.docx》由会员分享,可在线阅读,更多相关《学生成绩管理.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩管理
沈阳航空航天大学
课程设计
学号2009040301020
班级94030101
姓名潘明金
指导教师刘学平
2011年3月18日
沈阳航空航天大学
课程设计任务书
学院:
航宇专业:
飞行器制造与工程班级:
94030101
学号:
2009040301020题目:
学生成绩管理
一、课程设计时间
2011年3月7日~11日(第1周),共计1周。
二、课程设计内容
某个系(多个班)一个学期的期末成绩保存在文本文件或Access数据库中,数据内容至少包括:
班级、学号、姓名、英语成绩、高数成绩、计算机成绩等。
程序实现以下功能:
信息录入、修改;按学号查询、按姓名查询;统计各个班的各科平均分。
用户界面中的菜单至少应包括“数据维护”、“查询”、“统计”、“退出”4项。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、需求分析4
二、设计分析4
三、关键技术6
四、总结11
五、完整的源程序12
六、参考文献15
一、需求分析
模拟学校学生成绩管理,主要指“学生信息维护”“学生信息查询”和“统计”3种业务。
要求:
1在Access中创建student表,以“学生信息”及“各科成绩”等2方面信息。
此表的结构应如下定义:
学生姓名,学号,班级,英语成绩,计算机成绩,高数成绩
2能够随时显示学生信息。
③能够随时查询学生信息。
④能够随时统计各班及各科平均成绩。
二、设计分析
(1)基本原理:
建立程序设计与数据库的连接,用SQL语句在数据库中查找,添加和更改数据。
(2)总体设计:
图1总体设计
(3)详细设计:
图1详细设计
(4)数据库设计:
数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。
本系统的数据库包括1个表,即学生成绩表。
1)学生基本信息表student
学生信息表:
serial(学号)字段为该表的主关键字,唯一地标识了一个学生的记录,class(班级)字段为表的外部关键字,与class表中的name字段相关联。
字段名称
内容
类型
长度
备注
Serial
学号
文本
12
主关键字
Name
姓名
文本
10
Class
所属班级
文本
7
2)学生成绩表(student.db1)
学生基成绩表(student.db1)用于成绩的基本等信息,包括学号、课程编号、课程名称、成绩等信息,其逻辑结构如表2所示。
字段名称
内容
类型
长度
备注
Serial
课程编号
文本
50
主关键字
Name
课程名称
文本
50
Score
分数
数字
表示此科目的满分值
三、关键技术
(1)建立与数据库的连接代码如下。
PrivateSubForm_Load()
Dimmpath$,mlink$
mpath=App.Path'获取程序所在的路径
IfRight(mpath,1)<>"\"Thenmpath=mpath+"\"'判断是否为子目录
mlink="Provider=Microsoft.Jet.OLEDB.4.0;"'指定提供者
mlink=mlink+"DataSource="+mpath+"db1.mdb"'在数据库文件名前插入路径
Adodc1.ConnectionString=mlink'设置连接属性
Adodc1.CommandType=adCmdUnknown'指定记录集命令类型(可在设计时指定)
Adodc1.RecordSource="Select*fromstudent1"
Adodc1.Refresh
SetDataGrid1.DataSource=Adodc1
EndSub
(2)查询经营情况是SQL语句在数据库中查找学生信息。
Select<字段名表>From<表名>Where<条件>
程序段如下:
PrivateSubvbaxhcx_Click()
DimaAsString
a=InputBox("请输入学号")
Adodc1.RecordSource="Select*fromstudent1where学号='"&a&"'"'按学号查询
Adodc1.Refresh
EndSub
PrivateSubvbaxmcx_Click()
DimbAsString
b=InputBox("请输入姓名")
Adodc1.RecordSource="Select*fromstudent1where姓名='"&b&"'"'按姓名查询
Adodc1.Refresh
EndSub
窗体-查询:
图1窗体-查询
图2窗体-查询
(3)学生信息录入。
Update<表名>Set<字段>=<表达式>[,<字段>=<表达式>]Where<条件>
程序段如下:
PrivateSubCommand1_Click()
Form1.Adodc1.Recordset.AddNew
Form1.Adodc1.Recordset.Fields("班级")=Text1
Form1.Adodc1.Recordset.Fields("学号")=Text2
Form1.Adodc1.Recordset.Fields("姓名")=Text3
Form1.Adodc1.Recordset.Fields("英语成绩")=Text4
Form1.Adodc1.Recordset.Fields("高数成绩")=Text5
Form1.Adodc1.Recordset.Fields("计算机成绩")=Text6
Form1.Adodc1.Recordset.Update
Form2.Hide
Form1.Show
EndSub
PrivateSubCommand2_Click()
Form2.Hide
Form1.Show
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
EndSub
窗体-学生信息录入:
图3窗体-学生信息录入
(4)统计学生各科平均成绩。
Select<字段>,Avg<科目>As平均成绩from<表名>
程序段如下:
PrivateSubvbjsjpjcj_Click()
Adodc1.RecordSource="Select班级,avg(英语成绩)As英语平均成绩fromstudent1groupby班级"'统计英语平均成绩
Adodc1.Refresh
EndSub
窗体-统计平均成绩:
图4窗体-各班平均成绩
四、总结
在软件的编写过程中,我充分体会了软件编程工作者的辛苦,因为每一个细微的细节都必须十分的注意,如果稍有不慎,就会全盘皆输,而且往往很多的时候,程序我自己觉得非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。
在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常的漂亮,总希望自己的软件也非常的完善,但是,经过这段时间的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验,而这个方面又是我的弱项,因此,在朋友的帮助下,我终于认清自己的不足及劣势,不要贪图大而全,只要尽我所能,编制一个实用简单的软件也是件很不容易的事情。
在反反复复的学习及不耻下问之下,我的辛勤努力有了汇报,终于做出了一个简单的软件,虽然这个软件的功能非常的简单,而且我想,在实际的运用中,肯定会有所不足,因为学生成绩管理工作的内容非常的丰富,我涉及到的仅仅是学生管理的一部分简单内容,离实际的客户需求肯定还有一定的差距。
但是,它毕竟代表了我一周辛勤的结晶。
由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不够醒目等问题,我会在以后工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。
在本系统的设计过程和论文编写过程中,很多老师、同学和朋友都给与了我许多无私的帮助,在这里,我向这些无私帮助我的人表示衷心的感谢。
五、完整的源程序
OptionExplicit
PrivateSubForm_Load()
Dimmpath$,mlink$
mpath=App.Path'获取程序所在的路径
IfRight(mpath,1)<>"\"Thenmpath=mpath+"\"'判断是否为子目录
mlink="Provider=Microsoft.Jet.OLEDB.4.0;"'指定提供者
mlink=mlink+"DataSource="+mpath+"db1.mdb"'在数据库文件名前插入路径
Adodc1.ConnectionString=mlink'设置连接属性
Adodc1.CommandType=adCmdUnknown'指定记录集命令类型(可在设计时指定)
Adodc1.RecordSource="Select*fromstudent1"
Adodc1.Refresh
SetDataGrid1.DataSource=Adodc1
EndSub
PrivateSubvbaxhcx_Click()
DimaAsString
a=InputBox("请输入学号")
Adodc1.RecordSource="Select*fromstudent1where学号='"&a&"'"'按学号查询
Adodc1.Refresh'激活
EndSub
PrivateSubvbaxmcx_Click()
DimbAsString
b=InputBox("请输入姓名")
Adodc1.RecordSource="Select*fromstudent1where姓名='"&b&"'"'按姓名查询
Adodc1.Refresh
EndSub
PrivateSubvbgspjcj_Click()
Adodc1.RecordSource="Select班级,avg(高数成绩)As高数平均成绩fromstudent1groupby班级"'统计高数平均成绩
Adodc1.Refresh
EndSub
PrivateSubvbjsjpjcj_Click()
Adodc1.RecordSource="Select班级,avg(英语成绩)As英语平均成绩fromstudent1groupby班级"'统计英语平均成绩
Adodc1.Refresh
EndSub
PrivateSubvbsc_Click()
ask=MsgBox("是否删除?
",vbYesNo)
Ifask=6Then
Adodc1.Recordset.Delete'删除
Adodc1.Recordset.MoveNext'移动记录指针刷新显示屏
EndIf
EndSub
PrivateSubvbyypjcj_Click()
Adodc1.RecordSource="Select班级,avg(计算机成绩)As计算机平均成绩fromstudent1groupby班级"'统计计算机平均成绩
Adodc1.Refresh
EndSub
PrivateSubvbtq_Click()
End'结束运行
EndSub
PrivateSubCommand1_Click()
Form1.Adodc1.Recordset.AddNew
Form1.Adodc1.Recordset.Fields("班级")=Text1
Form1.Adodc1.Recordset.Fields("学号")=Text2
Form1.Adodc1.Recordset.Fields("姓名")=Text3
Form1.Adodc1.Recordset.Fields("英语成绩")=Text4
Form1.Adodc1.Recordset.Fields("高数成绩")=Text5
Form1.Adodc1.Recordset.Fields("计算机成绩")=Text6
Form1.Adodc1.Recordset.Update
Form2.Hide
Form1.Show
EndSub
PrivateSubCommand2_Click()
Form2.Hide
Form1.Show
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
EndSub
六、参考文献
1、《VisualBasic6.0数据库开发指南》王福成、周铁柱、黄淼云等编著清华大学出版社2000年6月第一版
2、《数据库设计与编程实例详解》电子工业出版社2001年02月第一版
3、《VisualBasic程序设计教程》高等教育出版社2007年3月第3版
4、《VB.NET高级编程》康博译清华大学出版社2002年03月第一版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 管理
![提示](https://static.bdocx.com/images/bang_tan.gif)