教务管理系统数据库设计.docx
《教务管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《教务管理系统数据库设计.docx(98页珍藏版)》请在冰豆网上搜索。
教务管理系统数据库设计
教务管理系统数据库
(SQLServer2008+delphi7)
实验报告
班级:
7—
姓名:
787
学号:
787
指导教师:
完成日期:
第一章系统概述3
第二章系统分析
第三章系统设计4
第四章系统功能9
第五章系统实现9
第六章源程序附录15
第七章参考文献73
第一章系统概述
学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。
本系统是以delphi7编辑用户界面,以SQLserver2008为数据源后台而成的学生信息管理系统。
本系统是以计算机为基础,由人和计算机结合的对信息进行收集、存储、维护、加工、传递和使用的一种管理系统,其目的是使人流、物流、资金流和信息流处于最佳状态,以最少的资源投入获得最佳的综合效益。
本系统主要包括学生信息管理模块、教师信息管理模块、课程信息管理模块、成绩信息管理模块和系统维护模块等部分。
在校务管理中,为有关部门提供完整、综合、共享的信息,对于学校的教育管理、教务
第二章系统分析
1、问题定义
随着科学技术的不断提高,计算机科学日渐成熟,其强大功能已为人们深刻认识,它已进入人们生活的各个领域,并发挥了越来越重要的作用,针对人工管理的缺点,最好的解决办法就是借助计算机技术提供一个电子化的学生信息管理平台。
为了更好地管理学生和教职工的资料文档,我开发一个软件工程学生信息管理系统。
教师和学生可以应用该系统实现如下功能:
1、可随时查询出不同系及各系教师与各系学生情况,系、教师与学生各反映如下情况:
系:
系号、系名、系负责人、专业数等。
教师:
工号、姓名、性别、职称、工龄、出生年月、基本工资等。
学生:
学号、姓名、性别、年龄等。
2、为简单起见教师与学生区分系别,而课程不分系,课程需反映如下信息:
课程代号、课程名、课时数、必修课、学分。
3、学生入学时新生需录入登记,登记后即可选课学习课程(一学期约20学分)。
4、一门只由一位教师上,一位教师可上多门课,满30人才开课。
5、学生选每门课有个成绩,若成绩不及格则补考后还需记录补考成绩。
1)在某数据库管理系统中建立各关系模式对应的库表,并设计所需的视图、索引等。
2)能对各库表进行输入、修改、删除、添加、查询、打印等基本操作。
3)新生入校登记后可即时选课,老生每学期开始前可选课或作选课调整,一般要选共约20学分的若干门课程。
4)能明细查询某学生的选课情况及某课程的选修学生情况。
5)能统计查询出某学生的成绩单(包括总成绩、平均成绩、不及格门数等)及某门课的选
课人数、最高分、最低分、平均成绩等统计信息。
6)能分析出某教师的教学质量情况(可根据该教师所任所有课优良数平均超过一定百分比来粗略评定)。
7)其他你认为子系统应有的查询、统计功能。
8)要求子系统设计得界面友好,功能选择方便合理,并适当考虑子系统在其安全性、完整性、备份、恢复等方面的功能要求
2、可行性分析1.项目目标:
学生和老师可以方便的进行各自所需要的信息管理活动,同时可以查询和修改各自的信息,以便学校管理。
2.运行环境:
(1)以Windows98以上/ME/2000/XP作为学生选课管理系统的后台操作系统。
(2)前台开发程序为DELPH,ISQLServer2008。
(3)后台数据SQLServer2008。
(4)主要硬件设备:
PC机一台。
。
3.技术可行性:
本系统仅仅简单的实现了教务管理系统的基本功能和需求,具有一定的实用性。
但真正意义上的大型信息管理存储还是不太现实。
对于大量信息的维护也不具有很强的稳定性。
但是操作简单,适合小型的学生信息管理,维护也更为方便。
技术要求也不是很高,有一点delphi和SQLserver技术基础就行了。
4•总体分析:
成本低,出错率低,使学校实现现代化网络教学管理。
第三章系统设计
根据该系统的需求,数据库采用MicrosoftSQLServer2008,它完全设和本系统
的工作需求,它所支持的字段数据类型包括数值、字符、日期时间及二进制和图片等类型,是当前的主流数据库产品之一。
它还具有性能稳定、便于操作维护和具有较好的安全可靠性等特点,是作为服务器端数据库平台的理想选择。
根据系统的需求,系统用到的各种数据表如下图所示。
学生信息表
敎据类型
九许Null值
9学号
chart10)
□
姓档
char[lQ)
□
性别
diar(10)
0
出生日期
diar(10)
0
专业
char(10)
0
电话
char[10)
圍
苛汪
chart10)
毘琨青煤程宕喋握学R、_
-24数理统计46
1Z5数据厘4S
.25数掘库逐
125粧曲逊壮
.24該理吨计*16
教师信息表
数損类型
允许忖皿值
-敎师工号
char(10)
□
diar(10)
性别
char(iO}
H
身份证
char(lO)
國
电话
ch前{ID)
E
住址
i±i3r(10)
回
char(10)
E
char(iO)
0
备注
S
5
O
1—I
430425
课程信息表
学号
charC:
10)g]
课程号
di^r(13)
B
char(133
~~PB
学时
di^rCKJ)
□
学分
char(10〕
S
开踝时间
di^r(13)
am工号
char(133
~~PB
教师名称
品「(10)
char(20)
0
学号
123
'123
^24
^123
课程号
124
1Z5
125
126
124
课隆名数理统计喲据库
寸
単48號圈
教师工号
2011.1C.“Q2
ECJ1L.11,<103
2011.11.|/103
数理统计^8
2C11.11.凸02
2011.1C.1^02
官理信息表
列名
数拥饕型允许Nul(a
用户名
char(10)
int[7]
&±
charCIO)□
char[5O)团
教师课程表
T竝
数拥类型
允许Null值
1课程号
chart10}
□
漂程宕
char(10)
敎师工号
diar(10}
ffl
敎师蛀
diar(10)
画
学分
char{10)
@1
字时
char{10}
圜
diairf10)
s
盍注
char{20}
ffl
成绩信息表
列名
数拥类型
允许Null值
dnar(lO)
□
姓名
diar㈣
删号
char(10)
课程容
char(10)
圍
隈程学时
diar^iC)
课程学分
charf10)
圈
char(lO)
屈
期末咸塔
dnar(10)
圈
综合咸籀
dnairflO)
备井
charfSO)
『II
琨1
2
^33
表与表之间的关系如下图所示:
喋台成培
敎师课程表
管理信息表给
教师信息表*Q勒币工号姓容
性别
身份证电话
W
学位
薈主
学生信息表水
性别出生日期
电话
帚主
E-R关系图
开通选课
新增
课程信息表帯
成绩信息表*
ssQ——OC
新增
第四章系统功能
1.学生模块
此模块为学生操作模块。
学生可以通过此模块实现查看个人信息、修改密码、查看课程信息、才查看成绩信息、网上选课(在管理员开通选课前提下)诸多功能。
2.教职工模块
此模块为教职工操作模块。
教职工可以通过此模块实现查看个人信息、修改密码、查看课程信息、输入学生平时成绩和期末成绩诸多功能。
3.系统管理员模块
此模块为系统管理员操作模块。
系统管理员可以通过此模块实现查看管理员信息、修改密码、查看、新增、修改、删除学生信息、查看、新增、删除、修改教职工信息、查看、新增、删除、修改课程信息、开通、关闭选课诸多功能。
第五章系统实现
1.主界面
欢迎迸入学籍管理子索统
2.登陆界面
戒码
船通码rtaf
壬茶営,複一养I
登录退出
3•学生界面
(1)查看个人信息
(2)修改密码
(3)成绩查询
(4)课程查询
工比
抚止耳1
|齐
|刃尽U和d
bni;■
1義〕币电齋]豁洼
123
阳
2
3311innF
10?
122
125
49;
2
azrning
ioa
125
12B
43
2
2oh-)ioe
102
(5)网上选课
选课提示
选课界面
已卄诵选课
201
课程号
瞇号
fe!
币二号
|剿珮注
iJTit&l'nl
►
英语
101
4
2DIT1005
124
數連痂+
102
2
ZJll.lD.EM
J25
数雕
109
2
AQ
onitu
126
H釋说
I圧
2
3J11.11血
127
視听机
101
S^ln
2
阳
2(jr-.10.05
期名
迅
学対
开果凶间
SHIi-E
►
123
124
埶豐纯L
4S
2
2EJ111D.EK
102
1
•餡
125
慕据岸
40
2
2011,1104
103
諒帀
_
123
126
48
Z
2D11.11.05
10?
旋而
已选提示
-[123
耀程号
谍稈
125
12E
123
英语
成功提示
46
昶
46
46
2
退谨
删除提示
4.教职工界面
(1)个人信息(同学生界面)
(2)修改密码(同学生界面)
(3)课程查询(同学生界面)
(4)成绩评定
^iii■■■■■illinimiBII■■■■■■■■■■■■■■iH
课稅号回
Jh
上122
124
踝遅宁时|谨程宁曲|即时咸幾同丰驕婕|餘合咸孃
492」射
245
37
50
学号
平时成绩輸入
期末成绩输入
提交
5.管理员界面
194044
「選迥奎鄧
学号
炷名
性别出生曰朝
专业
电话
备注
±|
1Z3
小明
卑
1JW011
计科
112
124
小华
里
1991.10
自动化
110
125
小宝
舅
199Q10
电气
136
199205
电弓
学生信息修改
修複倍盘
(5)教师信息查询
匸按工号查询g按姓名查询査询
孰帀工号
姓名性别
身份证
电话
住址
职称
字位
卜
101
唐走师胃
430421
4354
434
博士
102
裘老师直
430422
博士
103
蒋老师禺
430423
博士
104
彭老师衣
430424
博士
105
曹老师女
430425
博士
(6)
教师信息修改
学号
课程号
课程名
学时
学分1
I开课时闾1
剿帀工号
敎呻名称
隸亠
►
123
124
埶理绒计
48
2
2O11.1QO5
102
醍老师
123
125
48
2
2011/11.00
10G
蒔超帀
豆
124
125
数擴库
48
2
2011.11.04
103
落老师
123
126
4fi
2
2011.11.05
1®
裘老帰
124
124
埶理统计
48
2
2Q111UM
102
122
123
莢语
48
4
2011.10.05
101
(8)课程信息修改
第六章源程序附录
unitUnitl;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls,StdCtrls,Unit2,jpeg,DB,ADODB;
type
TForm1=class(TForm)
Button1:
TButton;
Button2:
TButton;
Panel1:
TPanel;
Image1:
TImage;
Label1:
TLabel;
Label2:
TLabel;
ADOConnection1:
TADOConnection;
Timer1:
TTimer;procedureButton1Click(Sender:
TObject);procedureButton2Click(Sender:
TObject);procedureTimer1Timer(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);begin
Form2.ManualDock(Form1.Panel1,nil,alNone);
Form2.Show;
Panel1.Visible:
=True;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
ifMessageDlg('确认退出整个系统吗?
’,mtConfirmation,[mbYes,mbNo],0)=mrYesthen
beginApplication.Terminate;end;
end;
procedureTForm1.Timer1Timer(Sender:
TObject);begin
Label2.Caption:
=DateTimeToStr(Now);
end;
end.
unitUnit2;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,DB,ADODB,Unit3;
type
TForm2=class(TForm)
Label1:
TLabel;
Label2:
TLabel;
Label3:
TLabel;
ComboBox1:
TComboBox;
Edit1:
TEdit;
Edit2:
TEdit;
Button1:
TButton;
Button2:
TButton;
ADOConnection1:
TADOConnection;
ADOQuery1:
TADOQuery;
Label4:
TLabel;
Button3:
TButton;
Label5:
TLabel;
Edit3:
TEdit;
procedureComboBox1Change(Sender:
TObject);
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureFormCreate(Sender:
TObject);
procedureButton3Click(Sender:
TObject);
procedureFormShow(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form2:
TForm2;
implementation
usesUnit1,Unit8,Unit12;
{$R*.dfm}
procedureTForm2.ComboBox1Change(Sender:
TObject);begin
caseComboBox1.ItemIndexof
0:
Label2.Caption:
='账
号
1:
Label2.Captio门:
='工
号
else
Label2.Caption:
='学
号
end;
end;
procedureTForm2.Button1Click(Sender:
TObject);
begin
ifEdit3.Text=Label4.Captionthen
begin
caseComboBox1.ItemIndexof
0:
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
AD0Query1.SQL.Text:
='select*from管理信息表where账号=“'+Edit1.Text+“'AND密码="'+Edit2.Text+'"AND用户名=“'+ComboBox1.Text+““;
AD0Query1.0pen;
ifAD0Query1.RecordCount=0then
begin
ShowMessage(用户名或密码错误,请重新登录');end
else
begin
Form12.Show;
Form2.Close;
Form1.Panel1.Visible:
=False;
end;
end;
1:
begin
AD0Query1.Close;
AD0Query1.SQL.Clear;
ADOQuery1.SQL.Text:
='select*from管理信息表where账号='"+Edit1.Text+'"and密码='''+Edit2.Text+'''and用户名='''+ComboBox1.Text+'''';
ADOQuery1.Open;
ifADOQuery1.RecordCount=0then
begin
ShowMessage(用户名或密码错误,请重新登录');
end
else
begin
Form8.Show;
Form2.Close;
Form1.Panel1.Visible:
=False;
end;
end;
2:
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:
='select*from管理信息表where账号='''+Edit1.Text+'''and
密码='''+Edit2.Text+'''and用户名='''+ComboBox1.Text+'''';
ADOQuery1.Open;
ifADOQuery1.RecordCount=0then
begin
ShowMessage(用户名或密码错误,请重新登陆');
end
else
begin
Form3.Show;
Form2.Close;
Form1.Panel1.Visible:
=False;
end;
end;
else
ShowMessage(请选择身份');
end;
end
elseShowMessage(验证码错误');
end;
procedureTForm2.Button2Click(Sender:
TObject);
begin
Form2.Close;
Form1.Panel1.Visible:
=False;
end;
procedureTForm2.FormCreate(Sender:
TObject);
begin
Randomize;end;
procedureTForm2.Button3Click(Sender:
TObject);var
i,j:
Integer;
c:
Char;
begin
Label4.Caption:
='';//这个是标签
forj:
=0to3do//随机生成4个a到z的字符串begin
i:
=Random(24);
c:
=chr(ord('a')+i);
Label4.Caption:
=Label4.Caption+c;
end;
begin
Randomize;
end;
end;
procedureTForm2.FormShow(Sender:
TObject);
var
i,j:
Integer;
c:
Char;
begin
Label4.Caption:
='';//这个是标签
forj:
=0to3do//随机生成4个a到z的字符串begin
i:
=Random(24);c:
=chr(ord('a')+i);
Label4.Caption:
=Label4.Caption+c;
end;
end;
end.
unitUnit3;
interfaceuses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls,jpeg,DB,ADODB,DBCtrls;
type
TForm3=class(TForm)
Button1:
TButton;
Button2:
TButton;
Button3:
TButton;
Button4:
TB