学生信息管理系统设计论文——学生管理系统一课题名称学生管理信息系统主要功能:1.学籍信息管理2.班级信息管理3.课程信息管理4.成绩信息管理5.系统管理本系统由刘志强、蔡佳弟、方永福、魏希煌、吴鸿伟共同完成,本人负责的人主要模块是课程管理。
二、学校学生管理信息系统的简介学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。
功能基本符合根据张波尔老师的要求。
学生用户通过输入学生基本信息、课程基本信息等,由系统自行生成相应的数据以供学生查询,另外人事处的管理用户还可以对这些基本信息进行更新和删除, 学校学生管理信息系统力求给用户方便快捷的途径去管理这些繁琐的数据。
具体系统功能需求描述如下:(1) 学籍信息管理每年的大量新生入学,老生毕业都需要处理大量的学生信息。
通过这一模块,可以实现学生基本情况的添加、删除、更新。
还能查询各个学生的情况,姓名、家庭电话、家庭住址、学号等各个消息(2) 班级信息管理实现班级的添加、删除、更新。
查询班级的所在系别,辅导员等。
(3)课程信息管理每个学期都会增加一些新的科目,通过本模块可以轻松的添加以及更新课程。
可以根据学期条件或者班级条件的选择,也可根据课程名、课程号或者班级的选择,并对值的输入,可以看到数据集中显示符合条件的课程数据信息,而且可以根据教工的修改要求进行数据的添加、删除、修改的操作。
该项管理对课程的属性进行了具体化的分类,比如可以分辨是考试科还是考察课,而且根据条件的选择大大得提高了对各学期课程数据的记录操作,很大得帮助了教工们工作效率的提高。
(4)成绩信息管理本模块实现了成绩的输入、删除、更新。
还能查询到平均成绩以及单科最高最低成绩以及个人成绩。
把成绩统计这个繁琐的工作简单化,为学生成绩的管理方面提高工作效率。
(5)系统管理因为本系统是供多人一起使用的,必须对某一些人进行限制。
于是设置了管理员,非管理员只能进行查询操作,不能进行更改。
三、学校学生管理信息系统的分析和设计(1)开发环境的简介设计平台:DELPHI6.0Delphi是一个对象导向设计的应用程序语言,是开发数据库前端的优秀工具,它的编程语言简洁明快、组件功能强大和编程环境灵活方便。
采用Delphi来开发数据库应用程序具有更大的灵活性和可扩展性。
数据库:Microsoft AccessAccess 是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
Access 的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel 的电子表格,可以使数据库一目了然。
另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
Access 多用于中小型企业来设计中小型数据库,一般的学校教务系统的数据库用Access 来设计完全能达到要求。
由于考虑到本系统是应用在单机系统上,只建立起一个数据库。
数据库访问方式:ADOADO(Active Data Objects)实际是一种提供访问各种数据类型的连接机制。
ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。
可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access 等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。
ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。
Delphi的ADO组件无需依靠BDE而是使用ADO技术,提供了可以通过数据控制组件访问数据的新方法。
唯一的要求是在使用ADO组件时必须运行ADO/OLE DB。
ADO组件的使用使得DELPHI在访问数据的类型和采用的技术方面都有了很大的突破。
由于ADO是Microsoft提出的一种用来访问数据库的通用引擎,Microsoft通过COM技术封装OLE DB成为ADO,为开发人员提供访问、编辑和修改各种不同数据源的统一的编程接口,让程序能够方便的处理各种数据。
在ADO引擎中,Microsoft提供了多种不同数据库的驱动程序,同时第三方的厂商也可以开发自己的数据库的ADO驱动程序。
和BDE相比,ADO具有以下的优点:对于本地和远程的数据库访问都与具体的数据库无关;安装方便(对于高版本的Windows而言,ADO就是操作系统的一部分),有着良好的技术支持和版本升级,由于ADO是Microsoft开发的,所以它对Microsoft的Access和SQL Server的数据访问有着非常好的支持,因此如果是基于Access和SQL Server 的数据库应用程序的开发,那么采用ADO是很好的选择。
对于别的数据库,比如ORACLE,最好采用ORACLE提供的针对ORACLE数据库设计的ORACLE ADO驱动程序,以达到最佳的数据访问。
因为本系统是基于Access数据库的设计,因此我们采用了ADO。
(2)学校学生管理信息系统数据库设计由于考虑到本系统是应用在单机系统上,另外根据学校人员规模,我只建立起一个数据库,在此数据库基础上建立起如下八个基本表:学生:学号,姓名,出生年月,性别,籍贯,联系地址,联系电话,班级班级:系名,班级,主要教室,辅导员,班长系表:系名,系办公室,联系电话课程表:课程号,课程号,班级,类别,学时,学名平均成绩表:班级,学号,姓名,平均成绩单科成绩表:学号,姓名,课程表,课程名,成绩选课表:班级,课程号,学期用户名:用户,密码(3)窗体设计:班级管理(banjigl.dfm)班级查询(banjicx.dfm)学籍管理(xuejigl.dfm)学籍查询(xuejicha.dfm)课程管理(kechenggl.dfm)课程查询(kechengcha.dfm)成绩管理(chengjigl.dfm)成绩查询(chengjicha.dfm)(4)系统流程图(Data Flow Diagram):(5)数据库概念结构设计:(6)数据库逻辑结构设计学生基本情况表:班级情况表:系表:课程表:平均成绩表:单科成绩表:班级选课表:(6)课程管理部分的代码:选课管理:beginComboBox1.Items.Append(adoquery1.FieldValues['系名']); //ComboBox1连到系表的系名字段adoquery1.Next;end; end;procedure boBox1Select(Sender: TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add('select * from class where 系名='+''''+ComboBox1.Text+'''');//查询系名是否符合adoquery2.ExecSQL;adoquery2.Open;while not adoquery2.Eof dobeginComboBox2.Items.Append(adoquery2.FieldValues['班级']);//符合就调用班级表的字段班级adoquery2.Next;end;end;procedure boBox2Select(Sender: TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select * from kecheng where 班级='+''''+ComboBox2.Text+'''');//查询课程表中字段班级是否符合,符合就调到adoquery4.ExecSQL; //DBgiid1 adoquery4.Open;end;procedure boBox3Select(Sender: TObject);beginadoquery4.Close;adoquery4.SQL.Clear;adoquery4.SQL.Add('select * from kecheng where 班级='+''''+ComboBox2.Text+''' and 学期='+''''+ComboBox3.Text+''''); //判断学期是否符合adoquery4.ExecSQL;adoquery4.Open;end;procedure TForm11.SpeedButton1Click(Sender: TObject);beginwhile not adoquery4.Eof dobeginif (adoquery4.FieldValues['课程号']=adoquery3.FieldValues['课程号']) and (adoquery4.FieldValues['班级']=Combobox2.Text) and (adoquery4.FieldValues['学期']=Combobox3.Text) thenbreak;adoquery4.Next;end;if adoquery4.Eof thenbeginadoquery4.Insert; //把选课内容添加到选课表中。
adoquery4.FieldValues['课程号']:=adoquery3.FieldValues['课程号'];adoquery4.FieldValues['班级']:=Combobox2.Text;adoquery4.FieldValues['课程名']:=adoquery3.FieldValues['课程名'];adoquery4.FieldValues['学期']:=Combobox3.Text;adoquery4.Post;endelsebeginshowmessage('本课程此班级已经选过'); //如果已经选过,弹出对话框“本课程此班级已经选过”end;end;procedure TForm11.SpeedButton2Click(Sender: TObject);beginif not adoquery4.Eof thenadoquery4.Delete;end;end.课程管理:procedure TForm9.FormCreate(Sender: TObject);beginADOQuery3.Close; //关闭数据库ADOQuery3.SQL.Clear; //清空ADOQuery3.SQL.Add('select * from kechengbiao');ADOQuery3.ExecSQL;ADOQuery3.Open;dbedit1.DataField:='课程号';dbedit2.DataField:='课程名';dbedit3.DataField:='课时';dbedit4.DataField:='学分';//DBComboBox1.DataField:='学期';DBComboBox2.DataField:='类型';end;procedure TForm9.SpeedButton1Click(Sender: TObject);beginif SpeedButton1.Caption='添加' thenbeginadoquery3.Insert; //添加到课程表SpeedButton1.Caption:='确定';SpeedButton4.Enabled:=true;SpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;endelseif SpeedButton1.Caption='确定' thenbeginif dbedit1.Text='' thenbeginshowmessage('请输入课程号!'); //如果课程号没输入,弹出对话框endelsebeginadoquery3.Post;SpeedButton1.Caption:='添加';SpeedButton4.Enabled:=false;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;end;end;procedure TForm9.SpeedButton2Click(Sender: TObject);beginif adoquery3.Eof thenbeginSpeedButton2.Enabled:=false;SpeedButton3.Enabled:=false;end;if SpeedButton2.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;procedure TForm9.SpeedButton4Click(Sender: TObject); beginadoquery3.Cancel;SpeedButton1.Caption:='添加';SpeedButton2.Caption:='删除';SpeedButton3.Caption:='修改';SpeedButton4.Enabled:=false;SpeedButton1.Enabled:=true;SpeedButton2.Enabled:=true;SpeedButton3.Enabled:=true;end;procedure TForm9.SpeedButton3Click(Sender: TObject); beginif SpeedButton3.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;procedure bel1DblClick(Sender: TObject); beginform11:=tform11.Create(application);form11.ShowModal;end;end.课程查询部分:procedure boBox1Select(Sender: TObject);beginedit1.Text:='';button1.Enabled:=false;end;procedure Tform4.Button1Click(Sender: TObject);beginif CheckBox1.Checked=true thenbeginADOQuery1.Close; //先将数据库关闭ADOQuery1.SQL.Clear; //清空ADOQuery1内的SQL值清空ADOQuery1.SQL.Add('select * from kecheng where '+ComboBox1.text+' = '+''''+edit1.Text+''' and 学期= '+''''+ComboBox2.Text+''''); //合并查询,符合的话在DBGrid中显示出来ADOQuery1.ExecSQL;ADOQuery1.Open;endelsebeginADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select * from kecheng where '+ComboBox1.text+' = '+''''+edit1.Text+'''');//单个条件查询ADOQuery1.ExecSQL;ADOQuery1.Open;end;end;procedure Tform4.N2Click(Sender: TObject);begin //开启其他管理界面form2.show;form4.Close;end;procedure Tform4.N3Click(Sender: TObject);beginform3.show;form4.Close;end;procedure Tform4.N4Click(Sender: TObject);beginform5.show;form4.Close;end;procedure Tform4.N6Click(Sender: TObject);beginform1.show;form4.Close;end;procedure Tform4.N7Click(Sender: TObject);beginform4.Close;end;procedure Tform4.Edit1KeyPress(Sender: TObject; var Key: Char);beginbutton1.Enabled:=true; //当输入条件后,“确定”按钮为有效状态end;procedure Tform4.CheckBox1Click(Sender: TObject);beginComboBox2.Enabled:=CheckBox1.Checked;//把查询到的数据放在DBGrid上显示出来end;end.四、学校学生管理信息系统的使用说明本系统分为学生用户和管理用户,如果你不是管理员,那只能进行查询,对数据没有修改权力。