实训报告.docx
- 文档编号:3811351
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:40
- 大小:600.55KB
实训报告.docx
《实训报告.docx》由会员分享,可在线阅读,更多相关《实训报告.docx(40页珍藏版)》请在冰豆网上搜索。
实训报告
1.学生评语管理工作流程分析与功能分析
学生评语管理系统中完成对教师写评语所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动。
本系统大幅度减轻教师写评语负担,并真正意义上实现学生评语的“管理”功能。
在本系统中,通过对学生,班级和评语的管理,理性的将数据有机的结合起来,简化了信息的处理,更新和查询等各项模块,并增加了对登录用户的限制,分为管理员登录,普通用户登录和来宾登录,在不同的用户登录时,界面也有相应的变化,一些按钮和标签也将变为灰色,不再允许用户点击。
学生评语管理系统中,教师可以轻松的对每一个同学写评语,修改评语,以及删除评语。
2.系统功能分析
学生评语管理系统需要具有以下的功能:
1)系统管理功能:
确认人员登陆功能,并可实现对登录人员的管理;
2)学生管理功能:
可进行学生信息的添加、修改和修改;
3)班级管理功能:
可进行班级信息的添加、修改和修改;
4)评语管理功能:
可进行评语信息的添加、修改和修改;
5)查询管理功能:
提供学生、班级及评语的各种类型的查询功能。
系统功能模块图
3.数据库设计
根据分析,我们可以列出以下系统所需的数据项:
学生(学号、姓名、班级、性别、年龄、住址)
班级(班主任、学生人数、班级号)
评语(学号、评语号、评语)
学生评语管理系统的E-R模型如图所示:
实体之间关系E-R图
学生实体E-R图
班级实体E-R图
评语实体E-R图
根据E-R模型和数据库需求分析,本系统总共涉及3个数据表格。
其中包括学生表、班级表和评语表3个基本表,同时还需要建立一个用户表以负责记录系统可登陆人员的相关信息。
用户表
字段名
数据类型
是否为空
说明
用户名
Varchar(20)
NOTNULL
用户名(主键)
密码
Varchar(20)
NOTNULL
密码
学生表
字段名
数据类型
是否为空
说明
学号
Char(5)
NOTNULL
学号(主键)
姓名
char(10)
NOTNULL
姓名
年龄
Int
NOTNULL
年龄
地址
Varchar(6)
NOTNULL
地址
班级
Char(5)
NOTNULL
班级号(外键)
性别
Char
(2)
NOTNULL
性别(默认为’男’)
班级表
字段名
数据类型
是否为空
说明
班级号
Char(5)
NOTNULL
班级号(主键)
学生人数
Int
NOTNULL
学生人数
班主任
Char(10)
NULL
班主任(默认为’王老师’)
评语表
字段名
数据类型
是否为空
说明
评语号
Int
NOTNULL
评语号(主键)
评语
Varchar(200)
NOTNULL
班级评语
学号
Char(5)
NOTNULL
学号(外键)
4.建立数据库
1)启动SQLServer
2)建立的是学生评语管理数据库,名为studentsPY;
3)在studentsPY数据库中建立第一张表,表名为用户表;
4)分别建立第2,3,4张表,表名为分别为学生,班级,评语;
5)适当的添加约束(如:
默认,检查等)
5.拷贝数据库
启动sqlserver服务管理器,先暂停在停止
在此文件夹下C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data中找自己的数据库文件和日志文件
6.恢复数据库
(1)将数据库文件考入本地磁盘中,然后在SQLserver企业管理器中,右击数据库所有任务附加数据库,找到自己考的数据库文件。
7、系统开发工具
(1)前台采用的是delphi
(2)后台数据库采用的是sqlserver
(3)访问数据库技术采用odbc
8、配置odbc
系统开发运行之前都要配置odbc,使用“系统DSN”创建数据源,具体操作如下:
(1)选择“开始”→“设置”→“控制面板”菜单命令,打开“控制面板”窗口,再双击该窗口中的“ODBC数据源”图标,打开“ODBC数据源管理器”对话框,如图1所示。
(2)单击
按钮,打开如图2所示的“创建新数据源”对话框。
在该对话框中选择安装数据源需要使用的驱动程序,选中其中的“SQLServer”。
然后单击
按钮,打开“建立新的数据源到SQLServer”对话框,如图3所示。
图1“ODBC数据源管理器”界面图2“创建新数据源”对话框
(3)设置新建数据源选项,在“名称”文本框中输入“studentsPYY”作为新建数据源的名称,在“服务器”的下拉列表框中输入“(Local)”,然后单击
按钮,打开如图4所示的对话框。
(4)设置访问SQLServer数据库必需的身份验证信息,然后单击
按钮,打开如图5所示对话框。
(5)设置通过数据源访问的默认数据库。
数据源默认连接的数据库为master,选中
复选框,再从下拉列表中选中“studentsPY”选项,然后单击
打开如图6所示对话框。
图3设置新建数据源选项图4设置身份验证信息
图5设置通过数据源访问的默认数据库图6设置数据源相关选项
(6)单击
按钮完成数据源的创建操作,返回“ODBC数据源管理器”对话框。
新建的“studentsPYY”数据源将显示在用户数据源列表中。
ODBC的作用:
在sqlserver中开发的数据库的只有配置了数据源,Delphi(VB)才可以通过配置的odbc访问这个数据库。
此时配置的数据源名称为studentsPYY,给studentsPY库配置的。
Delphi就可以通过访问studentsPYY达到访问studentsPY库的目的。
9.系统应用程序开发
启动delphi6.0,在d:
\上建立自己的文件夹,文件夹名称为studentsPY
存盘选择saveall,所有内容都存在自己的文件夹,打开文件时,要打开工程文件,不能打开其他的,打开功能文件时,所有窗体文件都会自动加载。
一、登录模块
1)设计思路:
本系统关系内部数据的浏览修改权限问题,所以在登录界面上,根据不同的用户名,会有不同的页面,页面的按钮或控件权限也不一样,在输入密码时,密码将不直接显示在文本框内,而是以*的形式显示,再单击登录按钮时,系统会根据输入的用户的权限,判断哪些控件是不能使用的,再点击来宾按钮后,用户可以只写打开主界面,但只有极少的权限浏览,系统有一个管理员账号—admin,该用户的权限最高,也是数据的维护者。
2)界面设计:
系统登录界面
用到的控件:
需要修改的控件属性:
3)相关程序:
(1)在登录过程中,在“登录”按钮输入代码如下:
procedureTForm1.Button1Click(Sender:
TObject);
varu,p:
string;//定义变量:
u,p为字符串类型
begin
if(trim(Edit1.Text)='')and(trim(Edit2.Text)='')
thenApplication.Messagebox('必须输入用户名和密码','提示',64)
elseif(trim(Edit1.Text)<>'')and(trim(Edit2.Text)='')
thenApplication.Messagebox('请输入密码','提示',64)
elseif(trim(Edit1.Text)='')and(trim(Edit2.Text)<>'')
thenApplication.Messagebox('请输入用户名','提示',64)
//以上代码是对文本框内有无值进行判断,并弹出提示
else
begin
u:
=Edit1.Text;//取Edit1文本框的值
p:
=Edit2.Text;//取Edit2文本框的值
query1.Close;//关闭结果集
query1.SQL.Clear;//清空query1中内容
query1.SQL.Add('select*from用户where用户名='+''''+u+'''');
//把查询语句装载在query1里面
query1.Open;//按装载的查询语句进行查询,并且打结果集
query1.Active:
=true;
ifquery1.fieldByName('password').AsString=pthen
//如果数据库中password字段的值=用户输入的值,那么将执行下列代码
begin
query1.Close;//关闭结果集
if(trim(Edit1.Text)='admin')thenbegin
//如果edit1文本框中的值等于admin执行下列代码
form2.N20.enabled:
=true;//将form2窗体内的N20控件的enable属性设为真
form2.N22.enabled:
=true;
form2.N23.enabled:
=true;
form2.N8.enabled:
=true;
form2.N11.enabled:
=true;
form2.N17.enabled:
=true;
end;
form2.Show;//打开form2窗体
form1.Close;//关闭form1窗体
end
else
begin
query1.Close;//关闭结果集
Application.Messagebox('请输入正确的用户名和密码','提示',64);//提示
Edit1.clear;
Edit2.clear;//清空两个文本框
end;
end;
form2.N3.enabled:
=true;
form2.N2.enabled:
=true;
form2.N1.enabled:
=true;
form2.N15.enabled:
=true;
form2.button1.enabled:
=true;
form2.button2.enabled:
=true;
form2.button3.enabled:
=true;
form2.button5.enabled:
=true;
form2.button6.enabled:
=true;
end;
(2)在登录界面中,“退出”按钮代码如下:
procedureTForm1.Button3Click(Sender:
TObject);
begin
application.Terminate;//关闭程序
end;
(3)在登录界面中,“清空”按钮代码如下:
procedureTForm1.Button2Click(Sender:
TObject);
begin
Edit1.clear;
Edit2.clear;//清空两个文本框
end;
(4)在登录界面中,“来宾”按钮代码如下:
procedureTForm1.Button4Click(Sender:
TObject);
begin
form2.Show;
form1.Close;
form2.N3.enabled:
=false;
form2.N2.enabled:
=false;
form2.N1.enabled:
=false;
form2.N22.enabled:
=false;
form2.N20.enabled:
=false;
form2.N23.enabled:
=false;
form2.N15.enabled:
=false;
form2.button1.enabled:
=false;
form2.button2.enabled:
=false;
form2.button3.enabled:
=false;
form2.button5.enabled:
=false;
form2.button6.enabled:
=false;
end;
二、主界面
1)设计思想:
入住登记是对学生进行入住登记,即为学生分配入住的寝室房间。
首先,学生入住寝室床位需求查询中选择自己要求居住的寝室、床位条件,点击“查询”按钮对寝室表、床位表进行了查询,在数据网格中显示满足要求条件的且床位没有住人的信息,学生在数据网格点击选择自己合意的记录之后,此条记录的床位号、寝室号的信息即可在入住登记的入住信息的床位号、寝室号后的文本框中直接显示,填写学生信息及选择缴费情况,点击“登记”按钮,将入住登记中的学生名称、学号、床位号、缴费情况后的文本框内容填入学生表的最后一条记录后,同时要把床位表中列床位号值等于此入住床位号的记录列住没住人的值改为“已住人”,还要将寝室表中列寝室号值等于此入住床位号属于的寝室的寝室号的那条记录的列已住人数的值进行加一。
“取消”按钮负责关闭入住管理模块。
2)界面设计:
系统主界面
用到的控件:
3)相关程序:
(1)在form1和form2窗体互相切换时,因为form2为主窗体,所以在project选项中的options选项中做以下修改:
(2)因为在主菜单中各个控件都是一个连接,所以代码以其中一个为例:
procedureTForm2.N7Click(Sender:
TObject);
begin
form8:
=tform8.create(self);
form8.show;
end;
三、系统管理模块
1)设计思想:
该模块主要负责管理员对用户的管理,再用管理员账号登录时,管理员可以对所有用户进行添加,密码修改和删除操作。
而这项功能功能,在其他用户登录时,是被禁用的。
该模块分为添加用户,修改密码和删除用户。
2)界面设计:
添加用户界面密码修改界面删除用户界面
三套界面用到的控件:
控件需修改的属性:
3)相关程序:
(1)添加用户界面:
点击添加按钮输入以下代码
procedureTForm14.Button1Click(Sender:
TObject);
begin
if(edit1.Text='')or(edit2.Text='')
thenApplication.Messagebox('请填入完整信息','提示',64)//判断edit1.Text和edit2.Text是否为空
else
begin
query1.SQL.Clear;//清空query1控件中的sql语句
query1.SQL.add('select*from用户');//把查询语句装载在query1里面
query1.Open;//按装载的查询语句进行查询,并且打结果集
query1.Edit;//把学生表设置成可编辑状
query1.Append;//在学生表中添加一条空记录
query1.FieldByName('用户名').AsString:
=edit1.Text;
//把文本框1中输入的数据给这条空记录的用户名字段
query1.FieldByName('password').AsString:
=edit2.Text;
//把文本框2中输入的数据给这条空记录的password字段
query1.Post;//保存student.
query1.Close;//关闭结果集
query1.Open;//打开结集,起到结果集刷新的作用
end
end;
(2)密码修改界面:
点击执行按钮输入以下代码
procedureTForm19.Button1Click(Sender:
TObject);
varu,p,q,str,qq:
string;//定义变量:
u,p,q,str,qq为字符串类型
begin
u:
=Edit1.Text;//把文本框里的值赋给u
p:
=Edit2.Text;
q:
=edit3.Text;
if(u='')or(p='')or(q='')
thenApplication.Messagebox('用户名和密码不能为空','提示',64)
//判断如果文本框中有空值,弹出提示
else
begin
query1.Close;
query1.SQL.Clear;//清空query1控件中的sql语句
query1.SQL.Add('select*from用户where用户名='+''''+u+'''');
//把查询语句装载在query1里面
query1.Open;//按装载的查询语句进行查询,并且打结果集
query1.Active:
=true;
ifquery1.fieldByName('用户名').AsString=uthen
//把在文本光中输入的用户名与数据库中的作比较
begin
ifp=qthen
beginstr:
='update用户setpassword='+''''+edit2.text+''''+'where用户名='+''''+edit1.text+'''';
query1.sql.clear;
query1.sql.add(str);
query1.execsql;
qq:
='密码修改成功,现在密码为'+edit2.text;
showmessage(qq);
end
//以上代码实现,如果两次输入的密码一致,将数据写入数据库
else
begin
Application.Messagebox('两次密码输入不一致','提示',64);
Edit2.Clear;
Edit3.Clear;//如果两次输入的不一样,则弹出提示,并清空文本框
end
end
else
begin
Application.Messagebox('没有此用户信息','提示',64);
Edit2.Clear;
Edit3.Clear;
edit1.clear;
//如果用户比较失败,则弹出信息,并清空文本框
end;
end;
end;
密码修改界面:
点击清空按钮输入以下代码
procedureTForm19.Button2Click(Sender:
TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
(3)删除用户界面:
点击执行按钮输入以下代码
procedureTForm15.Button1Click(Sender:
TObject);
varstr:
string;//定义变量:
str为字符串类型
begin
if(edit1.Text='')
thenApplication.Messagebox('请填入要删除的用户名','提示',64)
//判断如果文本框中有空值,弹出提示
else
begin
str:
='deletefrom用户where用户名='+''''+edit1.text+'''';
//删除用户表的记录,按给定用户名的值来删除。
query1.SQL.clear;//清空query1控件中的sql语句
query1.SQL.Add(str);//把查询语句装载在query1里面
query1.ExecSQL;//执行SQL语句
query1.SQL.clear;//清空query1控件中的sql语句
query1.SQL.Add('select*from用户');//把查询用户的所有数据语句装载在query1里面
query1.Open;//显示结果集
end;
end;
四、学生管理模块
1)设计思想:
该模块是用于对数据库中学生表中数据的管理,如添加,修改和删除。
管理员可以通过执行相应命令来更新数据库。
2)界面设计:
添加学生界面删除学生界面
学生信息修改界面
三套界面用到的控件:
控件需修改的属性:
3)相关程序:
(1)添加学生界面:
点击添加按钮输入以下代码
procedureTForm12.Button1Click(Sender:
TObject);
varstr:
string;vars:
integer;
begin
if(edit1.Text='')or(edit2.text='')or(edit5.Text='')or(combobox1.Text='')or(combobox3.Text='')or(combobox3.Text='')
thenApplication.Messagebox('请填入完整数据','提示',64)
else
begin
query1.SQL.Clear;
query1.SQL.add('select*from学生');
query1.Open;
Str:
=edit1.text;
S:
=0;
Query1.first;
While(notquery1.eof)and(s=0)do
begin
Ifquery1.fieldbyname('学号').asstring=str用于将输入的学号与数据库中的
Then数据作比较,如果没有,继续添
S:
=1加,如果存在,弹出提示。
Else
Query1.next;
End;
Ifs=0then
begin
query1.Edit;
query1.Append;
query1.FieldByName('学号').AsString:
=edit1.Text;
query1.FieldByName('姓名').AsString:
=edit2.Text;
query1.FieldByName('年龄').AsString:
=combobox2.Text;
query1.FieldByName('地址').AsString:
=combobox3.Text;
query1.FieldByName('班级号').AsString:
=edit5.Text;
query1.FieldByName('性别').AsString:
=combobox1.Text;
query1.Post;
end
Else
Application.Messagebox('此学号已存在','提示',64);//弹出提示
query1.Close;
query1.Open;
end;
end;
(2)删除学生界面:
点击执行按钮输入以下代码
procedureTForm17.Button1Click(Sender:
TObject);
varstr:
string;
begin
if(edit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)