版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统一课题名称学生管理信息系统主要功能:学籍信息管理班级信息管理课程信息管理成绩信息管理系统管理二、学校学生管理信息系统的简介学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。功能基本符合根据张波尔老师的要求。学生用户通过输入学生基本信息、课程基本信息等由系统自行生成相应的数据以供学生查询,另外人事处的管理用户还可以对这些基本信息进行更新和删除,学校学生管理信息系统力求给用户方便快捷的途径去管理这些繁琐的数据。具体系统功能需求描述如下:学籍信息管理每年的大量新生入学,老生毕业都需要处理大量的学生信息。通过这一模块,可以实现学生基本情况的添加、删除、更新。还能查询各个学生的情况,姓名、家庭电话、家庭住址、学号等各个消息班级信息管理实现班级的添加、删除、更新。查询班级的所在系别,辅导员等。课程信息管理每个学期都会增加一些新的科目,通过本模块可以轻松的添加以及更新课程。可以根据学期条件或者班级条件的选择,也可根据课程名、课程号或者班级的选择,并对值的输入,可以看到数据集中显示符合条件的课程数据信息,而且可以根据教工的修改要求进行数据的添加、删除、修改的操作。该项管理对课程的属性进行了具体化的分类,比如可以分辨是考试科还是考察课,而且根据条件的选择大大得提高了对各学期课程数据的记录操作,很大得帮助了教工们工作效率的提高。成绩信息管理本模块实现了成绩的输入、删除、更新。还能查询到平均成绩以及单科最高最低成绩以及个人成绩。把成绩统计这个繁琐的工作简单化,为学生成绩的管理方面提高工作效率。系统管理因为本系统是供多人一起使用的,必须对某一些人进行限制。于是设置了管理员,非管理员只能进行查询操作,不能进行更改。三、学校学生管理信息系统的分析和设计开发环境的简介设计平台:DELPHI6.0Delphi是一个对象导向设计的应用程序语言,是开发数据库前端的优秀工具,它的编程语言简洁明快、组件功能强大和编程环境灵活方便。采用Delphi来开发数据库应用程序具有更大的灵活性和可扩展性。数据库:MicrosoftAccessAccess是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。Access多用于中小型企业来设计中小型数据库,一般的学校教务系统的数据库用Access来设计完全能达到要求。由于考虑到本系统是应用在单机系统上,只建立起一个数据库。数据库访问方式:ADOADO(ActiveDataObjects)实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer.Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。学校学生管理信息系统数据库设计由于考虑到本系统是应用在单机系统上,另外根据学校人员规模,我只建立起一个数据库,在此数据库基础上建立起如下八个基本表:学生:学号,姓名,出生年月,性别,籍贯,联系地址,联系电话,班级班级:系名,班级,主要教室,辅导员,班长系表:系名,系办公室,联系电话课程表:课程号,课程号,班级,类别,学时,学名平均成绩表:班级,学号,姓名,平均成绩单科成绩表:学号,姓名,课程表,课程名,成绩选课表:班级,课程号,学期用户名:用户,密码(3)窗体设计:班级管理(banjigl.dfm)班级查询(banjicx.dfm)学籍管理(xuejigl.dfm)学籍查询(xuejicha.dfm)课程管理(kechenggl.dfm)课程查询(kechengcha.dfm)成绩管理(chengjigl.dfm)成绩查询(chengjicha.dfm)(4)系统流程图(DataFlowDiagram):学生信息管理系统成绩查询班级查询班级更新课系程统管管理理成绩更新课程查询课程更新(5)数据库概念结构设计(6)数据库逻辑结构设计学生基本情况表:字段名数据类型是否可空说明班级文本否外关键字学号文本否主关键字
姓名文本否无性别文本否无出生年月日期否无籍贯文本否无联系电话文本是无联系地址文本是无班级情况表:系名文本否外关键字班级文本否关键字主要教室文本是无辅导员文本是无系名文本否外关键字班级文本否关键字系表:系名文本否关键字系办公室文本是无联系电话文本是无课程表:课程号文本否关键字课程名文本否无班级文本是外关键字类别文本是无
平均成绩表:班级文本否外关键字学号文本否关键字姓名文本是无平均成绩长整型是无单科成绩表:学号文本否关键字姓名文本否无课程号文本否外关键字课程名文本否无成绩长整型是无班级选课表:班级文本否组合关键字课程号文本否组合关键字课程名文本是无学期文本否组合关键字(6课程管理部分的代码:选课管理:beginComboBox1.Items.Append(adoquery1.FieldValues['系名']);//ComboBoxl连到系表的系名字段adoquery1.Next;end;end;procedureTForm11.ComboBox1Select(Sender:TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add('select*fromclasswhere系名='+””+ComboBox1.Text+””);//查询系名是否符合adoquery2.ExecSQL;adoquery2.Open;whilenotadoquery2.EofdobeginComboBox2.Items.Append(adoquery2.FieldValues[班级']);//符合就调用班级表的字段班级adoquery2.Next;end;end;procedureTForm11.ComboBox2Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+””+ComboBox2.Text+””);//查询课程表中字段班级是否符合,符合就调到adoquery4.ExecSQL;//DBgiid1adoquery4.Open;end;procedureTForm11.ComboBox3Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+''''+ComboBox2.Text+'''and学期='+''''+ComboBox3.Text+'''');〃判断学期是否符合adoquery4.ExecSQL;adoquery4.Open;procedureTForm11.SpeedButton1Click(Sender:TObject);beginwhilenotadoquery4.Eofdobeginif(adoquery4.FieldValues['课程号']=adoquery3.FieldValues['课程号'])and(adoquery4.FieldValues['班级']=Combobox2.Text)and(adoquery4.FieldValues[学期']=Combobox3.Text)thenbreak;adoquery4.Next;end;ifadoquery4.Eofthenbeginadoquery4.Insert;//把选课内容添加到选课表中。adoquery4.FieldValues[课程号']:=adoquery3.FieldValues[课程号'];adoquery4.FieldValues[班级']:=Combobox2.Text;adoquery4.FieldValues[课程名']:=adoquery3.FieldValues[课程名'];adoquery4.FieldValues[学期']:=Combobox3.Text;adoquery4.Post;endelsebeginshowmessage('本课程此班级已经选过');〃如果已经选过,弹出对话框“本课程此班级已经选过”end;end;procedureTForm11.SpeedButton2Click(Sender:TObject);beginifnotadoquery4.Eofthenadoquery4.Delete;end;end.课程管理:procedureTForm9.FormCreate(Sender:TObject);beginADOQuery3.Close;//关闭数据库ADOQuery3.SQL.Clear;〃清空ADOQuery3.SQL.Add('select*fromkechengbiao');ADOQuery3.ExecSQL;ADOQuery3.Open;dbedit1.DataField:='课程号';dbedit2.DataField:='课程名';dbedit3.DataField:='课时';dbedit4.DataField:='学分';//DBComboBox1.DataField:='学期';DBComboBox2.DataField:='类型';end;procedureTForm9.SpeedButton1Click(Sender:TObject);beginifSpeedButton1.Caption='添加'thenbeginadoquery3.Insert;//添加到课程表SpeedButton1.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;endelseifSpeedButton1.Caption='确定'thenbeginifdbedit1.Text=''thenbeginshowmessage('请输入课程号!’);〃如果课程号没输入,弹出对话框endelsebeginadoquery3.Post;SpeedButton1.Caption:='添加';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;end;end;procedureTForm9.SpeedButton2Click(Sender:TObject);beginifadoquery3.EofthenbeginSpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;end;ifSpeedButton2.Caption='删除'thenbeginSpeedButton2.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton1.Enabled:=false;SpeedButton3.Enabled:=false;endelsebeginadoquery3.Delete;//从数据表中删掉所选记录SpeedButton2.Caption:='删除';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton3.Enabled:=true;end;end;procedureTForm9.SpeedButton4Click(Sender:TObject);beginadoquery3.Cancel;SpeedButton1.Caption:='添加';SpeedButton2.Caption:='删除';SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;procedureTForm9.SpeedButton3Click(Sender:TObject);beginifSpeedButton3.Caption='修改'thenbeginadoquery3.Edit;〃修改课程表中的记录SpeedButton3.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton1.Enabled:=false;endelsebeginadoquery3.Post;SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton1.Enabled:=true;end;end;procedureTForm9.Label1DblClick(Sender:TObject);beginform11:=tform11.Create(application);form11.ShowModal;end;end.课程查询部分:procedureTform4.ComboBox1Select(Sender:TObject);beginedit1.Text:='';button1.Enabled:=false;end;procedureTform4.Button1Click(Sender:TObject);beginifCheckBox1.Checked=truethenbeginADOQueryl.Close;〃先将数据库关闭ADOQueryl.SQL.Clear;//清空ADOQuery1内的SQL值清空ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+''''+edit1.Text+'''and学期='+''''+ComboBox2.Text+'''');//合并查询,符合的话在DBGrid中显示出来ADOQuery1.ExecSQL;ADOQuery1.Open;endelsebeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+""+edit1.Text+"");//单个条件查询ADOQuery1.ExecSQL;ADOQuery1.Open;end;end;procedureTform4.N2Click(Sender:TObject);begin〃开启其他管理界面form2.show;form4.Close;end;procedureTform4.N3Click(Sender:TObject);beginform3.show;form4.Close;end;procedureTform4.N4Click(Sender:TObject);beginform5.show;form4.Close;end;procedureTform4.N6Click(Sender:TObject);beginform1.show;form4.Close;end;procedureTform4.N7Click(Sender:TObject);beginform4.Close;end;procedureTform4.Edit1KeyPress(Sender:TObject;varKey:Char);beginbutton1.Enabled:=true;〃当输入条件后,“确定”按钮为有效状态end;procedureTform4.CheckBox1Click(Sender:TObject);beginComboBox2.Enabled:=CheckBox1.Checked;//把查询到的数据放在DBGrid上显示出来end;end.四、学校学生管理信息系统的使用说明本系统分为学生用户和管理用户,如果你不是管理员,那只能进行查询,对数据没有修改权力。只能进行查询,里面有各个方面的,如成绩查询,课程查询,班级查询,学籍查询。各个界面都简单明了,只要输入你所需要的条件,系统自动调出数据。管理员登陆点系统,点系统,输入管理员用户及密码,跟数据库的用户表比较。如果通过则能进行课程,学籍,成绩,班级的管理。五、结束语学生信息管理系统有利于学校对学生资料的查询,具有可使用性和可维护性,利于学校在需要之时快速了解学生的情况。并可以让具有最高权限的管理员更新、修改信息,已经具备了一定的功能。但由于时间关系和其它原因,本系统还有些不足之处,如本系统没有实现报表打印的功能等等,还有待于完善。在张波尔老师的指导下,经过一段时间的讨论和上机的不断调试,我顺利的完成了开发任务。在开发过程中,我不仅增强了自学的能力和开发软件的能力。对一些软件开发模式有了更加深刻的认识,对应用软件的熟练程度有所提高,已经能运用这项开发过程,学会了如何进行小组式的开发一个综合系统。还从张老师身上学到了很多东西。张老师认真负责的态度严谨治治学精神都使我收益非浅。在此我特向给了很多指导和提供我们开发小组宝贵意见的张波尔老师表示感谢!因为本系统所涉及的内容非常广泛并且比较复杂,加上时间的仓促,尽管我竭尽全力来保证系统的可靠性,但是肯定还有不足之处,恳请用户批评指正。谢谢!参考文献:(1)Delphi6数据库系统开发实例子导航人民邮电出版社程序设计从入门到精通科学出版社Delphi6.0程序设计教程冶金工业出版社Delphi数据库开发自学教程人民邮电出版社各模块主要代码1、成绩管理模块⑴成绩管理procedureTForm8.Button1Click(Sender:TObject);vari:boolean;begini:=false;ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*frompjcjwhere'+edit2.Text+'');ADOQuery2.ExecSQL;ADOQuery2.Open;ifnotADOQuery2.Eofthen(判断是否数据库最后一项)i:=true;ifithenbeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromdkcjwhere学号='+''''+ADOQuery2.FieldValues['学号']+'''');(使用SQL进行查询)ADOQueryl.ExecSQL;ADOQueryl.Open;button1.Enabled:=false;endelsebeginshowmessage('没有符合查询条件的记录!!');(如果没有符合条ComboBox1.Text:=";ComboBox2.Text:='';件的,显示该语句)ComboBox3.Text:='';edit1.Text:='';edit2.Text:='';adoquery1.Close;adoquery2.Close;ComboBox1.Enabled:=true;end;dbedit6.DataField:='学号';dbedit7.DataField:='姓名';dbedit8.DataField:='班级';dbedit1.DataField:='学号';dbedit2.DataField:='姓名';dbedit3.DataField:='课程号';dbedit4.DataField:='课程名';dbedit5.DataField:='成绩';end;(2)成绩查询procedureTform3.Button1Click(Sender:TObject);vari:boolean;begini:=false;ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*frompjcjwhere'+edit2.Text+'');ADOQuery2.ExecSQL;(根据SQL进查询)ADOQuery2.Open;ifnotADOQuery2.Eoftheni:=true;ifithenbeginADOQuery1.Close;ADOQuery1.SQL.Clear;fromdkcjwhere学号ADOQuery1.SQL.Add('select='+''''+ADOQuery2.FieldValues[学号']+'''');ADOQueryl.ExecSQL;ADOQueryl.Open;button1.Enabled:=false;endelsebeginshowmessage('没有符合查询条件的记录!!');ComboBox1.Text:='';(当没有符合条件的记录,自动ComboBox2.Text:='';清空选择框里的查询条件)ComboBox3.Text:='';edit1.Text:='';edit2.Text:='';adoquery1.Close;adoquery2.Close;ComboBox1.Enabled:=true;end;fromdkcjwhere学号varstr:string;beginstr:=ADOQuery2.FieldValues[学号'];ADOQueryl.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromdkcjwhere学号='+''''+str+'''');ADOQuery1.ExecSQL;ADOQuery1.Open;end;procedureTform3.N4Click(Sender:TObject);(管理界面的切换)beginform5.show;form3.Close;end;procedureTform3.N6Click(Sender:TObject);beginform1.show;form3.Close;procedureTform3.Edit1Exit(Sender:TObject);beginifComboBox1.Text='平均成绩'then(根据平均成绩查询)beginedit2.Text:=edit2.Text+edit1.Text;endelsebeginedit2.Text:=edit2.Text+#39;edit2.Text:=edit2.Text+edit1.Text;edit2.Text:=edit2.Text+#39;end;end;procedureTform3.Button2Click(Sender:TObject);begin(本段为对查询条件的刷新,进ComboBox1.Text:='';行不同条件的输入)ComboBox2.Text:='';ComboBox3.Text:='';edit1.Text:='';edit2.Text:='';adoquery1.Close;adoquery2.Close;buttonl.Enabled:二false;ComboBoxl.Enabled:二true;end;2、班级管理模块(1)班级管理procedureTForm9.ComboBox1Select(Sender:TObject);beginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromclasswhere系名=,+,,,,+ComboBox1.Text+,,,,);ADOQuery1.ExecSQL;ADOQuery1.Open;(根据系别显示班级信息)dbedit1.DataField系名,;(这五项为表的数据项名)dbedit2.DataFiel(班级,;dbedit3.DataFiel(辅!导员,;dbedit4.DataField班长,;dbedit5.DataField专业,;button1.Enabled:二true;button2.Enabled:=true;button3.Enabled:=true;button4.Enabled:=true;end;procedureTForm9.Button2Click(Sender:TObject);(记录的删除操作)《修改与添加操作与这类似》beginifbutton2.Caption=删除'thenbeginbutton2.Caption:='确定';button1.Enabled:=false;button3.Enabled:=false;button4.Enabled:=true;end(2)班级查询procedureTForm5.Button1Click(Sender:TObject);beginifRadioButton1.CheckedthenbeginADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*fromclasswhere班级='+''''+edit1.Text+'''');ADOQuery2.ExecSQL;ADOQuery2.Open;end;ifRadioButton2.CheckedthenbeginADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*fromclasswhere专业'+''''+edit2.Text+'''');ADOQuery2.ExecSQL;ADOQuery2.Open;end;ifADOQuery2.FieldValues[系名']<>''thenbeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromxiwhere系名'+''''+ADOQuery2.FieldValues[系名']+'''');ADOQuery1.ExecSQL;ADOQuery1.Open;3、学籍管理模块(1)学籍管理procedureTForm7.FormCreate(Sender:TObject);beginADOQuery3.Close;ADOQuery3.SQL.Clear;ADOQuery3.SQL.Add('select*fromxi');ADOQuery3.ExecSQL;ADOQuery3.Open;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromclasswhere系名='+''''+ComboBox1.Text+'''');ADOQuery1.ExecSQL;ADOQuery1.Open;ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*fromstudentwhere班级='+''''+ADOQuery1.FieldValues[班级']+'''');(根据班级条件列出该班学生学籍情况)ADOQuery2.ExecSQL;ADOQuery2.Open;DBEdit1.DataField:二'学号';(表的数据项,以及学生学籍信息)DBEdit2.DataField:='班级';DBEdit3.DataField:二'姓名';DBEdit4.DataField:二'出生年月';DBEdit5.DataField:二'籍贯';DBEdit6.DataField:二'联系电话';DBEdit7.DataField:二'联系地址';DBComboBox1.DataField:='性别';whilenotADOQuery3.EofdobeginComboBox1.Items.Append(ADOQuery3.FieldValues[系名']);ADOQuery3.Next;end;(2)学籍查询procedureTform2.Button1Click(Sender:TObject);vartf:boolean;begintf:=false;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromstudent');ifCheckBoxl.CheckedorCheckBox2.CheckedorCheckBox3.CheckedorCheckBox4.CheckedthenADOQueryl.SQL.Append('where');ifCheckBox1.CheckedthenbeginADOQuery1.SQL.Add("+CheckBox1.Caption+'='+""+edit1.Text+'''');tf:=true;end;ifCheckBox2.CheckedthenbeginiftfthenADOQuery1.SQL.Append('and');ADOQuery1.SQL.Append(''+CheckBox2.Caption+'='+''''+edit2.Text+'''');tf:=true;end;ifCheckBox3.CheckedthenbeginiftfthenADOQuery1.SQL.Append('and');ADOQuery1.SQL.Append(''+CheckBox3.Caption+'='+''''+edit3.Text+'''');tf:=true;ifCheckBox4.CheckedthenbeginiftfthenADOQueryl.SQL.Append('and');ADOQuery1.SQL.Append("+CheckBox4.Caption+'='+""+edit4.Text+'''');tf:=true;end;ADOQuery1.ExecSQL;ADOQuery1.Open;end;(4)课程管理部分的代码:选课管理:beginComboBox1.Items.Append(adoquery1.FieldValues['系名']);//ComboBox1连到系表的系名字段adoquery1.Next;end;end;procedureTForm11.ComboBox1Select(Sender:TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add('select*fromclasswhere系名='+””+ComboBox1.Text+””);//查询系名是否符合adoquery2.ExecSQL;adoquery2.Open;whilenotadoquery2.EofdobeginComboBox2.Items.Append(adoquery2.FieldValues[班级']);//符合就调用班级表的字段班级adoquery2.Next;end;end;procedureTForm11.ComboBox2Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+””+ComboBox2.Text+””);//查询课程表中字段班级是否符合,符合就调到adoquery4.ExecSQL;//DBgiid1adoquery4.Open;end;procedureTForm11.ComboBox3Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+””+ComboBox2.Text+”'and学期='+””+ComboBox3.Text+””);〃判断学期是否符合adoquery4.ExecSQL;adoquery4.Open;end;procedureTForm11.SpeedButton1Click(Sender:TObject);beginwhilenotadoquery4.Eofdobeginif(adoquery4.FieldValues['课程号']=adoquery3.FieldValues['课程号'])and(adoquery4.FieldValues['班级']=Combobox2.Text)and(adoquery4.FieldValues[学期']=Combobox3.Text)thenbreak;adoquery4.Next;end;ifadoquery4.Eofthenbeginadoquery4.Insert;//把选课内容添加到选课表中。adoquery4.FieldValues[课程号']:=adoquery3.FieldValues[课程号'];adoquery4.FieldValues[班级']:=Combobox2.Text;adoquery4.FieldValues[课程名']:=adoquery3.FieldValues[课程名'];adoquery4.FieldValues[学期']:=Combobox3.Text;adoquery4.Post;endelsebeginshowmessage('本课程此班级已经选过');〃如果已经选过,弹出对话框“本课程此班级已经选过”end;end;procedureTForm11.SpeedButton2Click(Sender:TObject);beginifnotadoquery4.Eofthenadoquery4.Delete;end;end.课程管理:procedureTForm9.FormCreate(Sender:TObject);beginADOQuery3.Close;//关闭数据库ADOQuery3.SQL.Clear;〃清空ADOQuery3.SQL.Add('select*fromkechengbiao');ADOQuery3.ExecSQL;ADOQuery3.Open;dbedit1.DataField:='课程号';dbedit2.DataField:='课程名';dbedit3.DataField:='课时';dbedit4.DataField:='学分';//DBComboBox1.DataField:='学期';DBComboBox2.DataField:='类型';end;procedureTForm9.SpeedButton1Click(Sender:TObject);beginifSpeedButton1.Caption='添加'thenbeginadoquery3.Insert;//添加到课程表SpeedButton1.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;endelseifSpeedButton1.Caption='确定'thenbeginifdbedit1.Text=''thenbeginshowmessage('请输入课程号!’);〃如果课程号没输入,弹出对话框endelsebeginadoquery3.Post;SpeedButton1.Caption:='添加';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;end;procedureTForm9.SpeedButton2Click(Sender:TObject);beginifadoquery3.EofthenbeginSpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;end;ifSpeedButton2.Caption='删除'thenbeginSpeedButton2.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton1.Enabled:=false;SpeedButton3.Enabled:=false;endelsebeginadoquery3.Delete;//从数据表中删掉所选记录SpeedButton2.Caption:='删除';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton3.Enabled:=true;end;end;procedureTForm9.SpeedButton4Click(Sender:TObject);beginadoquery3.Cancel;SpeedButton1.Caption:='添加';SpeedButton2.Caption:='删除';SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;procedureTForm9.SpeedButton3Click(Sender:TObject);beginifSpeedButton3.Caption='修改'thenbeginadoquery3.Edit;//修改课程表中的记录SpeedButton3.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton1.Enabled:=false;endelsebeginadoquery3.Post;SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton1.Enabled:=true;end;end;procedureTForm9.Label1DblClick(Sender:TObject);beginform11:=tform11.Create(application);form11.ShowModal;end.课程查询部分:procedureTform4.ComboBox1Select(Sender:TObject);beginedit1.Text:='';button1.Enabled:=false;end;procedureTform4.Button1Click(Sender:TObject);beginifCheckBox1.Checked=truethenbeginADOQuery1.Close;〃先将数据库关闭ADOQuery1.SQL.Clear;〃清空ADOQuery1内的SQL值清空ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+''''+edit1.Text+'''and学期='+''''+ComboBox2.Text+'''');//合并查询,符合的话在DBGrid中显示出来ADOQuery1.ExecSQL;ADOQuery1.Open;elsebeginADOQueryl.Close;ADOQueryl.SQL.Clear;ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+""+edit1.Text+"");//单个条件查询ADOQuery1.ExecSQL;ADOQuery1.Open;end;end;procedureTform4.N2Click(Sender:TObject);begin〃开启其他管理界面form2.show;form4.Close;end;procedureTform4.N3Click(Sender:TObject);beginform3.show;form4.Close;procedureTform4.N4Click(Sender:TObject);beginform5.show;form4.Close;end;procedureTform4.N6Click(Sender:TObject);beginform1.show;form4.Close;end;procedureTform4.N7Click(Sender:TObject);beginform4.Close;end;procedureTform4.Edit1KeyPress(Sender:TObject;varKey:Char);beginbutton1.Enabled:=true;〃当输入条件后,“确定”按钮为有效状态end;procedureTform4.CheckBox1Click(Sender:TObject);beginComboBox2.Enabled:=CheckBox1.Checked;//把查询到的数据放在DBGrid上显示出来end;end.学生信息管理系统一课题名称学生管理信息系统主要功能:学籍信息管理班级信息管理课程信息管理成绩信息管理系统管理二、学校学生管理信息系统的简介学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。功能基本符合根据张波尔老师的要求。学生用户通过输入学生基本信息、课程基本信息等由系统自行生成相应的数据以供学生查询,另外人事处的管理用户还可以对这些基本信息进行更新和删除,学校学生管理信息系统力求给用户方便快捷的途径去管理这些繁琐的数据。具体系统功能需求描述如下:学籍信息管理每年的大量新生入学,老生毕业都需要处理大量的学生信息。通过这一模块,可以实现学生基本情况的添加、删除、更新。还能查询各个学生的情况,姓名、家庭电话、家庭住址、学号等各个消息班级信息管理实现班级的添加、删除、更新。查询班级的所在系别,辅导员等。课程信息管理每个学期都会增加一些新的科目,通过本模块可以轻松的添加以及更新课程。可以根据学期条件或者班级条件的选择,也可根据课程名、课程号或者班级的选择,并对值的输入,可以看到数据集中显示符合条件的课程数据信息,而且可以根据教工的修改要求进行数据的添加、删除、修改的操作。该项管理对课程的属性进行了具体化的分类,比如可以分辨是考试科还是考察课,而且根据条件的选择大大得提高了对各学期课程数据的记录操作,很大得帮助了教工们工作效率的提高。成绩信息管理本模块实现了成绩的输入、删除、更新。还能查询到平均成绩以及单科最高最低成绩以及个人成绩。把成绩统计这个繁琐的工作简单化,为学生成绩的管理方面提高工作效率。系统管理因为本系统是供多人一起使用的,必须对某一些人进行限制。于是设置了管理员,非管理员只能进行查询操作,不能进行更改。三、学校学生管理信息系统的分析和设计开发环境的简介设计平台:DELPHI6.0Delphi是一个对象导向设计的应用程序语言,是开发数据库前端的优秀工具,它的编程语言简洁明快、组件功能强大和编程环境灵活方便。采用Delphi来开发数据库应用程序具有更大的灵活性和可扩展性。数据库:MicrosoftAccessAccess是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。Access多用于中小型企业来设计中小型数据库,一般的学校教务系统的数据库用Access来设计完全能达到要求。由于考虑到本系统是应用在单机系统上,只建立起一个数据库。数据库访问方式:ADOADO(ActiveDataObjects)实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer.Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。学校学生管理信息系统数据库设计由于考虑到本系统是应用在单机系统上,另外根据学校人员规模,我只建立起一个数据库,在此数据库基础上建立起如下八个基本表:学生:学号,姓名,出生年月,性别,籍贯,联系地址,联系电话,班级班级:系名,班级,主要教室,辅导员,班长系表:系名,系办公室,联系电话课程表:课程号,课程号,班级,类别,学时,学名平均成绩表:班级,学号,姓名,平均成绩单科成绩表:学号,姓名,课程表,课程名,成绩选课表:班级,课程号,学期用户名:用户,密码(3)窗体设计:班级管理(banjigl.dfm)班级查询(banjicx.dfm)学籍管理(xuejigl.dfm)学籍查询(xuejicha.dfm)课程管理(kechenggl.dfm)课程查询(kechengcha.dfm)成绩管理(chengjigl.dfm)成绩查询(chengjicha.dfm)(4)系统流程图(DataFlowDiagram):学生信息管理系统成绩查询班级查询班级更新课系程统管管理理成绩更新课程查询课程更新(5)数据库概念结构设计(6)数据库逻辑结构设计学生基本情况表:字段名数据类型是否可空说明班级文本否外关键字学号文本否主关键字
姓名文本否无性别文本否无出生年月日期否无籍贯文本否无联系电话文本是无联系地址文本是无班级情况表:系名文本否外关键字班级文本否关键字主要教室文本是无辅导员文本是无系名文本否外关键字班级文本否关键字系表:系名文本否关键字系办公室文本是无联系电话文本是无课程表:课程号文本否关键字课程名文本否无班级文本是外关键字类别文本是无
平均成绩表:班级文本否外关键字学号文本否关键字姓名文本是无平均成绩长整型是无单科成绩表:学号文本否关键字姓名文本否无课程号文本否外关键字课程名文本否无成绩长整型是无班级选课表:班级文本否组合关键字课程号文本否组合关键字课程名文本是无学期文本否组合关键字(6课程管理部分的代码:选课管理:beginComboBox1.Items.Append(adoquery1.FieldValues['系名']);//ComboBoxl连到系表的系名字段adoquery1.Next;end;end;procedureTForm11.ComboBox1Select(Sender:TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add('select*fromclasswhere系名='+””+ComboBox1.Text+””);//查询系名是否符合adoquery2.ExecSQL;adoquery2.Open;whilenotadoquery2.EofdobeginComboBox2.Items.Append(adoquery2.FieldValues[班级']);//符合就调用班级表的字段班级adoquery2.Next;end;end;procedureTForm11.ComboBox2Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+””+ComboBox2.Text+””);//查询课程表中字段班级是否符合,符合就调到adoquery4.ExecSQL;//DBgiid1adoquery4.Open;end;procedureTForm11.ComboBox3Select(Sender:TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select*fromkechengwhere班级='+''''+ComboBox2.Text+'''and学期='+''''+ComboBox3.Text+'''');〃判断学期是否符合adoquery4.ExecSQL;adoquery4.Open;procedureTForm11.SpeedButton1Click(Sender:TObject);beginwhilenotadoquery4.Eofdobeginif(adoquery4.FieldValues['课程号']=adoquery3.FieldValues['课程号'])and(adoquery4.FieldValues['班级']=Combobox2.Text)and(adoquery4.FieldValues[学期']=Combobox3.Text)thenbreak;adoquery4.Next;end;ifadoquery4.Eofthenbeginadoquery4.Insert;//把选课内容添加到选课表中。adoquery4.FieldValues[课程号']:=adoquery3.FieldValues[课程号'];adoquery4.FieldValues[班级']:=Combobox2.Text;adoquery4.FieldValues[课程名']:=adoquery3.FieldValues[课程名'];adoquery4.FieldValues[学期']:=Combobox3.Text;adoquery4.Post;endelsebeginshowmessage('本课程此班级已经选过');〃如果已经选过,弹出对话框“本课程此班级已经选过”end;end;procedureTForm11.SpeedButton2Click(Sender:TObject);beginifnotadoquery4.Eofthenadoquery4.Delete;end;end.课程管理:procedureTForm9.FormCreate(Sender:TObject);beginADOQuery3.Close;〃关闭数据库ADOQuery3.SQL.Clear;〃清空ADOQuery3.SQL.Add('select*fromkechengbiao');ADOQuery3.ExecSQL;ADOQuery3.Open;dbedit1.DataField:='课程号';dbedit2.DataField:='课程名';dbedit3.DataField:='课时';dbedit4.DataField:='学分';//DBComboBox1.DataField:='学期';DBComboBox2.DataField:='类型';end;procedureTForm9.SpeedButton1Click(Sender:TObject);beginifSpeedButton1.Caption='添加'thenbeginadoquery3.Insert;//添加到课程表SpeedButton1.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;endelseifSpeedButton1.Caption='确定'thenbeginifdbedit1.Text=''thenbeginshowmessage('请输入课程号!’);〃如果课程号没输入,弹出对话框endelsebeginadoquery3.Post;SpeedButton1.Caption:='添加';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;end;end;procedureTForm9.SpeedButton2Click(Sender:TObject);beginifadoquery3.EofthenbeginSpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;end;ifSpeedButton2.Caption='删除'thenbeginSpeedButton2.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton1.Enabled:=false;SpeedButton3.Enabled:=false;endelsebeginadoquery3.Delete;//从数据表中删掉所选记录SpeedButton2.Caption:='删除';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton3.Enabled:=true;end;end;procedureTForm9.SpeedButton4Click(Sender:TObject);beginadoquery3.Cancel;SpeedButton1.Caption:='添加';SpeedButton2.Caption:='删除';SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;procedureTForm9.SpeedButton3Click(Sender:TObject);beginifSpeedButton3.Caption='修改'thenbeginadoquery3.Edit;//修改课程表中的记录SpeedButton3.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton1.Enabled:=false;endelsebeginadoquery3.Post;SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton1.Enabled:=true;end;end;procedureTForm9.Label1DblClick(Sender:TObject);beginform11:=tform11.Create(application);form11.ShowModal;end;end.课程查询部分:procedureTform4.ComboBox1Select(Sender:TObject);beginedit1.Text:='';button1.Enabled:=false;end;procedureTform4.Button1Click(Sender:TObject);beginifCheckBox1.Checked=truethenbeginADOQueryl.Close;〃先将数据库关闭ADOQueryl.SQL.Clear;//清空ADOQuery1内的SQL值清空ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+''''+edit1.Text+'''and学期='+''''+ComboBox2.Text+'''');//合并查询,符合的话在DBGrid中显示出来ADOQuery1.ExecSQL;ADOQuery1.Open;endelsebeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromkechengwhere'+ComboBox1.text+'='+""+edit1.Text+"");//单个条件查询ADOQuery1.ExecSQL;ADOQuery1.Open;end;end;procedureTform4.N2Click(Sender:TObject);begin〃开启其他管理界面form2.show;form4.Close;end;procedureTform4.N3Click(Sender:TObject);beginform3.show;form4.Close;end;procedureTform4.N4Click(Sender:TObject);beginform5.show;form4.Close;end;procedureTform4.N6Click(Sender:TObject);beginform1.show;form4.Close;end;procedureTform4.N7Click(Sender:TObject);beginform4.Close;end;procedureTform4.Edit1KeyPress(Sender:TObject;varKey:Char);beginbutton1.Enabled:=true;〃当输入条件后,“确定”按钮为有效状态end;procedureTform4.CheckBox1Click(Sender:TObject);beginComboBox2.Enabled:=CheckBox1.Checked;//把查询到的数据放在DBGrid上显示出来end;end.四、学校学生管理信息系统的使用说明本系统分为学生用户和管理用户,如果你不是管理员,那只能进行查询,对数据没有修改权力。只能进行查询,里面有各个方面的,如成绩查询,课程查询,班级查询,学籍查询。各个界面都简单明了,只要输入你所需要的条件,系统自动调出数据。管理员登陆点系统,点系统,输入管理员用户及密码,跟数据库的用户表比较。如果通过则能进行课程,学籍,成绩,班级的管理。五、结束语学生信息管理系统有利于学校对学生资料的查询,具有可使用性和可维护性,利于学校在需要之时快速了解学生的情况。并可以让具有最高权限的管理员更新、修改信息,已经具备了一定的功能。但由于时间关系和其它原因,本系统还有些不足之处,如本系统没有实现报表打印的功能等等,还有待于完善。在张波尔老师的指导下,经过一段时间的讨论和上机的不断调试,我顺利的完成了开发任务。在开发过程中,我不仅增强了自学的能力和开发软件的能力。对一些软件开发模式有了更加深刻的认识,对应用软件的熟练程度有所提高,已经能运用这项开发过程,学会了如何进行小组式的开发一个综合系统。还从张老师身上学到了很多东西。张老师认真负责的态度严谨治治学精神都使我收益非浅。在此我特向给了很多指导和提供我们开发小组宝贵意见的张波尔老师表示感谢!因为本系统所涉及的内容非常广泛并且比较复杂,加上时间的仓促,尽管我竭尽全力来保证系统的可靠性,但是肯定还有不足之处,恳请用户批评指正。谢谢!参考文献:(1)Delphi6数据库系统开发实例子导航人民邮电出版社程序设计从入门到精通科学出版社Delphi6.0程序设计教程冶金工业出版社Delphi数据库开发自学教程人民邮电出版社各模块主要代码1、成绩管理模块⑴成绩管理procedureTForm8.Button1Click(Sender:TObject);vari:boolean;begini:=false;ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*frompjcjwhere'+edit2.Text+'');ADOQuery2.ExecSQL;ADOQuery2.Open;ifnotADOQuery2.Eofthen(判断是否数据库最后一项)i:=true;ifithenbeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromdkcjwhere学号='+''''+ADOQuery2.FieldValues['学号']+'''');(使用SQL进行查询)ADOQueryl.ExecSQL;ADOQueryl.Open;button1.Enabled:=false;endelsebeginshowmessage('没有符合查询条件的记录!!');(如果没有符合条ComboBox1.Text:=";ComboBox2.Text:='';件的,显示该语句)ComboBox3.Text:='';edit1.Text:='';edit2.Text:='';adoquery1.Close;adoquery2.Close;ComboBox1.Enabled:=true;end;dbedit6.DataField:='学号';dbedit7.DataField:='姓名';dbedit8.DataField:='班级';dbedit1.DataField:='学号';dbedit2.DataField:='姓名';dbedit3.DataField:='课程号';dbedit4.DataField:='课程名';dbedit5.DataField:='成绩';end;(2)成绩查询procedureTform3.Button1Click(Sender:TObject);vari:boolean;begini:=false;ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add('select*frompjcjwhere'+edit2.Text+'');ADOQuery2.ExecSQL;(根据SQL进查询)ADOQuery2.Open;ifnotADOQuery2.Eoftheni:=true;ifithenbeginADOQuery1.Close;ADOQuery1.SQL.Clear;fromdkcjwhere学号ADOQuery1.SQL.Add('select='+''''+ADOQuery2.FieldValues[学号']+'''');ADOQueryl.ExecSQL;ADOQueryl.Open;button1.Enabled:=false;endel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校疫情防控课件
- 文员实习总结13篇
- 专业实习报告15篇
- 儿童礼仪培训课件
- 小学音乐教师师德述职报告4篇
- 老年糖尿病课件
- 语文工作计划模板五篇
- 教师教学个人工作总结
- 工程部个人述职报告范例【三篇】
- 离职申请书14篇
- 2023年冬季山东高中学业水平合格考政治试题真题(含答案)
- 文艺复兴经典名著选读智慧树知到期末考试答案章节答案2024年北京大学
- 劳务派遣劳务外包服务方案(技术方案)
- 四年级算24点比赛试卷打印版难(共8页)
- 框架涵洞施工技术总结
- 毕业设计(论文)叉车液压系统设计
- 四年级语文上册文言文阅读与理解必考题部编版
- -品管圈-在提高眼科患者正确滴眼药水的运用
- 农村商业银行联网核查公民身份信息业务处理规定
- 数学与应用数学-关于不定方程在初等数学中的教学研究论文
- 巨细胞病毒感染诊疗指南(完整版)
评论
0/150
提交评论