Delphi课设学生信息管理系统.docx
- 文档编号:4741625
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:15
- 大小:78.86KB
Delphi课设学生信息管理系统.docx
《Delphi课设学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《Delphi课设学生信息管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
Delphi课设学生信息管理系统
Chang’anUniversity
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
允许为空
学生基本信息表:
学生流动信息表:
登录信息表:
管理员信息表:
系统主要代码分析:
“登录”代码:
procedureTForm1.Button1Click(Sender:
TObject);
begin
query1.Close;
;
*fromuserswhere学号='+''''+edit1.Text+''''+'and'+'密码='+''''+edit2.Text+'''');//利用SQL语言从已建好的登录信息表—users中查询输入的用户名和密码是否已存在
query1.Open;
ifquery1.Eofthen
begin
showmessage('用户号或密码不正确');//若在users表中找不到输入的用户名和密码则提示!
end
else
begin
form1.Close;
form2.showmodal;//若在users表中找到输入的用户名和密码则关闭当前页面转向主页面
end;
end;
“查询”代码:
procedureTForm7.Button1Click(Sender:
TObject);
begin
withform7.table1do
begin
close;
indexfieldnames:
=s;//定义字段名:
学号或是姓名
open;
iffindkey([edit1.text])then//利用Findkey()在查找在表中是否存在输入的信息
begin
label2.Caption:
='查找成功!
';//若有则显示“查找成功!
”并在下面的DBGrid中显示出来.
end
else
begin
ShowMessage('查找失败!
');
label2.Caption:
='';//若没有则提示“查找失败!
”
end;
end;
“添加”代码:
procedureTForm9.Button1Click(Sender:
TObject);
begin
ifLength(Edit1.Text)=0then
showmessage('请输入学号!
')
else
ifLength(Edit7.Text)=0then
showmessage('请输入学号!
')//判断是否输入学号
else
ifLength(Edit2.Text)=0then
showmessage('请输入姓名!
')
else
ifLength(Edit8.Text)=0then
showmessage('请输入姓名!
')//判断是否输入姓名
else
ifEdit1.Text<>Edit7.Textthen
showmessage('两次输入学号不同,请重新输入!
')
else
ifEdit2.Text<>Edit8.Textthen
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;
“直接删除”代码:
procedureTForm10.Button1Click(Sender:
TObject);
begin
ifLength(Edit1.Text)=0then
showmessage('请输入要删除的学号!
')//判断是否输入学号
else
begin
;
;
;//打开要删除数据的表格
;//设置字段名
;
;
;
;
Table3.Active:
=False;
Table3.ReadOnly:
=False;
Table3.Active:
=True;
Table3.IndexFieldNames:
='学号';
ifthen
ifthen
ifTable3.FindKey([Edit1.Text])then//按设置的字段名查找表中是否存在
begin
ifMessageDlg('你确定要删除吗?
',mtConfirmation,[mbYes,mbNo],0)=mrYesthen
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:
='学号';
ifTable1.FindKey([DBEdit1.Text])then
ifTable2.FindKey([DBEdit1.Text])then//设置要查找的关键字段名
begin
ifMessageDlg('你确定要删除吗?
',mtConfirmation,[mbYes,mbNo],0)=mrYesthen
begin
Table1.Delete;
Table2.Delete;//在表中找到该字段名则删除相应数据
end
else
begin
end;
end;
end;
“修改”代码:
procedureTForm11.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、按照书本上的删除程序完成删除功能后,实验时总是跳到数据表的第一项删除。
解决方法:
按照书上的程序在每次调用表的时候都要打开表,结束后关闭表。
五、系统运行报告:
实现功能的展示
用户登录界面:
说明:
所有拥有登录号码和密码的用户都可以登录,包括学生和老师。
例:
学生用户名和密码:
2626
管理员用户和密码:
0110
主界面:
说明:
系统中包括数据显示、数据查询、数据管理和打印报表等功能,另外菜单项下有修改登录密码和管理员密码的选项。
学生基本信息显示:
学生流动信息显示:
学生基本信息查询:
说明:
学生信息查询可以按学号和按姓名查询,下面的学生流动信息查询也是一样。
学生流动信息查询:
生成的基本信息表:
生成流动信息表:
菜单中修改密码的界面:
管理员登录界面:
数据管理主界面:
说明:
数据管理中包括学生信息数据的添加、删除和修改,另外在菜单中还有新建管理员和删除已有管理员的功能。
添加数据界面:
删除数据界面:
数据修改界面:
窗体名称:
窗体名称:
对应名称:
Form1
用户登录界面
Form2
系统的主界面
Form3
管理员登录界面
Form4
数据管理主界面
Form5
学生基本信息显示界面
Form6
学生流动信息显示界面
Form7
学生基本信息查询界面
Form8
学生流动信息查询界面
Form9
学生信息添加界面
Form10
学生信息删除界面
Form11
学生信息修改界面
Form17
修改登录密码界面
Form18
修改管理密码界面
Form19
新建管理员界面
Form20
删除管理员界面
FrmBaoBiao1
学生基本信息的报表
FrmBaoBiao2
学生流动信息的报表
六、心得体会:
时光似水,岁月如歌。
短短的两周课设很快就结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
通过这次的课设,我对Delphi的学习有了更深的理解。
仅仅学习课本是不够的,许多东西都要自己亲自操作实践一遍,将会得到意想不到的结果。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。
通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力。
同时也增强了我通过检索资料来获取相关专业信息以及利用检索到的信息来解决面临问题的能力。
本次设计使我深刻认识到自己软件编程方面的知识薄弱。
在今后的学习我要加强软件编程方面知识的积累和运用。
最后,在课设过程中,我要感谢帮助过我的同学和老师,在此,对这些同学和老师表达诚挚的谢意!
七、参考书目及资料:
[1]《Delphi2006从入门到精通》颜金传,陈德全,黄平山编著
电子工业出版社 2008
[2]《Delphi6数据库系统开发实例导航》,陈豫龙、何旭洪编著,人民邮电出版社2002
[3]《Delphi系统开发实例精粹》,思维科技、刘山、赵辉编著,人民邮电出版社2005
[4]《Delphi程序设计教程》,刘瑞新,万朝阳,董淑娟等编著,机械工业出版社,2006
[5]《Delphi数据库开发及精彩实例》,姚巍编著,中国矿业大学出版社,2007
[5]《Delphi数据库管理信息系统开发案例精选》,赵姝颖等编著,清华大学出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi 学生 信息管理 系统