数据库课程设计报告.docx

上传人:b****5 文档编号:8325707 上传时间:2023-01-30 格式:DOCX 页数:28 大小:1.23MB
下载 相关 举报
数据库课程设计报告.docx_第1页
第1页 / 共28页
数据库课程设计报告.docx_第2页
第2页 / 共28页
数据库课程设计报告.docx_第3页
第3页 / 共28页
数据库课程设计报告.docx_第4页
第4页 / 共28页
数据库课程设计报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数据库课程设计报告.docx

《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(28页珍藏版)》请在冰豆网上搜索。

数据库课程设计报告.docx

数据库课程设计报告

数据库课程设计报告

课题基于SQL数据库的通用成绩管理系统

设计者

专业计算机科学与技术

班级

学号

同组成员名单

指导老师______

评定成绩___________________

2010年1月8日

 

课程设计任务书

一、课程名称《数据库系统原理》指导教师

二、本课程设计题目《基于SQL数据库的通用成绩管理系统》

三、本设计所要达到的目的和要求1、主题明确,软体开发要有创新性,能体现SQL的存储过程、触发器、游标技术等;2、用delphi结合SQLServer数据库进行开发;

3、写出数据库关系模式及相应的数据库表关系图;

4、绘制成绩MIS相应的系统流程图、E-R图等;

5、完成成绩MIS登陆界面、账户管理、主界面、成绩录入、成绩查询和其各项设计与操作。

四、接受任务学生:

班姓名

五、开始及完成时间自2009年12月28日

至2010年1月8日

2009年12月28日

 

目录

1.概述1

2.系统需求分析1

2.1本系统需要管理的实体信息1

2.2本系统要管理的实体联系信息1

3.功能需求分析1

3.1系统功能的描述1

3.2系统功能模块示意图1

4.系统设计2

4.1数据概念结构设计2

4.1.1数据流程图2

4.1.2E-R图4

4.1.3功能模块设计图4

4.2数据库逻辑结构设计5

4.2.1数据库逻辑结构设计6

4.2.2数据标的设计6

4.2.3数据库二维表结构6

5.Delphi常用的几个语句及功能7

6.系统界面及主要程序9

6.1创建公用模块9

6.2登录界面及主界面9

6.3基础信息管理13

6.4账户管理18

6.5帮助信息22

7.系统测试与运行22

7.1登录测试22

7.2账户管理测试22

7.3成绩录入测试23

7.4成绩查询测试23

8.参考文献23

9.总结23

 

1.概述

本系统是成绩查询管理系统,主要用于学生成绩的管理,包括成绩录入、查找、添加、删除。

学生通用成绩管理是学校管理中异常重要的一个环节,它的实现关系到学校办学整体效率的高低,运用通用成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理,也让同学们能在任何时候都能查阅到有关自己学科成绩有关的信息,也有利于让他们充分了解有关自己在大学期间所有课程的学习情况,提高查询速度。

学生成绩管理系统是系科综合管理信息系统中很重要的组成部分。

2.系统需求分析

成绩管理系统是面向各校的管理系统,其目的是提高学校对学生的科学化管理。

经过充分的系统调研,发现本系统主要应包括系统管理、成绩管理、成绩查询管理,进一步还发现各需管理的信息有:

添加或者删除用户,密码修改,各系学生基本信息,学生选课信息等。

本系统的具体要求为:

(1)能管理学生的基本成绩信息,可录入,修改,查询。

(2)通过使用计算机能方便地维护各信息表。

(3)方便同时查出总成绩和平均成绩,实现表的统计功能。

(4)需要时能即时进行输出与打印。

(5)系统具有操作方便、简捷等特点。

2.1本系统需要管理的实体信息

(1)账户管理:

用户名、密码

(2)系别:

机电系、文法系、经管系

(3)成绩录入:

机电系成绩录入、文法系成绩录入、经管系成绩录入

(4)成绩查询:

机电系成绩查询、文法系成绩查询、经管系成绩查询

(5)学生基本信息:

学号、姓名、性别、年龄、籍贯、原高中

(6)学生选课信息:

学号、课程号、成绩

