教材管理系统数据库课程设计报告.docx
《教材管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《教材管理系统数据库课程设计报告.docx(45页珍藏版)》请在冰豆网上搜索。
教材管理系统数据库课程设计报告
计算机与信息工程学院
课程设计报告
课程名称:
数据库应用课程设计
专业:
信息管理与信息系统
班级:
学号:
姓名:
题目:
教材管理系统
指导教师:
2012年1月
计算机与信息工程学院
班级
学号
姓名
xxx
指导老师
职称
时间
2012年1月3日~2012年1月7日
题目
数据库应用课程设计
目的
和
要求
数据库课程设计是计算机技术专业重要的实践课程之一,是在掌握程序设计语言的基础上,学习《数据库原理》课程后的一次综合实践练习。
通过本课程设计,将在课堂上了解和掌握的数据库原理以及设计阶段的方法与技术,直接运用到实际系统的开发工作中
课程设计的文档要求按照模版完成,语言简洁、通顺,开发的系统功能符合需求规格,运行准确、稳定。
课程设计主要任务
包括
研发工具
系统环境
设计任务及其实现技术
本课程设计由以个人为单位选定命题,完成项目的需求分析、设计、开发、测试等任务,并产生各个阶段的文档。
需求分析和系统设计:
根据命题要求完成系统的需求分析,应用结构化或面向对象需求分析方法,并完成系统设计,并提出相应的测试方案。
开发系统和测试调试:
主要是系统代码的编写,使用的工具语言由各小组根据系统需求分析和设计来决定。
测试工作包括模块测试、集成测试和系统测试,调试完成的系统要符合需求规格说明书。
文档撰写:
每一个学生提交自己任务的课程设计报告(内含需求、结构设计,模块设计,数据库设计、测试等)。
描述个人在各阶段完成的工作、解决的关键问题,以及总结体会。
例如:
1、基于web的“数据库原理”课程教学系统
给学生和教师提供一个有助于教学的讨论和交流的平台。
主要组成部分:
(1)课件发布和管理;
(2)课程信息发布和管理;(3)成绩管理和统计,包括考试及平时成绩;(4)学生交流平台:
课程讨论论坛。
2、通用试题库系统
系统由题库管理、试卷生成、试卷打印及统计分析等子系统组成。
参考类似系统,采用高效的组卷技术,能以交互方式方便灵活地生成不同难度的试卷及题解,适用于多种层次和水平的考试。
主要功能:
(1)组卷方式:
全自动成卷、半自动成卷、人工成卷;
(2)题库管理:
具有修改、插入、增加、替换、删除及更新题库等功能;(3)打印输出:
以实用格式、紧凑格式等输出试卷,可对试卷进行人工编辑修改;(4)试题录入:
要求简洁、快速、方便并具有自动查错功能。
成绩
指导教师(签名):
2012年1月7日
文件编号:
1012100120
《教材管理系统》课程设计报告
文件状态:
[]草稿
[√]正式发布
[]正在修改
文件标识:
ZJGSU-InfoCollege-DBApp
当前版本:
6.6
作者:
完成日期:
2012-01-06
浙江工商大学计算机与信息工程学院
目录
1文档介绍4
1.1文档目的4
1.2文档范围4
1.3读者对象4
1.4参考文献4
1.5术语与缩写解释5
2系统环境说明5
3数据库的命名规则5
4系统需求分析6
4.1系统功能分析6
4.2系统功能模块设计6
5、教材管理E-R图及关系图7
6、逻辑结构设计8
7、数据库物理设计8
7.1表汇总8
7.2表A9
7.3表B9
7.4表C10
7.5表D10
7.6表E10
7.7表F11
8数据保护设计11
8.1防止用户直接操作数据库的方法11
8.2用户帐号密码的加密方法11
8.3角色与权限12
9实施与优化12
10运行管理与维护说明47
1文档介绍
1.1文档目的
目前浙江工商大学是以班级为单位,每学期统一向学生发放教材,然后收取书款。
现在在大部分学校还是手工操作,效率很低,而且不能及时了解教材库存和领取的具体情况。
同时由于不可避免的人为因素,可能造成教材收费出错等情况。
随着当今教育制度的改革,办事效率的提高成了亟待解决的事,而高校教材管理是高校教学管理工作中的一项重要任务,教材管理水平和工作效率的高低是反映高校教学和科研管理水平的重要标志,因此,建立一套与课程相配套的教材管理模式和管理系统具有十分重要的意义和实际应用的迫切性,而且现有的条件、管理理念和技术水平已使之成为可能。
开发该教材管理系统是为了更好地管理学校的各类教材,便于教材管理人员订书、领书、查询教材资料及其库存情况。
使教材信息管理工作系统化、规范化、自动化,从而达到提高教材管理效率的目的。
1.2文档范围
首先该文档的作用是帮助学生和教师订教材,通过该系统,管理员能比较方便和快速的知道所订之书以及相应的收费情况。
而且该系统还可查看库存量,班级学院订书情况等,使用阶段主要是在开学期间,学期始末有订书退书缴费等工作也可以使用。
1.3读者对象
该文档的对象主要有管理员、学生、教师等。
1.4参考文献
(1)宁正元,《Delphi程序设计与应用教程》,中国水利水电出版社,2005
(2)黄德才,《数据库原理及其应用教程》,科学出版社,2006
(3)韩培友,《数据库技术》,西北工业大学出版社,2008
(4)姜代红,《数据库原理与应用》,机械工业出版社,2008
1.5术语与缩写解释
缩写、术语
解释
DDE
动态数据交换,DynamicDataExchange
OLE
对象的联接和嵌入,ObjectLinkingandEmbedding
OOL
面向对象程序语言,Object-OrientedLanguage
MIS
管理信息系统,ManagementInformationSystem
ODBC
开发数据库互连,OpenDataBaseConnectivity
ISBN
国际标准书号,InternationalStandardBookNumber
2系统环境说明
Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。
它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语(Object-OrientedLanguage),当今世界上最快的编辑器和最为领先的数据库技术。
因此,使用Delphi作为开发应用软件,无疑会大大地提高编程效率,是管理信息系统(MIS,ManagementInformationSystem)的重要开发工具。
同时,Access支持ODBC(开发数据库互连,OpenDataBaseConnectivity),利用Access强大的DDE(动态数据交换DynamicDataExchange)和OLE(对象的联接和嵌入ObjectLinkingandEmbedding)特性,这使得利用Access建立的数据库为教材管理系统所应具有的功能提供了强有力的保障。
3数据库的命名规则
(1)表的命名:
以名词和名词短语;
(2)列的命名:
采用有意义的命名,能表达其表示的内容的名词短语;
(3)视图与存储均与表的命名类似。
4系统需求分析
4.1系统功能分析
本系统可以实现一下功能:
系统管理:
操作员信息的增、删、改;
院系信息的增、删、改;
班级信息的增、删、改;
班级信息和学院信息的维护;
书费管理:
交纳书费、退回多余的书费;
教材出入库:
学生领书、教师领书、教材入库;
综合查询:
书费查询、领书查询、教材库存量查询;
打印和报表输出:
输出班级领书信息,书费缴纳和退还信息;
帮助:
关于:
一些本系统的基本信息。
4.2系统功能模块设计
5、概念结构设计
教材管理E—R图
表之间的关系图
6、逻辑结构设计
班级(班级名,入学时间,所在学院,班长,班长手机,班主任,班主任手机,专业,人数)
学院(学院名,负责人,负责人电话)
购买(班级名,学院名,ISBN编号,书费)
操作用户(用户名,密码,管理权限,收费权限,出入库权限,查询权限)
教材(ISBN编号,作者,出版社,出版时间,教材单价,教材相关信息)
7、数据库物理设计
7.1表汇总
表名
功能说明
表A班级表
记录班级名,入学时间,所订教材,书费等
表B操作用户表
记录用户名,密码,操作权限等
表C学院信息表
记录学院名,负责人姓名、电话等
表D教材表
记录教材名,出版社,出版时间等
表E教材入库表
记录经办单位,入库数量、时间,经办人,费用等
表F教材出库表
记录经办单位,出库数量、时间,经办人,费用等
7.2表A
表名
班级表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
班级名称
Char
否
20
入学时间
Datatime
是
8
所在院系
Char
否
16
班长名字
Char
否
8
班长手机
Char
否
11
班主任名字
Char
是
8
班主任手机
Char
是
11
专业
Char
是
20
班级人数
Int
否
1
补充说明
班级名称是主键
7.3表B
表名
操作用户表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
用户名
Char
否
10
密码
Char
否
12
管理权限
Boolean
是
1
收费权限
Boolean
是
1
出入库权限
Boolean
是
1
查询权限
Boolean
是
1
补充说明
用户名是主键
7.4表C
表名
学院信息表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
学院名称
Char
否
10
负责人名字
Char
否
8
负责人电话
Char
否
11
补充说明
学院名称是主键
7.5表D
表名
教材表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
ISBN编号
Char
否
13
教材名称
Char
否
20
作者
Char
否
8
出版社
Char
否
15
出版时间
Datetime
否
8
教材单价
Money
否
4
教材相关信息
Char
是
50
补充说明
ISBN编号是主键
7.6表E
表名
教材入库表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
入库记录编号
Char
否
10
ISBN编号
Char
否
13
入库数量
Integer
是
4
入库时间
Datetime
否
8
备注
Char
是
50
查询权限
Boolean
是
1
补充说明
入库记录编号是主键
7.7表F
表名
教材出库表
列名
数据类型(精度范围)
是否允许空值
约束条件(长度)
出库记录编号
Char
否
10
ISBN编号
Char
否
13
出库数量
Integer
是
4
出库时间
Datetime
否
8
备注
Char
是
50
领书者
Char
否
10
补充说明
出库记录编号是主键
8数据保护设计
8.1防止用户直接操作数据库的方法
该系统用户帐号全部由系统管理员管理,在Access数据库中,对组和用户访问数据库权限的设置工作,只能通过管理员完成。
设置的权限包括:
“打开/运行”,读取设计、修改设计、管理、读取数据,更新数据、插入数据和删除数据用户只能用通过认证的帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库,且用户的操作权限有限,不能任意修改数据库中的关键数据,只能对数据进行读取和输入等常规操作,因能能很好的保护数据库的数据。
8.2用户帐号密码的加密方法
在这个系统中我们使用标准40位密钥加密Access2007数据库中的用户帐号密码:
要加密一个数据,开始时和你进行Access2003加密的过程是很类似的。
首先需要打开MicrosoftAccess,不选数据库,然后使用OpenMoreFiles选项,浏览数据库。
选择了数据库之后,点击Open按钮旁边的向下箭头并选择OpenExclusive。
选择DatabaseTools标签页并选择EncryptwithPassword,输入一个强密码(字母和数字以及特殊字符)并确认。
请将这步的密码记录在其它什么地方。
接下来要改变一个密码:
改变数据库密码总是一个好方法。
8.3角色与权限
角色
可以访问的表与列
操作权限
admincuty
用户列表
增加修改删除
班级信息列表
查询增加删除
班级书费订购信息列表
登记审核修改
can
学院信息
增加修改审核
班级信息
修改查询
班级书费订购信息列表
增加修改查询
9实施与优化
在数据库的设计过程中经常要添加、删除数据库对象,这会使数据库内部留有许多碎片,不能有效地利用磁盘空间,文件会逐渐增大。
这有点象文件系统经过多次的增删操作,会导致文件碎片,浪费磁盘空间,而且读写效率降低。
可以用Access提供的工具来压缩数据库,它将重新安排数据库文件在磁盘中保存的位置,并释放磁盘空间,通常文件的容量会缩小成原来的几分。
以下为程序运行时的部分界面图:
以下为部分源代码:
主界面:
unitmain;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,Menus,Buttons,ToolWin,ComCtrls,ExtCtrls,StdCtrls,DB,ADODB,
jpeg,kcxc;
type
TMainForm=class(TForm)
MainMenu1:
TMainMenu;
N1:
TMenuItem;
N2:
TMenuItem;
N3:
TMenuItem;
N5:
TMenuItem;
N6:
TMenuItem;
N7:
TMenuItem;
N9:
TMenuItem;
N10:
TMenuItem;
N11:
TMenuItem;
N12:
TMenuItem;
N13:
TMenuItem;
N14:
TMenuItem;
N15:
TMenuItem;
N16:
TMenuItem;
N17:
TMenuItem;
N18:
TMenuItem;
N21:
TMenuItem;
ToolBar1:
TToolBar;
Image1:
TImage;
TreeView1:
TTreeView;
H1:
TMenuItem;
N20:
TMenuItem;
Image_jcrk:
TImage;
Image_czygl:
TImage;
Image_lscx:
TImage;
Image_kccx:
TImage;
Image_thsf:
TImage;
Image_xygl:
TImage;
Image_mmxg:
TImage;
Image_jnsf:
TImage;
Image_bjgl:
TImage;
Image_jsls:
TImage;
Image_xsls:
TImage;
Image_tc:
TImage;
N4:
TMenuItem;
N8:
TMenuItem;
N19:
TMenuItem;
N22:
TMenuItem;
N23:
TMenuItem;
procedureN7Click(Sender:
TObject);
procedureFormActivate(Sender:
TObject);
procedureN2Click(Sender:
TObject);
procedureN3Click(Sender:
TObject);
procedureN6Click(Sender:
TObject);
procedureN21Click(Sender:
TObject);
procedureN10Click(Sender:
TObject);
procedureN11Click(Sender:
TObject);
procedureN13Click(Sender:
TObject);
procedureN14Click(Sender:
TObject);
procedureN15Click(Sender:
TObject);
procedureSpeedButton14Click(Sender:
TObject);
//procedureN4Click(Sender:
TObject);
procedureN17Click(Sender:
TObject);
procedureN18Click(Sender:
TObject);
procedureTimer1Timer(Sender:
TObject);
procedureTreeView1Change(Sender:
TObject;Node:
TTreeNode);
procedureN20Click(Sender:
TObject);
procedureImage_czyglClick(Sender:
TObject);
procedureImage_mmxgClick(Sender:
TObject);
procedureImage_bjglClick(Sender:
TObject);
procedureImage_xyglClick(Sender:
TObject);
procedureImage_sfcxClick(Sender:
TObject);
procedureImage_kccxClick(Sender:
TObject);
procedureImage_lscxClick(Sender:
TObject);
procedureImage_jcrkClick(Sender:
TObject);
procedureImage_thsfClick(Sender:
TObject);
procedureImage_jnsfClick(Sender:
TObject);
procedureImage_jslsClick(Sender:
TObject);
procedureImage_xslsClick(Sender:
TObject);
procedureImage_tcClick(Sender:
TObject);
procedureN23Click(Sender:
TObject);
//procedureFormCreate(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
MainForm:
TMainForm;
username:
string;//用户名
qx:
array[1..4]ofboolean;//四个权限
implementation
usescheckuser,operator,passwordchange,classmanage,units,bookfee,returnfee,bookin,studentbook,unitbook,classbookbrower,lingshuchaxun,about,
kcfind;
{$R*.dfm}
procedureTMainForm.N7Click(Sender:
TObject);
begin
ifmessagedlg('确认退出?
',mtconfirmation,[mbyes,mbno],0)=mryes
thenClose
else
end;
procedureTMainForm.FormActivate(Sender:
TObject);
begin
CheckUserForm.ShowModal();
ifusername<>''then
begin
ifqx[1]then
begin
N2.Enabled:
=true;
N6.Enabled:
=true;
N21.Enabled:
=true;
Image_czygl.Enabled:
=true;
Image_mmxg.Enabled:
=true;
Image_bjgl.Enabled:
=true;
Image_xygl.Enabled:
=true;
end
else
begin
N2.Enabled:
=false;
N6.Enabled:
=false;
N21.Enabled:
=false;
Image_czygl.Enabled:
=false;
Image_mmxg.Enabled:
=false;
Image_bjgl.Enabled:
=false;
Image_xygl.Enabled:
=false;
end;
ifqx[2]then
begin
N10.Enabled:
=true;
N11.Enabled:
=true;
Image_jnsf.Enabled:
=true;
Image_thsf.Enabled:
=true;
end
else
begin
N10.Enabled:
=false;
N11.Enabled:
=false;
Image_jnsf.Enabled:
=false;
Image_thsf.Enabled:
=false;
end;
ifqx[3]then
begin
N13.Enabled:
=true;
N14.Enabled:
=true;
N15.Enabled:
=true;
Image_jcrk.Enabled:
=true;
Image_xsls.Enabled:
=true;
Image_jsls.Enabled:
=true;
end
else
begin
N13.Enabled:
=false;
N14.Enabled:
=false;
N15.Enabled:
=false;
Image_jcrk.Enabled:
=false;
Image_xsls.Enabled:
=false;
Image_jsls.Enabled:
=false;
end;
ifqx[4]then
begin
N17.Enabled:
=true;
N18.Enabled:
=true;
//N19.Enabled:
=true;