C_学生成绩管理系统课程设计报告[1].docx
C#程序设计课程设计报告<20122013学年第2学期).题目,学生成果信息管理系统专业:计算机应用班级:11计应姓名学号:1102040027指导老师:成绩,2012年12月17日书目摘要1第一堂结论21.1 设计目的21.2 开发工具选择21.3 开发环境21.4 本报告的主要内容2其次量需求分析32.1 系统需求简介3系统目标3功能需求分析3性能需求分析3第三次总体设计43.1 设计概述43.2 系统总体结切及功能模块划分4学生信息查询模块4学生估息管理模块53.3 系统数据底极含结构设计5系统E-R图5系统数据库的设计63.4 平安保密设计7用户登录平安性7第四章具体设计84.1 概述84.2 系统程序流程图843系统主要功能模块荀介9系统登录9学生信息查询模块9学生信息管理模块IO第五章主要功能模块代码125.1 公共类代码设计125.2 登录界面代码设计145.3 查询模块代码设计155.4 添加模块代码设计165.5 更新模块代码设计175.6 删除模块代码设计20第六章课程设计心得21第七章设计11志22C#学生成果管理系统摘要本文描述的是基于Windows环境的学生信息管理系统,主要功能模块包括:学生信查询,学生信息管理,学生成果录入,主要工具MiCroSOftViSUalStUdi。2010设计窗体,SQ1.*erver2(X)5建立数据库,实现学校信息管理的各个功能.本篇报告介绍一个学生.信息管理系统的从分析到设计最终到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特殊在细微环节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。第一章绪论1.1 设计目的本课程设计的目的是使学生能娴熟驾驭简洁的简洁Windows窗体应用程序的设计和AIX).net的应用,希望通过本次课程设计熬炼学生运用C#语言解决实际问题的实力。1.2 开发工具选择本系统后台数据库哌纳MiasoflSQ1.SCrVCr数据库,该数据库系统在平安性、精确性和运行速度方面有肯定的优势,并且处理数据盘大,效率高:前台采纳Microsoft公nJ的VisualStudio2(X>5作为主要开发_E具,可与SQ1.Server2(X>5数据库无缝链接.1.3 开发环境系统开发'I台!MicrosoftVisualStUdio2005系统开发语言:C#数据库管理软件:SQ1.Server251.4 本报告的主要内容本报告具体的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的具体设计、系统运行与测忒。第二章需求分析2.1 系统需求简介系统目标(1) 依据告询条件实现学生信息的杳询(2) 学生选课信息查询、成果信息的查询(3) 学生信息、课程信息、成果信息的增加、删除、修改(4) 对基本信息完成增加、删除、修改时,需留意表与表之间的关联功能需求分析本系统的功能需求分析如下:(1) 学生信息查询:学生可以依据学号、姓名、专业进行查询.(2) 学生信息管理:主要是用于学生信息更新、插入、删除:(3) 学生成果录入:用于学生成果管理,录入学生成果,也可以更新:性能需求分析(1)登录、用户界面需求:简洁、易懂、易用、友好的用户界面.(2)平安保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等。第三章总体设计3.1 设计概述依据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成个整体。逐实现各个功能:3.2 系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成果录入三个功能模块。如图3.2.1系统的总体结构.I学生信息管理系统I学生信息查一学生信息管学生成果录学生信息查询模块学生信息查询:佶息杳询模块结构。图321系统的总体结构学生可以依据学号、姓名、专业进行查询,如图3.2.2学生姓名查询学号S询图3.2.2学生信息管理模块结构学生信息管理模块学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。学生信息管理成果更新学生信息更新学生信息录入学生信息删除基本信息更新成果录入基本信息录入图3.2.3学生信息管理模块结构3.3 系统数据库概念结构设计依据对数据项与数据结构的分析,设计出能够满意系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础.系统E-R图系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依症表示明白如图3.3.1系统E-R图结构.系统数据库的设计综合以上分析,要实现上面的全部功能模块,主要设计我如卜列名ff三5S为null?USERIDnchar(6)OUSERNAMEnchar(8)OPASSWORDnchar(16)0表3.3.1用户表(usedata)表3.3.2成果表(SC)CNOCNCTCSTUCSC表333课程表(C)列名S三S允许为nullnchar(16)intintint表3.3.4学生表(三)列名数J5类型允许为null?SNOitOSNnchar(8)OMNnchar(10)OSEXCChar(2)BlRDAYdAtetime叵TSJnt0COMnchar(200)3.4 平安保密设计用户登录平安性系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。第四章设计4.1 概述具体设计阶段的根本El标是确定应当怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应当得出目标系统的精确描述,从而在编码阶段可以把这个描述干脆翻译成用某种程序设计语言书写的程序。4.2 系统程序流程图程序潦程图又称为程序框图,它是历史悠久运用最广泛的描述软件设计的方法。它可将推个程序的总体流程清晰明白的显示出来。如图42.1系统总流程图结构。图421系统总体流程图4.3 系统主要功能模块简介系统登录用户凭借用户名及密码登录,胜利登录后可对学生信息进行操作.用户界而如图用户登录界面所示.图用户登录界面学生信息查询模块学生信息查询:在程序主界面(如图程序主界面)学生可以依据学号、姓名进行查询。学生也可以只用种条件进行信息查询,也可以多个条件查询,双击记录任一单元格可显示学生的更具体信息(如图433具体信息窗口)。图程序主界面图具体信息窗口学生信息管理模块学生信息管理:通过右击程序主界面的相应记录冲出的上下文菜单(如图上下文菜单)可对当前选定学生信息进行具体信息查询(如图4.3.3具体信息窗口)、修改信息(如图4.3.S修改信息窗口)、删除信息(如图4.3.6删除信息提示).更新时假如输入的学号不存在,可选择是否添加学生信息.通过程序主界面的新建信息记录可添加学生信息(如图4.3.7添加信息窗口)。91104魏阳平计箕机里91107一一而沙91120Tg英语31、D吴卫华通信信县修改383762袁某人计苴删除记录图上下文菜单图修改信息窗口图刑除信息提示图添加信息窗口第五章主要功能模块代码5.1 公共类代码设计namespaceMySqlpublicclassmySql(publicStringConncctionString=*SERVER=.SQ1.EXPRESS;A(tachDbFilcnamc=D:学习'CM课程设计StuScoreMarvSys(emS(uScoreManSys(enS(uScoManSys.indf;IntegratedSecurity=True;ConneclTimeoUl=30:USCrInslance=True;*:publicStringcommondlcxt:publicb<>oltlag;”指示有条该条记录MblicSystem.Data1DaiaViewtable:publicvoidrunSql()/执行查彻、删除SQ1.语句Iusing(SqlConneciionCOnneeIiQn=newSqlConnecion(conneciionString)>(conncction.Open();SqICommandCmdQuCry=>cwSqICOmmand(CommOndText,connection);SqlDataAdaptersda=newSqlDataAdapter(cfnmon(11x1.connection);DataSctds=newDataScK);sda.HII(ds);if(comnHiTex,IndexOf(,SE1.ECT)>=O)Itabic=ds.TablcslO).DcfaultVicw:conIleCMOn.Close();)HblicboolgeFlag()”推断是否有该条记录(using(SqlConncctionconnection=newSqlConncction(cncctionString)>Iconnection.0pen();SqIConimandc11lQ>ery=newSqlCmrnand(cmrnondText.connection);SqIDataRcadcrreader-ClTkIQUcry.ExccutcRcadcrO;if(ader.ReadO)flag=(rue;elseflag=false:rcadcr.Closc();connection.Closc<);NlUmflag;publicSiringge(Content(Stringt,equire,S<ringSNO)获得视图表的的指定单元格内容CorninondText="SE1.ECT'+require+"FROMdetailWHERE学号="+SNO:if(rcquirc="up课程名称)ComnKHKiText=,'SE1.ECT课程名豚FROMdetailWHERE学号=,+SNO:if(require="up成果。CommondTcxt='SE1.ECT成果FROMdetailWHERE学号="十SNO;SqlDalaAdapterSda=newSqlDakiAdaplEcumnumdText.ConncctionString):DataSclds-newDaSe();sda.RII(ds):Stringresuk="”:if(require=,课程名称IrcqUinc="成果”)inti=newint();for(i=0;i<ds.lables(0.Rows.Counl:i+)Iresult=result*ds.Tables01.Rowsirequirc.loString(>*""elsercsuH=d5.Tablcs0.RowM()rcquirc|.ToString().Trim();rv(mresult:catchreturn"无publicvoidUPdateoU作加、更新语句tryIusing(SqIConnectionconnection=newSqIConnecliomConneclionString)ICOnneCtiOn.0PCn();SqICommandCnKnnSert=newSqICommalKl(CommondTeXbconnection);cmdlnsc11.ExccutcNonQucry():conncction.Closc();CatCh(ExCCPtiOnCX)(MeSSegeBoX.Show(exIbStringO.”提示");I)I5.2 登录界面代码设计privatevoidlogin_Click(objcctsender,EvcntArgsc)(用户名及函码组合推断if(usema11c.Tex1.T>String().Trim(>!=1"&&password.Tex(.T>String().Tri11(>!=m)InySqlsql=OeWmySqI();Sqln>ndText="SE1.ECT*FROMUserxialaWHEREUSERNAME=+uscrnamcIcxtoString().Trim()+*,ANDPASSWORD="+passwo11l.Tcxt.TString().Trirn()+,trybltemp=newbool():temp=sql.gc(11ag();if(temp)this.Visiblc=false;nainfacemain=newnainface(this);main.Show();c<itch(Exceptionex)IMeSSagCBox.Show(cx.lbStringO,提示");)else(MeSSageBOXshOWC请输入用户名和密码名加示H):I15.3 查询模块代码设计privatevoidbtQucry_Click(objoctsender.EvcntArgsc)(rnySqlquery=newmySql();if(sNlnput.Tcxt.Trim(>="”&&sNoinput.Tcxt.Trim()!=MM)querymondlcxt=SE1.ECTSNOAS学号SNAS姓名,MNAS专业名称,SEXAS性别,BIRDAYAS诞生日期TSAS总学分.COMAS备注FROMSWHERESNO=H+sNoinput.TeM.Trinu)+MH;if(sNInput.Tex(.Trim(>!=mm&&sNoinpul.Texl.Trim()*")queryIixindText=-SE1.ECTSNOAS学号.SNAS姓名,MNAS专业名称SEXAS性别,BIRDAYAS诞生H期,TSAS总学分,COMAS备注FROMSWHERESN=*"÷sNlnput.Tcxt.Trim()÷,w;if(sNlnput.Text.Trim()!=""&&sNoinput.TextTrinX)!=queryniText=eSE1.ECTSNOAS学号SNAS姓名.MNAS专业名称CEXAS性别.BIRDAYAS诞生日期,TSAS总学分,COMAS备注IROMSWHERESN=*+sN!nputIext.Trim()+"andSNO=*sNoinput.Tcxt.Trim()+if(sNInut.Tex<.Trim()="*&&sNoinput.Texi.Trim()=MCsSdgdk>x.Show("您输入的信息为空,请重新输入!"错误信息”):elseIif(query.geFlag()(qucn,.runSql();da(aGridVicwI.DataSourcc=qucry.tablc;elseMeSSagCBoxShOWC您查找的信息不存在错误信息”);5.4 添加模块代码设计privatevoidaddbtOK.Click(objec(sender,EWefUArgSe)(if(addStuNo!cxt.Trim()!=""&&addStuNamc.Iextrim()!=,M&&addStuMajor.Tcxt.Trim()!=11)ImySqlsql=IWWmySql();sqlmoncIcxt=SE1.ECTCNOFROMCWHERECN=E+listmn.Text.ToString().Trim()÷hw;sql.runSql():StringIernp=sql.lable.Tablc.Rows(0CNO").lbSlring(>:StringscxTcmp=radioButton1.Checked?"男":女":StringcomTcmp;if(a<ldStuCom.lex1.lbS(ringO.TrinU>=comTcmp=,'m;elsecom,cmp=addStuCom.,lcxtIbString()rim():StringbirTcmp=*;if(addSiuBir.Tex(.ToS<ring().TrimO=comTcmp=,'m;elsebiflcmp=addStuCom.Tcxt.T(>String().Tri11();sqlmouiTcxt="INSERTINTOS(SNO.SN1N.SEX,BIRDAY.COM)VA1.UESr+addStuNo.Texl.TbSlring(>.Trim()+"w+addStuNan.!cxt.T(>String().Trim()+m,'maddS(uMajor.Tcxt.ToString().Trim()+MV*+sexlemp÷"V,+birlmp+com!emp+,r);*:Sq1.UPdateO;if(scoj.Tex<.lbS(ring().Trin()!=w")(SqlnmdTex(="INSERTINTOSaSNOCNO.SCORE)VA1.UES(,+addStuNocxtoString().11mO÷*÷tcmp÷÷score.Tcx(.lbS(ring().Trim()÷");"Sq1.UPdaleO;Ithis.Closc():)elseMeSSagCBo.ShoW学号、姓名和专业名称林不行以为空!丫错误!。;Jprivatevoid?ddNew_1.oad(objectsender.EventArgse)(获得专业列表mySqlsql=newmySql();sqlmondTcxt='SE1.ECTDISTINCTCNFROMC"SqlDaaAdapiersda=newSqlDatadaxer(sqlmondTexuSqlxonneclionSlring):DataSctds=newDataSctO:sda.Fill(ds);lis<mn.DaiaSource=ds.TablesO.DefauhView;Iistmn.DispIayMember="CNIistmn.DispIayMember=Iistnin.DisplayMcmbcr.oString().Trim():)5.5 更新模块代码设计privatevoidupbtOK-Click(objcctsender,EventArgsc)(11ySqlsql=newmySql():sqlmon<fcxt="SE1.ECT学号FROMdetailWHERE学号=,÷upStuNo.lext.lbString().lYim();boolflag(em=sql.ge<Flag();if(!agtemp)"假如衣中无该条记录,提示是否进行添加新记录操作Iif(McssagcBwShew查无当前记录,无法进行更新授作!5跄否进行添加新记录的操作?1"提示MessageBoxBuuonstOKCancel)=DialogResuh.OK)(if(upSiuNo.Tcxt.Trim<)!=""&&upStuNamcIcxt.Trim()!=*"&&upS(uMajor.1ext.Trim()!="")ImySqlsqlme=newnySql();SqImCmondTcxt="SE1.ECTCNOEROMCWHERECN='m+listmn.Tcxt.ToString().Trim()+;sqlnw.runSql();S(11ngtemp=呵me.iable.TMble.Rows(0)CNO".1bSlringOW课程号StringscxTcmp=radioBu11onI.Checked?',¾w:*w;Siringcomlmp;if(upStuCom.1extoString()rim()=*")comTcmp="'';elseComTeinp=upS(uCom.lx(.lbS(ring(),Trim();SiringbirTemp;if(upStuBir.Tcxt.ToString().'rim()=birlcmp="elsebirlem=upStuCon.Tex.TS<ring().TrinU):sqlmeHiondText='INSERTINTOS(SNO.SN.MN.StX.BIRDAY.COM>VA1.UES(m+upStuNo.Tcxt.TString().Trim()÷uStuName.Tex(.ToStringO.Trim()÷',+upStuMajor.Texl.TString().Trim()+'*7w+scxTcmp+二”'+birTcmp,+comTem÷sql11e.update():if(upStuSac.,IcxtIbString(>rim()!=I刘IneInondlexi="INSERTINTOSaSNOCNOSCORE)VA1.UES+upStuNo.Tex(.1bString().Trtm()+temp+m,m+upS(uScorc.Tcxt.ToString().Trim()sqlme.uxiate();>this.Ciosc();elseIMCSSagCBOX.ShowC学号、姓名和专业名称都不行以为空!”错误!”);else(if(UPStUNo.TCX1.Trim()!="*&&upStuNanw.Text.Trim()!=""&&upStuMajor!cxt.Trim()!=Isqlmondlex='SE1.ECTCNOFROMCWHERECN=,÷Iistmn.Text.TbSlring().Trim()+""':sql.runSql():Stringtemp=Sq1.tahIC.Tablc.Rows0CNO”,TOSlringoH获褥课程号SiringSeXTemP=radk>Bu(onI.Checked?"男,:女”;Stringcomlemp;iRupStuCom.Tcxt.ToStringO.Trim()=")ComTemp=*w;elseconTemp=upStuCom.Texl.ToSring().T,im();StringbirTenp:if(upStuBir.,cxt.TString().Trim()=ww)birlcmp=h*;elsebirTemp=upStuBir.Text.ToSiringO.Trin);sqlmnd1ext="UPDATESSETSN='m+upStuName.TcxtIbString().Trim()+",MN="'÷upS<uMajor.Tcxt.ToString().Trim()+SEX=m+sexTemp÷"BlRDY三,"+upSluBir.Text.ToSlring(>.Trim()+'".COM="*+comTemp+uWHERESNO"÷upSluNo.Tcxt.1bString().Trim();Sq1.UPdaIe0;boolsc11ag=newb<M>l(>:if(upStuScorc/1ext.'IbString().,rim()!=1UyImySqlSCTbmP=newmySqK);sclcmpmondTcxc="SE1.ECTCNOFROMCWHERECN=M*+lis(mn.Tex(.ToS(ring().Trim()+scTenp.runSql();Stringcntcmp=SCTCmP.iahlc.Tablc.RowNOCNO”.T。Slringo淀获得课程号sclempmondTex(='SE1.ECTSNOFROMSCWHERESNO=*+upStuNo.Tex(.ToString().Trirn(>+eANDCNO=*'+cnlemp:SCHag=sc,Icmp.gctHag();if(scFlag)sqlmondTcxl="UPDATESCSETSCORE='m+upStuScorc.Tcxt.ToString().Trim()+H'WHERESNO=w+upStuNo.1xt.ToString().Trim()+'ANDCNO=Fcmp:sql.udae();catchIsqlrno11dTexl=INSERTINTOSC(SNO.CNO.SCORE>VA1.UESC+upStuNtTcxtJbString().rim()÷+tempupS(uScore.Text.TSiring().Tri11X)+Sq1.UpddtCO:his.Close():else(MeSSageBoX.Show/学号、姓名和专业名称都不行以为空!二错i关!)J5.6 删除模块代码设计privatevoid删除记录T(x)IStripMcnultcm_Click(ob)cctsender,EventArgsc)(11ySqldel=new11ySql():Stringtemp=this.dataGridVicw1.CurrcntRow.Cclls(OJ.ValueZIbStringO:iftMcssagcB<n.Show(确定要捌除此条记录?“,”提示MessageBoxBullons.OKCancel>=DialogResuh.OK)(delmond,cxt="DE1.ETEEROMSCWHERESNO="+temp:dcl.runSql();delmondTex(="DE1.ETEFROMSWHERESNO=w÷temp;dd.runSql():this.dataGridVicw!.Rows.Removc(this.dataGridVicwI.CurrcntRow):第六章课程设计心得为期周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计0我依据系统工程软件设计的要求,从需求分析,概念设计,总体设计,具体设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生.信息查询,学生信息更新,学生信息添加等模块的功能。在这短短的五天里我收获如下:1、巩固和加深了对C*的理解,提高综合运用本课程所学学问的实力。2、培育r我选用参考书,查阅手珊及文献资料的实力。培育独立思索,深化探讨,分析问题、解决问题的实力。3、通过实际编译系统的分析设计、编程调试,驾驭应用软件的分析方法和工程设计方法.依据我在课程设计中遇到的何翘,我聘在以后的学习当中留菽以下几点:1、仔细上好专业试验课,多在实践中熬炼自己。2、写程序的过程中要考虑周到,严密.3、在做设计的时候要有信念,有耐性,切勿浮躁。4、仔细的学习课本学问,驾驭课本中的学问点,并在此基础上学会敏槌运用。5、在课余时间里多写程序,娴熟智驭在谓试程序的过程中所遇到的常见错炭,以便能节约调试程序的时间。第地阿日志设计日志(注,指导老师评语和成果所在表格另起一页)指导老郭评语课程设计成绩指导老师签字年月日