南昌航空大学信息工程
数据库原理
课程实验
报告 实验名称: 学生成绩信息
管理系统 实验时间: 2010年6月2日
指导教师:
班 级 :
学 号 :
姓 名 :
成 绩 :
一、实验目的
(1) 通过完成从用户需求分析、系统概要
设计、系统详细设计以及数据库的SQL操作具体实现等全过程,把前面的各个实验更好地综合起来.
(2) 进一步理解和掌握教材中的相关内容。
(3) 掌握分析和设计一个大型数据库系统的基本思路与方法。
二、 实验要求
1. 独立完成该系统的数据库设计。
2. 用SQL实现数据库的设计,并在MS SQL Server上调试通过。
3. 写出
查询、更新以及建立触发器SQL语句和执行结果。
4. 掌握报表的使用。
三、实验内容
综合前面各章内容设计并调试一学生成绩管理系统,
Delphi作为前台开发工具,SQL Server完成后台数据库存管理。创建学生成绩的统计(包括求班级各科成绩的平均分);并实现对各科成绩等的录入、修改、删除、查询等功能;实现学生成绩的统计(包括求班级各科成绩的平均分);并实现对各科成绩的排序。
四、实验代码及功能注释
1.用户
登陆界面
实验
程序:
procedure TForm1.Button1Click(Sender: TObject); //用户登陆
var ret:integer;
begin
adoconnection1.Open;
with ADOStoredProc1 do
begin
Close;
ProcedureName:='proc_login';
Parameters.Clear;
Parameters.Refresh;
Parameters.ParamByName('@username').Value:= Edit1.text;
Parameters.ParamByName('@pass
word').Value:= Edit2.text;
ExecProc;
ret:= Parameters.ParamByName('@return_value').Value;
end;
if ret=1 then //用户名密码匹配
begin
showmessage('登陆成功');
form3.show;
end
else
showmessage('你不是用户,请
注册');
end ;
procedure TForm1.Button2Click(Sender: TObject); //若不是用户,触发用户登陆界面显示
begin
form2.show;
end;
procedure TForm1.Button3Click(Sender: TObject); //退出该管理系统
begin
form1.Close;
end;
说明:在这里,使用了adostoredproc1控件和adoconnection1控件,它们的connectionstring属性都要与所设计的数据库相连,在查询分析器中,要运行存储过程如下:
CREATE procedure proc_login
@username varchar(20),
@password varchar(20)
as
declare @result int
select @result=count(*) from users where username=@username and passwords=@password
if @result=0
return 0
return 1
GO
2.用户注册界面
实验程序:
procedure TForm2.Button1Click(Sender: TObject);//新用户注册
begin
adoquery1.close;
adoquery1.
sql.clear;
adoquery1.sql.add('insert into users(username,passwords,核对密码,性别,出生年月,联系地址,联系电话,邮政编码,电子邮箱)'+'values(:1,:2,:3,:4,:5,:6,:7,:8,:9)');
adoquery1.parameters.parambyname('1').value:=''+edit1.text+'';
adoquery1.parameters.parambyname('2').value:=''+edit2.text+'';
adoquery1.parameters.parambyname('3').value:=''+edit3.text+'';
adoquery1.parameters.parambyname('4').value:=''+combobox1.text+'';
adoquery1.parameters.parambyname('5').value:=''+combobox1.text+' '+combobox1.text+'';
adoquery1.parameters.parambyname('6').value:=''+edit4.text+'';
adoquery1.parameters.parambyname('7').value:=''+edit5.text+'';
ado