学生成绩分布统计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空航天大学
课程设计任务书
学院:航宇专业:飞行器制造工程班级:94030101
学号:2009040301009 题目:学生成绩分布统计
一、课程设计时间
2011年3月7日~11日(第1周),共计1周。
二、课程设计内容
学生数学期末成绩保存在文本文件或Access数据库的一个表中,数据内容包括:学号、姓名、数学成绩等。程序实现以下功能:信息录入、修改;按学号查询、按姓名查询;统计平均分、统计各分数段的人数等,分数段指不及格、及格、中等、良好、优秀5种成绩。
用户界面中的菜单至少应包括“数据维护”、“查询”、“统计”、“退出”4项。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提
供的模板。
四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
录
目录
一、需求分析 (4)
二、设计分析 (5)
三、关键技术 (7)
四、总结 (15)
五、完整的源程序 (16)
六、参考文献 (19)
一、需求分析
学生数学期末成绩保存在文本文件或Access 数据库的一个表中,数据内容包括:学号、姓名、数学成绩等。程序实现以下功能:信息录入、修改;按学号查询、按姓名查询;统计平均分、统计各分数段的人数等,分数段指不及格、及格、中等、良好、优秀5种成绩。。
二、设计分析
(1)基本原理:建立程序设计与数据库的连接,用SQL语句在数据库中查找,添加和更改数据。
(2)总体设计:
图1 总体设计
(3)详细设计:
图2详细设计
(4)数据库设计:
数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。
1)学生数学期末成绩表(rsb.dbf)
学生数学期末成绩表(rsb.dbf)用于记录学号、姓名、班级等信息,其逻辑结构如表1所示。
表1 学生基本信息表
三、关键技术
(1)建立与数据库的连接代码如下。
Private Sub Form_Load()
Dim mpath$, mlink$
mpath = App.Path ' 获取程序所在的路径
If Right(mpath, 1) <> "\" Then mpath = mpath + "\" ' 判断是否为子目录
' 以下两行代码可合成一句,mlink存放ConnectionString属性的设置值
mlink = "Provider=Microsoft.Jet.OLEDB.4.0;" ' 指定提供者
mlink = mlink + "Data Source=" + mpath + "db2.mdb" ' 在数据库文件名前插入路径
Adodc1.ConnectionString = mlink ' 设置连接属性
mandType = adCmdUnknown ' 指定记录集命令类型(可在设计时指定)
Adodc1.RecordSource = " Select * from 学生期末数学成绩"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
End Sub
End Sub
(3)查询经营情况是SQL语句在数据库中按学号查找学生信息。
Private Sub S5_Click()
I f T e x t7>""T h e n
'设置数据源
Adodc1.RecordSource = "select * from 学生期末
数学成绩where 学号= '" & T ext7 & "'"
Else
Adodc1.RecordSource = "select * from 学生期末数学成绩" '未指定专业
End If
Adodc1.Refresh
'必须用Refresh方法激活
窗体-查询:
图3 窗体-查询
(4)查询经营情况是SQL语句在数据库中按姓名查找学生信息
Private Sub S6_Click()
If T ext7 > "" Then '设置数据源
Adodc1.RecordSource = "select * from 学生期末数学成绩where 姓名= '" & T ext7 & "'"
Else
Adodc1.RecordSource = "select * from 学生期末数学成绩" '未指定专业
End If
Adodc1.Refresh '必须用Refresh方法激
End Sub
窗体-查询
图4窗体-查询
(5)录入学生信息
程序段如下:
Private Sub S1_Click()
Adodc1.Recordset.AddNew
End Sub
窗体-录入信息:
图5 窗体-录入信息
(4)删除学生信息。
程序段如下:
Private Sub S3_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End Sub
窗体-删除信息: