成绩管理系统设计.docx

上传人:b****4 文档编号:6309119 上传时间:2023-05-09 格式:DOCX 页数:30 大小:795.35KB
下载 相关 举报
成绩管理系统设计.docx_第1页
第1页 / 共30页
成绩管理系统设计.docx_第2页
第2页 / 共30页
成绩管理系统设计.docx_第3页
第3页 / 共30页
成绩管理系统设计.docx_第4页
第4页 / 共30页
成绩管理系统设计.docx_第5页
第5页 / 共30页
成绩管理系统设计.docx_第6页
第6页 / 共30页
成绩管理系统设计.docx_第7页
第7页 / 共30页
成绩管理系统设计.docx_第8页
第8页 / 共30页
成绩管理系统设计.docx_第9页
第9页 / 共30页
成绩管理系统设计.docx_第10页
第10页 / 共30页
成绩管理系统设计.docx_第11页
第11页 / 共30页
成绩管理系统设计.docx_第12页
第12页 / 共30页
成绩管理系统设计.docx_第13页
第13页 / 共30页
成绩管理系统设计.docx_第14页
第14页 / 共30页
成绩管理系统设计.docx_第15页
第15页 / 共30页
成绩管理系统设计.docx_第16页
第16页 / 共30页
成绩管理系统设计.docx_第17页
第17页 / 共30页
成绩管理系统设计.docx_第18页
第18页 / 共30页
成绩管理系统设计.docx_第19页
第19页 / 共30页
成绩管理系统设计.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

成绩管理系统设计.docx

《成绩管理系统设计.docx》由会员分享,可在线阅读,更多相关《成绩管理系统设计.docx(30页珍藏版)》请在冰点文库上搜索。

成绩管理系统设计.docx

成绩管理系统设计

数据库技术

课程设计报告

 

 

一设计概述

1.1系统功能分析

系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。

主要功能有:

1有关用户密码的修改

2有关学生信息的插入,查询,修改等。

包括输入学生基本信息,如所在班级,学号等。

3有关课程信息的插入,查询,修改等。

包括输入课程名,课程号等。

4有关成绩信息的插入,查询等。

二.需求分析

2.1系统需求:

通过调查,要求系统需要有以下功能:

要求有良好的人机界面;

较好的权限管理;

原始数据修改简单方便,支持多条件修改;

方便的数据查询,支持多条件查询;

相应的权限下,删除数据方便简单,数据稳定性好;

2.2可行性分析:

由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。

因此,比较适合于采用数据库管理。

且学校用于学生管理的微机都是奔腾3以上的机器,在存储量、速度方面都能满足数据库运行的要求。

在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。

数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:

delphi是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。

它简单易学、效率高,且功能强大。

在delphi环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。

三.数据库逻辑设计

3.1系统方案确定

通过对系统的调研与分析,系统主要应完成的功能有:

学生信息管理、课程信息管理、成绩信息管理、信息查询等功能。

3.2软件结构设计

本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于一个综合性管理系统。

3.3概念模型(E-R图)

学生(学号、姓名、性别、出生日期、学院、班级)

课程(课程号、课程名、开课学期、任课教师)

成绩(学号、课程号、成绩)

 

四.创建学生成绩管理数据库

4.1创建学生成绩管理数据库

1.实验内容

使用SQLServer企业管理器创建名为xscjglxt的数据库。

2.实验步骤

(1).打开SQLServer企业管理器,出现图

(1)所示的界面。

.单击左端“+”号层层展开直到在屏幕上出现“数据库”、“master”、“model”、“msdb”、“tempdb”、等项。

(1)企业管理器

(2).用鼠标右键单击“数据库”选项,从弹出的快捷键菜单图

(2)中选择“新建数据库”选项,此时会出现“数据库属性”对话框图(3),在“名称”文本框中输入数据库名“student”,单击[确定]按钮,以便默认的参数创建了一个名为“student”数据库。

(2)数据库操作快捷菜单图(3)“数据库属性”对话框

(3).在“student”数据库上单击鼠标右键,在弹出的菜单中选择“属性”选项图(4),

进入“studen属性”对话框,在该对话框内单击“数据文件”和“事物日志”选项卡的设置参

数,如图(5)

图(4)“studen”数据库快捷菜单图(5)“student属性”对话框

4.2创建信息表

1.实验内容

使用SQLServer企业管理器,在“studen”数据库上创建“studentinfo”、“course”、“grade”表。

其中:

