教学辅助系统.docx
《教学辅助系统.docx》由会员分享,可在线阅读,更多相关《教学辅助系统.docx(21页珍藏版)》请在冰豆网上搜索。
教学辅助系统
教学辅助系统
第1章为什么要开发一个教师信息管理系统
1.1计算机已经成为我们学习和工作的得力助手
仅仅靠原始的手工管理,学校面对大量的教师信息信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。
学校的决策只能依据报表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。
因此,先进的管理思想在学校中实现就成为了一个可望而不可及的目标。
在计算机上建立教师信息库,可以实现快速录入、整理、查找、补充、删减等功能。
并可将教师信息图片存于电脑计划之中,集成教师信息考勤,教师信息家庭关系和教师信息成绩库功能,在进入系统之前有密码进行身份验证,保证了系统的机密性,为学校提高工作效率的,提高人员效率,决策,和监控教师信息情况提供了一个有力的工具。
“计算机已经成为我们学习和工作的得力助手:
仅仅靠原始的手工管理,学校面对大量的教师信息信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。
学校的决策只能依据报表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。
因此,先进的管理思想在学校中实现就成为了一个可望而不可及的目标。
”[1]
第2章教学辅助系统编程环境现状及设计目标简介
2.1Delphi基本概念介绍
2.1.1进入Delphi的可视化编程环境
(1)安装Delphi
Delphi的安装与其它应用软件并无不同。
2.0版必须在Windows95以上的操作系统中使用。
启动Windows95或WindowsNT后,将Delphi的光盘放入光驱(CD-ROM)中,运行光盘上的\INSTALL\SETUP.EXE文件,它的安装程序会提示正确地装入Delphi。
如果是在微软中文Windows环境中安装Delphi,请参照附录A来设置的BDE环境,以便于处理中文数据。
进入Delphi环境
为避免隐藏在Delphi后的ProgramManager和曾经运行过的其它程序扰乱版面,分散的注意力,不妨在启动Delphi前关掉其它应用程序;启动Delphi后,再最小化隐藏在后面的Delphi2.0程序组。
这样屏幕上就只留下Delphi窗口可见了。
首次加载Delphi,屏幕上会出现四个窗口:
标题为“Delphi-Project1”的Delphi主窗口
ObjectInspector窗口
标题为“Form1”的窗体(Form)窗口
标题为“Unit1.PAS”的代码编辑窗口。
刚启动时这一窗口的大部分被“Form1”窗体所掩盖。
将“Form1”窗体移开,或单击Form1窗体下方的状态行,可以使其全部可见。
在“Form1”窗体的任意可见位置单击鼠标,可以恢复主窗体可见
以下我们将对这四个窗口分别进行介绍。
(2)主窗口(MainForm)
Delphi的主窗口位于屏幕的上端,包括Menu(菜单)、SpeedBar(加速条)和ComponentPanel(部件选项板)。
Menu是下拉式主菜单。
SpeedBar位于主窗口的左下端,由两排共14个加速按钮组成。
这些按钮是菜单功能的快捷方式,各种图标直观地表示了它能执行的动作。
ComponentPanel由一行、若干页对象按钮所组成,利用它来选择需要的部件并将它放到窗体中去。
(3)ObjectInspector(对象检视器)
ObjectInspector窗口含有两页:
Properties页显示窗体中当前被选择部件的属性信息,并允许改变对象的属性;Events页列出了当前部件可以响应的事件。
按动ObjectInspector下端的“Events”页标签,使得Events页可见,这一定的事件后边的空白处,可以定义对象接受到相应事件时执行的动作。
首次启动时,ObjectInspector窗口显示的是当前窗体Form1的属性。
ObjectInspector根据对象属性的多少,决定是否有滚行显示。
移动滚行条,可以查看当前对象的全部属性。
此外,ObjectInspector上还有ObjectSelector(对象选择器),位于ObjectInspector上方的下拉式菜单中。
它显示了窗体上所有部件的名称和类型,也包含窗体本身。
可以用ObjectSelector很容易地在窗体的各个部件之间切换,也可以快速地回到窗体本身。
当窗体中含有较多的对象时,会发现这是切换对象尤其是回到窗体的最快捷途径。
想使ObjectInspector一直可见,可将鼠标移到ObjectInspector上,按动右键,以启动ObjectInspector的弹出式菜单,将其设置为StayOnTop。
这对初学者常是一个很重要的设置方式。
窗体窗口
Forms窗口是开展大部分设计的工作区域。
首次启动Delphi2.0时显示的是窗体Form1。
可以把部件放在窗体中,通过移动位置、改变尺寸等操作随心所欲地安排它们,以此来开发应用程序的用户界面。
可以把窗体想象成一个可以放置其它部件的容器。
窗体上有栅格(Grids),供放置部件时对齐位置用,在程序运行时Grids是不可见的。
一个真正的应用程序可能有不止一个窗口,可以选用不同的窗体进行设计。
其它窗体可以是对话框(DialogBox)、数据录入框等。
(4)代码窗口
代码窗口一开始处于窗体窗口之下。
因为在Delphi中,设计用户界面直接在窗体中进行,运行结果和设计样板完全一致。
当部件被放到窗体上时,Delphi会自动生成大部分的用户界面代码。
所应做的只是在它为生成的框架中加入完成所需功能的程序段而已。
点动Form1的状态行使代码窗口可见。
这个窗口中是代码编辑器。
可以在其中书写Delphi应用程序的源代码。
当程序中含有不止一个窗口时,会有几个库单元的源程序出现在代码编辑器中。
代码编辑器的标题条中显示了当前正在编辑的库单元文件名。
要查看某一特定程序的源代码,只需用鼠标点动写有该库单元文件名的页标签,就可以对该库单元进行编辑了。
2.2Object Pascal基本概念
在Object Pascal中,数据类型也同其它语言一样十分的丰富,甚至有的类型对程序开发的简便性比其它的语言有过之的地方。
在Object Pascal语言中不区别大小写,这是有别于C类语言的。
标识符是以字母或下划线开头的字母,数字序列。
关键字也称保留字,它是Object Pascal语言系统本身定义的,作为特殊用途的符号,不能用作他用。
在Object Pascal语言中字符串变量的存在大大减少了对字符串操作的复杂性,这点是C类语言的弱处,如果在C类的语言中声明一个”字符串变量”就得用数组来做,不仅操作麻烦,而且代码维护的成本大大的提高,字符串类型的标识符为string,字符串变量在Object Pascal语言的声明:
VAR yourstring:
string
这样就可以操作yourstring这个变量了,对它进行赋值的操作:
yourstring:
=’very good’; 注:
字符串表示用单引号!
Object Pascal语言中赋值的操作的格式是:
变量名:
=操作数; 这点有别于其它的语言。
上面的例子可以引申为变量的声明格式:
Var 变量名:
类型标识符;
在Object Pascal语言中支持多种的整数类型,它们的类型标识符为:
integer,shortint,smallint,longint,int64,byte,word,longword,cardinal,不同的整数类型有不同的取值范围,我们这里只取最常用的类型integer整数类型,具体的取值范围请参考pascal书籍。
字符类型在Object Pascal语言中用char标识符来表示,用于保存单个的字符。
标准的布尔类型的标识符为boolean,布尔类型的值只有两个取值:
true和false。
在Object Pascal语言中也支持多种不同的实数类型,如real,single,double extended,comp,currency,同整数类型一样,不同的实数类型取值的范围也不尽相同。
变量常量在Object Pascal语言中声明格式为:
常量说明:
const 常量标识符1=常量1;
……
常量标识符n=常量n;
常量说明例:
const min=0;
man=100;
变量说明:
var <变量标识符1>,<变量标识符2>:
<类型标识符>;
……
<变量标识符n>,<变量标识符n>:
<类型标识符>;
变量说明例:
var youvar:
integer;
a,b,c:
string;
d,e,f:
real;
算术运行符:
+,-,*,,div(整数除法运算)mod(取余运算)。
逻辑运算符:
not,and,or,xor,shl,shr。
关系运行符:
=(相等),<>(不相等),<,.>,>=,<=。
任何程序的内在语法大体都相似。
第3章使用ACCESS关系型数据库
3.1数据库的概念
3.1.1中小型关系型数据库简介
在我们对数据库操作进行讲解前,我们觉得有必要向大家介绍一下关系型数据库这个概念,因为我们觉得无论是你做什么样的系统,都或多或少要接触到数据库,而现在提到数据库,当然就是关系型数据库了。
那么,什么是关系型数据库(RDB)呢?
在关系型数据库中数据以行和列的形式存储,以便于用户理解,这一系列的行和列被称为表,一组表便组成了数据库。
在关系数据库中:
各数据项之间用关系来组织,关系(relationship)是表之间的一种连接,通过关系,我们可以更灵活地表示和操纵数据;另外,用户可以非常方便的用查询(Query)来检索数据库中的数据,一个Query是一个用于指定数据库中行和列的SELECT语句。
3.2新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模型设计。
1.标识需要的数据;
2.收集被标识的字段到表中;
3.标识主关键字字段;
4.绘制一个简单的数据图表;
5.规范数据;
6.标识指定字段的信息;
7.创建物理表。
3.3修改已建的数据库
数据库的修改分为:
添加、编辑和删除记录。
这三种操作均可由DELPHI7.0创建的程序来完成,下面的章节将详细描述实现的具体方法。
3.4实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。
一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。
一个更高级的连接形式称为自连接。
这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。
数据库中有三种不同类型的关键字:
主关键字、组合关键字和外关键字。
在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
对表的行和列都有特殊的叫法,每一列叫做一个“字段”。
每个字段包含某一专题的信息。
就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。
我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。
数据库的结构创建好了,接下来我们需要做的就是对数据库进行一系列的基本操作。
增加记录:
在“数据表”视图或“窗体”视图中打开相应的窗体,单击工具栏上的“新记录“按钮,键入所需数据,然后按TAB键转至下一个字段,在记录末尾,按TAB键转至下一个记录。
编辑记录:
如果要编辑字段中的数据,单击要编辑的字段,如果要替换整个字段的值,指向字段的最左边,在鼠标变为加号时,单击该字段,键入要插入的文本。
注意:
如果键入有错,可按BACKSPACE键;如果要取消对当前字段的更改,按ESC键;如果要取消对整个记录的更改,在移出该字段之前再次按ESC键,当从一个记录移动到其它记录时,SQLServer将保存对该记录的修改。
复制或移动数据:
在其它应用程序,如Excel、Word中,选择要复制或移动的一至多行。
如果是从Word中复制数据,应确保记录在选择之前已经在表中排列好或已经使用制表符分隔开,如果粘贴数据到数据表中,应确保数据表中的列与要复制或移动的数据的顺序一致,如果粘贴数据到窗体上,而窗体上相应的控件名称与复制数据的列名相同,SQLServer将粘贴数据到名称相同的控件上。
在SQLServer中,打开要向其中粘贴记录的数据表或窗体,如果要替换现有记录,选择要替换的记录,然后单击工具栏上的“粘贴追加”或“粘贴”按钮;如果窗体中的记录选定器不可用,要选择当前记录,可单击“编辑”菜单中的“选择记录”命令。
删除记录:
单击要删除的记录,单击工具栏上的“删除记录”按钮。
3.4.1字段类型
不同的字段类型用来存放不同类型的数据。
创建和使用表时,更你应该理解五种常用的字段类型:
字符型,文本型,数值型,逻辑性和日期型。
3.4.2字符型数据
字符型数据非常有用。
当你需要存储短的字符串信息时,你总是要用到字符型数据。
例如,你可以把从HTML form的文本框中搜集到的信息放在字符型字段中。
要建立一个字段用来存放可变长度的字符串信息,你可以使用表达式 VARCHAR。
考虑你前面创建的表guestbook:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydateDATETIME)
在这个例子中,字段visitor的数据类型为VARCHAR。
注意跟在数据类型后面的括号中的数字。
这个数字指定了这个字段所允许存放的字符串的最大长度。
在这个例子中,字段visitor能存放的字符串最长为四十个字符。
如果名字太长,字符串会被截断,只保留四十个字符。
VARCHAR类型可以存储的字符串最长为255个字符。
要存储更长的字符串数据,可以使用文本型数据(下一节中讲述)。
另一种字符型数据用来存储固定长度的字符数据。
下面是一个使用这种数据类型的例子:
CREATE TABLE guestbook (visitor CHAR(40),comments TEXT,entrydate DATETIME)在这个例子中,字段visitor被用来存储四十个字符的固定长度字符串。
表达式CHAR指定了这个字段应该是固定长度的字符串。
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。
假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。
当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。
现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。
字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。
使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。
当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要。
3.4.3文本型数据
字符型数据限制了字符串的长度不能超过255个字符。
而使用文本型数据,你可以存放超过二十亿个字符的字符串。
当你需要存储大串的字符时,应该使用文本型数据。
“复制或移动数据:
在其它应用程序,如Excel、Word中,选择要复制或移动的一至多行。
如果是从Word中复制数据,应确保记录在选择之前已经在表中排列好或已经使用制表符分隔开,如果粘贴数据到数据表中,应确保数据表中的列与要复制或移动的数据的顺序一致,如果粘贴数据到窗体上,而窗体上相应的控件名称与复制数据的列名相同,SQLServer将粘贴数据到名称相同的控件上。
在SQLServer中,打开要向其中粘贴记录的数据表或窗体,如果要替换现有记录,选择要替换的记录,然后单击工具栏上的“粘贴追加”或“粘贴”按钮;如果窗体中的记录选定器不可用,要选择当前记录,可单击“编辑”菜单中的“选择记录”命令。
”[2]
第4章系统总体规划
4.1系统功能
4.1.1系统登陆模块
限制进入系统的用户,防止系统数据被破坏。
4.1.2教师信息制订模块
通过用户交互的窗体完成原始数据的录入和修改维护教师信息管理,根据学院发放的“本科专业指导性教计划原则”作为条件制定教师信息。
4.1.3课程设置功能
可以对任何一门新课设置其前续课和后续课,还可以对之进行相应删除,充分体现了教师信息的整体优化性。
4.1.4用户管理模块
通过与表格增加和删除用户。
第5章系统具体实现
和以前的版本相比,DELPHIP在多数地方已不需要写代码,表单和对象的属性提供了控制许多对象的方法,但是总有些事情是要用程序去实现的。
5.1用户界面的实现
5.1.1登陆界面
系统登陆模块:
限制进入系统的用户,防止系统数据被破坏。
图5.1登陆界面
用ADOTABLETABLE控件使用连接数据库,在文件名,选择当前目录的数据库,在数据源选择用户表,然后确定。
在登陆按钮的单击事件中用IFTHEN语句判断出是否用户名和密码正确。
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,jpeg,ExtCtrls,Menus,DB,ADODB;
type
TForm1=class(TForm)
Button1:
TButton;
Label1:
TLabel;
Edit1:
TEdit;
ADOQuery1:
TADOQuery;
Edit2:
TEdit;
Label2:
TLabel;
Label3:
TLabel;
procedureButton1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
usesUnit4,Unit5,Unit6,Unit7,Unit8,Unit11;
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT*FROMusers');
ADOQuery1.SQL.Add('whereuser=:
ss');
ADOQuery1.Parameters.ParamByName('ss').Value:
=edit1.Text;
ADOQuery1.Open;
ifADOQuery1.EofandADOQuery1.Bofthen
begin
showmessage('用户错误');
end
else
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT*FROMusers');
ADOQuery1.SQL.Add('wherepass=:
kkanduser=:
ss');
ADOQuery1.Parameters.ParamByName('ss').Value:
=edit1.Text;
ADOQuery1.Parameters.ParamByName('kk').Value:
=edit2.Text;
ADOQuery1.Open;
ifADOQuery1.EofandADOQuery1.Bofthen
begin
showmessage('密码错误');
end
else
begin
form9.show;
form1.Hide
end
end
end;
end.
5.1.2主界面
图5.2主界面
使用按钮单击事件打开各个界面
unitUnit11;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls;
type
TForm9=class(TForm)
Label1:
TLabel;
Button3:
TButton;
Button7:
TButton;
Button6:
TButton;
Button5:
TButton;
procedureButton3Click(Sender:
TObject);
procedureButton5Click(Sender:
TObject);
procedureButton6Click(Sender:
TObject);
procedureButton7Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form9:
TForm9;
implementation
usesUnit5,Unit6,Unit8,Unit4,Unit1;
{$R*.dfm}
procedureTForm9.Button3Click(Sender:
TObject);
begin
form4.show
end;
procedureTForm9.Button5Click(Sender:
TObject);
begin
form8.show
end;
procedureTForm9.Button6Click(Sender:
TObject);
begin
form6.show
end;
procedureTForm9.Button7Click(Sender:
TObject);
begin
form1.close
end;
end.
5.1.3各项功能界面
(1)教师信息制订模块
通过用户交互的窗体完成原始数据的录入和修改维护教师信息管理,根据学院发放的“本科专业指导性教计划原则”作为条件制定教师信息。
图5.3教学计划
首先在数据库建教师信息的数据表,表中具有界面上的相关字段
用LABEL控件画出各个标签,CAPITION属性为数据库的各个字段。
用ADOTABLETABLE控件使用连接数据库,在文件名,选择当前目录的数据库,在数据源选择教师信息的数据表,然后确定,这样的目的是使用ADOTABLE控件连接到数据库。
用DataSource控件连接到ADOTABLETABLE数据源。
然后用EDIT控件通过连接DataSource而连接到数据库通过连接EDI