软件开发和环境与工具课程设计报告--小型学生成绩管理系统.docx
软件开发环境与工具综合实验实验题目:小型学生成绩管理系统一.课程设计目的与设计方案21、设计目的22、总体思路23、课程设计内容24、项目需求了解25、软件总体模块设计2二.界面设计和功能设计31、用户登录界面32、用户注册界面33、用户密码找回界面44、学生成绩管理系统主界面55、学生基本信息查询界面66、学生成绩查询界面67、学生选课信息查询界面6三.数据库相关设计71、登录系统用户表72、学生信息表73、课程信息表74、选课信息表75、视图V_SC82、视图V_Score8四.实验步骤81、登录界面82、学生成绩管理主界面8五.各个界面的代码实现81、frmlog登录界面82、frmSys学生成绩管理系统主界面122、frmregister注册界面153、frmfound密码找回界面185、frmlnforStudent学生基本信息查询界面196、frmlnforSC学生选课信息查询界面237、frmlnforScore学生成绩查询界面24六.总结和体会26一、课程设计的目的1、设计目的:(1)、通过本次课程设计,提高实践动手能力,进一步理解计算机程序设计的思路与方法;(2)、进一步熟练运用VB.NET的语言元素和流程控制语句;(3)、熟悉用户界面的设计,达到能熟练使用各种常见的VB.NET的控件,理解面向对象的思想;(4)、掌握数据访问控件及相关对象的使用,能基于空间实现对SQLSerVer数据库的数据访问与操作;2、总体思路:用VistualStudio2010创建“登陆界面”项目,设计各个相关学生信息的窗体,例如:登陆界面、主界面、密码找回界面、注册界面、学生信息查询界面、学生选课信息界面、学生成绩查询界面等。建立记录相关信息的数据库(Iyn)表,连接数据库后,更改窗体及控件的相关属性,修改代码,运行实现该学生成绩管理系统的基本功能。3、课程设计内容:小型学生成绩管理系统(I)课程设计的实验环境:硬件要求能运行WindOWSXP操作系统;开发工具可采用MicrosoftVisualStudio2005,数据库管理系统采用SQLSerVer。(2)课程设计的预备知识熟悉软件开发的基本知识,有熟练运用数据库管理系统、.net或JaVa开发平台、方案设计能力等诸多具体问题有感性的认识和深入的理解、软件设计、开发和维护的能力。4、.项目需求了解:对学生基本信息,选课管理,成绩管理等相关信息的添加、删除、修改等操作。5、软件总体模块设计:本系统主要包括6个模块:(1)用户管理模块:用于对用户的添加,赋于不同权限及对用户的修改及查询。(2)学生信息管理:用于对学生基本信息的输入、修改、查询,可随时根据查询结果动态生成学生基本信息查询报表。(3)选课信息管理:用于对学生选课信息的录入与修改。(4)课程管理模块:用于对各学期课程的开设和修改。(5)成绩查询管理:用于对成绩的输入、修改、查询可随时根据查询结果动态生成学生成绩查询报表。<6)密码找回模块:用户找回密码。二、界面设计和功能设计1、用户登录界面日登录界面L三_回sI学生成绩管理系统2、用户注册界面7注册XBD注册Signup账号UserlD12012100508寄码Password*确认宙码RePassword用户名UserName王华联系电话Phone13894546677电子邮箱E-mail3232874853、用户密码找回界面Iola上J4、学生成绩管理系统主界面吧学生应矮省理统系统S录入工(E)查询(Q)帮助H)X,*A复制剪切粘贴8M除字体技理力数程块析数等息管人、流模分成询信源了计的能的完查着资述设计功流上的随力论能设各据础息字伍2j.4澈软推黑新宋体效果删除线OO下划线00颜色(C):黑色字体F).领粗体粗体慎制示例字形(Y):WI学1i且用(ALJ帮助00确定大小6):微软中文软,字符集(R):中文GB2312当前时间为:19:32:06当前卧WJj:1U14H2/人文功能的数基信,论、功统及此种5、学生基本信息界面6、学生成绩查询界面7、学生选课信息界面sname李萌.丽.于晓一1007.1007.SnOsnamc该生已选修课程sno1004.1004.1005.1006.1007.stou×Ian.sdept8化学系8化学墓9计算机系4化学系10计算机系10计算机系10计算机系Sl材材软化冢步?1007.10071007慧慈慧刘刘刘StOUX1010sdept计算机系10计算机系三、数据库相关设计1、在数据库中建立了yonghu的表,该系统经过注册的用户信息均保存在数据库该表中,从数据库中读取相关信息才可通过身份验证。如下图所示:201220130613KQJyndbo.yonghu对盆勒3»*一息UserIDUSerfJwdUserNameUserSexUserPhoneUserQQUserMailJW(0Kli333刘青女187359834565486961256254869612562®.20121502102B磊再1579036872354655632695465563269«q.2012100503555三女1927845979084549045898454904589K.2012100504444裤里15367886790NULLNULL2012100505444郝鼬女18335908763NULLNULL2012100506000大云男10938374374NULLNULL2012100507123梁辉R13593390275NULLNUUNULLNULLNUUNUUNUUNULLNUU2、学生信息表201220130613KQJyndbo.student对象资源售理器详组信息SnOSnamesexSageSrna)OrSdeptsbrtStouxiangiEEsm刘光20建瑁数学系1993年6月17日11002诔洁1信管计算机系1996/5/621003李斯21印刷物理系1993/7/1631004李明19料料化学系199S/12/981005于晓晓22软工计算机系1992/3/2591006薛华19化工化学系1995/11/2441007刘慧20多霖体计篁机系199012/22101009马浩20建房数字系1993617QS1010刘光20期目数学系19936月17曰6*UZNULLNUUUZNUUNUlLNUUAUZ3、课程信息表2012-20130613KQ.Iyn-dbo.course对象资源告理器详组信息CnOcnamePrOndmeCredit而计算机科学计算机基础3.002计算机技术计算机基础2.00003数据库C语言3.00004电子商务网络原理2.00005数学网络原理3.00*NULLNULLNULLNULL4、选课信息表20122O13O613KQ.Iyndbo.sc对欷资源音理SS洋阳信县snocnograde168.001100275.11560.0012OOl59.0012290.001003OOl90.00IoO4OOl69.00IOo400270.0014370.001004480.001004569.5、建立了视图V_SC,通过视图可以清晰全面的显示出每个学生的选课信息2O12-2O13Ol3KQ.Iyn-dbo.V_SC2012-20130613KQJyC-dbo.V_Score对Si三管理三泛绢信VsnoSnamCStCXJXiangsdcptSmaJOrcnamc划光1颜学系逻辑计IS机科学11刘光1学系逻辑计算机技术100l刘先1效学系适辑怎!学1002弓长浩2计笠机系信管计尊帆科学12张洁2计算机系信笆计算机技术1003李蜥3物1理系Ef)刷讦尊机科学1004李丽8化学系出科讦机科学1004李丽8化学系材料计算机技术100q李HH8化学系材料赖据库1004李丽8化学系村科电子商务1004李丽8化学系村科数学1005于晓晓9计苜机系软工计茸机科学1006砧注«4化学系化丁计理机科学6、建立视图V_Score,准确快速访问到每个学生的成绩及排名2O12-2O13O613KQ.Iyn-dbo.V_Score又三Sfe竞海宣理部洋灯信0snosr>amecnameOtadecreditEESEHH刊,此计算机科字6.OO3.00100l刻光计尊机技术75.002.00100l划光效字60.003.001002弓长浩计百帆科学59.003.001002弓长浩廿耳机技术90.002.001003李斯计算m科学90.003.00NoOA李丽讨算机科字69.003.00工OOO李丽计空机技术70.002.00100A李BH效5库70.003.00100-4李丽电子ISm80.002.001004李HH劫字69.003.001005于晓昧计吞帆科学63.003.00IoOG精华计尊机科字9-4.003.00四、实验步骤1、登录界面(1)在登录界面frmlog中,用户名、密码与数据库中的信息匹配和验证码信息相符时,点击“登录”按钮进入到frmSys窗体中,若不匹配,则会掏出对话框提示出错,重新输入;(2)不是该系统用户时,可以点击“注册”进入注册界面frmregister,填写注册信息;(3)如果用户忘记密码了,可以点击“忘记密码”进入找回密码界面frmfound,重新设置密码。2、学生成绩管理主界面(1)查看学生信息,点击“查询-学生信息”进入学生基本信息界面frmlnforStudent;(2)查看学生成绩,点击“查询-学生成绩”进入学生成绩查询界面frmlnforScore;(3)查看选课信息,点击“查询-选课信息”进入学生选课信息界面frmlnforSC;五、各个界面的代码实现1、frmlog登录界面(1) vb界面代码PublicClassfrmlnforGradePrivateSubButtonl_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButtonl.ClickDimobjDS,objDDAsNewDataSetDimXSTableAsDataTableDimStableAsDataTableDimcn,cn2AsNewSqlClient.SqlConnectionDimcmd,cmd2AsNewSqlClient.SqlCommandDimdatAd,datASAsNewSqlClient.SqlDataAdaptercn.ConnectionString=denglu.cIsConnect.getConn()cmd.Connection=cncmd.CommandType=CommandType.Textcmd.CommandText=*selectsno学号,sname姓名,avg(grade)均分,$Um(Credit)总学分fromVScorewheresno=*&TextBoxl.Text&"'orsname=,"&TextBox2.Text&"'groupbysno,sname*cn.OpenOdatAd.SelectCommand=cmddatAd.FilKobjDS,“'Score")XSTable=ObjDS.Tables("V_SCOre")cn.CloseODataGridViewl.DataSource=XSTablecn2.ConnectionString=denglu.cisConnect.getConn()cmd2.Connection=cn2cmd2.CommandType=CommandType.Textcmd2.CommandText=*select*fromstudentwheresno='"&TextBoxl.Text&*,orsname=&TextBox2.Text&"datAS.SelectCoininand=cmd2datAS.Fill(objDD,"student")Stable=objDD.Tables(*student*)cn2.CloseOtxtStuXII.Text=Stable.Rows.Item(O).Item(*sno*)txtStuXM.Text=Stable.Rows.Item(O).Item(*sname*)txtStuNL.Text=Stable.Rows.Item(O).Item(*sage*)txtStuZY.Text=Stable.Rows.Item(O).Item(*smajor*)CbxStuXB.Text=Stable.Rows.Item(O).Item(*sex*)txtStuX.Text=Stable.Rows.Item(O).Item(z,sciept*)(ItpStuBirth.Text=Stable.Rows.Item(O).Item(*sbirth*)PictureBox2.Image=Image.FromFiIe(Application.StartupPath&*img*&(Stable.Rows.Item(O).Item(*stouxiang*)&*.jpg*)EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickDimdsAsNewDataSetDimVTableAsDataTableDimcnAsNewSqlClient.SqlConnectionDimcmdAsNewSqlClient.SqlCommandDimdaAsNewSqlClient.SqlDataAdaptercn.ConnectionString=denglu.cIsConnect.getConn()cmd.Connection=cncmd.CommandType=CommandType.Textcmd.CommandText=*selectsno学号,sname姓名,avg(grade)均分,$Um(Credit)总学分fromVScoregroupbysno,sname”cn.OpenOda.SelectCommand=cmdda.Fill(ds,*VScore*)VTable=ds.Tables(*VScore*)cn.CloseODataGridView2.DataSource=VTableEndSubPrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.ClickMe.Close()frmSys.ShowOEndSubPrivateSubRadioButton1_CheckedChanged(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesRadioButtonl.CheckedChangedTextBoxl.Enabled=TrueTextBox2.Enabled=FalseEndSubPrivateSubRadioButton2_CheckedChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesRadioButton2.CheckedChangedTextBox2.Enabled=TrueTextBoxl.Enabled=FalseEndSubEndClass(2) cisUser代码PublicClasscIsUserPublicdimAsStringPublicdlvnAsStringPublicqrmmAsStringPublicxmAsStringPublicsexAsStringPublicphoneAsStringPublicqqAsStringPublicmai1AsStringPublicyzmAsStringPublicrandomAsStringEndClass(3) ClSCOnneCt代码PublicClasscIsConnectPublicSharedFunctiongetConn()AsStringReturn*server=.;uid=lyn;pwd=l23Jdatabase=Iyn*EndFunctionEndClass(4) ClSCheCkI代码PublicClasscIsChecklPublicFunctionLoginllandle(ByValmAscIsUser)AsStringIfm.dlm=""ThenReturn"用?户§ID不?能U为a空?!?”EndIfIfm.dlmm=""ThenReturn”用?户§密。码?不?能(!为a空?!?”EndIfIfm.yzm=""ThenReturn”验6证CJ码?不?能口为a空?!?*EndIfIfm.qrmmOm.dlnunThenReturn"你?两?次?输?入?的?密U码?不?一?致?,?清?重?新?输?入?!?”EndIfDimoDALAsNewclsCheck2ReturnoDAL.Login(m)EndFunctionEndClass(5) ClSCheCk2代码PublicClassclsCheck2PublicFunctionLogin(ByValmAscIsUser)AsStringDimconnAsNewSqlClient.SqlConnectionconn.ConnectionString=denglu.cisConnect.getConn()DimcmdAsNewSqlClient.SqlCommandcmd.CommandType=ComniandType.Textcmd.Connection=conncmd.CommandText=*selectcount(*)fromyonghuwhereUserID='"&m.dim&andUserPwd='&m.(11mm&"Tryconn.Open()IfCType(cmd.ExecuteScalar(),Integer)>OThenconn.Close()conn.Dispose()Return1ElseIfm.yzmOm.randomThenReturn”验6证口码?错洙?误6!?”Elseconn.Close()conn.Dispose()Return”账?号?或b密。码?错洙?误6!?”EndIfCatchexAsExceptionconn.Close()conn.Dispose()Returnex.MessageEndTryEndFunctionEndClass2、frmSys主界面PublicClassfrmSysPrivateSubTextBoxl-TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBoxl.TextChangedTimerLStartOTooIStriPStatUSLabeI2.Text="文本框中的字符数为:"&TextBoxl.TextLengthToolStripStatusLabel3.Text="当前日期为:"&Format(Now(),*yyyyMMdd*)EndSubPrivateSubTimerl_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimerl.TickToolStripStatusLabel1.Text="当前时间为:*&Format(Now(),*HH:mm:ss*)EndSubPrivateSubMnu_Edit_cut_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_Edit_cut.ClickTextBoxl.Cut()EndSubPrivateSubMnu_Edit_copy_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_Edit_copy.ClickTextBoxl.CopyOEndSubPrivateSubMnu_Edit_paste_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_Edit_paste.ClickTextBoxl.PasteOEndSubPrivateSubMnu_Edit_del_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_Edit_del.ClickTextBoxl.SelectedTextO="”EndSubPrivateSubToolStripButton1_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButtonl.ClickTextBoxl.CopyOEndSubPrivateSubToolStripButton2_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton2.ClickTextBoxl.Cut()EndSubPrivateSubToolStripButton3_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButtonS.ClickTextBoxl.PasteOEndSubPrivateSubToolStripButton4_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton4.ClickTextBoxl.SelectedTextO="”EndSubPrivateSubCon_Mnu_copy_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCon_Mnu_copy.ClickTextBoxl.CopyOEndSubPrivateSubCon_Mnu_paste_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCon_Mnu_paste.ClickTextBoxl.PasteOEndSubPrivateSubCon_Mnu_cut_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCon_Mnu_cut.ClickTextBoxl.Cut()EndSubPrivateSubCon_Mnu_del_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCon_Mnu_del.ClickTextBoxl.SelectedTextO="”EndSubPrivateSubMnu_sys_Open_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_sys_Open.ClickOpenFiIeDialogl.InitialDirectory=*d:*OpenFileDialogLFilter=*txtfiles(*.txt)*.txtAllfiles(*.*)*.*OpenFileDialogLFilterindex=2OpenFileDialogl.RestoreDirectory=TrueOpenFiIeDialogl.ShowDialog()EndSubPrivateSubOpenFiIeDiaIogl_FiIeOk(ByValsenderAsSystem.Object,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesOpenFileDialogl.FileOkDimfiIenameAsStringDimfAsSystem.10.FileStreamDimmyStreamAsSystem.10.StreamReaderfilename=OpenFileDialogl.FileNameIfNot(filenameIsNothing)Thenf=NewSystem.10.FiIeStream(filename,10.FileMode.Open,10.FileAccess.Read)myStream=NewSystem.10.StreamReader(f,System.Text.Encoding.Default)TextBoxl.Text=myStream.ReadToEndOmyStream.CloseOEndIfEndSubPrivateSubMnu_sys_Save_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_sys_Save.ClickSaveFileDialogl.Filter=*txtfile(*.txt)*.txtallfile(*.*)*.*SaveFileDialogl.Filterindex=2SaveFi1eDia1og1.RestoreDirectory=TrueSaveFiIeDialogl.ShowDialog()EndSubPrivateSubSaveFiIeDiaIogl_FiIeOk(ByValsenderAsSystem.Object,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesSaveFileDialogl.FileOkDimfiIenameAsStringDimwAsSystem.IO.StreamWriterfilename=SaveFileDialogl.FileNameIfNot(filenameIsNothing)Thenw=System.10.File.CreateText(fiIename)w.Write(TextBoxl.Text)w.CloseOEndIfEndSubPrivateSubMnu_sys_Exit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_sys_Exit.ClickMe.Close()EndSubPrivateSubMnu_sys_New_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_sys_New.ClickTextBoxl.ResetText()EndSubPrivateSubMnu_Edit_date_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_Edit_date.ClickM$gBox("当前时间为",Now()EndSubPrivateSubMsgBox(ByValplAsString,ByValp2AsDate)ThrowNewNotImpIementedExceptionEndSubPrivateSubToolStripButton5_C1ick(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButtonS.ClickFontDialogl.ShowApply=TrueFontDialogLShowColor=TrueFontDialogl.ShowIIelp=TrueIfFontDialogl.ShowDialog=DialogResult.OKThenTextBoxl.Font=FontDialogl.FontTextBoxl.ForeColor=FontDialogl.ColorEndIfEndSubPrivateSubFontDiaIOgLAPPIy(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesFontDialogLApplyTextBoxl.Font=FontDialogl.FontTextBoxl.ForeColor=FontDialogl.ColorEndSubPrivateSubMnu_se1ect_infor_Click(ByVa1senderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_select_infor.ClickMe.IIideOfrmlnforStudent.ShowDialog()EndSubPrivateSubMnu_in_student_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_in_student.ClickMe.HideOfrmlnforStudent.ShowDialog()EndSubPrivateSubMnu_in_grade_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_in_grade.ClickMe.IIideOfrmInforGrade.ShowDialogOEndSubPrivateSubMnu_select_score_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMnu_select_score.ClickMe.IIideOfrmlnForGrade.ShowDialogOEndSubPrivateSubfrmSys_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadTextBoxLText=”随着信息技术的飞速发展和日趋激烈的商业竞争,人力资源管理的处理也逐渐采用科学化的管理。本论文论述了人力资源管理系统的开发过程:需求分析、功能设计、数据库