studentinfo(学生表)用来存储一个学校内学生的基本信息:

course(课程表)用来存储于学生相关的课程基本信息;grade(成绩表)用来存储于学生所选课程的成绩基本信息。

通过这3张表建立一个简单的学生信息管理系统。

3张表的结构如下

表1学生表结构

字段

数据类型

长度

是否允许空值

备注

学号

varChar

20

主键

性别

varChar

20

姓名

varChar

20

出生日期

Smalldatetime

4

学院

varChar

20

班级

varChar

20

备注

Tesr

20

表2课程表结构

字段

数据类型

长度

是否允许空值

备注

课程号

varChar

20

主键

课程名

varChar

20

开学学期

Tinyint

1

任课教师

varChar

20

 

表3成绩表结构

字段

数据结构

长度

是否允许空值

备注

学号

varChar

20

主键

课程号

varChar

20

主键

成绩

Tinyint

1

2.实验初始数据

表4学生表初始记录

学号

姓名

性别

出身日期

院系

班级

备注

S0000001

李一

1978-12-1

信自学院

信自1班

S0000002

李二

1977-1-15

信自学院

信自1班

S0000003

李三

1975-11-30

信自学院

信自1班

S0000004

李四

1976-6-24

信自学院

信自2班

S0000005

李五

1977-5-17

信自学院

信自21班

S0000006

王一

1978-4-28

电力学院

电力1班

S0000007

王二

1979-1-23

电力学院

电力1班

S0000008

王三

1978-10-1

电力学院

电力1班

S0000009

王四

1978-01-02

电力学院

电力2班

S0000010

王五

1978-12-05

电力学院

电力2班

表5课程表初始记录

课程表

课程名

开课学期

任课教师

C001

计算机文化基础

1

陈一

C002

操作系统

3

陈二

C003

数据结构

3

陈三

C004

数字电子技术

2

陈四

C005

计算机网络

2

陈五

C006

系统工程

3

刘一

C007

模拟电子技术

4

刘二

C008

软件基础

4

刘三

C009

面向对象语言程序设计

2

刘四

C010

运筹学

1

刘五

表6成绩表初始记录

学号

课程号

成绩

S0000001

C001

80

S0000002

C002

80

S0000003

C003

78

S0000004

C004

78

S0000005

C005

80

S0000006

C010

78

S0000007

C009

90

S0000008

C008

88

S0000009

C007

88

S0000010

C006

77

3.实验步骤

(1).打开SQLServer企业管理器,在树形目录中找到“student”数据库并展开它,选择数据库对象“表“,在“表“对象上单鼠标右键,则弹出其快捷菜单,如图(6)

图(6)“表”的快捷菜单

(2)从弹出的快捷菜单选择“新建表”选项,则弹出“表结构设计”窗口,如图(7),所示。

该窗口的上半部分是一个表格,在这个表格中输入”学号”、”姓名”、”性别”、”出生日期”、”院系”

等列的属性,表格的每一行对应一个列定义。

(3)用鼠标单击“学号”列,在工具栏中单击”钥匙”图标按钮,可将“学号”字段设置为主

键(主关键字),此时“学号”前将出现一钥匙图标,如图(7)

图(7)表结构设计窗口

(4)将表结构输入完后,单击[保存]按钮将出现“选择名称”对话框,如图(8)所示。

输入表名“studentinfo”后,单击[确定]按钮就完成了学生表结构的设计,创建了一张空表。

(5)按上述第2~5步的方法,按表

(2)、表(3)的要求,分别创建课程表成绩表结构.

(6)返回企业管理器主界面,在表对象的显示窗口内找到表名,在其上单击鼠标右键,在弹出菜单中,选择“打开表”选项中的“返回所有行”命令,如图(9)所示:

图(8)“打开表”级联菜单

(7)选择“返回所有行”命令后,将出现“表数据录入及维护”窗口,如图(10)所示。

根据

表(4)所列出的实验数据,向表“studntinfo”中添加记录

(8)按第6~7步所示方法将表(5)、(6)所列出的数据输入到“course”和“grade”表中

4.3创建关系图

1.实验内容

使用SQLServer企业管理器建立3个关系表的关系图,并保证表中数据的唯一性。

2.实验步骤

(1)运行SQLServer企业管理器,在树形目录中找到“xscjglxt”数据库并展开它,选择

数据库对象”关系图”,在”关系图”选项上单鼠标右键,则弹出一快捷菜单,如图所示

图(9)“关系图”快捷菜单

