经济管理学院本科课程设计论文
数据库开发与应用课程设计
学 号: 0805170130
姓 名: 杨富军
班 级: 管理081
专 业: 信息管理与信息系统
系 别: 管理系
指导教师: 孙鸿飞
2010 年 12 月24日 吉 林
第一章 开发背景与现状 ............................................. 3
第二章 开发设计的意义 ............................................. 3
第三章 系统分析 .................................................... 4
1 系统目标和开发可行性 ............................................. 4
1.1系统目标 .................................................... 4
1.2可行性分析 .................................................. 4
1.2.1 技术可行性分析 ........................................ 4
1.2.2 经济可行性分析 ........................................ 4
1.2.3 管理可行性分析 ........................................ 4
2系统需求说明 ..................................................... 5
2.1宿舍楼的基本情况 ............................................ 5
2.1.1学生的基本信息 ........................................ 5
2.1.2宿舍的基本信息 ........................................ 5
2.1.3报修的基本信息: ...................................... 5
2.1.4夜归的基本信息: ....................................... 5
2.2 用户对系统的要求 ........................................... 6
2.2.1信息要求 .............................................. 6
2.2.2 处理要求 .............................................. 6
2.2.3安全性与完整性要求 .................................... 6
第四章 系统功能模块设计 ........................................... 7
第五章 数据库设计 ................................................. 7
1 数据字典: ....................................................... 8
1.1数据项: .................................................... 8
1.1.1 login表 .............................................. 8
1.1.2 studentn表 ........................................... 8
1.1.3 work表 ............................................... 9
2 概念结构设计: .................................................. 10
3 数据库实现 ...................................................... 11
第六章 界面设计 .................................................. 12
1 登陆界面 ........................................................ 12
2 主页界面设计 .................................................... 12
3 管理系统---公寓设置界面 ........................................ 13
4 学生管理---按学期注册界面 ....................................... 13
5 员工管理—员工信息管理界面 ...................................... 14
6 信息查询---混合查询界面 ......................................... 14
第七章 代码设计 .................................................. 15
1 登陆界面代码 .................................................... 15
2 主页面代码 ...................................................... 17
3 员工信息登记界面代码 ............................................ 19
4 学生信息修改 .................................................... 20
第八章 课程设计总结 .............................................. 26
东北电力大学学生寝室管理信息系统
设计报告
第一章 开发背景与现状
随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门) 的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的, 而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高
了查询的速度,节约了人力和物力资源达到了要求。
第二章 开发设计的意义
为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统--高校学生宿舍信息管理系统来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分必要的。专用系统是一个信息管理系统MIS (Management Information System)(以下就称信息管理系统) ,它将实现检索迅速和查找方便;信息的录入,修改和删除功能;对新入
校学生进行宿舍安排等功能,学生可以在系统前台产讯。
第三章 系统分析
1 系统目标和开发可行性
1.1系统目标
按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持宿舍管理
工作的全过程,加强各种信息资源的管理与运用,提高管理工作的现代化水平,优化人、财、物和信息资源在各环节的运行机制。
1.2可行性分析
1.2.1 技术可行性分析
我们正走进一个信息时代,信息技术将从根本上改变人类社会的生产方式和生
活方式,各行各业的业务管理现在都已经相继使用计算机来处理,可以说用计算机进行信息管理是一个总趋势。学生宿舍管理系统主要是对宿舍、寝室的配置、住宿人员登记、卫生检查、宿舍资产、学生违纪、值班老师记录以及对学生住宿情况查询,修改,更新等。可以更快地了解到每个学生的住宿情况。开发一个学生宿舍管理系统可以达到事半功倍的效果。随着数据库管理系统的普及以及可视化编程系统的出现,使数据库管理信息系统的开发变得更为简单,因此开发一个学生宿舍管理系统是完全可行的。
1.2.2 经济可行性分析
学校有自己的微机室可以使用,而且宿舍管理部门也配有电脑不必重新购置计
算机,不需要花费大量资金,是一个节约人力物力的好办法。
1.2.3 管理可行性分析
本单位的管理人员都具有较高的素质,它们对管理现代化有较高的认识水平,
并且有各级部门的大力支持和重视。
2系统需求说明
2.1宿舍楼的基本情况
学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
2.1.1学生的基本信息
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,
也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同
一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
2.1.2宿舍的基本信息
每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机, 相应地就有宿舍
电话号码。
2.1.3报修的基本信息:
宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,
同学们需要将 财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,
需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当
损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
2.1.4夜归的基本信息:
宿舍楼在指定的时间关门(比如晚上12点),若有同学晚于关门 时间会宿舍,
需通知宿舍楼管理员,同时应登记晚归学生姓名,宿舍号,时间和晚归原因,以利
于学校的管理和查证。
2.2 用户对系统的要求
2.2.1信息要求
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。
2.2.2 处理要求
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。
当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
2.2.3安全性与完整性要求
2.2.3.1安全性要求:
系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
系统应对不同用户设置不同的权限,区分不同的用户如区分普通用户(学生),管理员。
2.2.3.2完整性要求:
各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。
第四章 系统功能模块设计
各功能模块介绍:
1、管理系统模块
包含添加楼房、楼房设置以及退出系统,用于设置楼房楼层数、人数等等;
2、学生管理模块
包含基本信息录入、按学期注册以及离校处理,用于录入入住学生的基本信息以及毕业学生住宿的解决登记;
3、信息查询模块
包含学生查询、员工查询、个人财产管理、员工上班情况、信访查询情况,用于了解学生的基本情况、员工的基本信息、个人信息的详细记录以及用户信息的查询;
4、住宿情况模块
该模块包含可查入住信息和入住人员信息等等;
5、出入登记模块
该模块包含来访登记和出楼登记;
6、财产管理
该模块包含个人财产登记和个人财产查询。
第五章 数据库设计
创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。
1 数据字典:
1.1数据项:
1.1.1 login表
(1)usename
含义说明:惟一标识一个用户名
类型:文本
允许空:否
(2)usepwd:
含义说明:惟一标识一个用户名的密码
类型:文本
允许空:否
(3)qx
含义说明:惟一标识一个管理员名称
类型:文本
允许空:否
1.1.2 studentn表
(1)学号
含义说明:惟一标识一个学生
类型:文本
允许空:否
(2)学生姓名
含义说明:惟一标识一个学生姓名
类型:文本
允许空:否
(3性别
含义说明:惟一标识性别
类型:文本
允许空:否
(4)所在系
含义说明:惟一标识一个学生所在系
类型:文本
允许空:否
(5)班级
含义说明:惟一标识一个用户所在班级
类型:文本
允许空:否
(6)入学日期
含义说明:定义学生入学日期
类型:日期/时间
允许空:否
(7)毕业日期
含义说明:定义学生毕业日期
类型:日期/时间
允许空:否
(8)籍贯
含义说明:惟一标识一个用户的籍贯
类型:文本
允许空:否
(9)联系电话
含义说明:惟一标识一个用户联系方式
类型:文本
允许空:是
1.1.3 work表
(1)员工编号
含义说明:惟一标识一个员工
类型:文本
允许空:否
(2)员工姓名
含义说明:惟一标识一个员工姓名
类型:文本
允许空:否
(3)性别
含义说明:惟一标识性别
类型:文本
允许空:否
(4)联系电话
含义说明:标识一个员工联系电话
类型:文本
允许空:否
(3)负责寝室
含义说明:惟一标识员工负责的寝室楼层
类型:文本
允许空:否
2 概念结构设计:
本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上面的分析所得的实体图:
东电寝室管理系统实体属性图
图1 login实体属性图
图2 student实体属性图
图3 student实体属性图
3 数据库实现
表2 student信息表
表3 work信息表
第六章 界面设计
1 登陆界面
2 主页界面设计
3 管理系统---公寓设置界面
4 学生管理---按学期注册界面
5 员工管理—员工信息管理界面
6 信息查询---混合查询界面
第七章 代码设计
1 登陆界面代码
procedure Tfrmlogin.Button1Click(Sender: TObject); var
username ,password:string; begin
username:=trim(cmbname.Text); if username='' then begin
messagedlg('请选着登陆用户!',mtwarning,[mbok],0) ; exit; end;
with dm.ADOQuery1 do begin close; sql.Clear;
sql.Add('select * from login where username=:username and userpwd=:userpwd');
parameters.ParamByName('username').Value:=trim(cmbname.Text); parameters.ParamByName('userpwd').Value:=trim(edtpwd.Text); open;
if recordcount
if i=3 then begin
MessageBox(0,没有权限使用此软件',' 警告',mb_ICONWarning+mb_OK); application.Terminate; end;
MessageBox(Handle,PChar('您输入的密码有误! '+#10#13+'你还有 '+INTTOSTR(3-i)+' 次机会'),
'警告!',mb_ICONWarning+mb_OK);; edtpwd.Text:=''; edtpwd.SetFocus; i:=i+1; exit; end else
frmmain.StatusBar1.Panels.Items[1].Text:=username;
frmmain.StatusBar1.Panels.Items[3].Text:=dm.ADOQuery1.FieldValues['qx']; if FieldByName('qx').AsString='教职工' then begin
with frmmain do begin
n8.Enabled:=false;
yg.Enabled:=false;
toolbutton1.Enabled:=false; toolbutton6.Enabled:=false; end; end;
if fieldByName('qx').AsString='东北电力的大学学生' then begin
with frmmain do begin
toolbutton1.Enabled:=false; toolbutton5.Enabled:=false; toolbutton6.Enabled:=false; end; end;
if fieldByName('qx').AsString='宿舍管理员' then begin
with frmmain do begin
n11.Enabled:=false; n12.Enabled:=false;
toolbutton1.Enabled:=false; end; end;
frmlogin.close; end; end;
procedure Tfrmlogin.edtpwdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin
if key=13 then
frmlogin.Button1Click(sender); end; end.
2 主页面代码
procedure Tfrmmain.ToolButton1Click(Sender: TObject); begin
frmaddyonghu:=Tfrmaddyonghu.Create(self); frmaddyonghu.ShowModal; frmaddyonghu.Free; end;
procedure Tfrmmain.FormActivate(Sender: TObject); begin
frmlogin:=Tfrmlogin.Create(self); frmlogin.ShowModal; frmlogin.Free; end;
procedure Tfrmmain.N24Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N40Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N39Click(Sender: TObject); var
frmygquery:Tfrmygquery; begin
frmygquery:=Tfrmygquery.Create(self); frmygquery.ShowModal; frmygquery.Free; end;
procedure Tfrmmain.Image1Click(Sender: TObject); begin end; end.
procedure Tfrmmain.ToolButton7Click(Sender: TObject); var
frmxsquey:Tfrmxsquey; begin
frmxsquey:=Tfrmxsquey.Create(self); frmxsquey.TabbedNotebook1.PageIndex:=6; frmxsquey.ShowModal; frmxsquey.Free; end;
procedure Tfrmmain.ToolButton5Click(Sender: TObject); var
frmaddstu:Tfrmaddstu; begin
frmaddstu:=Tfrmaddstu.Create(self); frmaddstu.ShowModal; frmaddstu.Free; end;
procedure Tfrmmain.N41Click(Sender: TObject); var
frmfwquery:Tfrmfwquery; begin
frmfwquery:=Tfrmfwquery.Create(self); frmfwquery.ShowModal; frmfwquery.Free; end;
procedure Tfrmmain.N23Click(Sender: TObject); var
frmgrccdengji:Tfrmgrccdengji; begin
frmgrccdengji:=Tfrmgrccdengji.Create(self); frmgrccdengji.ShowModal; frmgrccdengji.Free; end;
procedure Tfrmmain.ToolButton1Click(Sender: TObject); begin
frmaddyonghu:=Tfrmaddyonghu.Create(self); frmaddyonghu.ShowModal; frmaddyonghu.Free; end;
procedure Tfrmmain.FormActivate(Sender: TObject); begin
frmlogin:=Tfrmlogin.Create(self); frmlogin.ShowModal; frmlogin.Free; end;
procedure Tfrmmain.N24Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self);
frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N40Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N39Click(Sender: TObject); var
frmygquery:Tfrmygquery; begin
frmygquery:=Tfrmygquery.Create(self); frmygquery.ShowModal; frmygquery.Free; end; end.
3 员工信息登记界面代码
procedure Tfrmygdj.Button1Click(Sender: TObject); var
i:integer; begin
if trim(edtnum.Text)='' then begin
showmessage('请你输入员工号!'); exit; end;
if trim(edtname.Text)='' then begin
showmessage('请你输入姓名!'); edtname.SetFocus; exit; end; try
with dm.ADOQuery1 do begin close;
sql.Clear;
sql.Add('insert into
values(:ygnum,:ygname,:ygsex,:lh,:lc,:zhiwei,:jt,:lxphone)');
worker
parameters.ParamByName('ygnum').Value:=edtnum.Text; parameters.ParamByName('ygname').Value:=edtname.Text; parameters.ParamByName('ygsex').Value:=cmbsex.Text; parameters.ParamByName('lh').Value:=cmblh.Text; parameters.ParamByName('lc').Value:=cmblc.Text; parameters.ParamByName('jt').Value:=edtjt.Text;
parameters.ParamByName('lxphone').Value:=edtphone.Text; execsql;
showmessage('操作成功!'); end; except
showmessage('操作失败!'); end;
with dm.ADOQuery1 do begin close;
sql.Clear;
sql.Add('select * from worker'); open; end;
with dbgrid1 do begin
Columns.Items[0].Title.caption:='员工号'; Columns.Items[1].Title.Caption:='姓名'; Columns.Items[2].Title.caption:='性别'; Columns.Items[3].Title.caption:='楼号'; Columns.Items[4].Title.caption:='楼层'; Columns.Items[5].Title.caption:='职位';
Columns.Items[6].Title.caption:='家庭地址'; Columns.Items[7].Title.caption:='联系电话'; end;
for i:=0 to dbgrid1.FieldCount-1 do dbgrid1.Fields[i].DisplayWidth:=14; end; end.
4 学生信息修改
procedure Tfrmxsquey.Button1Click(Sender: TObject); var
i:integer; begin
if trim(edtnum.Text)='' then
begin
showmessage('请输入学号!');
edtnum.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stunum=:stunum');
parameters.ParamByName('stunum').Value:=trim(edtnum.Text); open;
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[7].Title.Caption:='出生年月';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
dbgrid1.Columns.Items[12].Title.Caption:='家庭地址';
for i:=0 to dbgrid1.FieldCount-1 do
begin
dbgrid1.Fields[i].DisplayWidth:=12;
dbgrid2.Fields[i].DisplayWidth:=12;
dbgrid3.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.FormCreate(Sender: TObject);
var
i:integer;
begin
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student ');
open;
dbgrid1.DataSource:=dm.DataSource1;
dbgrid2.DataSource:=dm.DataSource1;
dbgrid3.DataSource:=dm.DataSource1;
dbgrid4.DataSource:=dm.DataSource1;
end;
except
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
dbgrid1.Columns.Items[12].Title.Caption:='家庭地址';
for i:=0 to dbgrid1.FieldCount-1 do
begin
dbgrid1.Fields[i].DisplayWidth:=12;
end;
end;
procedure Tfrmxsquey.Button2Click(Sender: TObject);
var
i:integer;
begin
if trim(edtname.Text)='' then
begin
showmessage('请输入姓名!');
edtname.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stuname=:stuname');
parameters.ParamByName('stuname').Value:=trim(edtname.Text); open;
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[7].Title.Caption:='出生年月';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid2.FieldCount-1 do
begin
dbgrid2.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button3Click(Sender: TObject);
var
i:integer;
begin
if trim(cmbsex.Text)='' then
begin
showmessage('请选着性别!');
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stusex=:stusex');
parameters.ParamByName('stusex').Value:=trim(cmbsex.Text); open;
end;
dbgrid3.Columns.Items[0].Title.Caption:='学 号';
dbgrid3.Columns.Items[1].Title.Caption:='姓 名';
dbgrid3.Columns.Items[2].Title.Caption:='性 别';
dbgrid3.Columns.Items[3].Title.Caption:='系 别';
dbgrid3.Columns.Items[4].Title.Caption:='班 别';
dbgrid3.Columns.Items[5].Title.Caption:='入学日期';
dbgrid3.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid3.Columns.Items[7].Title.Caption:='出生年月';
for i:=0 to dbgrid3.FieldCount-1 do
begin
dbgrid3.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button4Click(Sender: TObject);
var
i:integer;
begin
if trim(cmbdept.Text)='' then
begin
showmessage('请选着系别!');
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where dept=:dept');
parameters.ParamByName('dept').Value:=trim(cmbdept.Text); open;
end;
dbgrid4.Columns.Items[0].Title.Caption:='学 号';
dbgrid4.Columns.Items[1].Title.Caption:='姓 名';
dbgrid4.Columns.Items[2].Title.Caption:='性 别';
dbgrid4.Columns.Items[3].Title.Caption:='系 别';
dbgrid4.Columns.Items[4].Title.Caption:='班 别';
dbgrid4.Columns.Items[5].Title.Caption:='入学日期';
for i:=0 to dbgrid4.FieldCount-1 do
begin
dbgrid4.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button5Click(Sender: TObject);
var
i:integer;
begin
if trim(edtaddr.Text)='' then
begin
showmessage('请输入家庭地址!');
edtaddr.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where jt=:jt');
parameters.ParamByName('jt').Value:=trim(edtaddr.Text);
open;
end;
dbgrid5.Columns.Items[0].Title.Caption:='学 号';
dbgrid5.Columns.Items[1].Title.Caption:='姓 名';
dbgrid5.Columns.Items[2].Title.Caption:='性 别';
dbgrid5.Columns.Items[3].Title.Caption:='系 别';
dbgrid5.Columns.Items[4].Title.Caption:='班 别';
dbgrid5.Columns.Items[5].Title.Caption:='入学日期';
dbgrid5.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid5.Columns.Items[7].Title.Caption:='出生年月';
dbgrid5.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid5.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid5.FieldCount-1 do
begin
dbgrid5.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button6Click(Sender: TObject);
var
i:integer;
begin
if trim(edtbanji.Text)='' then
begin
showmessage('请输入班级!');
edtbanji.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where banji=:banji');
parameters.ParamByName('banji').Value:=trim(edtbanji.Text); open;
end;
dbgrid6.Columns.Items[0].Title.Caption:='学 号';
dbgrid6.Columns.Items[1].Title.Caption:='姓 名';
dbgrid6.Columns.Items[2].Title.Caption:='性 别';
dbgrid6.Columns.Items[3].Title.Caption:='系 别';
dbgrid6.Columns.Items[4].Title.Caption:='班 别';
dbgrid6.Columns.Items[5].Title.Caption:='入学日期';
dbgrid6.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid6.Columns.Items[7].Title.Caption:='出生年月';
dbgrid6.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid6.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid6.FieldCount-1 do
begin
dbgrid6.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.edtnumKeyPress(Sender: TObject; var Key: Char); begin
if Not(Key in ['0'..'9',Char(VK_BACK),Char(VK_RETURN)]) then begin
Key:=#0;
end;
end;
end.
第八章 课程设计总结
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的
问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。在学习的语言中,感觉delphi 简易易学,不仅适合界面设计更适合数据库的设计开发,在课程设计中遇到的问题,今后一定会解决的,争取更好的学以致用!
由于能力和知识的限制,有些只是把界面设计了出来,具体的功能还不能实现,例如本系统中住宿情况和信息管理,随着知识的扩充,我会逐渐完善本系统。
经济管理学院本科课程设计论文
数据库开发与应用课程设计
学 号: 0805170130
姓 名: 杨富军
班 级: 管理081
专 业: 信息管理与信息系统
系 别: 管理系
指导教师: 孙鸿飞
2010 年 12 月24日 吉 林
第一章 开发背景与现状 ............................................. 3
第二章 开发设计的意义 ............................................. 3
第三章 系统分析 .................................................... 4
1 系统目标和开发可行性 ............................................. 4
1.1系统目标 .................................................... 4
1.2可行性分析 .................................................. 4
1.2.1 技术可行性分析 ........................................ 4
1.2.2 经济可行性分析 ........................................ 4
1.2.3 管理可行性分析 ........................................ 4
2系统需求说明 ..................................................... 5
2.1宿舍楼的基本情况 ............................................ 5
2.1.1学生的基本信息 ........................................ 5
2.1.2宿舍的基本信息 ........................................ 5
2.1.3报修的基本信息: ...................................... 5
2.1.4夜归的基本信息: ....................................... 5
2.2 用户对系统的要求 ........................................... 6
2.2.1信息要求 .............................................. 6
2.2.2 处理要求 .............................................. 6
2.2.3安全性与完整性要求 .................................... 6
第四章 系统功能模块设计 ........................................... 7
第五章 数据库设计 ................................................. 7
1 数据字典: ....................................................... 8
1.1数据项: .................................................... 8
1.1.1 login表 .............................................. 8
1.1.2 studentn表 ........................................... 8
1.1.3 work表 ............................................... 9
2 概念结构设计: .................................................. 10
3 数据库实现 ...................................................... 11
第六章 界面设计 .................................................. 12
1 登陆界面 ........................................................ 12
2 主页界面设计 .................................................... 12
3 管理系统---公寓设置界面 ........................................ 13
4 学生管理---按学期注册界面 ....................................... 13
5 员工管理—员工信息管理界面 ...................................... 14
6 信息查询---混合查询界面 ......................................... 14
第七章 代码设计 .................................................. 15
1 登陆界面代码 .................................................... 15
2 主页面代码 ...................................................... 17
3 员工信息登记界面代码 ............................................ 19
4 学生信息修改 .................................................... 20
第八章 课程设计总结 .............................................. 26
东北电力大学学生寝室管理信息系统
设计报告
第一章 开发背景与现状
随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门) 的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的, 而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高
了查询的速度,节约了人力和物力资源达到了要求。
第二章 开发设计的意义
为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统--高校学生宿舍信息管理系统来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分必要的。专用系统是一个信息管理系统MIS (Management Information System)(以下就称信息管理系统) ,它将实现检索迅速和查找方便;信息的录入,修改和删除功能;对新入
校学生进行宿舍安排等功能,学生可以在系统前台产讯。
第三章 系统分析
1 系统目标和开发可行性
1.1系统目标
按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持宿舍管理
工作的全过程,加强各种信息资源的管理与运用,提高管理工作的现代化水平,优化人、财、物和信息资源在各环节的运行机制。
1.2可行性分析
1.2.1 技术可行性分析
我们正走进一个信息时代,信息技术将从根本上改变人类社会的生产方式和生
活方式,各行各业的业务管理现在都已经相继使用计算机来处理,可以说用计算机进行信息管理是一个总趋势。学生宿舍管理系统主要是对宿舍、寝室的配置、住宿人员登记、卫生检查、宿舍资产、学生违纪、值班老师记录以及对学生住宿情况查询,修改,更新等。可以更快地了解到每个学生的住宿情况。开发一个学生宿舍管理系统可以达到事半功倍的效果。随着数据库管理系统的普及以及可视化编程系统的出现,使数据库管理信息系统的开发变得更为简单,因此开发一个学生宿舍管理系统是完全可行的。
1.2.2 经济可行性分析
学校有自己的微机室可以使用,而且宿舍管理部门也配有电脑不必重新购置计
算机,不需要花费大量资金,是一个节约人力物力的好办法。
1.2.3 管理可行性分析
本单位的管理人员都具有较高的素质,它们对管理现代化有较高的认识水平,
并且有各级部门的大力支持和重视。
2系统需求说明
2.1宿舍楼的基本情况
学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
2.1.1学生的基本信息
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,
也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同
一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
2.1.2宿舍的基本信息
每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机, 相应地就有宿舍
电话号码。
2.1.3报修的基本信息:
宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,
同学们需要将 财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,
需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当
损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
2.1.4夜归的基本信息:
宿舍楼在指定的时间关门(比如晚上12点),若有同学晚于关门 时间会宿舍,
需通知宿舍楼管理员,同时应登记晚归学生姓名,宿舍号,时间和晚归原因,以利
于学校的管理和查证。
2.2 用户对系统的要求
2.2.1信息要求
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。
2.2.2 处理要求
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。
当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
2.2.3安全性与完整性要求
2.2.3.1安全性要求:
系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
系统应对不同用户设置不同的权限,区分不同的用户如区分普通用户(学生),管理员。
2.2.3.2完整性要求:
各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。
第四章 系统功能模块设计
各功能模块介绍:
1、管理系统模块
包含添加楼房、楼房设置以及退出系统,用于设置楼房楼层数、人数等等;
2、学生管理模块
包含基本信息录入、按学期注册以及离校处理,用于录入入住学生的基本信息以及毕业学生住宿的解决登记;
3、信息查询模块
包含学生查询、员工查询、个人财产管理、员工上班情况、信访查询情况,用于了解学生的基本情况、员工的基本信息、个人信息的详细记录以及用户信息的查询;
4、住宿情况模块
该模块包含可查入住信息和入住人员信息等等;
5、出入登记模块
该模块包含来访登记和出楼登记;
6、财产管理
该模块包含个人财产登记和个人财产查询。
第五章 数据库设计
创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。
1 数据字典:
1.1数据项:
1.1.1 login表
(1)usename
含义说明:惟一标识一个用户名
类型:文本
允许空:否
(2)usepwd:
含义说明:惟一标识一个用户名的密码
类型:文本
允许空:否
(3)qx
含义说明:惟一标识一个管理员名称
类型:文本
允许空:否
1.1.2 studentn表
(1)学号
含义说明:惟一标识一个学生
类型:文本
允许空:否
(2)学生姓名
含义说明:惟一标识一个学生姓名
类型:文本
允许空:否
(3性别
含义说明:惟一标识性别
类型:文本
允许空:否
(4)所在系
含义说明:惟一标识一个学生所在系
类型:文本
允许空:否
(5)班级
含义说明:惟一标识一个用户所在班级
类型:文本
允许空:否
(6)入学日期
含义说明:定义学生入学日期
类型:日期/时间
允许空:否
(7)毕业日期
含义说明:定义学生毕业日期
类型:日期/时间
允许空:否
(8)籍贯
含义说明:惟一标识一个用户的籍贯
类型:文本
允许空:否
(9)联系电话
含义说明:惟一标识一个用户联系方式
类型:文本
允许空:是
1.1.3 work表
(1)员工编号
含义说明:惟一标识一个员工
类型:文本
允许空:否
(2)员工姓名
含义说明:惟一标识一个员工姓名
类型:文本
允许空:否
(3)性别
含义说明:惟一标识性别
类型:文本
允许空:否
(4)联系电话
含义说明:标识一个员工联系电话
类型:文本
允许空:否
(3)负责寝室
含义说明:惟一标识员工负责的寝室楼层
类型:文本
允许空:否
2 概念结构设计:
本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上面的分析所得的实体图:
东电寝室管理系统实体属性图
图1 login实体属性图
图2 student实体属性图
图3 student实体属性图
3 数据库实现
表2 student信息表
表3 work信息表
第六章 界面设计
1 登陆界面
2 主页界面设计
3 管理系统---公寓设置界面
4 学生管理---按学期注册界面
5 员工管理—员工信息管理界面
6 信息查询---混合查询界面
第七章 代码设计
1 登陆界面代码
procedure Tfrmlogin.Button1Click(Sender: TObject); var
username ,password:string; begin
username:=trim(cmbname.Text); if username='' then begin
messagedlg('请选着登陆用户!',mtwarning,[mbok],0) ; exit; end;
with dm.ADOQuery1 do begin close; sql.Clear;
sql.Add('select * from login where username=:username and userpwd=:userpwd');
parameters.ParamByName('username').Value:=trim(cmbname.Text); parameters.ParamByName('userpwd').Value:=trim(edtpwd.Text); open;
if recordcount
if i=3 then begin
MessageBox(0,没有权限使用此软件',' 警告',mb_ICONWarning+mb_OK); application.Terminate; end;
MessageBox(Handle,PChar('您输入的密码有误! '+#10#13+'你还有 '+INTTOSTR(3-i)+' 次机会'),
'警告!',mb_ICONWarning+mb_OK);; edtpwd.Text:=''; edtpwd.SetFocus; i:=i+1; exit; end else
frmmain.StatusBar1.Panels.Items[1].Text:=username;
frmmain.StatusBar1.Panels.Items[3].Text:=dm.ADOQuery1.FieldValues['qx']; if FieldByName('qx').AsString='教职工' then begin
with frmmain do begin
n8.Enabled:=false;
yg.Enabled:=false;
toolbutton1.Enabled:=false; toolbutton6.Enabled:=false; end; end;
if fieldByName('qx').AsString='东北电力的大学学生' then begin
with frmmain do begin
toolbutton1.Enabled:=false; toolbutton5.Enabled:=false; toolbutton6.Enabled:=false; end; end;
if fieldByName('qx').AsString='宿舍管理员' then begin
with frmmain do begin
n11.Enabled:=false; n12.Enabled:=false;
toolbutton1.Enabled:=false; end; end;
frmlogin.close; end; end;
procedure Tfrmlogin.edtpwdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin
if key=13 then
frmlogin.Button1Click(sender); end; end.
2 主页面代码
procedure Tfrmmain.ToolButton1Click(Sender: TObject); begin
frmaddyonghu:=Tfrmaddyonghu.Create(self); frmaddyonghu.ShowModal; frmaddyonghu.Free; end;
procedure Tfrmmain.FormActivate(Sender: TObject); begin
frmlogin:=Tfrmlogin.Create(self); frmlogin.ShowModal; frmlogin.Free; end;
procedure Tfrmmain.N24Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N40Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N39Click(Sender: TObject); var
frmygquery:Tfrmygquery; begin
frmygquery:=Tfrmygquery.Create(self); frmygquery.ShowModal; frmygquery.Free; end;
procedure Tfrmmain.Image1Click(Sender: TObject); begin end; end.
procedure Tfrmmain.ToolButton7Click(Sender: TObject); var
frmxsquey:Tfrmxsquey; begin
frmxsquey:=Tfrmxsquey.Create(self); frmxsquey.TabbedNotebook1.PageIndex:=6; frmxsquey.ShowModal; frmxsquey.Free; end;
procedure Tfrmmain.ToolButton5Click(Sender: TObject); var
frmaddstu:Tfrmaddstu; begin
frmaddstu:=Tfrmaddstu.Create(self); frmaddstu.ShowModal; frmaddstu.Free; end;
procedure Tfrmmain.N41Click(Sender: TObject); var
frmfwquery:Tfrmfwquery; begin
frmfwquery:=Tfrmfwquery.Create(self); frmfwquery.ShowModal; frmfwquery.Free; end;
procedure Tfrmmain.N23Click(Sender: TObject); var
frmgrccdengji:Tfrmgrccdengji; begin
frmgrccdengji:=Tfrmgrccdengji.Create(self); frmgrccdengji.ShowModal; frmgrccdengji.Free; end;
procedure Tfrmmain.ToolButton1Click(Sender: TObject); begin
frmaddyonghu:=Tfrmaddyonghu.Create(self); frmaddyonghu.ShowModal; frmaddyonghu.Free; end;
procedure Tfrmmain.FormActivate(Sender: TObject); begin
frmlogin:=Tfrmlogin.Create(self); frmlogin.ShowModal; frmlogin.Free; end;
procedure Tfrmmain.N24Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self);
frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N40Click(Sender: TObject); begin
frmgrccquery:=Tfrmgrccquery.Create(self); frmgrccquery.ShowModal; frmgrccquery.Free; end;
procedure Tfrmmain.N39Click(Sender: TObject); var
frmygquery:Tfrmygquery; begin
frmygquery:=Tfrmygquery.Create(self); frmygquery.ShowModal; frmygquery.Free; end; end.
3 员工信息登记界面代码
procedure Tfrmygdj.Button1Click(Sender: TObject); var
i:integer; begin
if trim(edtnum.Text)='' then begin
showmessage('请你输入员工号!'); exit; end;
if trim(edtname.Text)='' then begin
showmessage('请你输入姓名!'); edtname.SetFocus; exit; end; try
with dm.ADOQuery1 do begin close;
sql.Clear;
sql.Add('insert into
values(:ygnum,:ygname,:ygsex,:lh,:lc,:zhiwei,:jt,:lxphone)');
worker
parameters.ParamByName('ygnum').Value:=edtnum.Text; parameters.ParamByName('ygname').Value:=edtname.Text; parameters.ParamByName('ygsex').Value:=cmbsex.Text; parameters.ParamByName('lh').Value:=cmblh.Text; parameters.ParamByName('lc').Value:=cmblc.Text; parameters.ParamByName('jt').Value:=edtjt.Text;
parameters.ParamByName('lxphone').Value:=edtphone.Text; execsql;
showmessage('操作成功!'); end; except
showmessage('操作失败!'); end;
with dm.ADOQuery1 do begin close;
sql.Clear;
sql.Add('select * from worker'); open; end;
with dbgrid1 do begin
Columns.Items[0].Title.caption:='员工号'; Columns.Items[1].Title.Caption:='姓名'; Columns.Items[2].Title.caption:='性别'; Columns.Items[3].Title.caption:='楼号'; Columns.Items[4].Title.caption:='楼层'; Columns.Items[5].Title.caption:='职位';
Columns.Items[6].Title.caption:='家庭地址'; Columns.Items[7].Title.caption:='联系电话'; end;
for i:=0 to dbgrid1.FieldCount-1 do dbgrid1.Fields[i].DisplayWidth:=14; end; end.
4 学生信息修改
procedure Tfrmxsquey.Button1Click(Sender: TObject); var
i:integer; begin
if trim(edtnum.Text)='' then
begin
showmessage('请输入学号!');
edtnum.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stunum=:stunum');
parameters.ParamByName('stunum').Value:=trim(edtnum.Text); open;
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[7].Title.Caption:='出生年月';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
dbgrid1.Columns.Items[12].Title.Caption:='家庭地址';
for i:=0 to dbgrid1.FieldCount-1 do
begin
dbgrid1.Fields[i].DisplayWidth:=12;
dbgrid2.Fields[i].DisplayWidth:=12;
dbgrid3.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.FormCreate(Sender: TObject);
var
i:integer;
begin
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student ');
open;
dbgrid1.DataSource:=dm.DataSource1;
dbgrid2.DataSource:=dm.DataSource1;
dbgrid3.DataSource:=dm.DataSource1;
dbgrid4.DataSource:=dm.DataSource1;
end;
except
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
dbgrid1.Columns.Items[12].Title.Caption:='家庭地址';
for i:=0 to dbgrid1.FieldCount-1 do
begin
dbgrid1.Fields[i].DisplayWidth:=12;
end;
end;
procedure Tfrmxsquey.Button2Click(Sender: TObject);
var
i:integer;
begin
if trim(edtname.Text)='' then
begin
showmessage('请输入姓名!');
edtname.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stuname=:stuname');
parameters.ParamByName('stuname').Value:=trim(edtname.Text); open;
end;
dbgrid1.Columns.Items[0].Title.Caption:='学 号';
dbgrid1.Columns.Items[1].Title.Caption:='姓 名';
dbgrid1.Columns.Items[2].Title.Caption:='性 别';
dbgrid1.Columns.Items[3].Title.Caption:='系 别';
dbgrid1.Columns.Items[4].Title.Caption:='班 别';
dbgrid1.Columns.Items[5].Title.Caption:='入学日期';
dbgrid1.Columns.Items[7].Title.Caption:='出生年月';
dbgrid1.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid1.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid2.FieldCount-1 do
begin
dbgrid2.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button3Click(Sender: TObject);
var
i:integer;
begin
if trim(cmbsex.Text)='' then
begin
showmessage('请选着性别!');
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where stusex=:stusex');
parameters.ParamByName('stusex').Value:=trim(cmbsex.Text); open;
end;
dbgrid3.Columns.Items[0].Title.Caption:='学 号';
dbgrid3.Columns.Items[1].Title.Caption:='姓 名';
dbgrid3.Columns.Items[2].Title.Caption:='性 别';
dbgrid3.Columns.Items[3].Title.Caption:='系 别';
dbgrid3.Columns.Items[4].Title.Caption:='班 别';
dbgrid3.Columns.Items[5].Title.Caption:='入学日期';
dbgrid3.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid3.Columns.Items[7].Title.Caption:='出生年月';
for i:=0 to dbgrid3.FieldCount-1 do
begin
dbgrid3.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button4Click(Sender: TObject);
var
i:integer;
begin
if trim(cmbdept.Text)='' then
begin
showmessage('请选着系别!');
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where dept=:dept');
parameters.ParamByName('dept').Value:=trim(cmbdept.Text); open;
end;
dbgrid4.Columns.Items[0].Title.Caption:='学 号';
dbgrid4.Columns.Items[1].Title.Caption:='姓 名';
dbgrid4.Columns.Items[2].Title.Caption:='性 别';
dbgrid4.Columns.Items[3].Title.Caption:='系 别';
dbgrid4.Columns.Items[4].Title.Caption:='班 别';
dbgrid4.Columns.Items[5].Title.Caption:='入学日期';
for i:=0 to dbgrid4.FieldCount-1 do
begin
dbgrid4.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button5Click(Sender: TObject);
var
i:integer;
begin
if trim(edtaddr.Text)='' then
begin
showmessage('请输入家庭地址!');
edtaddr.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where jt=:jt');
parameters.ParamByName('jt').Value:=trim(edtaddr.Text);
open;
end;
dbgrid5.Columns.Items[0].Title.Caption:='学 号';
dbgrid5.Columns.Items[1].Title.Caption:='姓 名';
dbgrid5.Columns.Items[2].Title.Caption:='性 别';
dbgrid5.Columns.Items[3].Title.Caption:='系 别';
dbgrid5.Columns.Items[4].Title.Caption:='班 别';
dbgrid5.Columns.Items[5].Title.Caption:='入学日期';
dbgrid5.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid5.Columns.Items[7].Title.Caption:='出生年月';
dbgrid5.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid5.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid5.FieldCount-1 do
begin
dbgrid5.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.Button6Click(Sender: TObject);
var
i:integer;
begin
if trim(edtbanji.Text)='' then
begin
showmessage('请输入班级!');
edtbanji.SetFocus;
exit;
end;
try
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where banji=:banji');
parameters.ParamByName('banji').Value:=trim(edtbanji.Text); open;
end;
dbgrid6.Columns.Items[0].Title.Caption:='学 号';
dbgrid6.Columns.Items[1].Title.Caption:='姓 名';
dbgrid6.Columns.Items[2].Title.Caption:='性 别';
dbgrid6.Columns.Items[3].Title.Caption:='系 别';
dbgrid6.Columns.Items[4].Title.Caption:='班 别';
dbgrid6.Columns.Items[5].Title.Caption:='入学日期';
dbgrid6.Columns.Items[6].Title.Caption:='毕业中学';
dbgrid6.Columns.Items[7].Title.Caption:='出生年月';
dbgrid6.Columns.Items[8].Title.Caption:='政治面貌';
dbgrid6.Columns.Items[9].Title.Caption:='联系电话';
for i:=0 to dbgrid6.FieldCount-1 do
begin
dbgrid6.Fields[i].DisplayWidth:=12;
end;
except
showmessage('操作失败!');
end;
end;
procedure Tfrmxsquey.edtnumKeyPress(Sender: TObject; var Key: Char); begin
if Not(Key in ['0'..'9',Char(VK_BACK),Char(VK_RETURN)]) then begin
Key:=#0;
end;
end;
end.
第八章 课程设计总结
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的
问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。在学习的语言中,感觉delphi 简易易学,不仅适合界面设计更适合数据库的设计开发,在课程设计中遇到的问题,今后一定会解决的,争取更好的学以致用!
由于能力和知识的限制,有些只是把界面设计了出来,具体的功能还不能实现,例如本系统中住宿情况和信息管理,随着知识的扩充,我会逐渐完善本系统。