《delphi—课程设计(报表.doc》由会员分享,可在线阅读,更多相关《delphi—课程设计(报表.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计任务书 题目: 学生宿舍管理系统 学号: 2 姓名: 贺 言 君 专业: 计算机科学与技术 课程: delphi程序设计 指导教师: 燕孝飞 职称: 完成时间:2010年12月1日2010年12月27日枣庄学院计算机科学系制课程设计任务书及成绩评定课程设计的任务和具体要求在现代的高校宿舍管理工作中,由于高校扩招,学生人数巨增,传统的管理方法已经不适合高校宿舍管理的需要,以前在管理方面采用的管理系统有一些落后,随着学生人数的不断增加,该系统在数据管理方面有一些混乱,越来越不能适宜管理的需要,因此需要一个功能更完善,操作更方便,容量更大的管理信息系统。因此宿舍管理系统是各大高校所需要使用的
2、一个管理系统由于宿舍系统是一个比较大型的信息管理系统,它需要专业的工作人员才能完成复杂的功能,而且不同的高校的管理内容和方式有所不同信息系统分析与设计是学习完信息系统分析与设计课程后进行的一次全面的综合练习。其目的在于加深对信息系统基础理论和基本知识的理解,初步掌握使用信息系统分析、设计的基本内容和方法,提高解决实际问题的能力。作为学习,我们设计这个管理系统不可能作一个标准的应用系统,而只是制作了一个有一般代表意义的小型宿舍管理系统这样既深化了理论知识也提高了实践能力 指导教师签字:_ 日期:_指导教师评语成绩:_ 指导教师签字:_ 日期:_课程设计所需软件、硬件等 此管理系统采用delphi
3、7设计前台界面,SQL Server 2005开发数据库所以采用的软件及语言如下:系统:Windows XP语言:SQL语言、Pascal语言开发工具:SQL Server 2005,delphi7等课程设计进度计划起至日期工作内容备注2010年12月1日5日2010年12月6日9日2010年12月10日11日2010年12月12日23日2010年12月24日27日确定课题并搜集相关资料分析后台数据库需求总体功能的设计各个功能模块的设计撰写课程设计略参考文献,资料索引序号文献、资料名称编著者出版单位1李目海, delphi应用程序设计, 枣庄学院计算机科学系2陈豫龙 何旭洪, delphi数据
4、库系统开发实例导航(第二版), 人民邮电出版社3刘子锐, delphi数据开发自学教程,人民邮电出版社一、摘要宿舍管理系统是目前各所高校后勤管理之中的重要部分,如何能科学有效的开展学生公寓管理工作,是当前高校领导人和后勤管理人员关心的问题因此, 公寓管理工作的信息化和科学化有着十分重要的实践意义,此次开发的大公寓管理信息系统, 旨在实现对现有的宿舍管理系统中遇到的宿舍信息情况和大量数据进行数据存储的基础上,设计并完成对其宿舍信息的分类查询,添加,删除,修改和打印报表在深入研究的过程中,尽可能实现方便友好的操作界面和数据报表该系统运用 DELPHI7技术, 以 Microsoft SQL Ser
5、ver 2005 为后台数据库, 开发了一套为高校服务的公寓管理信息系统。利用该系统大大的加强管理部门的相互沟通能力,提高工作效率,减少不必要的重复劳动,加速信息的记录、查阅以及传播速度,实现人性化管理和沟通服务管理的一种实用型管理软件。管理信息系统是一个由人和计算机软件硬件资源组成的人机系统,能进行管理信息的收集、传递、加工、保存、维护和使用,提供信息支持单位的运行、管理和决策的功能。在强调管理、调信息的现代社会中,管理信息系统变得越来越普及,可以说它是一门新的学科,跨越了若干个领域,如管理科学、系统科学、统计学以及计算机科学等,并在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵
6、横交织的系统。在传统的业务流程中,数据信息附着于业务流程之上,这是一种效率很低的数据处理方法;实现了办公自动化之后,虽然很多业务数据电子化了,但是不借助数据库的帮助,数据信息仍然附着于业务流程之上,虽然可以以文件等形式将电子化的数据存储,但是数据的再利用效率很低,而且也无法从这些无序的数据中提取进一步的信息;当建立了数据库系统之后,数据终于脱离业务流程而独立存在。人们不但可以通过管理信息系统将其储存于数据库之中,而且还可以对其方便地再利用。随着社会对人才需求的增加,以及高校的全面扩招,在校学生人数剧增,这给高校的后勤管理,特别是对学生公寓的管理带来很大的压力。学生公寓的管理是一项非常烦琐的工作
7、,但又是高校发展毕不可少的一部分。在学生公寓管理工作中,很大一部分是重复性的劳动,完全可以通过计算机信息技术来取代人工进行这些工作,从而是管理人员将更多的精力集中在如何提高服务质量方面。学生公寓管理系统就是为了满足这个需求而开发的一个管理信息系统。二、目录1. 摘要 42. 目录 53. 正文 6 3.1 系统功能设计 6 3.2 数据库设计 7 3.3 系统主界面设计 7 3.4 系统功能模块设计 7 3.5 其它设计功能 15 4. 实验中出现的问题及解决方法 16 5. 结束语 16三、正文 1.系统功能设计用户登录界面 系控制界面查询管理模块:学生信息查询宿舍信息操作离校学生查询来访信
8、息查询夜归学生查询用户管理退出系统宿舍管理来访管理学生管理查询管理打印报表帮助信息图1-1系统功能模块图 右图为查询管理子模块:在本系统中,将实现以下功能: 学生住宿信息管理 删除记录管理 学生综合信息查询2. 数据库设计 在sql server 2005中建立了一个学生宿舍管理数据库,数据表如下所示: 用户信息表(账户,密码,身份)住宿学生(学号,姓名,性别,专业,宿舍号,入住时间)宿舍(宿舍号,宿舍电话)夜归(学号,宿舍号,晚归时间,晚归原因)离校(学号,宿舍号,离校时间,返回时间)来访者(姓名,身份证,来访时间,离开时间)3. 系统主界面设计 包括菜单栏(mainmenu)、状态栏(to
9、olbar)、工具栏(statusbar)三大部分,其中还添加了imagelist,timer等组件,进行辅助的设计。4.系统功能模块设计 1)用户登录模块 用户登录窗体如图所示:各组件的添加省略,下面只给出主要的代码: “管理员登录”按钮代码: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=+pwo
10、rd.Text+ and user_des=+combobox2.Text+); 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.MainMenu1.Items4.Visible:
11、=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; button3.Enabled:=true; end;end; 2)添加用户功能模块 用户管理窗口 “添加用户”按钮代码:procedure TForm4.Butto
12、n2Click(Sender: TObject);begin With ADOQuery1 do begin Close; SQL.Clear; SQL.Add(Insert Into user_info(user_na,user_pwd,user_des); SQL.Add(Values(+edit1.Text+,+edit2.Text+,+combobox1.Text+) ); ExecSQL; showmessage(添加成功); end;end; 3)管理功能模块 下面宿舍信息管理子功能为例,其他管理只给出窗体设计功能代码类似。宿舍管理“插入”按钮代码: procedure TForm
13、9.Button2Click(Sender: TObject);begin if (edit1.Text=) or (edit2.Text=) then showmessage(不能为空) else begin adotable1.append; ADOTable1.FieldByName(dorm_no).asstring:=vartostr(edit1.Text); ADOTable1.FieldByName(dorm_tel).asstring:=vartostr(edit2.Text); adotable1.post; endend;“显示所有”按钮代码:procedure TForm
14、9.Button6Click(Sender: TObject);beginadotable1.Filtered:=false;MessageBox(handle,查询完毕!,提示,MB_OK or MB_ICONINFORMATION);edit1.Text:=;edit2.Text:=;edit3.Text:=;end;“查找”按钮代码:procedure TForm9.Button5Click(Sender: TObject);beginif adotable1.Active then begin if not ADOTable1.Locate(dorm_no,Edit3.Text,loC
15、aseInsensitive, loPartialKey) then showmessage(对不起,没有您要查找的记录!) else begin ADOTable1.Filter:=dorm_no=+QuotedStr(Edit3.Text); ADOTable1.Filtered := True; end end else showmessage(系统错误);end;“删除”按钮代码:procedure TForm9.Button3Click(Sender: TObject);begin if messagedlg(确实要删除吗?,mtinformation,mbyes,mbno,0)=m
16、ryes then adotable1.Delete else edit3.Text:=;end;“返回”按钮代码:procedure TForm9.Button1Click(Sender: TObject);begin edit1.Text:=; edit2.Text:=; edit3.Text:=; FreeOnRelease; form9.Visible:=false; form1.Show;end;来访者管理子模块功能与上面的累类似,在此省略介绍。下面是分别是离校学生管理与夜归学生管理两个子模块,都采用了DBnavigator组件,设置较简单,省了编写代码,具体设置在此不做介绍。下面是
17、学生信息管理子模块,与宿舍管理模块功能类似。 4)查询功能模块 下面是查询功能模块,首先是学生信息查询,主要同过label组件与edit组件进行分类查找,来访信息查询与宿舍信息查询由于数据单一,所以只进行单方面的查找,离校与夜归学生查询采用了combobox组件与edit组件配合,实现分类查寻,具体代码设计如下:第一个“查找”按钮代码:procedure TForm10.Button2Click(Sender: TObject);begin if adotable1.Active then begin if not ADOTable1.Locate(s_no,Edit1.Text,loCase
18、Insensitive, loPartialKey) then showmessage(对不起,没有您要查找的记录!) else begin ADOTable1.Filter:=s_no=+QuotedStr(Edit1.Text); ADOTable1.Filtered := True; end end else showmessage(系统错误);end;“显示所有”按钮代码:procedure TForm10.Button5Click(Sender: TObject);beginadotable1.Filtered:=false;MessageBox(handle,查询完毕!,提示,MB
19、_OK or MB_ICONINFORMATION);edit1.Text:=;edit2.Text:=;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 AD
20、OTable1.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) then begin ADOTable1.Filter:=s_name=+QuotedStr(Edit1.Text); ADO
21、Table1.Filtered := True end else showmessage(对不起,没有您要查找的记录!); if adotable1.Active=true then if combobox1.Text=宿舍号 then if adotable1.Locate(s_dorm_no,edit1.Text,loCaseInsensitive, loPartialKey) then begin ADOTable1.Filter:=s_dorm_no=+QuotedStr(Edit1.Text); ADOTable1.Filtered := True; end else showmes
22、sage(对不起,没有您要查找的记录!); end;end;此模块设计与上面的类似,在此省略介绍。 5) 报表的设计主要采用Ehlib组件包进行开发,只要设置一些组件的属性即可,简单易懂,在此省略具体设计步骤,设计图如上面所示。 6)其它设计功能 采用互斥对象方法避免应用程序重复启动var mutex:THandle;begin mutex:=createmutex(NIL,TRUE,form1); if getlasterrorERROR_ALREADY_EXISTS then begin Application.Initialize; Form3:=TForm3.Create(applic
23、ation); Form3.Show; form3.Update; sleep(100); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm16, Form16); Application.CreateForm(TForm17, Form17); form1.StatusBar1.Panels1.Text:= 小贺; Application.CreateForm(TForm4, Form4); Application.CreateF
24、orm(TForm6, 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.CreateForm(TForm14, Form14
25、); Application.CreateForm(TForm15, Form15); form3.Free; Application.Run; end; else showmessage(应用程序已启动!); releasemutex(mutex);4. 实验中出现的问题及解决方法 技术水平不是很扎实。有很多的新的控件、新的知识要学习、所以做起来没想象中的容易,不过最终可以克服。在调试的过程中遇到了许多错误,话费了大量时间进行修改、整理,浪费了整体的开发时间。幸好,最终问题都得到了解决,并按预期时间完成了设计工作。5. 结束语 通过此次课程设计,不但复习、巩固了delphi课程的有关知识,并且还总结了许多软件设计的经验,其中,自己感觉最重要的就是:在软件设计的初期一定要构思好软件的框架,设计好各个功能模块,具体的功能界面设计等等,总之,要花费大量时间设计好总体构思,在此基础上再进行开发设计。