教材管理系统,若图片无法显示请联系站长QQ752018766
一、系统简介
教材管理系统实现的是对教材进行管理操作以及对书费交纳情况进行管理。同时该系统也有对自己系统本身的管理。该系统分了4个主要模块:系统管理、书费管理、出入库和综合查询。在系统管理模块中分别实现操作员管理、密码修改、系统初始化、班级管理、单位信息的功能;书费管理有缴纳书费和退回书费的功能;出入库有教材入库、学生领书、教师领书等功能;综合查询有书费查询、领书查询和库存查询。
二、系统实现
系统框图:
教材管理系统 系统管理 书费管理 出入库 综合查询 密码修改 班级管理 单位信息 缴纳书费 退回书费 教材入库 学生领书 教师领书 书费查询 领书查询 操作员管理 系统初始化 库存查询
该系统采用的是ACESS数据库,有4张数据表,分别为用户权限表power,选修课课程表kc,学生信息表xs和选课信息表xk。
power表中有id和key两项,都为18个字符大小的文本型。
kc表有课号、课名、教师、教室、时间五项,都为文本型。
xs表中有学号、姓名、性别、学院、年级、专业、班级七项,都为文本型。
xk表中有学号和课号两项,为文本型。
系统设计:
主窗体是程序的控制中心,其他模块都是通过主窗体来调用的。
本系统除了主窗体main和数据模块dm都是用动态创建窗体的方法。
数据模块dm中有:
KCS: TDataSource; 课程
ADOConnection1: TADOConnection; 数据库链接
power: TADOQuery; 用户权限
KC: TADOQuery; 课程
XK: TADOQuery; 选课
XKS: TDataSource;选课
xs: TADOQuery;学生信息。
登录窗体load是通过主窗体的onshow事件来调用的。主要代码有
procedure Tmain.FormShow(Sender: TObject);
begin
application.CreateForm(tload,load);
load.ShowModal;
load.Free;
self.StatusBar1.Panels[4].Text:=datetostr(now);
self.GroupBox1.Visible:=false;
self.GroupBox2.Visible:=false;
self.GroupBox3.Visible:=false;
self.GroupBox4.Visible:=true;
end;
其中该段代码中还包括对主窗体的初始化,如StatusBar1控件显示日期,groupbox的可见不可见。
登录窗体中登录的实现如下:
procedure Tload.SpeedButton1Click(Sender: TObject);
begin
with dm.power do
begin
close;
sql.Clear;
sql.Add('select * from power where id=:id and key=:key');
dm.power.Parameters.ParamByName('id').Value:=trim(self.Edit1.Text);
dm.power.Parameters.ParamByName('key').Value:=trim(self.Edit2.Text);
open;
end;
if dm.power.RecordCount=0 then
application.MessageBox('用户名或密码不正确,请重新输入','提示',MB_ICONSTOP)
else
begin
main.StatusBar1.Panels[2].Text:='用户: '+dm.power.Fields[0].Value;
close;
end;
end;
通过对dm.power进行SQL语句的操作,查询在power表中有没有与用户名密码相符的记录有则close登录窗口,没有则给出提示不正确。程序的退出采用application.Terminate关闭整个程序。而且对窗体的BORDERSYTELE的属性设置为bsnone。
用户添加界面的设计是先判断输入的超级帐户的用户名和密码对与不对。这里没有用数据库,而是采用了固定值,即无法修改。这点可能对系统来说不好。现在的超级帐户用户名administrator 密码123456。然后在通过SQL的INSERT语句进行添加,用try…except…end;错误则提示输入错误或用户名已存在。
密码修改界面则需要输入原始的用户名、密码和新密码及确认。该功能的实现是先对原始用户名密码进行确认正确与否,然后比较新密码与确认密码是否相同且为不为空。然后通过dm.power.Edit;和dm.power.Post;语句进行数据库的编辑与写入。修改密码代码如下:
begin
dm.power.Edit;
dm.power.fieldbyname('key').AsString:=trim(edit3.text);
dm.power.Post;
application.MessageBox('密码已修改','提示',MB_ok);
self.Close;
end
课程管理模块的设计主要有刷新、查询、添加、修改、删除、退出辣个操作。最简单的操作是退出close。刷新则是通过SQL的SELECT语句实现,相对简单。查询时有自己的groupbox控件显示,里面包括一个combobox组件。下拉显示查询方式,通过输入查询内容从而显示需要的内容。利用combobox的ItemIndex属性,利用case语句给一个定义的字符串进行赋值。
然后在用SQL的查询语句进行查询。关键代码如下:
var search:string;
begin
search:='';
case self.ComboBox1.ItemIndex of 利用CASE语句给SEARCH赋值
0:search:='课号';
1:search:='课名';
2:search:='教师';
3:search:='教室';
4:search:='时间';
end;
try
with dm.KC do //进行查询
begin
close;
sql.Clear;
sql.Add('select * from kc ');
sql.Add('where '+search+' =:no');
parameters.ParamByName('no').Value:=trim(edit1.Text);
open;
end;
if dm.KC.IsEmpty then
begin
application.MessageBox('没有搜索到该内容','提示',mb_ok);