




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用软件实践课程设计(2012/2013-2分散) 课程名称:学生成绩管理系统 班级: 学号: 姓名: 指导老师:2013年3月目 录一、题目:3 学生成绩管理系统3二、目的和要求:3三、需求分析:3四、数据分析与建模:4 数据分析4 E-R图4 系统流程图6五、数据库建立:6 学生基本信息表6 登入表7六、数据库应用开发与运行:7 登入界面7 密码修改界面9 学生基本信息管理界面10 学生基本信息修改界面22 学生成绩管理界面24七、结果分析、结论与体会:33八、参考文献及资料:33一、题目: 学生成绩管理系统二、目的和要求:1掌握软件工程的规范掌握一般应用软件开发的基本过程、基本技术,为以后的毕业设计奠定基础。2掌握关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。3培养把所学知识运用到具体对象,理解面向对象编程理论,并能求出解决方案的能力。 运用关系型数据库管理系统,实现学生成绩管理系统开发。具体功能如下:1、学生基本信息设置:包括专业、班级、姓名、学号等;2、学生课程名称和成绩录入;3、学生基本信息和课程信息的查询及增删改;4、成绩排名及相应绩点分计算。三、需求分析:目前计算机管理在日常生活中的地位变得越来越重要。它能够代替人做各种重复、繁琐的劳动,并且拥有操作简单、可信度好、不易出错等优点,大大减少了不必要的人力消耗,提高个人的工作效率。随着学校的规模不断扩大,学生人数急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量需要有学生管理系统来提供学生管理工作的效率。通过这样的系统可以做到信息的规范管理,科学统计和快速查询,修改,增加,删除等,从而减少管理方面的工作量。实现学生信息关系的系统化,规范化,自动化,用计算机对学生各种信息进行日常管理。学生信息查询是每个学校必须面临的问题,所以,如何开发一个应用简单、界面友好、容易操作、数据安全性好的管理系统就成为非常重要的技术问题。四、数据分析与建模:数据分析数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。数据库需求分析用户的需求具体体现在各种信息的提供、保证、更新和查询,这就要求数据库结构能够充分满足各种信息的输出和输入。针对一般学生信息管理系统的要求,通过对学生学习过程的内容和数据流程分析,设计如下的数据项和数据结构:1、学生基本信息包括的数据项有:学生学号、学生姓名、性别、班级、专业、政治面貌。2、学生成绩信息包括数据项有:学生学号、课程号、考试分数、绩点、学分。 3、学生登入信息有:学号、密码。根据上面的数据结构、数据项和数据流程,进行数据库设计E-R图 系统流程图五、数据库建立: 学生基本信息表字段名类型长度允许空主键学号char15否是姓名char10否否专业char10是否班级char4是否性别char10是否政治面貌char10是否 登入表字段名类型长度允许空主键学号char15否是密码char10否否 成绩表字段名类型长度允许空主键学号char15否是课程号int4否是成绩float8是否绩点float8是否所得学分int4是否六、数据库应用开发与运行:登入界面登入界面代码Private Sub Cmdcancel_Click() Dim myVal As String Beep myVal = MsgBox(确认退出系统吗?, vbYesNo + vbQuestion, 退出) If myVal = vbYes Then Unload Me Else txtname.Text = txtpwd.Text = txtname.SetFocus End IfEnd SubPrivate Sub cmdOK_Click() If txtname.Text Then Username0.RecordSource = select * from username where 学号= + Trim(txtname.Text) + Username0.Refresh On Error GoTo errname 对不是合法用户的错误捕捉 If Trim(txtpwd.Text) = Trim(username0.Recordset.Fields(密码) Then Valming = Trim(txtname.Text) 记录登陆用户用户名 Load Form2 Form2.Show Unload Me Exit Sub Else MsgBox 您的用户名或密码有误,请重行输入!, vbExclamation + vbDefaultButton1, 错误 txtname.Text = txtpwd.Text = txtname.SetFocus Exit Sub End If End Iferrname: MsgBox 抱歉您的用户名不存在!, vbInformation + vbOKOnly, 抱歉 txtname.Text = txtname.SetFocus Exit SubEnd Sub详细功能:当输入错误学号、没任何信息输入的时候,系统会提示“抱歉您的用户名不存在!”,并且清空当前的输入。只有输入正确的账号和密码,且和数据库中预存的,能够对应上才能够登入学生管理系统。点击退出则退出该系统。点击修改,对学生的密码进行修改,学号不能被修改。密码修改界面密码修改界面“确定按钮”代码Private Sub Command1_Click() If Txtnum.Text Then password.RecordSource = select * from username where 学号= + Trim(Txtnum.Text) + password.Refresh 对不是合法用户的错误捕捉 If Not (password.Recordset.BOF) Then If Trim(Txtpassword1.Text) = Or Trim(Txtpassword2.Text) = Then MsgBox 密码为空或输入不相等,请重新输入密码!, vbInformation + vbOKOnly, 抱歉 Txtpassword1.Text = Txtpassword2.Text = Txtpassword1.SetFocus ElseIf Txtpassword1.Text Txtpassword2.Text Then MsgBox 两次密码输入有误,请重行输入!, vbExclamation + vbDefaultButton1, 错误 Txtpassword1.Text = Txtpassword2.Text = Txtpassword1.SetFocus ElseIf Txtpassword1.Text = Txtpassword2.Text Then password.Recordset.Fields(密码) = Trim(Txtpassword2.Text) password.Recordset.Update password.Refresh MsgBox 密码修改成功!, vbInformation + vbOKOnly, 提示 End If Else: MsgBox 抱歉您的学号不存在!, vbInformation + vbOKOnly, 抱歉 Txtnum.Text = Txtpassword1.Text = Txtpassword2.Text = Txtnum.SetFocus End IfElse: MsgBox 抱歉您的输入的学号为空!, vbInformation + vbOKOnly, 抱歉 Txtnum.Text = Txtpassword1.Text = Txtpassword2.Text = Txtnum.SetFocusEnd If End Sub 详细功能:在此界面输入正确的学号,然后再输入两次密码,若两次密码输入相同则密码修改成功。不相同则进行报错,密码修改不成功!学生基本信息管理界面界面代码“添加记录”按钮代码Private Sub Cmdadd_Click() Txtnum.DataField = 取消与数据库的关联 txtname.DataField = Txtmag.DataField = Txtclass.DataField = Txtsex.DataField = Txtpolity.DataField = Txtnum.SetFocus Txtnum.Text = 清空文本框,用于添加学生基本信息 txtname.Text = Txtmag.Text = Txtclass.Text = Txtsex.Text = Txtpolity.Text = CmdAdd.Enabled = False 对相应按键是否可用进行选择 Cmddel.Enabled = False Cmdnext.Enabled = False CmdPrev.Enabled = False Cmdsure.Enabled = True cmdcancel.Enabled = True txtname.Locked = False 对文本框进行解锁,用于输入学生的基本信息 Txtclass.Locked = False Txtnum.Locked = False Txtmag.Locked = False Txtsex.Locked = False Txtpolity.Locked = FalseEnd Sub“确定添加”按钮代码Private Sub Cmdsure_Click()Cmdnext.Enabled = False 点击确定添加按钮之后,相应的按钮被锁住和解锁CmdPrev.Enabled = FalseCmddel.Enabled = Falsecmdcancel.Enabled = TrueIf Txtnum.Text And txtname.Text Then 判断“Txtnum.Text”和“Txtname.Text”输入是否为空,因为数据库中设置属性为不允许为空 search.RecordSource = select * from information where 学号= + Trim(Txtnum.Text) + search.Refresh If search.Recordset.BOF Then 判断添加的学生学号是否和数据库中的学号有重复,没有则顺序执行 search.Recordset.AddNew 在“information”学生基本信息表中增加相应的学生信息,除学号、姓名外其它字段允许为空 search.Recordset.Fields(学号) = Txtnum.Text search.Recordset.Fields(姓名) = Trim(txtname.Text) search.Recordset.Fields(专业) = Trim(Txtmag.Text) search.Recordset.Fields(班级) = Trim(Txtclass.Text) search.Recordset.Fields(性别) = Trim(Txtsex.Text) search.Recordset.Fields(政治面貌) = Trim(Txtpolity.Text) search.Recordset.Update search.Refresh password.Refresh 增加用户表中学生学号,初始密码是123456 password.Recordset.AddNew password.Recordset.Fields(学号) = Trim(Txtnum.Text) password.Recordset.Update password.Refresh chiness0.Refresh 增加相应成绩表中学生信息 chiness0.Recordset.AddNew chiness0.Recordset.Fields(学号) = Trim(Txtnum.Text) chiness0.Recordset.Fields(成绩) = 0 chiness0.Recordset.Update chiness0.Refresh english0.Refresh english0.Recordset.AddNew english0.Recordset.Fields(学号) = Trim(Txtnum.Text) english0.Recordset.Fields(成绩) = 0 english0.Recordset.Update english0.Refresh physics0.Refresh physics0.Recordset.AddNew physics0.Recordset.Fields(学号) = Trim(Txtnum.Text) physics0.Recordset.Fields(成绩) = 0 physics0.Recordset.Update physics0.Refresh photoshop0.Refresh photoshop0.Recordset.AddNew photoshop0.Recordset.Fields(学号) = Trim(Txtnum.Text) photoshop0.Recordset.Fields(成绩) = 0 photoshop0.Recordset.Update photoshop0.Refresh SQL0.Refresh SQL0.Recordset.AddNew SQL0.Recordset.Fields(学号) = Trim(Txtnum.Text) SQL0.Recordset.Fields(成绩) = 0 SQL0.Recordset.Update SQL0.Refresh result0.Refresh result0.Recordset.AddNew result0.Recordset.Fields(学号) = Trim(Txtnum.Text) result0.Recordset.Fields(总成绩) = 0 result0.Recordset.Update result0.Refresh Txtnum.DataField = 学号 本文本框和学生的基本信息表中相应的字段连接起来 txtname.DataField = 姓名 Txtmag.DataField = 专业 Txtclass.DataField = 班级 Txtsex.DataField = 性别 Txtpolity.DataField = 政治面貌 Cmdnext.Enabled = True 对按键是否可用进行选择 CmdPrev.Enabled = True Cmddel.Enabled = True cmdcancel.Enabled = False Cmdsure.Enabled = False CmdAdd.Enabled = True txtname.Locked = True 确定添加后对文本框进行锁住,防止误操作 Txtclass.Locked = True Txtnum.Locked = True Txtmag.Locked = True Txtsex.Locked = True Txtpolity.Locked = True MsgBox 学生信息添加成功!, vbInformation + vbOKOnly, 提示 提示添加成功的对话框 student.Refresh search.Refresh Else: MsgBox 学号有重复,请重新输入!, vbInformation + vbOKOnly, 抱歉 Txtnum.Text = Txtnum.SetFocus End IfElse: MsgBox 学号和姓名都不能为空!, vbInformation + vbOKOnly, 抱歉 Txtnum.Text = Txtnum.SetFocusEnd IfEnd Sub“取消增加”按钮代码Private Sub Cmdcancel_Click() Txtnum.DataField = 学号 将文本框和数据库相应的字段连接并且能够显示在文本框内 txtname.DataField = 姓名 Txtmag.DataField = 专业 Txtclass.DataField = 班级 Txtsex.DataField = 姓名 Txtpolity.DataField = 政治面貌 CmdAdd.Enabled = True 对按键是否可用进行选择 Cmddel.Enabled = True Cmdnext.Enabled = True CmdPrev.Enabled = True Cmdsure.Enabled = False cmdcancel.Enabled = False txtname.Locked = True 取消添加之后锁定文本框,防止文本框内的学生信息被误操作 Txtclass.Locked = True Txtnum.Locked = True Txtmag.Locked = True Txtsex.Locked = True Txtpolity.Locked = TrueEnd Sub“删除记录”按钮代码Private Sub Cmddel_Click() 删除按钮鼠标单击事件代码 Dim i As Integer i = MsgBox(真的要删除当前记录吗?, vbYesNo, 警告) 提示用户是否删除记录 If i = 6 Then 删除记录 student.Recordset.Delete student.Refresh End IfEnd Sub“上一条记录”按钮代码Private Sub CmdPrev_Click() 上一条记录按钮鼠标单击事件代码 student.Recordset.MovePrevious Cmdnext.Enabled = True If student.Recordset.BOF Then MsgBox 已经是第一条学生信息!, vbInformation + vbOKOnly, 抱歉 student.Recordset.MoveFirst CmdPrev.Enabled = False End IfEnd Sub“下一条记录”按钮代码Private Sub Cmdnext_Click() 下一条记录按钮鼠标单击事件代码 student.Recordset.MoveNext CmdPrev.Enabled = True If student.Recordset.EOF Then MsgBox 已经是最后一条学生信息!, vbInformation + vbOKOnly, 抱歉 student.Recordset.MoveLast Cmdnext.Enabled = False End IfEnd Sub“成绩管理界面”按钮代码Private Sub Command1_Click() Dim ave As Double 平均分的变量 Dim credit As Integer 学分变量 Dim fail As Integer 不及格科目变量 Dim point As Double 平均绩点变量 Dim chiness1 As Double 定义变量记录各门课程的绩点 Dim english1 As Double Dim physics1 As Double Dim PE1 As Double Dim photoshop1 As Double Dim SQL1 As Double Dim chiness2 As Integer 定义变量记录各门课程的已修学分 Dim english2 As Integer Dim physics2 As Integer Dim PE2 As Integer Dim photoshop2 As Integer Dim SQL2 As Integer Dim chiness3 As Integer 定义变量记录各门课程的成绩 Dim english3 As Integer Dim physics3 As Integer Dim PE3 As Integer Dim photoshop3 As Integer Dim SQL3 As Integer Form4.Txtnum.DataField = 学号 本文本框和学生的基本信息表中相应的字段连接起来 Form4.txtname.DataField = 姓名 Form4.Txtmag.DataField = 专业 Form4.Txtclass.DataField = 班级 chiness0.RecordSource = select * from chiness where 学号= + Trim(Form4.Txtnum.Text) + 在相应的成绩表中取出学号对应的成绩以及学分、绩点 chiness0.Refresh english0.RecordSource = select * from english where 学号= + Trim(Form4.Txtnum.Text) + english0.Refresh physics0.RecordSource = select * from physics where 学号= + Trim(Form4.Txtnum.Text) + physics0.Refresh photoshop0.RecordSource = select * from photoshop where 学号= + Trim(Form4.Txtnum.Text) + photoshop0.Refresh SQL0.RecordSource = select * from SQL where 学号= + Trim(Form4.Txtnum.Text) + SQL0.Refresh chiness1 = chiness0.Recordset.Fields(绩点) chiness2 = chiness0.Recordset.Fields(所得学分) chiness3 = chiness0.Recordset.Fields(成绩) english1 = english0.Recordset.Fields(绩点) english2 = english0.Recordset.Fields(所得学分) english3 = english0.Recordset.Fields(成绩) physics1 = physics0.Recordset.Fields(绩点) physics2 = physics0.Recordset.Fields(所得学分) physics3 = physics0.Recordset.Fields(成绩) photoshop1 = photoshop0.Recordset.Fields(绩点) photoshop2 = photoshop0.Recordset.Fields(所得学分) photoshop3 = photoshop0.Recordset.Fields(成绩) SQL1 = SQL0.Recordset.Fields(绩点) SQL2 = SQL0.Recordset.Fields(所得学分) SQL3 = SQL0.Recordset.Fields(成绩) ave = (chiness3 + english3 + physics3 + photoshop3 + SQL3) / 5 计算该同学的平均分 ave = Round(ave, 2) Form4.Txtave.Text = ave credit = chiness2 + english2 + physics2 + photoshop2 + SQL2 计算该同学已修多少学分未修学分以及挂科门数 credit = 20 - credit If credit = 0 Then Form4.Txtcredit.Text = 20 Form4.Txtuncredit.Text = 0 Form4.Txtfail.Text = 0 ElseIf credit = 4 Then Form4.Txtcredit.Text = 16 Form4.Txtuncredit.Text = 4 Form4.Txtfail.Text = 1 ElseIf credit = 8 Then Form4.Txtcredit.Text = 12 Form4.Txtuncredit.Text = 8 Form4.Txtfail.Text = 2 ElseIf credit = 12 Then Form4.Txtcredit.Text = 8 Form4.Txtuncredit.Text = 12 Form4.Txtfail.Text = 3 ElseIf credit = 16 Then Form4.Txtcredit.Text = 4 Form4.Txtuncredit.Text = 16 Form4.Txtfail.Text = 4 ElseIf credit = 20 Then Form4.Txtcredit.Text = 0 Form4.Txtuncredit.Text = 20 Form4.Txtfail.Text = 5 End If 计算该同学的平均绩点 point = (CDbl(chiness1) * CDbl(chiness2) + CDbl(english1) * CDbl(english2) + CDbl(physics1) * CDbl(physics2) + CDbl(photoshop1) * CDbl(photoshop2) + CDbl(SQL1) * CDbl(SQL2) / (20) point = Round(point, 4) Form4.Txtpoint.Text = point Dim a As Integer 定义变量a Dim sum As Integer result0.RecordSource = select *from chengji where 学号 = & Txtnum.Text & 取出和Txtnum学号相对应的学生总成绩 result0.Refresh a = result0.Recordset.Fields(总成绩) result0.RecordSource = select * from chengji where 总成绩 & a & 筛选总成绩大于a成绩的学生 result0.Refresh sum = result0.Recordset.RecordCount 计算总数 Form4.Txtranking.Text = sum + 1 Unload Me Form4.ShowEnd Sub学生基本信息查询“开始查询”按钮代码Private Sub cmdFind_Click() Dim num As String If Txtfind.Text Then 判断Txtfind.Text的输入是否为空 search.RecordSource = select * from information where 学号= + Trim(Txtfind.Text) + 通过此语句查找出数据库中与“Txtfind.Text”中输入的相同学号的学生 search.Refresh If search.Recordset.BOF Then BOF为true则系统进行报错 MsgBox 抱歉您的用户名不存在!, vbInformation + vbOKOnly, 抱歉 Txtfind.Text = Txtfind.SetFocus Else: num = Trim(search.Recordset.Fields(学号) 把查找出来的学生基本信息显示在Form3窗体对应的位置,并且卸载本身,显示From3 Form3.Txtnum.Text = Trim(num) Form3.txtname.Text = search.Recordset.Fields(姓名) Form3.Txtmag.Text = search.Recordset.Fields(专业) Form3.Txtclass.Text = search.Recordset.Fields(班级) Form3.Txtsex.Text = search.Recordset.Fields(性别) Form3.Txtpolity.Text = search.Recordset.Fields(政治面貌) Form3.Show Form2.Hide End If Else: MsgBox 抱歉,学号为空!, vbInformation + vbOKOnly, 抱歉 Txtfind.SetFocus search.Refresh End IfEnd Sub学生成绩查询“开始查询”按钮代码Private Sub Cmdfind1_Click() Dim num As String Dim chiness As Integer 定义变量记录各门课程的已修学分 Dim english As Integer Dim physics As Integer Dim PE As
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电视设备智能云计算平台考核试卷
- 核辐射测量在核设施辐射防护系统设计中的应用考核试卷
- 电子出版物市场渠道拓展考核试卷
- 检验医学在感染性疾病流行病学调查中的应用考核试卷
- 液压系统的故障诊断专家系统考核试卷
- 激发学生的学科兴趣考核试卷
- 2025广告设计委托合同协议
- 2025建筑材料采购协议合同范本
- 2025年份第一季度跨境会展服务委托借款应收账款质押协议
- 《宝马品牌规划与发展》课件
- 2023年河南工业和信息化职业学院单招面试题库及答案解析
- 国企治理三会一层详解
- GB/T 6081-2001直齿插齿刀基本型式和尺寸
- GB/T 3717-1983测长机
- GB/T 19189-2011压力容器用调质高强度钢板
- 【农业养殖技术】花鲈淡水池塘标准化养殖技术
- 政治学基础课件全部终稿
- 酒店运营管理课件
- 中国古代建筑理论知识考核试题与答案
- 山东省青岛市各县区乡镇行政村村庄村名居民村民委员会明细
- 绿色建筑评价评分表
评论
0/150
提交评论