(7)成绩查询:

总成绩、平均成绩

2.2本系统要管理的实体联系信息

(1)学生登陆系统时要输入用户名和密码

(2)学生的选课情况,信息要根据不同情况而添加、删除、修改信息,还有可以做密码修改等。

3.功能需求分析

3.1系统功能的描述

经过调研分析,通用成绩管理系统共可分为系统对用户的添加,删除,修改,各系成绩的录入,各系成绩的分类查询,查询学生的基本信息,选课情况。

系统的维护用于用户的维护及用户权限的设置等。

3.2系统功能模块示意图

4.系统设计

4.1数据概念结构设计

4.1.1数据流程图

系统0级图

成绩管理1级图

成绩查询1级图

4.1.2E-R图

4.1.3功能模块设计图

通用成绩管理系统总模块图

系统管理子模块图

 

成绩管理子模块图

成绩查询子模块图

 

帮助信息子模块图

4.2数据库逻辑结构设计

4.2.1数据库逻辑结构设计

学生信息(编号,学号,姓名,年龄,性别,籍贯,原就读高中)

选修信息(学号,课程号,成绩)

用户登陆信息(姓名,密码,权限)

4.2.2数据标的设计

学生成绩

学生信息

登陆信息

4.2.3数据库二维表结构

登录信息表

机电系学生信息

机电系学生选课及成绩

经管系学生信息

经管系学生选课及成绩

文法系学生信息

文法系学生选课及成绩

5.Delphi常用的几个语句及功能

(a)输入语句

InputBox函数和InputQuery函数用于显示一个带有编辑组件的消息对话框,该提示框中有一个文本输入框和两个命令按钮,为用户提供输入文本的功能。

1)InputBox函数

(InputBox返回值是字符串,也就是输入的字符串)

语法:

functionInputBox(constACaption,APrompt,ADefault:

String):

String;

ACaption,消息对话框的标题。

APrompt,消息对话框的提示信息。

ADefault,消息对话框首次出现时编辑框中显示的信息

2)InputQuery函数

显示一个带有编辑组件的对话框,为用户提供输入文本的功能,并判断用户是否按下了Ok按钮。

(InputQuery返回值为是否点了OK输入的字符串放在了变量Value中)

语法:

functionInputQuery(constACaption,APrompt:

string;varValue:

string):

Boolean;

ACaption,消息对话框的标题。

APrompt,消息对话框的提示信息。

Value,对话框首次出现在编辑框中显示的字符串,并得到用户在消息对话框中输入的字符串。

(b)输出语句

MessageDlg函数可以将信息以对话框的形式输出并显示。

语法:

functionMessageDlg(constMsg:

string;DlgType:

TMsgDlgType;Buttons:

TMesgDlgButtons;HelpCtx:

Longint):

Integer;

Msg,显示消息的内容。

Dlgtype,指定消息对话框的类型。

Buttons,指定消息对话框显示的按钮

HelpCtx,指定应显示帮助标题的正文ID

DlgType参数的取值:

mtInfromation,显示带感叹号图标的信息框。

mtWarnging,显示一个带有提醒符号图标的信息框。

mtCustom,无显示图标。

mtError,显示一个带有停止符号图标的信息框。

mtConfirmation,显示一个带有问好图标的信息框。

(c)条件判断语句

1)使用if...then语句

语法:

if条件then

begin

语句

end;

if...then...else语句

语法:

if条件then

语句1

else

语句2

2)case...of条件分支语句

case...of语句提供了一个可读性更好的多重if嵌套的解决方案。

语法:

case条件表达式of

条件1:

语句1;

....

条件n:

语句n;

else

其他语句;

end;

6.系统界面及主要程序

6.1创建公用模块

本系统有一个公用模块,FormData,内有一个Connection控件,用于连接数据库,若数据库改变,只要修改Connection控件的Connection属性即可。

另外,所有的窗体都可以被其他窗体引用。

6.2登录界面及主界面

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,ExtCtrls,StdCtrls,DB,ADODB,jpeg,Buttons;

var

Formlogin:

TFormlogin;

implementation

usesdataconn,mainform;

{$R*.dfm}

