1、课程设计任务书 题目: 学生宿舍管理系统 学号: 12230312 姓名: 贺 言 君 专业: 计算机科学和技术 课程: delphi程序设计 指导老师: 燕孝飞 职称: 完成时间:12月1日——12月27日
2、 枣庄学院计算机科学系制 课程设计任务书及成绩评定 课程设计任务和具体要求 在现代高校宿舍管理工作中,因为高校扩招,学生人数巨增,传统管理方法已经不适合高校宿舍管理需要,以前在管理方面采取管理系统有部分落后,伴随学生人数不停增加,该系统在数据管理方面有部分混乱,越来越不能适宜管理需要,所以需要一个功效更完善,操作更方便,容量更大管理信息系统。所以宿舍管理系统是各大高校所需要使用一个管理系统.因为宿舍系统是一个比较大型信息管理系统,它需要专业工作人员才能完成复杂功效,而且不一样高校管理内容和方法有所不一样.信息系统分析和设计是学习完《信息系统分析和设计》课程后进行一次
3、全方面综合练习。其目标在于加深对信息系统基础理论和基础知识了解,初步掌握使用信息系统分析、设计基础内容和方法,提升处理实际问题能力。作为学习,我们设计这个管理系统不可能作一个标准应用系统,而只是制作了一个有通常代表意义小型宿舍管理系统.这么既深化了理论知识也提升了实践能力. 指导老师签字:__________ 日期:__________ 指导老师评语 成绩:_______ 指导老师签字:_______ 日期:_______ 课程设计所需软件
4、硬件等 此管理系统采取delphi7设计前台界面,SQL Server 开发数据库所以 采取软件及语言以下: 系统:Windows XP 语言:SQL语言、Pascal语言 开发工具:SQL Server ,delphi7等 课程设计进度计划 起至日期 工作内容 备注 12月1日—5日 12月6日—9日 12月10日—11日 12月12日—23日 12月24日—27日 确定课题并搜集相关资料 分析后台数据库需求 总体功效设计 各个功效模块设计 撰写课程设计 略 参考文件,资料索引 序号 文件
5、资料名称 编著者 出版单位 [1]李目海, delphi应用程序设计, 枣庄学院计算机科学系 [2]陈豫龙 何旭洪, delphi数据库系统开发实例导航(第二版), 人民邮电出版社 [3]刘子锐, delphi数据开发自学教程,人民邮电出版社 一、摘要 宿舍管理系统是现在各所高校后勤管理之中关键部分,怎样能科学有效开展学生公寓管理工作,是目前高校领导人和后勤管理人员关心问题。所以, 公寓管理工作信息化和科学化有着十分关键实践意义,此次开发大公寓管理信息系统, 意在实现对现有宿舍管理系统中碰到宿舍信息情况和大量数据进行数据存放基础上,设计并
6、完成对其宿舍信息分类、查询,添加,删除,修改和打印报表在深入研究过程中,尽可能实现方便友好操作界面和数据报表。 该系统利用 DELPHI7技术, 以 Microsoft SQL Server 为后台数据库, 开发了一套为高校服务公寓管理信息系统。利用该系统大大加强管理部门相互沟通能力,提升工作效率,降低无须要反复劳动,加速信息统计、查阅和传输速度,实现人性化管理和沟通服务管理一个实用型管理软件。 管理信息系统是一个由人和计算机软件硬件资源组成人机系统,能进行管理信息搜集、传输、加工、保留、维护和使用,提供信息支持单位运行、管理和决议功效。在强调管理、调信息现代社会中,管理信息系统变得越来
7、越普及,能够说它是一门新学科,跨越了若干个领域,如管理科学、系统科学、统计学和计算机科学等,并在这些学科基础上,形成信息搜集和加工方法,从而形成一个纵横交织系统。 在传统业务步骤中,数据信息附着于业务步骤之上,这是一个效率很低数据处理方法;实现了办公自动化以后,即使很多业务数据电子化了,不过不借助数据库帮助,数据信息仍然附着于业务步骤之上,即使能够以文件等形式将电子化数据存放,不过数据再利用效率很低,而且也无法从这些无序数据中提取深入信息;当建立了数据库系统以后,数据最终脱离业务步骤而独立存在。大家不仅能够经过管理信息系统将其储存于数据库之中,而且还能够对其方便地再利用。 伴随社会对人才需
8、求增加,和高校全方面扩招,在校学生人数剧增,这给高校后勤管理,尤其是对学生公寓管理带来很大压力。学生公寓管理是一项很烦琐工作,但又是高校发展毕不可少一部分。在学生公寓管理工作中,很大一部分是反复性劳动,完全能够经过计算机信息技术来替换人工进行这些工作,从而是管理人员将更多精力集中在怎样提升服务质量方面。学生公寓管理系统就是为了满足这个需求而开发一个管理信息系统。 二、目录 1. 摘要 ………………………………………… 4 2. 目录 ………………………………………… 5 3. 正文 ………………………………………… 6 3.1 系统功效设计 ……
9、………………… 6 3.2 数据库设计 ………………… 7 3.3 系统主界面设计 ………………… 7 3.4 系统功效模块设计 ………………… 7 3.5 其它设计功效 ………………… 15 4. 试验中出现问题及处理方法 …… 16 5. 结束语 ……………………………… 16 三、正文 1.系统功效设计 用户登录界面
10、 系控制界面 查询管理模块: 学生信息查询 宿舍信息操作 离校学生查询 来访信息查询 夜归学生查询 用户管理 退出系统 宿舍管理 来访管理 学生管理 查询管理 打印 报表 帮助信息 图1-1 系统功效模块图 右图为查询管理子模块: 在本系统中,将实现以下功效: ★ 学生住宿信息管理. ★ 删除统计管理. ★ 学生综合信息查询. 2. 数据库设计 在s
11、ql server 中建立了一个学生宿舍管理数据库,数据表以下所表示: 用户信息表(账户,密码,身份) 住宿学生(学号,姓名,性别,专业,宿舍号,入住时间) 宿舍(宿舍号,宿舍电话) 夜归(学号,宿舍号,晚归时间,晚归原因) 离校(学号,宿舍号,离校时间,返回时间) 来访者(姓名,身份证,来访时间,离开时间) 3. 系统主界面设计 包含菜单栏(mainmenu)、状态栏(toolbar)、工具栏(statusbar)三大部分,其中还添加了imagelist,timer等组件,进行辅助设计。 4.系统功效模块设计 1)用户登录模块 用户登录
12、窗体图所表示: 各组件添加省略,下面只给出关键代码: “管理员登录”按钮代码: procedure TForm2.Button3Click(Sender: TObject); begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from user_info where user_na='''+uname.Text+''' and user_pwd='''+pword.Text+''' and user_des='''+combobox2.Text+'''');
13、 adoquery1.Open; if (uname.Text='') or (pword.Text='') or (combobox2.Text='') then showmessage('输入用户名或密码不能为空') else if adoquery1.Recordset.RecordCount=0 then showmessage('用户名或密码输入错误') else begin form2.FreeOnRelease; form2.Visible:=false; form1.MainMenu
14、1.Items[4].Visible:=false; form1.ShowModal; end; end; “游客登录”按钮代码: procedure TForm2.ComboBox2Click(Sender: TObject); begin if combobox2.Text='游客' then begin button3.Enabled:=false; button1.Enabled:=true end else begin button1.Enabled:=false;
15、 button3.Enabled:=true; end; end; 2)添加用户功效模块 用户管理窗口 “添加用户”按钮代码: procedure TForm4.Button2Click(Sender: TObject); begin With ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Insert Into user_info(user_na,user_pwd,user_des)');
16、 SQL.Add('Values('''+edit1.Text+''','''+edit2.Text+''','''+combobox1.Text+''') '); ExecSQL; showmessage('添加成功'); end; end; 3)管理功效模块 下面宿舍信息管理子功效为例,其它管理只给出窗体设计功效代码类似。 宿舍管理 “插入”按钮代码: procedure TForm9.Button2Click(Sender: TObject); begin if (edit1.Text='') or (edit2.Text='
17、') then showmessage('不能为空') else begin adotable1.append; ADOTable1.FieldByName('dorm_no').asstring:=vartostr(edit1.Text); ADOTable1.FieldByName('dorm_tel').asstring:=vartostr(edit2.Text); adotable1.post; end end; “显示全部”按钮代码: procedure TForm9.Button6Click(Sender: TObject); b
18、egin adotable1.Filtered:=false; MessageBox(handle,'查询完成!','提醒',MB_OK or MB_ICONINFORMATION); edit1.Text:=''; edit2.Text:=''; edit3.Text:=''; end; “查找”按钮代码: procedure TForm9.Button5Click(Sender: TObject); begin if adotable1.Active then begin if not ADOTable1.Locate('dorm_no',Edit3.T
19、ext,[loCaseInsensitive, loPartialKey]) then showmessage('对不起,没有您要查找统计!') else begin ADOTable1.Filter:='dorm_no='+QuotedStr(Edit3.Text); ADOTable1.Filtered := True; end end else showmessage('系统错误'); end; “删除”按钮代码: procedure TForm9.Button3Click(Sender: TOb
20、ject); begin if messagedlg('确实要删除吗?',mtinformation,[mbyes,mbno],0)=mryes then adotable1.Delete else edit3.Text:=''; end; “返回”按钮代码: procedure TForm9.Button1Click(Sender: TObject); begin edit1.Text:=''; edit2.Text:=''; edit3.Text:=''; FreeOnRelease; form9.V
21、isible:=false; form1.Show; end; 来访者管理子模块功效和上面累类似,在此省略介绍。 下面是分别是离校学生管理和夜归学生管理两个子模块,全部采取了DBnavigator组件,设置较简单,省了编写代码,具体设置在此不做介绍。 下面是学生信息管理子模块,和宿舍管理模块功效类似。 4)查询功效模块 下面是查询功效模块,首先是学生信息查询,关键同过label组件和edit组件进行分类查找,来访信息查询和宿舍信息查询因为数据单一,所以只进行单方面查找,离校和夜归学生查询采取了combobox组件和edit组件配合,实现分类查
22、寻,具体代码设计以下: 第一个“查找”按钮代码: procedure TForm10.Button2Click(Sender: TObject); begin if adotable1.Active then begin if not ADOTable1.Locate('s_no',Edit1.Text,[loCaseInsensitive, loPartialKey]) then showmessage('对不起,没有您要查找统计!') else begin ADOTable1.Filter:='s_no='+Q
23、uotedStr(Edit1.Text); ADOTable1.Filtered := True; end end else showmessage('系统错误'); end; “显示全部”按钮代码: procedure TForm10.Button5Click(Sender: TObject); begin adotable1.Filtered:=false; MessageBox(handle,'查询完成!','提醒',MB_OK or MB_ICONINFORMATION); edit1.Text:=''; edit2.Text:='
24、'; edit3.Text:=''; end; 以上两个模块功效和第一个类似,在此省略介绍。 “查找”按钮代码: procedure TForm15.Button1Click(Sender: TObject); begin if adotable1.Active=true then begin if combobox1.Text='学号' then if adotable1.Locate('s_no',edit1.Text,[loCaseInsensitive, loPartialKey]) then begin
25、 ADOTable1.Filter:='s_no='+QuotedStr(Edit1.Text); ADOTable1.Filtered := True end else showmessage('对不起,没有您要查找统计!'); if adotable1.Active=true then if combobox1.Text='姓名' then if adotable1.Locate('s_name',edit1.Text,[loCaseInsensitive, loPartialKey]
26、) then begin ADOTable1.Filter:='s_name='+QuotedStr(Edit1.Text); ADOTable1.Filtered := True end else showmessage('对不起,没有您要查找统计!'); if adotable1.Active=true then if combobox1.Text='宿舍号' then if adotable1.Locate('s_dorm_no',edit1.Text,[loCase
27、Insensitive, loPartialKey]) then begin ADOTable1.Filter:='s_dorm_no='+QuotedStr(Edit1.Text); ADOTable1.Filtered := True; end else showmessage('对不起,没有您要查找统计!'); end; end; 此模块设计和上面类似,在此省略介绍。 5) 报表设计 关键采取Ehlib组件包进行开发,只要设置部分组件属性即可,简单易懂,在此省略具
28、体设计步骤,设计图如上面所表示。 6)其它设计功效 采取互斥对象方法避免应用程序反复开启 var mutex:THandle; begin mutex:=createmutex(NIL,TRUE,'form1'); if getlasterror<>ERROR_ALREADY_EXISTS then begin Application.Initialize; Form3:=TForm3.Create(application); Form3.Show; form3.Update; sleep(100);
29、 Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm16, Form16); Application.CreateForm(TForm17, Form17); form1.StatusBar1.Panels[1].Text:=' 小贺'; Application.CreateForm(TForm4, Form4); Application.CreateForm(TForm6
30、 Form6); Application.CreateForm(TForm8, Form8); Application.CreateForm(TForm9, Form9); Application.CreateForm(TForm10, Form10); Application.CreateForm(TForm11, Form11); Application.CreateForm(TForm12, Form12); Application.CreateForm(TForm13, Form13); Application.CreateFo
31、rm(TForm14, Form14); Application.CreateForm(TForm15, Form15); form3.Free; Application.Run; end; else showmessage('应用程序已开启!'); releasemutex(mutex); 4. 试验中出现问题及处理方法 技术水平不是很扎实。有很多新控件、新知识要学习、所以做起来没想象中轻易,不过最终能够克服。 在调试过程中碰到了很多错误,话费了大量时间进行修改、整理,浪费了整体开发时间。幸好,最终问题全部得到了处理,并按预期时间完成了设计工作。 5. 结束语 经过此次课程设计,不仅复习、巩固了delphi课程相关知识,而且还总结了很多软件设计经验,其中,自己感觉最关键就是:在软件设计早期一定要构思好软件框架,设计好各个功效模块,具体功效界面设计等等,总而言之,要花费大量时间设计好总体构思,在此基础上再进行开发设计。