(2)在弹出的快捷菜单中选择“新建数据库关系图”选项,则弹出“创建数据库关系图向导”

对话框。

在该对话框中单击[下一步]按钮,“选择要添加的表“对话框,这个对话框中选择表”studentinfo”、”course”、”grade”,并单击[添加]按钮,将选中表添加到右列表框中。

单击[下一步]按钮,检查所选择的表是否正确.

(3)单击“完成”按钮,完成数据库关系图的创建,会出现“新关系图”窗口.。

(4)在“新关系图”窗口内,将光标放在“grade”表中课程号“字段前的”

标识单击鼠标左键,此时”课程号”字段呈被选中状态,拖动鼠标到表”course”上,放开鼠标左键将弹出创建关系对话框,在”主键表”和”外键表”中都选择”课程号”字段并单击创建中检查现存数据”对复制强制关系”和”UPDATE强制关系”3个复选框然后单击[确定]按钮.

(5)按上述第4步的方法,建立学生表“studentinfo”成绩表“grade”在学号字段上的关系,如图(10)所示

图(10)创建关系后的窗口

(6)单击[保存]按钮,在弹出的“另存为”对话框中输入新关系图的名称。

4.4创建视图

1.实验内容

使用SQLServer企业管理器建立名为视图。

作为成绩查询的操作对象

2.实验步骤

(1)打开SQLServer企业管理器,在树形目录中找到“xscjglxt”数据库并展开它,选择

数据库对象“视图“,在“视图“选项上单鼠标右键,则弹出一快捷菜单,如图所示

图(11)“视图”快捷菜单

(2)在弹出的菜单中选择“新建视图”选项,则弹出“新视图”对话框,如图(12)

所示,在对话框上半部分的灰色框内单击鼠标右键,从弹出的菜单中选择“选择添加表”

选项,回出现“添加表”对话框.

图(12)新建视图窗口

(3)在“添加表”对话框中,选择表“studentinfo”“course”“grade”,单击[添加]按钮,关

闭“添加表”对话框,返回新视图窗口,如图(13)所示,在3个表的字段前可通过字段

左边的复选框选择要添加到视图中的字段(不同表中名称相同的字段只勾选一次)

图(13)添加表后的新视图窗

(4)单击[保存]按钮,在弹出的“另存为”对话框中输入新视图名称,单击[确定]按钮,完成新视图的建立。

五.delphi前台界面的设计与实现

5.1设计主窗体

1.实验内容

使用delphi设计与SQLServer数据库相关联的“学生信息管理系统”的前台界面。

2.实验步骤

(1)设计登录窗口

登录窗口如图(14)所示。

图(14)

1.创建窗口并设置属性

创建登录窗口loginFrom,调整其大小,在窗口上放置3个LABLE组件,两个EDIT组件和3个BITBTN组件,修改其属性如图(14)。

2.编写代码

unitlogin;

interface

uses

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

Dialogs,DB,ADODB,StdCtrls,Buttons;

type

TloginForm=class(TForm)

Label1:

TLabel;

GroupBox1:

TGroupBox;

Label2:

TLabel;

Label3:

TLabel;

Edit1:

TEdit;

Edit2:

TEdit;

BitBtn1:

TBitBtn;

BitBtn2:

TBitBtn;

BitBtn3:

TBitBtn;

ADOConnection1:

TADOConnection;

loginADOQR:

TADOQuery;

procedureBitBtn1Click(Sender:

TObject);

procedureBitBtn2Click(Sender:

TObject);

