Delphi课程设计新生报到注册系统.docx
《Delphi课程设计新生报到注册系统.docx》由会员分享,可在线阅读,更多相关《Delphi课程设计新生报到注册系统.docx(14页珍藏版)》请在冰豆网上搜索。
![Delphi课程设计新生报到注册系统.docx](https://file1.bdocx.com/fileroot1/2023-1/5/6d4f825b-af13-4928-bcb1-5082591225ae/6d4f825b-af13-4928-bcb1-5082591225ae1.gif)
Delphi课程设计新生报到注册系统
枣庄学院
计算机科学系课程设计任务书
题目:
新生报到注册系统
学号
姓名
专业
课程Delphi程序设计
指导教师XXX职称讲师
完成时间:
2010年12月----2010年12月
课程设计任务书及成绩评定
课程设计的任务和具体要求
任务:
《Delphi应用程序设计》是一门实践性较强的课程,在学完该课程之后进行综合课程设计,有助于加深对Delphi编程理论方面的理解,从而更好地掌握使用Delphi语言开发应用系统的技术;有助于将课堂所学的知识和实践有机结合起来,初步掌握应用系统开发的步骤和方法,提高分析和解决实际问题的能力,从而培养理论与实践相结合和实践创新的能力。
要求:
在学习完上述课程之后,依据所学的知识及课外查阅的资料完成预定的综合课程设计任务。
本课程设计是新生报到注册系统的设计与实现。
指导教师签字:
_____________日期:
___________
指导教师评语
成绩:
_________指导教师签字:
__________日期:
__________
课程设计所需软件、硬件等
硬件要求:
一台基本配置的计算机。
软件配置:
WINDOWS、SQLServer2005,delphi7
课程设计进度计划
起至日期
工作内容
备注
2010年12月1日
至
2010年12月30日
搜集资料,选择课题
需求分析、调查研究
设计界面、部分代码的编写
代码完善,编写课程设计文档
参考文献、资料索引
序号
文献、资料名称
编著者
出版单位
[1]Delphi应用程序设计李目海电子科技大学出版社,2005
[2]Delphi7程序设计技巧与实例吴天准中国铁道出版社2003
[3]Delphi数据库程序设计教程刘瑞新张志纲机械工业出版社,2004
一、课题名称
新生报到注册系统
主要功能:
1.新生信息管理
2.班级信息管理
3.缴费信息管理
4.宿舍信息管理
5.用户管理
二、新生报到注册系统的分析和设计
(1)开发环境的简介
设计平台:
DELPHI7.0
Delphi是一个对象导向设计的应用程序语言,是开发数据库前端的优秀工具,它的编程语言简洁明快、组件功能强大和编程环境灵活方便。
采用Delphi来开发数据库应用程序具有更大的灵活性和可扩展性。
数据库:
SQLServer2005
数据库访问方式:
ADO
ADO(ActiveDataObjects)实际是一种提供访问各种数据类型的连接机制。
ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。
可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。
ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。
(2)新生报到注册系统数据库设计
由于考虑到本系统是应用在单机系统上,另外根据学校人员规模,我只建立起一个数据库,在此数据库基础上建立起如下五个基本表:
学生信息:
姓名,出生年月,性别,联系地址,联系电话
班级:
姓名,性别,系名,班级,专业
宿舍:
姓名,性别,宿舍楼号,宿舍室号
缴费信息:
姓名,已交费用,应退费用
用户信息:
用户,密码
(3)窗体设计:
学生管理(xinxi.dfm)
班级查询(banji.dfm)
宿舍管理(sushe.dfm)
缴费管理(jiaofei.dfm)
用户管理(user.dfm)
(4)系统流程图(DataFlowDiagram):
(5)数据库概念结构设计
:
(6)数据库逻辑结构设计
学生基本情况表:
字段名
数据类型
是否可空
说明
姓名
文本
否
外关键字
性别
文本
否
主关键字
出生年月
日期
否
无
联系电话
文本
是
无
家庭地址
文本
是
无
宿舍情况表:
姓名
文本
否
外关键字
性别
文本
否
关键字
宿舍楼
文本
是
无
宿舍楼号
文本
是
无
用户表:
系名
文本
否
关键字
用户
文本
是
无
密码
文本
是
无
缴费表:
课程号
文本
否
关键字
姓名
文本
否
无
已交费用
文本
是
外关键字
应退费用
文本
是
无
班级表:
班级
文本
否
外关键字
姓名
文本
否
关键字
性别
文本
是
无
系别
文本
否
无
专业
文本
否
无
(7)用户管理部分的代码:
unituser;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Grids,DBGrids,Buttons;
type
TuserF=class(TForm)
DBGrid1:
TDBGrid;
Edit1:
TEdit;
Edit2:
TEdit;
GroupBox1:
TGroupBox;
GroupBox2:
TGroupBox;
Label1:
TLabel;
Label2:
TLabel;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
BitBtn3:
TBitBtn;
BitBtn4:
TBitBtn;
Edit3:
TEdit;
Label3:
TLabel;
procedureBitBtn1Click(Sender:
TObject);
procedureFormClose(Sender:
TObject;varAction:
TCloseAction);
procedureBitBtn4Click(Sender:
TObject);
procedureBitBtn3Click(Sender:
TObject);
procedureBitBtn2Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
userF:
TuserF;
implementation
usesDM;
{$R*.dfm}
procedureTuserF.BitBtn1Click(Sender:
TObject);
begin
if(edit1.Text<>'')and(edit2.Text<>'')then
begin
DMF.ADOQuery1.Close;
DMF.ADOQuerY1.SQL.Clear;
DMF.ADOQuery1.SQL.Add('insertintouserlogin(username,userpassword)values('''+edit1.text+''','''+edit2.text+''')');
DMF.ADOQuery1.ExecSQL;
edit1.Clear;
edit2.Clear;
DMF.ADOQueryuser.Close;
DMF.ADOQueryuser.Open;
showmessage('添加成功!
');
DBGRID1.Refresh;
end;
end;
procedureTuserF.FormClose(Sender:
TObject;varAction:
TCloseAction);
begin
action:
=cafree;
end;
procedureTuserF.BitBtn4Click(Sender:
TObject);
begin
close;
end;
procedureTuserF.BitBtn3Click(Sender:
TObject);
begin
DMF.ADOQuery1.Close;
DMF.ADOQuery1.SQL.Clear;
DMF.ADOQuery1.SQL.Add('deletefromuserloginwhereusername='+DBGrid1.DataSource.DataSet.FieldByName('username').AsString);
DMF.ADOQuery1.ExecSQL;
DMF.ADOQueryuser.Close;
DMF.ADOQueryuser.Open;
showmessage('删除成功!
');
DBGRID1.REFRESH;
end;
procedureTuserF.BitBtn2Click(Sender:
TObject);
begin
DMF.ADOQuery1.Close;
DMF.ADOQuery1.SQL.Clear;
DMF.ADOQuery1.SQL.Add('updateuserloginsetusername='+''''+edit1.Text+''''+',userpassword='+''''+edit2.Text+''''+'whereuserno='+''''+edit3.Text+'''');
//DMF.ADOQuery1.Parameters.ParamByName('name').Value:
=trim(edit1.Text);
//DMF.ADOQuery1.Parameters.ParamByName('pwd').Value:
=trim(edit2.Text);
DMF.ADOQuery1.ExecSQL;
{DMF.ADOQuery1.Close;DMF.ADOQuery1.SQL.Clear;DMF.ADOQuery1.SQL.Add('select*fromUserlogin');}DMF.ADOQueryuser.Close;DMF.ADOQueryuser.Open;dbgrid1.refresh;
end;
end.
三、设计总结体会
我觉得这次实验的收获和体会很大,主要有以下几点:
(1)在这次试验中我对数据库系统设计的基本框架有了更深地认识和学习,而且学习了数据库设计的基本步骤以及每个步骤的主要任务。
(2)增加了很多实际编程经验,更进一步的学习了delphi,在实践中遇到了很多的问题,但是经过努力也都较好地克服了。
这使我感觉到做任何事都会有困难,解决的关键在于自己的不断的坚持和努力。
(3)学习了怎样写实验报告,经过以前几次的课程设计经验,对报告的要求格式都有了大致的认识,这次实验锻炼了我写报告的能力,使整个实验过程更加规范.
总之,在这次的数据库课设过程中,我独立的进行了数据库和界面功能的设计,并完成了相应的应用程序的开发。
进行代码部分编写时,遇到很多困难,但是在网络资源和同学老师的帮助下一一解决了。
在此感谢给予我帮助的燕孝飞老师和同学们。
参考文献:
(1)Delphi6数据库系统开发实例子导航人民邮电出版社
(2)程序设计从入门到精通科学出版社
(3)Delphi6.0程序设计教程冶金工业出版社
(4)Delphi数据库开发自学教程人民邮电出版社
各模块主要代码
1、封面模块
unitUnit2;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,ExtCtrls,jpeg;
type
TForm2=class(TForm)
Image1:
TImage;
Timer1:
TTimer;
procedureTimer1Timer(Sender:
TObject);
procedureImage1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form2:
TForm2;
implementation
{$R*.dfm}
procedureTForm2.Timer1Timer(Sender:
TObject);
begin
form2.ModalResult:
=mrok;
end;
procedureTForm2.Image1Click(Sender:
TObject);
begin
form2.ModalResult:
=mrok;
end;
end.
2、用户登录模块
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Buttons,jpeg,ExtCtrls,DB,ADODB;
type
TForm1=class(TForm)
Edit1:
TEdit;
Edit2:
TEdit;
Image1:
TImage;
Label1:
TLabel;
Label2:
TLabel;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
ADOConnection1:
TADOConnection;
ADOQuery1:
TADOQuery;
procedureBitBtn1Click(Sender:
TObject);
procedureBitBtn2Click(Sender:
TObject);
procedureFormClose(Sender:
TObject;varAction:
TCloseAction);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
usesunit3;
{$R*.dfm}
procedureTForm1.BitBtn1Click(Sender:
TObject);
varsqlstr:
string;
begin
if(edit1.Text='')then
begin
application.MessageBox('用户名或密码不能为空','错误提示',0+64);
exit;
end;
sqlstr:
='select*fromuserloginwhereusername='+chr(39)+edit1.Text+chr(39);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sqlstr);
adoquery1.Open;
ifadoquery1.RecordCount<>1then
begin
application.MessageBox('你输入的用户名不存在','错误提示',0+64);
edit2.Clear;
edit1.SetFocus;
edit1.SelectAll;
exit;
end;
if(trim(adoquery1.FieldValues['userpassword'])<>edit2.Text)then
begin
application.MessageBox('你输入的密码不对','错误提示',0+64);
edit2.SelectAll;
edit2.SetFocus;
exit;
end;
form1.hide;
form1.Release;
application.CreateForm(tform3,form3);
form3.Show;
end;
procedureTForm1.BitBtn2Click(Sender:
TObject);
begin
application.Terminate;
end;
procedureTForm1.FormClose(Sender:
TObject;varAction:
TCloseAction);
begin
application.Terminate;
end;
end.