Delphi课设—学生信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chang’an University
Delphi高级编程双语课程
设计报告
题目:学生信息管理系统
专业:电子信息工程
班级:
学号:26
姓名:李健
指导教师:李珊珊张晓博
日期:
一、课程设计目的:
a)要求学生熟练掌握Delphi高级编程语言的基本知识和基本的
编程技能;
b)掌握结构化和面向对象程序设计的基本思路和方法;
c)能够熟练应用常用的Delphi的组件,实现应用程序的编写、
编译和发行。
d)掌握大型应用开发的步骤;
二、课程设计题目(问题)描述和要求:
题目:学生信息管理系统
本系统的主要功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。
系统的功能有:
➢学生个人信息输入,包括:学号、姓名、性别、出生年月、籍贯、生源所在地等;
➢学生流动情况的输入,包括:转系、休学、复学、退学、毕业;
➢学生奖惩情况的输入;
➢学生个人信息的查询和修改,包括流动情况和奖罚情况。
✧基本要求:
1)画出系统功能模块图;
2)画出系统数据流程图;
3)进行数据库设计,写出所设计的数据库表的结构;
4)系统有友好的交互界面;
5)记录信息的录入、插入、删除、修改、查询或排序;
6)特定记录信息的输出显示(打印报表等)。
7)注意程序的实用性、安全性;
8)随时记录设计情况(备查,也为编写设计说明书作好准备);
9)设计成果:设计说明书一份(附录:设计说明书格式及要求);
源程序(能编译、正常运行)及其它相关文档。
三、系统分析与设计:
1、系统需求分析:
→数据分析:
学生信息管理系统中需要以下数据:
、学生的基本信息,包括:学号、姓名、性别、出生年月、籍贯、生源所在地、学生所受的奖惩情况。
、学生的流动信息,包括:学号、姓名、转系情况、休学情况、复学情况、退学情况、毕业情况。
●、管理员的账号、密码信息。
❍、用户的登录信息:用户名、密码。
→功能分析:
学生信息管理系统需要完成以下功能:
、学生基本信息的显示、查询、添加、删除和修改。
、学生流动信息的显示、查询、添加、删除和修改。
●、用户登录密码的修改。
❍、管理员用的创建、删除和管理员密码的修改。
⏹、学生登录后只能浏览、查询学生信息,和修改自己的密码,
而学生信息的修改、删除和添加,需要管理员的账户和密
码。
☐、学生信息的报表生成。
2、系统设计:
总体框图:
附加说明:数据管理模块只有拥有管理号和密码的管理员才能进入,
并对学生数据进行添加、删除和修改等基本管理。
在每个管理中有细分了对学生基本信息的管理和对学生流动信息的管理。
另外在数据管理模块中还有创建新的管理员和删除已有管理员的功能项,但这些都是在可以进入数据管理界面的前提下进行的。
3、数据库设计:
数据库的E-R图,关联图和数据库表的结构:
学生基本信息表:
字段名称数据类型字段大小字段说明学号Char 10 不允许为空姓名Char 10 不允许为空性别Char 10 不允许为空出生年月Datatime 10 允许为空籍贯Char 20 允许为空生源所在地Char 20 允许为空奖惩情况Char 30 允许为空
字段名称数据类型字段大小字段说明学号Char 10 不允许为空姓名Char 10 不允许为空转系情况Char 30 允许为空休学情况Char 30 允许为空复学情况Char 30 允许为空退学情况Char 30 允许为空毕业情况Char 30 允许为空
字段名称数据类型字段大小字段说明
学号Char 10 不允许为空
密码Char 10 允许为空
姓名Char 10 允许为空
字段名称数据类型字段大小字段说明TeacherId Char 10 不允许为空Passwd Char 10 允许为空Name Char 10 允许为空
学生基本信息表:
学生流动信息表:
登录信息表:
管理员信息表:
系统主要代码分析:
“登录”代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
;
* from users where 学号='+''''+edit1.Text+''''+'and '+'密码='+''''+edit2.Text+'''' ); //利用SQL语言从已建好的登录信息表—users中查询输入的用户名和密码是否已存在
query1.Open;
if query1.Eof then
begin
showmessage('用户号或密码不正确'); //若在users表中找不到输入的用户名和密码则提示!
end
else
begin
form1.Close;
form2.showmodal; //若在users表中找到输入的用户名和密码则关闭当前页面转向主页面
end;
end;
“查询”代码:
procedure TForm7.Button1Click(Sender: TObject);
begin
with form7.table1 do
begin
close;
indexfieldnames:=s;//定义字段名:学号或是姓名
open;
if findkey([edit1.text]) then //利用Findkey()在查找在表中是否存在输入的信息
begin
label2.Caption:='查找成功!';//若有则显示“查找成功!”并在下面的DBGrid中显示出来.
end
else
begin
ShowMessage('查找失败!');
label2.Caption:=''; //若没有则提示“查找失败!”
end;
end;
“添加”代码:
procedure TForm9.Button1Click(Sender: TObject);
begin
if Length(Edit1.Text)=0 then
showmessage('请输入学号!')
else
if Length(Edit7.Text)=0 then
showmessage('请输入学号!') //判断是否输入学号
else
if Length(Edit2.Text)=0 then
showmessage('请输入姓名!')
else
if Length(Edit8.Text)=0 then
showmessage('请输入姓名!') //判断是否输入姓名
else
if Edit1.Text<>Edit7.Text then
showmessage('两次输入学号不同,请重新输入!')
else
if Edit2.Text<>Edit8.Text then
showmessage('两次输入姓名不同,请重新输入!') //判断两次输入的信息是否相同
else
begin
;
;
; //将要添加信息的表打开
,Edit2.Text,
Edit3.Text,Edit4.Text,Edit5.Text,Edit6.Text,Memo1.Text]); //向表中添加记录
;
;
; //关闭添加过信息的表
;
;
;
,Edit8.Text,
Edit9.Text,Edit10.Text,Edit11.Text,Edit12.Text,Edit13.Text] );
;
;
Table3.Active:=False;
Table3.ReadOnly:=False;
Table3.Active:=True;
Table3.InsertRecord([Edit1.Text,Edit14.Text,Edit2.Text]); Table3.Active:=False;
Table3.ReadOnly:=True;
Table3.Active:=True;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
Edit11.Text:='';
Edit12.Text:='';
Edit13.Text:='';
Edit14.Text:='';
Memo1.Text:='';
showmessage('添加成功!') //信息添加完毕后清空所有Edit并提示成功信息
end;
end;
“直接删除”代码:
procedure TForm10.Button1Click(Sender: TObject);
begin
if Length(Edit1.Text)=0 then
showmessage('请输入要删除的学号!') //判断是否输入学号
else
begin
;
; //打开要删除数据的表格
; //设置字段名
;
;
;
;
Table3.Active:=False;
Table3.ReadOnly:=False;
Table3.Active:=True;
Table3.IndexFieldNames:='学号';
if then
if then
if Table3.FindKey([Edit1.Text]) then //按设置的字段名查找表中是否存在
begin
if MessageDlg('你确定要删除吗?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
;
;
;
; //若存在的删除表中相应信息并关闭表格
;
;
;
;
Table3.Delete;
Table3.Active:=False;
Table3.ReadOnly:=True;
Table3.Active:=True;
Edit1.Text:='';
end
else
begin
;
;
;
;
;
;
Table3.Active:=False;
Table3.ReadOnly:=True;
Table3.Active:=True; //关闭表格
end;
end
else
begin
Table3.Active:=False;
Table3.ReadOnly:=True;
Table3.Active:=True; //关闭表格
end
else
begin
;
;
; //关闭表格
end
else
begin
showmessage('没有记录!');
;
;
; //若在表中没有查到则提示“没有记录”,并关闭表格end;
end;
end;
“浏览删除”代码:
begin
Table1.IndexFieldNames:='teacherid';
Table2.IndexFieldNames:='学号';
if Table1.FindKey([DBEdit1.Text]) then
if Table2.FindKey([DBEdit1.Text]) then //设置要查找的关键字段名
begin
if MessageDlg('你确定要删除吗?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
Table1.Delete;
Table2.Delete; //在表中找到该字段名则删除相应数据
end
else
begin
end;
end;
end;
“修改”代码:
procedure TForm11.Button4Click(Sender: TObject);
begin
Table1.Edit; //是表格处于可以编辑的状态
Table1.Post; //将修改后的信息添加到原来的表中
; //更新修改后表的信息以便于显示
DBEdit1.ReadOnly:=True;
DBEdit2.ReadOnly:=True;
DBEdit3.ReadOnly:=True;
DBEdit4.ReadOnly:=True;
DBEdit5.ReadOnly:=True;
DBEdit6.ReadOnly:=True;
DBMemo1.ReadOnly:=True;
showmessage('修改成功!')
end;
四、系统调试出现的问题及解决方法:
1、每次调试后要运行看看效果时,总是提示无法创建工程。
解决方法:打开任务管理器在其中会找到还在运行的工程,结束进程后就可以再次运行了。
2、按照书本上的删除程序完成删除功能后,实验时总是跳到数据表的第一项删除。
解决方法:按照书上的程序在每次调用表的时候都要打开表,结束后关闭表。
五、系统运行报告:
实现功能的展示
用户登录界面:
说明:所有拥有登录号码和密码的用户都可以登录,包括学生和老师。
例:学生用户名和密码:26 26
管理员用户和密码:01 10
主界面:
说明:系统中包括数据显示、数据查询、数据管理和打印报表等功能,另外菜单项下有修改登录密码和管理员密码的选项。
学生基本信息显示:
学生流动信息显示:
学生基本信息查询:
说明:学生信息查询可以按学号和按姓名查询,下面的学生流动信息查询也是一样。
学生流动信息查询:
生成的基本信息表:
生成流动信息表:
菜单中修改密码的界面:
管理员登录界面:
数据管理主界面:
说明:数据管理中包括学生信息数据的添加、删除和修改,另外在菜单中还有新建管理员和删除已有管理员的功能。
添加数据界面:
删除数据界面:
数据修改界面:
时光似水,岁月如歌。
短短的两周课设很快就结束了,在这次的课程设计中
不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
通过这次的课设,我对Delphi的学习有了更深的理解。
仅仅学习课本是不够的,许多东西都要自己亲自操作实践一遍,将会得到意想不到的结果。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。
通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力。
同时也增强了我通过检索资料来获取相关专业信息以及利用检索到的信息来解决面临问题的能力。
本次设计使我深刻认识到自己软件编程方面的知识薄弱。
在今后的学习我要加强软件编程方面知识的积累和运用。
最后,在课设过程中,我要感谢帮助过我的同学和老师,在此,对这些同学和老师表达诚挚的谢意!
七、参考书目及资料:
[1]《Delphi 2006 从入门到精通》颜金传, 陈德全, 黄平山编著电子工业出版社2008
[2]《Delphi 6 数据库系统开发实例导航》,陈豫龙、何旭洪编著,人民邮电出版社 2002
[3]《Delphi系统开发实例精粹》,思维科技、刘山、赵辉编著,人民邮电出版社 2005
[4]《Delphi程序设计教程》,刘瑞新, 万朝阳, 董淑娟等编著,机械工业出版社, 2006
[5]《Delphi数据库开发及精彩实例》,姚巍编著,中国矿业大学出版社, 2007
[5]《Delphi数据库管理信息系统开发案例精选》,赵姝颖等编著,清华大学出版社, 2007。