procedureBitBtn3Click(Sender:

TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

loginForm:

TloginForm;

implementation

usesmain,modifypassword;

{$R*.dfm}

procedureTloginForm.BitBtn1Click(Sender:

TObject);

begin

ifnotLoginADOQR.Activethen

LoginADOQR.Active:

=true;

if(notLoginADOQR.Locate('用户名',trim(Edit1.Text),[]))

or(LoginADOQR.FieldByName('密码').AsString<>trim(Edit2.Text))then

begin

Application.MessageBox('没有此用户','警告框',MB_IConInformation);

Edit1.SetFocus();

exit;

end;

ifMainForm=nilthen

Mainform:

=TmainForm.Create(self);

MainForm.ShowModal();

LoginForm.Close();

end;

procedureTloginForm.BitBtn2Click(Sender:

TObject);

begin

Application.Terminate;

end;

procedureTloginForm.BitBtn3Click(Sender:

TObject);

begin

ifModifyPasswordForm=nilthen

ModifyPasswordForm:

=TModifyPasswordForm.Create(self);

ModifyPasswordForm.ShowModal();

end;

end.

(2)设计密码修改窗口

密码修改窗口如图(15)所示。

1.创建窗口并设置属性

创建密码修改窗口modifypasswordForm,调整其大小,在窗口上放置4个Lable,4个Edit组件和2个BitBtn组件,设置其属性如图(15)所示。

图(15)

2.编写代码

unitmodifypassword;

interface

uses

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

Dialogs,StdCtrls,Buttons,DB,ADODB;

type

TmodifypasswordForm=class(TForm)

GroupBox1:

TGroupBox;

Label1:

TLabel;

Edit1:

TEdit;

Label2:

TLabel;

Edit2:

TEdit;

Label3:

TLabel;

Edit3:

TEdit;

Label4:

TLabel;

Edit4:

TEdit;

BitBtn1:

TBitBtn;

BitBtn2:

TBitBtn;

ADOConnection1:

TADOConnection;

modifypasswordADOQR:

TADOQuery;

procedureBitBtn1Click(Sender:

TObject);

procedureBitBtn2Click(Sender:

TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

modifypasswordForm:

TmodifypasswordForm;

implementation

{$R*.dfm}

procedureTmodifypasswordForm.BitBtn1Click(Sender:

TObject);

begin

iftrim(Edit3.Text)<>trim(Edit4.Text)then

begin

Application.MessageBox('两次输入密码不匹配,请重新输入!

','消息框',MB_ICONInformation);

Edit4.SetFocus();

exit;

end;

withModifyPasswordADOQRdo

begin

ifnotActivethen

Active:

=true;

if(notLocate('用户名',trim(Edit1.Text),[])or(ModifyPasswordADOQR.FieldByName('密码').AsString<>trim(Edit2.Text)))then

begin

Application.MessageBox('没有此用户','警告框',MB_ICONInformation);

Edit1.SetFocus();

exit;

end;

exit;

FieldByName('密码').AsString:

=trim(Edit3.Text);

post();

Application.MessageBox('密码修改成功,请记住新密码!

','提示框',MB_ICONInformation);

ModalResult:

=mrok;

end;

end;

procedureTmodifypasswordForm.BitBtn2Click(Sender:

TObject);

begin

Application.Terminate;

end;

end.

(3)设计菜单

启动,新建一个标准工程,默认名为“工程1”。

在该工程中会自动创建一个窗体,默认名

为“form1”在该窗体中使用提供的“菜单编辑器“设计主窗体,如图所示没命名主窗体为

mainForm.

图(16)设计学生成绩管理系统界面

(2)添加代码

在该窗口中,水平主菜单有3个“菜单”:

“学生信息”“关于”“退出”其中“学生信息”菜单的下拉菜单中又有“学生基本信息表”、“课程表”、“成绩表”3个子菜单。

各菜单项的功能和代码如下

1)代码如下

unitmain;

interface

uses

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

Dialogs,Menus;

type

TmainForm=class(TForm)

MainMenu1:

TMainMenu;

N1:

TMenuItem;

N2:

TMenuItem;

N3:

TMenuItem;

N4:

TMenuItem;

N5:

TMenuItem;

N6:

TMenuItem;

procedureN2Click(Sender:

TObject);

procedureN3Click(Sender:

TObject);

procedureN4Click(Sender:

TObject);

procedureN5Click(Sender:

TObject);

procedureN6Click(Sender:

TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

mainForm:

TmainForm;

implementation

usesabout,course,grade,studentinfo;

{$R*.dfm}

procedureTmainForm.N2Click(Sender:

TObject);

begin

ifstudentinfoForm=nilthen

studentinfoForm:

=TstudentinfoForm.Create(self);

studentinfoForm.ShowModal();

end;

procedureTmainForm.N3Click(Sender:

TObject);

begin

ifcourseForm=nilthen

courseForm:

=TcourseForm.Create(self);

courseForm.ShowModal();

end;

procedureTmainForm.N4Click(Sender:

TObject);

begin

ifgradeForm=nilthen

gradeForm:

=TgradeForm.Create(self);

gradeForm.ShowModal();

end;

procedureTmainForm.N5Click(Sender:

TObject);

begin

ifaboutForm=nilthen

aboutForm:

=TaboutForm.Create(self);

aboutForm.ShowModal();

end;

procedureTmainForm.N6Click(Sender:

TObject);

begin

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2