学生成绩管理系统VB+SQL
课程设计任务书题目学生成绩管理系统系(部) 数理系专业班级学生姓名学号12 月21 日至12 月25 日共 1指导教师(签字)系主任(签字)年月日学生成绩管理系统通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握教材中的相关容。
一.实验要求(1)先对选定的实验做简单的需求分析;(2)做出数据流图和数据字典;(3)在数据流图和字典的基础上做出E-R图(概念结构设计);(4)在E-R图基础上进行关系模式设计(至少满足3NF)(逻辑结构设计); (5)根据需求分析的各种数据请求得出各种视图以及各种约束、规则、触发器脚本描述;(6)根据第(5)的容在SQL-SERVER中设计中实例的数据库;(7)用自己熟悉的一门语言进行设计的功能的实现(8)整理前面几步的文档和程序源码,可执行程序,形成最终的实验报告。
(9)实验报告的最后写出本次实验完成中遇到的问题及解决法二.需求分析1.功能需求本系统开发的目的,就是通过系统开发,实现课程管理有关工作的计算机化,提高关键环节的处理速度和规化,并对有关的工作进行集成和重组,通过网络系统实现集中管理、分散操作,提高选课管理工作的质量和效率。
通过对学校的选课及成绩管理工作进行实际调查,学生可以自由选择课程、选老师,学生注册的行政班和教学班是游离的,开发工作需要涉及任课教师、学生、管理员(教务工作人员)三种用户。
2.学生需求在学校规定的选课期间,学生通过任一台连接因特网计算机的浏览器就能进行网上选课。
学生以用户名和密码进入选课系统。
选课系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的课程列表。
系统必须控制某一门课程在学期间只能选一次。
在学生选课时能自动进行有关逻辑判断,如:是否选课超过了规定的门数,是否选择了不符合预修条件的课程,是否选择的课程超过此课程最大选择人数,只有符合要求的选择才能选课成功。
学生可以更改部分个人信息如密码,等;学生可以查询已修课程成绩和已选课程信息。
3.教师需求任课教师登录后,可以查看自己所教课程的课程表;对于同一学期有多门课程的教师,需要选择具体课程后,才能查看已选这门课程的学生信息:期末,教师可以上传这些学生的成绩。
4.管理员需求系统管理员登录后,可以对学生,教师,课程,教学班级的基本信息进行添加,修改,删除等工作。
课程安排是选课的核心,只有按照实际的教学情况安排出每个学期必修和选修的课程,才能保证选课的顺利进行。
在每学期,学生选课前,各院系管理员必须在该院系培养案中录入本学期可以开设的课程和排课安排,对于需要预修条件的课程,需要设置好预修条件。
基础部管理员负责公共课的课程开设和排课安排。
其中排课及教学班级的安排上要保证同一个教师在同一时间只能上一门课程;同一个教室同一时间也只能开一门课程。
三.数据分析与建模1.数据流图和数据字典顶层图:数据字典:数据流项目:学生信息=姓名+学号+性别+年龄+专业+总学分成绩单=姓名+课目+成绩数据项条目:数据项名:成绩类型:int长度:4围:100-0加工条目:处理过程:过程名:学籍管理系统输入:学生信息,考试成绩,学生记录输出:统计表,成绩单数据字典:数据存储:数据存储名:学生记录组成:姓名+学号+性别+年龄+专业+总学分处理过程:处理过程名:录入存储处理输入:学生信息处理要求:如果没有所输入的学生记录,则建立新的学生记录,存储基本情况和课目成绩处理过程名:查询处理输入:学生信息,课程号输出:成绩处理要求:根据学生的学号查询相应的成绩处理过程名:统计处理输入:学生考试成绩输出:平均成绩,排名成绩数据字典:数据流:新生信息=入学时间+姓名+年龄+专业+性别合格单=姓名+专业处理过程:处理过程名:审查输入:学生信息输出:合格单处理要求:根据学生信息判断是否是新生处理过程名:是否是新生输入:合格单输出:新生信息处理要求:根据合格单建立新生信息处理过程名:录入存储学生信息,各科成绩输入:新生信息,考试成绩输出:本次考试成绩数据字典:数据存储:数据存储名:考试成绩组成:姓名+专业+成绩+学号组织式:一学号为关键字处理过程:处理过程名:有效性检查输入:学号,课程号输出:有效查询处理要求:根据所输入的信息查询有效性处理过程名:成绩查询输入:考试成绩输出:成绩处理要求:根据考试成绩查询成绩处理过程:处理过程名:统计选择输入:学生记录输出:按规定统计成绩处理要求:根据所输入学生记录查询成绩2.E_R图1)学生实体E-R图2)课程实体E-R图3)教师实体E-R图4)各实体之间的E-R图3.E—R图转换为关系模式:1)学生(XS)(学号(sno),姓名(sname),专业(sdept),性别(ssex),出生日期(sbirth),总学分(all_credit))学生表:主码:学号(sno)函数依赖:sno U.此表中,不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF2)课程(KC)(课程号(cno),课程名(cname),开课学期(term),学时(class_hour),学分(credit))课程表:主码:课程号(cno)函数依赖:cno U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF3)选课(XS_KC)(学号(sno),课程号(cno),成绩(grade))选课表:主码:(学号,课程号)外码:学号,课程号函数依赖:(sno,cno) U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF4)教师(TCH)(编号(tno),姓名(tname),性别(tsex),出生日期(tbirth),职称(professional),专业(department))教师表:主码:编号(tno)函数依赖:tno U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF5)授课(TCH_KC)(教师编号(tno),课程号(cno),上课地点(place))授课表:主码:(教师编号,课程号)外码:教师编号,课程号函数依赖:(tno,cno) U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF4.逻辑设计结果:字段名数据类型含义说明空值情况备注课程号不能为空主键Cno Char(10)课程名不能为空Sname Char(10)credit int 学分可以空Class_hour Int 课时数可以空Term Int 开课学期可以空字段名数据类型含义说明空值情况备注tno Char(10) 教师号不能为空主键tname Char(10) 姓名不能为空完全依赖Tno,是unique Tbirth date 出生日期可以空Tsex Char(10) 性别可以空只能取“男”“女”,默认为男Char(10)职称可以空ProfessionalChar(10)专业可以空Department数据库表名XS_KC(选课)字段名数据类型含义说明空值情况备注Cno Char(10) 课程号不能为空主码Sno Char(10) 学号不能为空主码Grade int 成绩可以空数据库表名TCH_KC(授课)字段名数据类型含义说明空值情况备注Tno Char(10) 教师编号不能为空主码Cno Char(10) 课程号不能为空主码Place Char(10)授课地点可以空四.数据库应用开发与运行此为主界面,有五个按钮,可进行查询,修改等操作。
上图为学生信息查询窗口,可按学号,姓名,专业进行查询下图学生选课信息窗口,双击上图学生信息查询窗口中表格左边,可弹出此窗口显示该学生选课信息。
上图为教师信息查询窗口,可按教师编号,姓名,职称部门进行查询,双击表格左部可显示教师授课信息,如下图所示。
此为学生信息修改窗口,单击一行,可在上面文本框中显示该生信息,并进行插入,修改,删除等操作。
此为学生成绩录入窗口,单击一行可现实该生学号及所选课程,并在成绩文本框中进行添加及修改该课程成绩操作。
此为学生选课窗口,单击一行显示该行信息,可进行选课,删除操作五.结果分析、结论与体会在这次课程设计中,我遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如分析、建立、开发一个系统。
在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统模型。
在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各面知识有一个认识,然后将系统的模型建立起来。
在程序编写中,我认识到软件要有简便的界面,良好的程序风格。
拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手。
我认为,所谓友好的界面,就是用户需要的界面,力求简便全面。
所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了系统后,开发人员可以向用户提出一些修改的意见,在双多次交流后定出程序所需的功能,以决定界面的实现。
在编码中,良好的编程风格与习惯是提高工作效率的一个重要面,而且良好的编程风格与习惯也是使软件便于维护的基础。
那如是良好的编程风格与习惯呢?我认为主要是程序的模块化、必要的注释。
所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序。
必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,过一段时间后你自己还能读懂自己的程序。
最后说明下这次课程设计给我感受最深的有三点:1.进行管理系统开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。
2.要善于同别人交流与合作,善于获取各种有用的资源。
3.要真真实实的多查资料,多问,多看。
六.参考文献及资料[1] 《学用Visual Basic 编程》潭浩电子科技大学出版社[2] 《数据库原理》丁宝康施伯乐著经济科学出版社[3] 《SQL Server数据库开发入门与例解析》夏邦贵著北京机械工业出版社[4] 《SQL Server 2005应用开发技术指南》东著北京清华大学出版社[5]《Visual Basic6.0》林雷著人民邮电出版社[6]《面向对象程序设计系列教材》龚沛曾著高等教育出版社[7]《Visual Basic6.0 数据库开发与专业应用》敬铮著国防工业出版社[8]《Visual Basic6.0 数据库程序设计高手》温贤发著科学出版社七.附录SQL Server 建立五表VB程序及控件设置Private Sub Command3_Click() '取消Stusno.Text = ""Stusname.Text = ""Stusbirth.Text = ""Stusdept.Text = ""Stuall_credit.Text = ""Stusexm = FalseStusexf = FalseEnd Sub'修改元组Private Sub Stuchange_Click()If Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or (Stusexm = False And Stusexf = False) ThenMsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示"Stusno.SetFocusExit SubEnd IfIf Trim(Stusbirth.Text) <> "" ThenIf Not IsDate(Trim(Stusbirth.Text)) ThenMsgBox "出生日期输入不正确,请重新输入", vbOKOnly, "信息提示"Stusbirth.SetFocusExit SubEnd IfEnd IfStuADO.Recordset.Fields("学号") = Trim(Stusno.Text)StuADO.Recordset.Fields("姓名") = Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期") = Trim(Stusbirth.Text)StuADO.Recordset.Fields("专业") = Trim(Stusdept.Text)StuADO.Recordset.Fields("总学分") = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields("性别") = "男"Else: Stusexf = TrueStuADO.Recordset.Fields("性别") = "女"End IfStuADO.Recordset.UpdateEnd Sub'删除元组Private Sub StuDel_Click()ret = MsgBox("是否要删除" + StuADO.Recordset("学号") + "号学生的记录?", vbYesNo, "提示")If ret = vbYes ThenStuADO.Recordset.DeleteEnd IfStuADO.RecordSource = "select sno 学号,sname 姓名,sdept 专业,ssex 性别,sbirth 出生日期,all_credit 总学分from XS"Command3_ClickStuADO.RefreshEnd Sub'选中一行显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stusname.Text = StuADO.Recordset("姓名")Stusbirth.Text = StuADO.Recordset("出生日期")Stusdept.Text = StuADO.Recordset("专业")Stuall_credit = StuADO.Recordset("总学分")If Trim(StuADO.Recordset("性别")) = "男" ThenStusexm = TrueElseStusexf = TrueEnd IfEnd Sub'插入元组Private Sub Studinsert_Click()If Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or (Stusexm = False And Stusexf = False) ThenMsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示" Stusno.SetFocusExit SubEnd IfIf Trim(Stusbirth.Text) <> "" ThenIf Not IsDate(Trim(Stusbirth.Text)) ThenMsgBox "出生日期输入不正确,请重新输入", vbOKOnly, "信息提示" Stusbirth.SetFocusExit SubEnd IfEnd IfStuADO.Recordset.AddNewStuADO.Recordset.Fields("学号") = Trim(Stusno.Text) StuADO.Recordset.Fields("姓名") = Trim(Stusname.Text) StuADO.Recordset.Fields("出生日期") = Trim(Stusbirth.Text) StuADO.Recordset.Fields("专业") = Trim(Stusdept.Text) StuADO.Recordset.Fields("总学分") = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields("性别") = "男"Else: Stusexf = TrueStuADO.Recordset.Fields("性别") = "女"End IfStuADO.Recordset.UpdateEnd Sub'取消Private Sub Stucancel_Click()Stusno.Text = ""Stusname.Text = ""Stucname.Text = ""End Sub'选课Private Sub Stuchoose_Click()StuADOXS.RecordSource = "select * from XS where sno='" + Trim(Stusno.Text) + "'" StuADOXS.RefreshIf Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or Trim(Stucname.Text) = "" Then ret = MsgBox("输入不正确,请重新输入!", vbYes, "错误!")ElseIf Trim(Stusname.Text) <> Trim(StuADOXS.Recordset("sname")) Thenret = MsgBox("输入学号与姓名不匹配,请重新输入!")ElseStuADOXS_KC.RecordSource = "select * from XS_KC"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.AddNewStuADOXS_KC.Recordset.Fields("sno") = Trim(Stusno.Text)StuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'"StuADOKC.RefreshStuADOXS_KC.Recordset.Fields("cno") = StuADOKC.Recordset("cno")StuADOXS_KC.Recordset.UpdateStuADO.RefreshEnd IfEnd Sub'删除元组Private Sub Studelete_Click()ret = MsgBox("是否要删除" + StuADO.Recordset("学号") + "号学生的选课记录?", vbYesNo, "提示")If ret = vbYes ThenStuADOXS_KC.RecordSource = "select * from XS_KC where sno='" + StuADO.Recordset("学号") + "'"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.DeleteEnd IfStuADO.RefreshStucancel_ClickEnd Sub'单击显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stusname.Text = StuADO.Recordset("姓名")Stucname.Text = StuADO.Recordset("课程名")End SubPrivate Sub Stuadd_Click()If Stugrade.Text = "" Thenret = MsgBox("输入为空,请重新输入", vbYes, "错误提示")ElseStuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'"StuADOKC.RefreshStuADOXS_KC.RecordSource = "select * from XS_KC where cno='" + StuADOKC.Recordset("cno") + "'"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields("sno") = Stusno.TextStuADOXS_KC.Recordset.Fields("cno") = StuADOKC.Recordset("cno") StuADOXS_KC.Recordset.Fields("grade") = Stugrade.TextStuADOXS_KC.Recordset.UpdateStuADO.RecordSource = "select sno 学号,XS_o 课程号,cname 课程名,grade 成绩from KC,XS_KC where o=XS_o"StuADO.RefreshEnd IfEnd Sub'取消Private Sub Stucancel_Click()Stusno.Text = ""Stucname.Text = ""Stugrade.Text = ""End Sub'删除学生成绩Private Sub Studelete_Click()ret = MsgBox("是否要删除" + Trim(StuADO.Recordset("学号")) + "号学生成绩?", vbYesNo, "提示")If ret = vbYes ThenStuADO.Recordset("成绩") = NullEnd IfEnd Sub'单击显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stucname.Text = StuADO.Recordset("课程名")End Sub'修改学生成绩Private Sub Stusure_Click()If Stugrade.Text = "" Thenret = MsgBox("输入为空,请重新输入", vbYes, "错误提示")ElseStuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'"StuADOKC.RefreshStuADOXS_KC.RecordSource = "select * from XS_KC where cno='" + StuADOKC.Recordset("cno") + "'" + " and sno='" + Trim(Stusno.Text) + "'" StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields("grade") = Trim(Stugrade.Text)StuADOXS_KC.Recordset.UpdateStuADO.RecordSource = "select sno 学号,XS_o 课程号,cname 课程名,grade 成绩from KC,XS_KC where o=XS_o"StuADO.RefreshEnd IfEnd SubPrivate Sub Command1_Click() StuSearch.ShowEnd SubPrivate Sub Command2_Click() AddStu.ShowEnd SubPrivate Sub Command3_Click() AddStuCourse.ShowEnd SubPrivate Sub Command4_Click() AddStuGrade.ShowEnd SubPrivate Sub Command5_Click() TchSearch.ShowEnd SubDim SqlStr As StringPublic Sub MakeSqlStr()SqlStr = ""If Trim(Stusno) <> "" ThenSqlStr = SqlStr + "and sno like'%" + Trim(Stusno.Text) + "%' "End IfIf Trim(Stusname) <> "" ThenSqlStr = SqlStr + "and sname like '%" + Trim(Stusname.Text) + "%'"End IfIf Trim(Stusdept) <> "" ThenSqlStr = SqlStr + "and sdept='" + Trim(Stusdept.Text) + "'"End IfEnd SubPrivate Sub Command1_Click()MakeSqlStrStuADO.RecordSource = "select sno 学号,sname 姓名,sdept 专业,ssex 性别,sbirth 出生日期,all_credit 总学分from XS where (ssex ='男' or ssex='女')" _& SqlStrStuADO.RefreshEnd SubPrivate Sub StuDG_DblClick()ShowStuKC.StuKCADO.RecordSource = "select sname 姓名,cname 课程名,grade 成绩,credit 学分,term 开课学期,class_hour 课时from XS,KC,XS_KC" _& " where XS.sno=XS_KC.sno and o=XS_o" _& " and XS.sno='" + StuADO.Recordset("学号") + "'"ShowStuKC.StuKCADO.RefreshShowStuKC.ShowStuSearch.Enabled = FalseEnd SubDim SqlStr As StringPublic Sub MakeSqlStr()SqlStr = ""If Trim(Tchtno) <> "" ThenSqlStr = SqlStr + "and tno like '%" + Trim(Tchtno.Text) + "%' "End IfIf Trim(Tchtname) <> "" ThenSqlStr = SqlStr + "and tname like '%" + Trim(Tchtname.Text) + "%'"End IfIf Trim(Tchprofessional) <> "" ThenSqlStr = SqlStr + "and professional like '%" + Trim(Tchprofessional.Text) + "%'"End IfIf Trim(Tchdepartment.Text) <> "" ThenSqlStr = SqlStr + "and department like '%" + Trim(Tchdepartment.Text) + "%'"End IfEnd SubPrivate Sub TchDG_DblClick()ShowTchKC.TchKCADO.RecordSource = "select tname 姓名,cname 课程,credit 学分,place 上课地点from KC,TCH,TCH_KC where TCH.tno=TCH_KC.tno and o=TCH_o" _& " and Tch.tno='" + TchADO.Recordset("教师编号") + "'"ShowTchKC.TchKCADO.RefreshShowTchKC.ShowEnd SubPrivate Sub Tchseek_Click()MakeSqlStrTchADO.RecordSource = "select tno 教师编号,tname 姓名,tsex 性别,tbirth 出生日期,professional 职称,department 部门from TCH where (tsex ='男' or tsex='女')" _& SqlStrTchADO.RefreshEnd Sub。
VB课程设计-学生成绩处理系统
长江大学Yangtze universityVB课程设计实习报告专业班级﹕储运11001学生学号﹕201007078学生姓名﹕彭壮班级序号﹕16指导老师﹕冯翠丽完成时间﹕2011-12—22一.设计题目学生成绩管理系统二.设计思路从文本中读取文件数据,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下.三.程序实现的目标本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。
四.程序设计框图五。
运行结果原始成绩课程学分原始成绩和原始课程学分文件读取原始课程文件加权平均分成绩排名每门课程的班级平均分加权平均分分布每门课程及分布成绩条优等生名单不及格学生名单成绩查询系统按姓名查找示例﹕按学号查找示例﹕按名次查找示例﹕六.源程序模块代码:Type xscjbxh As Stringxm As Stringcj(1 To5)AsIntegeraver As SinglemcAs IntegerEndTypeType kechen编号AsInteger课程名As String学分As SingleEnd TypePublic stu() As xscjbPublic ke() AskechenPublicN%, M%,Zxf%Public str As String窗体代码:①Form1:Public Function space1(ByVal sssAs String)Dimx%x =InStr(sss, "")DoWhilex> 0sss=Replace(sss,”", ”")x = InStr(sss," ”)Loopspace1 = sssEndFunctionPrivate Sub ajqfspm_Click()Dim t!, k As SingleForm1.ClsForm1.FontSize= 12Form1。
基于VB的学生成绩管理系统设计
S LSre 在数据挖掘和分析 服务领域 的应用。 Q e r v
V B使用 了可 以简单建立应用程序 的 G I U 系统 ,但是又可 以开发相 当复杂 的程序 。V B的程序是一种基 于窗体 的可视化 组件 安排 的联合 ,并且 增加代 码来 指定 组建 的属性 和方 法 。 因为 默认的属性 和方法 已经 有一部分 定义在 了组件 内 ,所 以 程序 员不用写 多少 代码就可 以完成一个 简单 的程序 。窗体控 件 的增 加和改 变可以用拖放 技术实现 。一个排 列满控 件 的工
Ab t a t h s p p rd v lp t d n c iv me tma a e n y t m,t c i v h t d n n g me ts se t , sr c :T i a e e e o s a su e ta h e e n n g me t s s e o a h e e t e su e tma a e n y t ma i c sa d r iai n a d a t mai n. sma n f n t n i e u e o o ue sfrsu e t c iv me t n g me t t n a dz t n uo t o o I i c i st s fc mp t r t d n h e e n t u o h o a ma a e n . Ke r s t d n c iv me t; n o main ma a e n S se d sg y wo d :S u e ta h e e n If r t n g me t; y t m e in o
种 面向对象 的开发工具 ,尤 其是数据 窗 口这一 能方便 而简 洁 操纵 数据库 的智能化对象 ,首先在短 时间 内建 立 系统 应用原
成绩系统框图、界面
VB 课程设计题目:学 生 成 绩 管 理 系 统设计一个简单的学生成绩程序管理系统,使用随机文件存储学生信息,该程序具有数据添加、修改、删除及学生信息顺序查询功能。
程序的运行界面如下图所示。
一、系统结构框图如下:查询(下一个)子 模 块删除 子模 块修 改 子模 块查询(上一个)子 模 块添 加 子模 块密 码 子模 块登陆模块管理模块系统总体结构框图二、密码程序界面及主要控件属性设置1.程序界面:2. 主要控件属性设置:对象属性(属性值)属性(属性值)说明窗体1 Name (Form1) Caption(“登陆成绩管理系统”)窗体2 Name (Form2) Caption(“学生成绩管理系统”)文本框1 Name ( Text1) Text (“”)PassWordChar(*) 指定显示在文本框中的替代符命令按钮1 Name(CmdIn) Caption(“进入”)标签1 Name(Label1) Caption(“请输入密码:”)AutoSize(True) 返回或设置一个值,以决定控件是否自动改变大小显示其全部内容命令按钮2 Name(CmdExit) Caption(“退出”)三 、成绩管理程序界面及主要控件属性设置1. 程序界面:2. 主要控件属性设置:四、系统程序对象 属性(属性值) 属性(属性值)说明窗体 Name (form1) Caption(“学生成绩管理”) 文本框1 Name (TxtID ) Text(“”) 输入和显示学号 文本框2 Name (TxtName ) Text(“”) 输入和显示姓名 文本框3 Name(TxtClass ) Text(“”) 输入和显示班级 文本框4Name(TxtSubject ) Text(“”) 输入和显示专业 文本框控件数组5 Name (TxtMark ) Index(1—3) 输入和显示三门课程成绩文本框6 Name(TxtTotal ) Text(“”) 显示总成绩 命令按钮1 Name (CmdAdd ) Caption(“添加”) 向文件中追加记录 命令按钮2 Name(CmdChange ) Caption(“修改”)修改当前记录 命令按钮3 Name(CmdDelete ) Caption(“删除”) 删除当前记录 命令按钮4 Name(CmdBefore ) Caption(“上一个”) 显示上一个记录 命令按钮5Name(CmdNext )Caption(“下一个”)显示上一个记录一、密码程序:(form1)Private Sub Form_Load()者‘装入窗体事件过程Form2.HideEnd SubPrivate Sub CmdIn_Click() ‘进入密码事件过程Static nn = n + 1If n = 3 Then: MsgBox "对来起!密码三次错误退出!": End pass$ = Text1.Text '为Text1开始获得焦点设其tabindex=0 If pass$ = "666666" ThenForm1.HideForm2.ShowElseLabel1.Caption = "请重新输入密码:"Text1.Text = "" '使文本框清空Text1.SetFocusEnd IfEnd Sub'(密码输入后)按回车键将触发KeyPress事件(替代鼠标单击‘进入’)Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenCmdIn_ClickEnd IfEnd SubPrivate Sub CmdExit_Click() ‘退出密码事件过程EndEnd Sub二、成绩管理系统程序:1. 标准模块代码:(Module1)Type student ‘定义学生信息记录类型id As String * 8name As String * 10class As String * 10subject As String * 20mark(1 To 3) As IntegerEnd TypePublic stu As student ‘定义student类型变量存放当前记录内容Public filename As String ‘定义变量存放学生信息文件名Public rec_no As Integer ‘定义变量存放当前记录号Public rec_total As Integer ‘定义变量存放总记录数Public rec_long As Integer ‘定义变量存放记录长度—————————————————————————2. 成绩管理代码:(form2)Private Sub cmdadd_Click() ’添加记录事件过程Dim i As Integer, nmsg As IntegerFor i = 1 To rec_totalGet #1, i, stuIf Trim(stu.id) = Trim(txtid.Text) Thennmsg = MsgBox("文件中已有该同学的记录,要显示修改此记录吗?", vbYesNo)If nmsg = vbYes Thenrec_no = iCall displayEnd IfExit SubEnd IfNext iCall getdatarec_total = rec_total + 1rec_no = rec_totalPut #1, rec_no, stuEnd SubPrivate Sub cmdbefore_Click() ‘显示上一条记录事件过程If rec_no > 1 Thenrec_no = rec_no - 1ElseMsgBox "现在已是首记录!"Exit SubEnd IfGet #1, rec_no, stuCall displayEnd SubPrivate Sub cmdchange_Click() ‘修改当前记录事件过程Call getdata ’将修改的数据保存到记录变量中Put #1, rec_no, stu ’修改记录Call displayEnd SubPrivate Sub cmddelete_Click() ‘删除当前记录事件过程Dim i As IntegerDim dempno As Integertempno = rec_noOpen filename & ".temp" For Random As #2 Len = rec_long For i = 1 To rec_totalIf i <> tempno ThenGet #1, i, stuPut #2, , stuEnd IfNext iCloseKill filenameName filename & ".temp" As filenameCall fileopenEnd SubPrivate Sub cmdnext_Click() ‘显示下一条记录事件过程Dim nmsg As IntegerIf rec_no < rec_total Then ‘未到打开记录尾时执行该程序rec_no = rec_no + 1Call display ‘显示当前记录Elsenmsg = MsgBox("已到最后一记录了!要回到首记录吗?", vbYesNo)If nmsg = vbYes Thenrec_no = 1 ‘回到首记录Call displayEnd IfEnd IfEnd SubPrivate Sub txtclear() ‘清除各文本框中的内容子过程Dim i As IntegerWith stutxtid = "": txtname = ""txtclass = "": txtsubject = ""For i = 1 To 3txtmark(i) = ""Next itxttotal = ""End WithEnd SubPrivate Sub display() ‘显示当前记录子过程Dim i As IntegerGet #1, rec_no, stuWith stutxtid = .id: txtname = .nametxtclass = .class: txtsubject = .subjectFor i = 1 To 3txtmark(i) = .mark(i)Next itxttotal = .mark(1) + .mark(2) + .mark(3)End WithEnd SubPrivate Sub getdata() ‘将在文本框输入的数据存入到记录变量中Dim i As Integerstu.id = txtid.Text: = txtname.Textstu.class = txtclass.Text: stu.subject = txtsubject.TextFor i = 1 To 3stu.mark(i) = Val(txtmark(i).Text)Next iEnd SubPrivate Sub txtmark_lostfocus(index As Integer)If index = 3 Then ‘当输入完最后一门课程,则计算并显示总成绩txttotal = Val(txtmark(1)) + Val(txtmark(2)) +Val(txtmark(3))End IfEnd SubPrivate Sub Form_Load() ‘装入窗体事件过程filename = App.Path & "\studet.dat"‘App.Path意思就是应用程序所在的路径。
vb项目开发案例全程实录
vb项目开发案例全程实录以VB项目开发案例全程实录为题,我将为您列举10个案例,每个案例包含至少800字的详细描述。
1. 学生成绩管理系统这个案例是一个简单的学生成绩管理系统,使用VB开发。
系统包括学生信息的录入、成绩的录入和查询等功能。
首先,用户可以通过界面输入学生的基本信息,包括姓名、学号、性别等。
然后,用户可以输入学生的各科成绩,并计算出总分和平均分。
最后,用户可以通过学号或姓名查询学生的成绩。
该系统使用VB的窗体和控件进行界面设计,通过VB的数据库连接功能实现与数据库的交互。
2. 酒店管理系统这个案例是一个酒店管理系统,使用VB开发。
系统包括客房管理、客户管理、订单管理等功能。
首先,用户可以通过界面查看酒店的各类客房信息,并进行预订和入住操作。
然后,用户可以管理客户信息,包括添加、修改和删除客户信息。
最后,用户可以查看订单信息,包括已预订和已入住的订单,并进行退房操作。
该系统使用VB的窗体和控件进行界面设计,通过VB的数据库连接功能实现与数据库的交互。
3. 超市收银系统这个案例是一个超市收银系统,使用VB开发。
系统包括商品管理、库存管理、销售管理等功能。
首先,用户可以通过界面添加、修改和删除商品信息,并查看商品的库存情况。
然后,用户可以进行销售操作,包括添加购物车、结算和打印小票。
最后,用户可以查看销售统计信息,包括每日销售额、每月销售额等。
该系统使用VB的窗体和控件进行界面设计,通过VB的数据库连接功能实现与数据库的交互。
4. 图书管理系统这个案例是一个图书管理系统,使用VB开发。
系统包括图书的录入、借阅和归还等功能。
首先,用户可以通过界面添加、修改和删除图书信息,并查看图书的借阅情况。
然后,用户可以进行借阅操作,包括选择图书和输入借阅者信息。
最后,用户可以归还图书,并更新图书的借阅情况。
该系统使用VB的窗体和控件进行界面设计,通过VB的数据库连接功能实现与数据库的交互。
5. 学生选课系统这个案例是一个学生选课系统,使用VB开发。
用mysql实现学生成绩管理代码
用mysql实现学生成绩管理代码学生成绩管理是教育行业中非常重要的一项工作,它涉及到学生的学习情况、成绩统计、课程安排等多方面内容。
为了更好地管理学生成绩数据,我们可以利用MySQL数据库来实现学生成绩管理代码,实现高效的学生成绩管理。
一、数据库设计在开始实现学生成绩管理代码之前,我们首先要进行数据库设计。
为了存储学生信息和成绩数据,我们可以创建两张表:学生表和成绩表。
学生表包含以下字段:-学号(id):唯一标识学生的编号,也是该表的主键。
-姓名(name):学生的姓名。
-班级(class):学生所在的班级。
成绩表包含以下字段:-学号(id):学生的学号,也是该表的外键,与学生表中的id字段关联。
-课程(course):学生所修的课程。
-成绩(score):学生在该门课程上的成绩。
二、创建数据库和表在MySQL命令行中,我们可以使用以下SQL语句创建学生成绩管理数据库和相应的表:```CREATE DATABASE student_score;USE student_score;CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(50), class VARCHAR(50));CREATE TABLE score ( id INT, course VARCHAR(50), score INT, FOREIGN KEY (id) REFERENCES student(id));```三、插入数据在完成数据库和表的创建之后,我们可以向学生表和成绩表中插入数据。
以下是向学生表中插入学生信息的示例:```INSERT INTO student (id, name, class) VALUES (1, '张三', '一班'), (2, '李四', '二班'), (3, '王五', '一班');```以下是向成绩表中插入学生成绩的示例:```INSERT INTO score (id, course, score) VALUES (1, '数学', 90), (1, '英语', 85), (2, '数学', 95), (2, '英语', 80), (3, '数学', 88), (3, '英语', 92);```四、查询数据在学生成绩管理中,我们经常需要查询学生的成绩信息。
vb学生成绩管理系统{完整版}
目录摘要 (3)关键字: (3)引言 (3)一、系统的理论与技术基础 (4)1.1管理信息系统基础 (4)1.2 软件工程理论的概述 (4)1.3 软件工程理论对本系统的指导 (4)二、系统的需求分析 (5)2.1项目开发的背景分析 (5)2.2 项目开发的目标 (5)2.3项目提出的意义 (6)2.4 国内外研究现状 (6)三、系统的开发工具及编程环境 (9)3.1 开发工具的选择 (9)3.3编程环境的选择 (10)3.5 Visual Basic 系统实现菜单选项 (12)3.5 Visual Basic 系统实现菜单选项 (12)四、系统数据库的使用 (13)4.1 系统数据库的选择 (13)4.2 数据的保存和读取 (13)4.3 数据库文件的易用性 (13)4.4 数据库文件格式 (14)4.5教师管理界面编码设计 (16)五、系统代码及开发过程 (18)5.1系统的开发 (18)5.2功能需求描述 (18)5.3代码及图示 (18)5.3.2.主窗口: (18)5.3.3.管理系统: (19)5.3.4.属性: (20)5.3.5.打开系统显示的界面 (20)5.3.6.窗体的尺寸 (21)结论 (22)致谢 (23)参考文献 (24)学生成绩管理系统摘要学生信息管理系统是典型的信息管理系统,经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
关键字:数据库,智能化,面向对象ABSTRACT:The abstract student information management system is the typical information management system, the process analysis, We use MICROSOFT Corporation VISUAL the BASIC development kit, uses each kind of object-oriented development kit which it provides, especially first in a short time establishes the system application prototype, then, carries on the demand iteration to the initial prototype system, revises and the improvement unceasingly, until forms user satisfaction the feasible system.Key words:Database,intelligence,object-oriented引言随着学校规模的不断扩大,学生数量急剧增加,有关学生的各科成绩信息量也成倍增长。
学生成绩管理系统数据库
课程编号# 课程名称 课程类型
学分 学时
选课 教师
教师编号#
电话 姓名 性别 学院
授课
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务 是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支 持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系 转化为关系模式,如何确定这些关系模式的属性和码。
cno degch_class)
字段名
属性
cno
课程号
teano
教师号
char(10) char(10)
数据类型 char(10) char(10)
Not null Not null
字段权限 Not null Not null
五、数据库实现
1、创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要
四、物理设计阶段
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库 的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结 构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取 方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最 后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结 构的设计,存储路径的设计。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下(其中码用下横线标出):
课程信息表: 课程(课程号,课程名,课程类型,学分,学时) 学生信息表: 学生(学号,姓名,性别,年龄,专业,学院) 成绩表: 成绩(学号,课程名,成绩) 教师表: 教师(教师号,姓名,性别,学院,电话) 选课表: 选课(学号,课程号,成绩) 授课表: 授课(课程号,教师号)
用VB开发学生成绩管理系统
、
系统功 能 设 计
( 1 ) 系统 主 要 功 能描 述 。① 用 户 管理 : 用来 管理 系 统 用 户 , 可 数 , 如果 超 出 指定 的次数 , 则 自动 关 闭程 序 。
以添加用户名 、 修改用户密码。 ②学生信息管理: 学生基本情况汇 总与管理 , 主要包括对学生 成绩 的添加 、 修改 、 删除和查 询等操 括对学生成绩的添加 、 修改 、 删除 、 查询和统计等操作 。④课 程管
表 2学生信 息表结构
字 段 名 数 据 类 型 S N o 文 本 S n a me 文 本 S s e x 文 本 S a g a 数 字
S p l a c e 文 本
字 段 大 小 7 1 2 2 整 型
3 2
说 明 学号 , 主键 , 必填 字 段 姓名, 必 填 字段 性别 , 必填 字段 年龄 , 必 填 字 段
子 模 块 的设 计 , 最后 再将 制 作 好 的代 码 打 包为 安 装程 序 等 , 详 细描 述 学生成 绩 管 理 系统 的 开 发过 程 。 关键词: Ⅶ 语言 ; A c c e s s 数据库; 成绩管理; 模块 设 计
在中职学校, 对于学生基本信息和成绩 的管理是学校的一项基
一
不匹配 , 则根据具体情况 弹出相应的警告对话框。为了使系统更
加 安全 , 加 人 一个 窗 口级公 共 对 象 , 用 来 记 录密 码 输 入错 误 的 次 ( 2 ) MDI 窗1 3 r 菜单 栏 设计 。在 系统 中添加 MD I 窗 口作 为系 统 主窗 口 , 为 其 加 入菜 单 栏 。根 据系 统 设 计 中 的各 功 能 模 块 设 计 菜 C l i c k事件 过 程 。当选 择 菜 单命 令 时 , 显 示 相应 的功 能 窗 口或 实 现
基于SQL数据库设计的学生成绩管理系统
基于SQL数据库设计的学生成绩管理系统随着教育信息化的不断深入,学生成绩管理系统在学校教务管理中扮演着越来越重要的角色。
为了更好地管理学生成绩信息,提高教学效率,设计一个基于SQL数据库的学生成绩管理系统显得尤为重要。
本文将从数据库设计的角度出发,探讨如何构建一个高效、稳定的学生成绩管理系统。
1. 数据库设计在设计学生成绩管理系统的数据库时,首先需要考虑的是数据库的表结构。
一般来说,可以设计以下几张表:学生表(Student):包含学生的基本信息,如学号、姓名、性别、年龄等字段。
课程表(Course):包含课程的信息,如课程编号、课程名称、学分等字段。
成绩表(Score):记录学生的成绩信息,包括学生学号、课程编号、成绩等字段。
2. 数据库关系在学生成绩管理系统中,不同表之间存在着一定的关系。
一般来说,可以建立以下几种关系:学生与成绩之间是一对多的关系,即一个学生可以有多条成绩记录。
课程与成绩之间是多对一的关系,即多个学生可以选择同一门课程。
3. SQL查询设计完数据库结构和关系后,接下来就是编写SQL查询语句来实现对学生成绩信息的增删改查操作。
以下是一些常用的SQL查询语句示例:查询某个学生的所有成绩:SELECT * FROM Score WHEREstudent_id = 'xxx';查询某门课程的平均成绩:SELECT AVG(score) FROM Score WHERE course_id = 'xxx';查询某个学生某门课程的成绩:SELECT score FROM Score WHERE student_id = 'xxx' AND course_id = 'xxx';4. 数据库优化为了提高系统性能和查询效率,需要对数据库进行优化。
可以采取以下措施:添加索引:对经常用于查询条件的字段添加索引,加快查询速度。
规范化设计:避免数据冗余和不一致,提高数据存储效率。
一种基于VB的成绩管理系统开发
一
种基 于
VB
的 成 绩 管 理 系统 开 发
。
一
龙雄辉
( 1 广 东工 业 大 学
.
,
李克 天
。
,
广 东广 州
5 10 0 0 6
;
2
.
广 州铁 路 职 业 技 术 学院
,
广 东广 州
5 10 4 3 0
)
一
以来
,
言 篡
;
巢 ?
浏 览 器 /服 务 器
:
绩 管理 系统
给 出 了总 体 设 计 方 案
信息 。
多 次 调 试 后 ,程 序 中使 用 了 两种 方法 解 决 该 问 题 :
1 把 所 有 需 在 D tgi 件 中 显 示 的 数 据 先 用 S L ) aar d控 Q
。
这 些 优 点 能够 极 大 地 提 高学 生 成
一
绩管理 的效率
有必要
,
因此
,
开发
套 学 生 成绩 管理 系 统 软件 很
同 时 要 求 它 能 够 为 用 户 提 供 充 足 的信 息 和 方 便 的
。
操作方式
以 下 是 结 合本校 管 理 模 式 开 发 学 生 成绩管 理 系统 的过
程
,
介 绍 了 开 发 中遇 到 的 数 据 库 选 用
之 改 变 。将 D t r a gi 件 放 置 在 窗 体 中之 后 ,把 D t r a d控 aa ,使 D tg d控 件 与 要 处 理 的 数 D D aar i 据 库 之 间建 立 联 系 。 在 D tgi 修 改 数 据 后 ,更 新 多 个 a r a d中 数 据 表 时 会 出 现 “n uf i t k y c l nom t n f I sf c n e ou i e mn i r ai o f o r