procedureTFormlogin.Button3Click(Sender:

TObject);

begin

application.Terminate;

end;

procedureTFormlogin.Button2Click(Sender:

TObject);

begin

edit1.Text:

='';

edit2.Text:

='';

end;

procedureTFormlogin.FormClose(Sender:

TObject;varAction:

TCloseAction);

begin

Application.Terminate;

end;

var

i:

integer=0;//定义i作用是查看用户是否输入时有三次错误

procedureTFormlogin.SpeedButton1Click(Sender:

TObject);

Varuser,pass:

string;

begin

user:

=Trim(edit1.Text);

pass:

=Trim(Edit2.Text);

adoquery1.Close;

adoquery1.SQL.Clear;

adoquery1.SQL.Text:

='select*fromloginwhereusername='''+user+'''andpassword='''+pass+'''';

//当变量user和pass的内容和‘login’表中的一致时,显示主窗体

adoquery1.Open;

ifadoquery1.Recordset.RecordCount=0then//未找到用户,提示用户输入错误

begin

Application.MessageBox('用户名或密码不正确!

请重新输入!

','^_^注意!

',MB_OK);

edit1.Text:

='';

edit2.Text:

='';

i:

=i+1;

if(i>=3)then

begin

showmessage('密码错误三次,系统退出!

');

application.Terminate;

end;

end

else

begin

formlogin.Hide;//隐藏formlogin窗体

//或者用formlogin.visible:

=false;

formmain.Show;//显示formmain主窗体

//或者用formmain.visible:

=true;

end;

end;

procedureTFormlogin.SpeedButton2Click(Sender:

TObject);

begin

application.Terminate;

end;

end.

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls,ExtCtrls,Menus;

var

Formmain:

TFormmain;

implementation

usesusersinfo,jdxio,jdxgrade,helpform,jgxgrade,jgxio,wfxgrade,wfxio;

{$R*.dfm}

procedureTFormmain.N10Click(Sender:

TObject);

begin

hide;

formusersinfo.Show;

end;

procedureTFormmain.N5Click(Sender:

TObject);

begin

formmain.Hide;

formjdxio.Show;

end;

procedureTFormmain.N6Click(Sender:

TObject);

begin

hide;

formjdxgrade.Show;

end;

procedureTFormmain.N4Click(Sender:

TObject);

begin

Application.Terminate;

end;

procedureTFormmain.N11Click(Sender:

TObject);

begin

formhelp.Show;

end;

procedureTFormmain.FormClose(Sender:

TObject;varAction:

TCloseAction);

begin

Application.Terminate;//退出程序

end;

procedureTFormmain.RadioButton1Click(Sender:

TObject);

begin

hide;//隐藏当前窗体

formjdxio.Show;//显示jdxioform窗体

end;

procedureTFormmain.RadioButton2Click(Sender:

TObject);

begin

hide;

formjdxgrade.Show;

end;

procedureTFormmain.RadioButton4Click(Sender:

TObject);

begin

hide;

formjgxgrade.Show;

end;

procedureTFormmain.RadioButton3Click(Sender:

TObject);

begin

hide;

formjgxio.Show;

end;

procedureTFormmain.RadioButton6Click(Sender:

TObject);

begin

hide;

formwfxgrade.Show;

end;

procedureTFormmain.RadioButton5Click(Sender:

TObject);

begin

hide;

formwfxio.Show;

end;

procedureTFormmain.N8Click(Sender:

TObject);

begin

formmain.Hide;

formjgxio.Show;

end;

procedureTFormmain.N9Click(Sender:

TObject);

begin

hide;

formjgxgrade.Show;

end;

procedureTFormmain.N13Click(Sender:

TObject);

begin

formmain.Hide;

formwfxio.Show;

end;

procedureTFormmain.N14Click(Sender:

TObject);

begin

hide;

formwfxgrade.Show;

end;

end.

6.3基础信息管理

机电系成绩管理:

主要代码

var

Formjdxgrade:

TFormjdxgrade;

implementation

usesdataconn,mainform;

{$R*.dfm}

procedureTFormjdxgrade.SpeedButton1Click(Sender:

TObject);

Begin//查询符合相关学号的记录

adoquery1.close;

adoquery1.SQL.Clear;

adoquery1.sql.text:

='select学号,课程号,成绩fromjdxgradewhere学号='''+Trim(edit1.Text)+'''';

adoquery1.open;

//求出平均成绩和总分,分别赋值给edit

adoquery1.close;

adoquery1.SQL.Clear;

adoquery1.sql.text:

='selectsum(成绩)as求和,avg(成绩)as平均值fromjdxgradewhere学号='''+Trim(edit1.Text)+'''';

adoquery1.open;

Edit2.Text:

=ADOQuery1.FieldByName('求和').AsString;

Edit3.Text:

=ADOQuery1.FieldByName('平均值').AsString;

//重新恢复SQL数据显示

adoquery1.close;

adoquery1.SQL.Clear;

adoquery1.sql.text:

='select学号,课程号,成绩fromjdxgradewhere学号='''+Trim(edit1.Text)+'''';

adoquery1.open;

ifadoquery1.Recordset.RecordCount=0then

//未找到用户,提示用户输入错误

begin

Application.MessageBox('学号输入不正确!

请重新输入!

','▲注意!

',MB_OK);

edit1.Text:

='';

adoquery1.close;

adoquery1.SQL.Clear;

adoquery1.sql.text:

='select学号,课程号,成绩fromjdxgrade';

adoquery1.open;

end

end;

procedureTFormjdxgrade.Button1Click(Sender:

TObject);

begin

edit1.Text:

='';//清空edit1.text记录

formmain.Show;

close;//关闭当前窗体

end;

procedureTFormjdxgrade.FormCreate(Sender:

TObject);

Begin//在窗体创建时显示SQL数据

adoquery1.close;

adoquery1.SQL.Clear;

adoquery1.sql.text:

='select学号,课程号,成绩fromjdxgrade';

adoquery1.open;

end;

procedureTFormjdxgrade.FormClose(Sender:

TObject;

varAction:

TCloseAction);

begin

edit1.Text:

='';//清空edit1.text的值

formmain.Show;

end;

end.

经管系成绩管理(代码同上)

文法系成绩管理(代码同上)

6.4账户管理

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,DB,ADODB,StdCtrls,Grids,DBGrids,Buttons;

var

formusersinfo:

Tformusersinfo;

procedureTformusersinfo.SpeedButton1Click(Sender:

TObject);

begin

adoquery1.Close;

formmain.Show;

formusersinfo.Hide;

end;

procedureTformusersinfo.FormClose(Sender:

TObject;

varAction:

TCloseAction);

begin

formmain.Show;

formusersinfo.Hide;

end;

procedureTformusersinfo.Button1Click(Sender:

TObject);

begin

inherited;

ifTextIsNull=Falsethen//判断编辑框文本是否为空

begin

WithDataModule1.Query2do//判断用户名称是否重复

begin

CLose;

SQL.Clear;

End;

Try

withDataModule1.adddo//向数据表中插入数据

begin

Close;

SQL.Clear;

SQL.Add('Insertintologinvalues(:

username,:

password)');

Parameters.ParamByName('username').Value:

=Trim(edit1.Text);

Parameters.ParamByName('password').Value:

=Trim(edit2.Text);

ExecSQL;

end;

Application.MessageBox('操作成功.','提示',64);

button4.Click;

Except

OnE:

Exceptiondo//产生异常则抛出异常信息

ShowMessage(E.Message);

End;

end

else

begin

Application.MessageBox('用户名或密码不能为空.','提示',64);

end;

end;

//自定义函数,判断编辑框是否为空

functiontformusersinfo.TextIsNull:

Boolean;

begin

Result:

=False;

if(Trim(edit1.Text)='')or(Trim(edit2.Text)='')then

Result:

=True;

end;

procedureTformusersinfo.Button2Click(Sender:

TObject);

begin

inherited;

ifDataModule1.Query1.Activethen//存在可删除的数据

Begin//提示是否删除数据

ifApplication.MessageBox(Pchar('确实要删除库存名称为:

'+Trim(DataMo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1