首页 教材管理系统数据库课程设计报告

教材管理系统数据库课程设计报告

举报
开通vip

教材管理系统数据库课程设计报告教材管理系统数据库课程设计报告 计算机与信息工程学院 课程名称:数据库应用课程设计 专 业:信息管理与信息系统 班 级: 学 号: 姓 名: 题 目: 教材管理系统 指导教师: 2012年1月 计算机与信息工程学院 班级 学号 姓名 xxx 指导老师 职称 时间 2012年1月3日 , 2012年1月7日 题目 数据库应用课程设计 目的 数据库课程设计是计算机技术专业重要的实践课程之一,是在掌握程序设 计语言的基础上,学习《数据库原理》课程后的一次综合实践练习。通过本课 程设计,将在课堂上了解和掌握...

教材管理系统数据库课程设计报告
教材管理系统数据库课程设计报告 计算机与信息工程学院 课程名称:数据库应用课程设计 专 业:信息管理与信息系统 班 级: 学 号: 姓 名: 题 目: 教材管理系统 指导教师: 2012年1月 计算机与信息工程学院 班级 学号 姓名 xxx 指导老师 职称 时间 2012年1月3日 , 2012年1月7日 题目 数据库应用课程设计 目的 数据库课程设计是计算机技术专业重要的实践课程之一,是在掌握程序设 计语言的基础上,学习《数据库原理》课程后的一次综合实践练习。通过本课 程设计,将在课堂上了解和掌握的数据库原理以及设计阶段的方法与技术,直和 接运用到实际系统的开发工作中 课程设计的文档要求按照模版完成,语言简洁、通顺,开发的系统功能符 合需求规格,运行准确、稳定。 要求 本课程设计由以个人为单位选定命题,完成项目的需求分析、设计、开发、 测试等任务,并产生各个阶段的文档。 课程 需求分析和系统设计:根据命题要求完成系统的需求分析,应用结构化或设计 面向对象需求分析方法,并完成系统设计,并提出相应的测试 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。 主要 开发系统和测试调试:主要是系统代码的编写,使用的工具语言由各小组任务 根据系统需求分析和设计来决定。测试工作包括模块测试、集成测试和系统测 试,调试完成的系统要符合需求规格说明书。 包括 文档撰写:每一个学生提交自己任务的课程设计报告(内含需求、结构设 计,模块设计,数据库设计、测试等)。描述个人在各阶段完成的工作、解决研发 的关键问题,以及总结体会。 工具 例如:1、基于web的“数据库原理”课程教学系统 给学生和教师提供一个有助于教学的讨论和交流的平台。主要组成部分:系统(1)课件发布和管理;(2)课程信息发布和管理;(3)成绩管理和统计,包环境 括考试及平时成绩;(4)学生交流平台:课程讨论论坛。 2、通用试题库系统 系统由题库管理、试卷生成、试卷打印及统计分析等子系统组成。参考类设计似系统,采用高效的组卷技术,能以交互方式方便灵活地生成不同难度的试卷任务及题解,适用于多种层次和水平的考试。主要功能:(1) 组卷方式: 全自动及其成卷、半自动成卷、人工成卷;(2) 题库管理: 具有修改、插入、增加、替实现换、删除及更新题库等功能;(3) 打印输出: 以实用格式、紧凑格式等输出技术 试卷,可对试卷进行人工编辑修改;(4)试题录入:要求简洁、快速、方便并 具有自动查错功能。 指导教师(签名): 成绩 2012 年 1 月 7 日 1 文件编号: 1012100120 《教材管理系统》课程设计报告 文件状态: 文件标识: ZJGSU-InfoCollege-DBApp [ ] 草稿 当前版本: 6.6 [?] 正式发布 作 者: [ ] 正在修改 完成日期: 2012-01-06 浙江工商大学计算机与信息工程学院 2 目录 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表A ................................................................................................................. 9 7.3表B ................................................................................................................. 9 7.4表C ................................................................................................................10 7.5表D ................................................................................................................10 7.6表E ................................................................................................................10 7.7表F ................................................................................................................ 11 8数据保护设计 ....................................................................................................... 11 8.1防止用户直接操作数据库的方法 ................................................................. 11 8.2用户帐号密码的加密方法 ............................................................................ 11 8.3 角色与权限 ...................................................................................................12 9实施与优化...........................................................................................................12 10运行管理与维护说明 .........................................................................................47 3 1文档介绍 1.1文档目的 目前浙江工商大学是以班级为单位,每学期统一向学生发放教材,然后收取书款。现在在大部分学校还是手工操作,效率很低,而且不能及时了解教材库存和领取的具体情况。同时由于不可避免的人为因素,可能造成教材收费出错等情况。随着当今教育 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 的改革,办事效率的提高成了亟待解决的事,而高校教材管理是高校教学管理工作中的一项重要任务,教材管理水平和工作效率的高低是反映高校教学和科研管理水平的重要标志,因此,建立一套与课程相配套的教材管理模式和管理系统具有十分重要的意义和实际应用的迫切性,而且现有的条件、管理理念和技术水平已使之成为可能。 开发该教材管理系统是为了更好地管理学校的各类教材,便于教材管理人员订书、领书、查询教材资料及其库存情况。使教材信息管理工作系统化、 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化、自动化,从而达到提高教材管理效率的目的。 1.2文档范围 首先该文档的作用是帮助学生和教师订教材,通过该系统,管理员能比较方便和快速的知道所订之书以及相应的收费情况。而且该系统还可查看库存量,班级学院订书情况等,使用阶段主要是在开学期间,学期始末有订书退书缴费等工作也可以使用。 1.3读者对象 该文档的对象主要有管理员、学生、教师等。 1.4参考文献 (1)宁正元,《Delphi程序设计与应用教程》,中国水利水电出版社,2005 (2)黄德才,《数据库原理及其应用教程》,科学出版社,2006 4 (3)韩培友,《数据库技术》,西北工业大学出版社,2008 (4)姜代红,《数据库原理与应用》,机械工业出版社,2008 1.5术语与缩写解释 缩写、术语 解 释 DDE 动态数据交换,Dynamic Data Exchange OLE 对象的联接和嵌入,Object Linking and Embedding OOL 面向对象程序语言,Object-Oriented Language MIS 管理信息系统,Management Information System ODBC 开发数据库互连,Open Data Base Connectivity ISBN 国际 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 书号,International Standard Book Number 2系统环境说明 Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语(Object-Oriented Language),当今世界上最快的编辑器和最为领先的数据库技术。因此,使用Delphi作为开发应用软件,无疑会大大地提高编程效率,是管理信息系统(MIS,Management Information System)的重要开发工具。同时,Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换Dynamic Data Exchange)和OLE(对象的联接和嵌入Object Linking and Embedding)特性,这使得利用Access建立的数据库为教材管理系统所应具有的功能提供了强有力的保障。 3数据库的命名规则 (1)表的命名:以名词和名词短语; (2)列的命名:采用有意义的命名,能表达其表示的内容的名词短语; (3)视图与存储均与表的命名类似。 5 4系统需求分析 4.1系统功能分析 本系统可以实现一下功能: 系统管理:操作员信息的增、删、改; 院系信息的增、删、改; 班级信息的增、删、改; 班级信息和学院信息的维护; 书费管理:交纳书费、退回多余的书费 ; 教材出入库:学生领书、 教师领书 、教材入库 ; 综合查询:书费查询、领书查询、 教材库存量查询 ; 打印和报表输出:输出班级领书信息,书费缴纳和退还信息; 帮助: 关于:一些本系统的基本信息。 4.2系统功能模块设计 教材管理系统 书费管理 出入库管理 系统管理 综合查询 密教学教缴库班学操退书 码材生师纳存级院作回费 修入领领书查管管员书查 库 改 书 书 费 询 理 理 管费 询 理 5、概念结构设计 6 班主任手机 班长手机 专业 入学时间 班长 学院 班级名 班主任 人数 负责人电话 班级 负责人 学院名 ISBN编号 学院 出版时间 出版社 购买 书名 作者 单价 购买 教材 管理 书费 操作用户 管理权限 查询权限 收费权限 出入库权限 用户名 密码 教材管理E—R图 7 表之间的关系图 6、逻辑结构设计 班级(班级名,入学时间,所在学院,班长,班长手机,班主任,班主任手机, 专业,人数) 学院(学院名,负责人,负责人电话) 购买(班级名,学院名,ISBN编号,书费) 操作用户(用户名,密码,管理权限,收费权限,出入库权限,查询权限) 教材(ISBN编号,作者,出版社,出版时间,教材单价,教材相关信息) 7、数据库物理设计 7.1表汇总 表名 功能说明 表A 班级表 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 班级名,入学时间,所订教材,书费等 表B 操作用户表 记录用户名,密码,操作权限等 表C 学院信息表 记录学院名,负责人姓名、电话等 表D 教材表 记录教材名,出版社,出版时间等 8 表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 补充说明 用户名是主键 9 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 10 备注 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位密钥加密Access 2007数据库中的用户 11 帐号密码:要加密一个数据,开始时和你进行Access 2003加密的过程是很类似的。首先需要打开Microsoft Access,不选数据库,然后使用Open More Files选项,浏览数据库。选择了数据库之后,点击Open按钮旁边的向下箭头并选择Open Exclusive。选择Database Tools标签页并选择Encrypt with Password,输入一个强密码(字母和数字以及特殊字符)并确认。请将这步的密码记录在其它什么地方。接下来要改变一个密码:改变数据库密码总是一个好方法。 8.3 角色与权限 角色 可以访问的表与列 操作权限 用户列表 增加 修改 删除 admin cuty 班级信息列表 查询 增加 删除 班级书费订购信息列表 登记 审核 修改 学院信息 增加 修改 审核 can 班级信息 修改 查询 班级书费订购信息列表 增加 修改 查询 9实施与优化 在数据库的设计过程中经常要添加、删除数据库对象,这会使数据库内部留有许多碎片,不能有效地利用磁盘空间,文件会逐渐增大。这有点象文件系统经过多次的增删操作,会导致文件碎片,浪费磁盘空间,而且读写效率降低。可以用 Access 提供的工具来压缩数据库,它将重新安排数据库文件在磁盘中保存的位置,并释放磁盘空间,通常文件的容量会缩小成原来的几分。 以下为程序运行时的部分界面图: 12 13 以下为部分源代码: 主界面: unit main; 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; 14 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; 15 Image_bjgl: TImage; Image_jsls: TImage; Image_xsls: TImage; Image_tc: TImage; N4: TMenuItem; N8: TMenuItem; N19: TMenuItem; N22: TMenuItem; N23: TMenuItem; procedure N7Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N21Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure SpeedButton14Click(Sender: TObject); //procedure N4Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); procedure N20Click(Sender: TObject); procedure Image_czyglClick(Sender: TObject); procedure Image_mmxgClick(Sender: TObject); procedure Image_bjglClick(Sender: TObject); 16 procedure Image_xyglClick(Sender: TObject); procedure Image_sfcxClick(Sender: TObject); procedure Image_kccxClick(Sender: TObject); procedure Image_lscxClick(Sender: TObject); procedure Image_jcrkClick(Sender: TObject); procedure Image_thsfClick(Sender: TObject); procedure Image_jnsfClick(Sender: TObject); procedure Image_jslsClick(Sender: TObject); procedure Image_xslsClick(Sender: TObject); procedure Image_tcClick(Sender: TObject); procedure N23Click(Sender: TObject); //procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; username:string; //用户名 qx:array[1..4] of boolean; //四个权限 implementation uses checkuser,operator,passwordchange,classmanage,units,bookfee,returnfee,bookin,stude ntbook,unitbook,classbookbrower,lingshuchaxun,about, kcfind; {$R *.dfm} procedure TMainForm.N7Click(Sender: TObject); begin 17 if messagedlg('确认退出,',mtconfirmation,[mbyes,mbno],0)=mryes then Close else end; procedure TMainForm.FormActivate(Sender: TObject); begin CheckUserForm.ShowModal(); if username<>'' then begin if qx[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; if qx[2] then 18 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; if qx[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; 19 end; if qx[4] then begin N17.Enabled:=true; N18.Enabled:=true; //N19.Enabled:=true; //Image_sfcx.Enabled:=true; Image_kccx.Enabled:=true; Image_lscx.Enabled:=true; Image_tc.Enabled:=true; end else begin N17.Enabled:=false; N18.Enabled:=false; //N19.Enabled:=false; //Image_sfcx.Enabled:=false; Image_kccx.Enabled:=false; Image_lscx.Enabled:=false; Image_tc.Enabled:=false; end; end else close; end; procedure TMainForm.N2Click(Sender: TObject); begin passwordchangeform.ShowModal(); end; procedure TMainForm.N3Click(Sender: TObject); 20 begin OperatorForm.ShowModal(); end; procedure TMainForm.N6Click(Sender: TObject); begin classform.ShowModal(); end; procedure TMainForm.N21Click(Sender: TObject); begin UnitForm.ShowModal(); end; procedure TMainForm.N10Click(Sender: TObject); begin bookfeeform.ShowModal(); end; procedure TMainForm.N11Click(Sender: TObject); begin ReturnFeeForm.ShowModal(); end; procedure TMainForm.N13Click(Sender: TObject); begin bookinForm.ShowModal(); end; procedure TMainForm.N14Click(Sender: TObject); begin studentbookform.ShowModal(); end; procedure TMainForm.N15Click(Sender: TObject); begin unitbookForm.ShowModal(); 21 end; procedure TMainForm.SpeedButton14Click(Sender: TObject); begin cLOSE; end; procedure TMainForm.N17Click(Sender: TObject); begin ClassBookBrowerForm.ShowModal(); end; procedure TMainForm.N18Click(Sender: TObject); begin kcfindform.ShowModal(); end; procedure TMainForm.Timer1Timer(Sender: TObject); begin StatusBar1.Panels[2].Text :='系统时间: ' + dateTimetoStr(Now); end; procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode); begin Node.ImageIndex:=0; Node.SelectedIndex:=1; if TreeView1.Selected.Text='操作员管理' then OperatorForm.ShowModal(); if TreeView1.Selected.Text='密码修改' then passwordchangeform.ShowModal(); if TreeView1.Selected.Text='班级管理' then classform.ShowModal(); if TreeView1.Selected.Text='学院管理' then UnitForm.ShowModal(); 22 if TreeView1.Selected.Text='缴纳书费' then bookfeeform.ShowModal(); if TreeView1.Selected.Text='退回书费' then ReturnFeeForm.ShowModal(); if TreeView1.Selected.Text='教材入库' then bookinForm.ShowModal(); if TreeView1.Selected.Text='学生领书' then studentbookform.ShowModal(); if TreeView1.Selected.Text='教师领书' then unitbookForm.ShowModal(); if TreeView1.Selected.Text='书费查询' then ClassBookBrowerForm.ShowModal(); if TreeView1.Selected.Text='库存查询' then kcfindform.ShowModal(); if TreeView1.Selected.Text='领书查询' then lingshuchaxunform.ShowModal(); end; procedure TMainForm.N20Click(Sender: TObject); begin info.ShowModal(); end; procedure TMainForm.Image_czyglClick(Sender: TObject); begin OperatorForm.ShowModal(); end; procedure TMainForm.Image_mmxgClick(Sender: TObject); begin passwordchangeform.ShowModal(); end; procedure TMainForm.Image_bjglClick(Sender: TObject); 23 begin classform.ShowModal(); end; procedure TMainForm.Image_xyglClick(Sender: TObject); begin UnitForm.ShowModal(); end; procedure TMainForm.Image_sfcxClick(Sender: TObject); begin ClassBookBrowerForm.ShowModal(); end; procedure TMainForm.Image_kccxClick(Sender: TObject); begin kcfindform.ShowModal(); end; procedure TMainForm.Image_lscxClick(Sender: TObject); begin ClassBookBrowerForm.ShowModal(); end; procedure TMainForm.Image_jcrkClick(Sender: TObject); begin bookinForm.ShowModal(); end; procedure TMainForm.Image_thsfClick(Sender: TObject); begin ReturnFeeForm.ShowModal(); end; procedure TMainForm.Image_jnsfClick(Sender: TObject); begin 24 bookfeeform.ShowModal(); end; procedure TMainForm.Image_jslsClick(Sender: TObject); begin unitbookForm.ShowModal(); end; procedure TMainForm.Image_xslsClick(Sender: TObject); begin studentbookform.ShowModal(); end; procedure TMainForm.Image_tcClick(Sender: TObject); begin if messagedlg('确认退出,',mtconfirmation,[mbyes,mbno],0)=mryes then Close else ; end; procedure TMainForm.N23Click(Sender: TObject); begin if messagedlg('确认退出,',mtconfirmation,[mbyes,mbno],0)=mryes then Close else end; end. 学生缴纳书费 unit bookfee; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DB, ADODB; type 25 TBookFeeForm = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Edit2: TEdit; Label4: TLabel; Edit3: TEdit; Label5: TLabel; Edit4: TEdit; Label6: TLabel; Edit5: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; Edit6: TEdit; Label7: TLabel; procedure BitBtn2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure ComboBox1Click(Sender: TObject); procedure Edit2Exit(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure initiate; end; 26 var BookFeeForm: TBookFeeForm; implementation uses main; {$R *.dfm} procedure TBookFeeForm.BitBtn2Click(Sender: TObject); begin close; end; procedure TBookFeeForm.initiate; begin edit2.text:='0'; edit1.text:='0'; edit1.ReadOnly:=true; edit1.TabStop:=false; edit1.Enabled:=false; edit3.text:='0'; edit3.ReadOnly:=true; edit3.TabStop:=false; edit3.Enabled:=false; edit4.text:=''; edit5.text:='缴纳费用0元'; edit5.ReadOnly:=true; edit5.TabStop:=false; edit5.Enabled:=false; edit6.text:='0'; edit6.ReadOnly:=true; edit6.TabStop:=false; edit6.Enabled:=false; combobox1.text:=''; 27 end; procedure TBookFeeForm.FormActivate(Sender: TObject); var adotable1:TAdoTable; begin AdoTable1:=TAdoTable.Create(self); AdoTable1.Connection:=adoconnection1; adotable1.tablename:='班级表'; adotable1.Active:=true; edit1.Text:=floattostr(adotable1.fieldbyname('书费').ascurrency); initiate; ComboBox1.Items.Clear; while not adotable1.Eof do begin ComboBox1.Items.add(adotable1.fieldbyname('班级名').asstring); adotable1.next; end; combobox1.text:=''; adotable1.Close; end; procedure TBookFeeForm.ComboBox1Click(Sender: TObject); var adodataset1:TAdoDataset; begin adodataset1:=TAdoDataset.Create(self); Adodataset1.Connection:=adoconnection1; adodataset1.CommandType:=cmdtext; adodataset1.CommandText:='select * from 班级表 where 班级名=:classname'; adodataset1.Parameters.Clear; adodataset1.Parameters.AddParameter; 28 adodataset1.Parameters[0].name:='classname'; adodataset1.Parameters[0].DataType:=ftstring; adodataset1.Parameters[0].direction:=pdinput; adodataset1.Parameters[0].Value:=combobox1.text; adodataset1.Active:=true; edit1.text:=floattostr(adodataset1.fieldbyname('书费').ascurrency); edit6.text:=IntToStr(AdoDataset1.FieldByName('班级人数').asinteger); adodataset1.close; end; procedure TBookFeeForm.Edit2Exit(Sender: TObject); begin edit3.text:=floattostr(strtofloat(edit1.text)+strtofloat(Edit2.text)*StrToInt(Edit6.text)); edit5.text:='缴纳书费'+edit2.text+'*'+edit6.text+'元'; end; procedure TBookFeeForm.BitBtn1Click(Sender: TObject); var adotable1:TAdoTable; adoquery1:TAdoQuery; begin adoquery1:=TAdoQuery.Create(self); adoquery1.Connection:=adoconnection1; adoquery1.close; adoquery1.SQL.clear; adoquery1.sql.add('update 班级表 set 书费=:fee where 班级名=:classname'); adoquery1.Parameters.Clear; adoquery1.Parameters.AddParameter; adoquery1.Parameters[0].name:='fee'; adoquery1.Parameters[0].DataType:=ftcurrency; adoquery1.Parameters[0].Direction:=pdinput; adoquery1.Parameters[0].Value:=strtofloat(edit2.text)*strtoint(Edit6.text); 29 adoquery1.Parameters.AddParameter; adoquery1.Parameters[1].name:='classname'; adoquery1.Parameters[1].DataType:=ftstring; adoquery1.Parameters[1].Direction:=pdinput; adoquery1.Parameters[1].Value:=combobox1.text; adoquery1.Prepared; adoquery1.ExecSQL; adoquery1.Close; AdoTable1:=TAdoTable.Create(self); AdoTable1.Connection:=AdoConnection1; AdoTable1.TableName:='学生书费历史库'; adotable1.Active:=true; adotable1.Append; adotable1.edit; adotable1.FieldByName('班级名').asstring:=ComboBox1.text; adotable1.FieldByName('班级人数').asinteger:=StrtoInt(edit6.text); adotable1.fieldByName('上期费用').AsCurrency:=strtofloat(edit1.text); adotable1.fieldByName('本次费用 ').AsCurrency:=strtofloat(edit2.text)*StrToInt(Edit6.text); adotable1.fieldByName('本期费用').AsCurrency:=strtofloat(edit3.text); adotable1.fieldByName('经办人').Asstring:=edit4.text; adotable1.fieldByName('操作员').Asstring:=username; adotable1.fieldByName('最后修改时间').AsDateTime:=Date(); adotable1.fieldByName('说明').Asstring:=edit5.text; adotable1.post; adotable1.close; initiate; combobox1.SetFocus; end; 30 教材入库: unit bookin; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Mask, DB, ADODB; type TbookinForm = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; MaskEdit1: TMaskEdit; Label6: TLabel; ComboBox1: TComboBox; Label7: TLabel; Edit5: TEdit; Label8: TLabel; Edit6: TEdit; Label9: TLabel; Edit7: TEdit; Label10: TLabel; Edit8: TEdit; Label11: TLabel; Edit9: TEdit; 31 Label12: TLabel; Edit10: TEdit; Label13: TLabel; MaskEdit2: TMaskEdit; Label14: TLabel; Edit11: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; Label15: TLabel; MaskEdit3: TMaskEdit; procedure FormActivate(Sender: TObject); procedure Edit4Exit(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Edit7Exit(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure initiate; end; var bookinForm: TbookinForm; new:boolean; implementation uses main; {$R *.dfm} procedure TBookinForm.initiate; 32 begin maskedit3.text:=''; Edit1.text:=''; Edit2.Text:='出版社'; Edit3.text:=''; Edit4.Text:='0'; Edit5.text:=username; Edit6.Text:='0'; edit6.ReadOnly:=true; edit6.TabStop:=false; edit6.Enabled:=false; Edit7.text:='0'; Edit8.Text:='0'; edit8.ReadOnly:=true; edit8.TabStop:=false; edit8.Enabled:=false; Edit9.Text:='无'; Edit10.text:='无'; Edit11.Text:='无'; combobox1.text:=''; maskedit1.text:=''; maskedit2.text:=DateToStr(Date()); maskedit2.ReadOnly:=true; maskedit2.TabStop:=false; maskedit2.Enabled:=false; edit1.SetFocus; end; procedure TbookinForm.FormActivate(Sender: TObject); var AdoTable1:TAdoTable; 33 begin initiate; adotable1:=TAdoTable.Create(self); adotable1.Connection:=adoconnection1; adotable1.TableName:='单位信息表'; adotable1.Open; combobox1.Items.Clear; while not adotable1.Eof do begin combobox1.Items.Add(adotable1.fieldbyname('单位名').asstring); adotable1.Next; end; adotable1.Open; new:=false; end; procedure TbookinForm.Edit4Exit(Sender: TObject); var adodataset1:TAdodataset; begin adodataset1:=TAdoDataset.Create(self); adodataset1.Connection:=adoconnection1; adodataset1.CommandType:=cmdtext; adodataset1.CommandText:='select * from 教材表 where 教材名=:s0 and 出版社=:s1 and 作者=:s2 and 教材单价=:s3'; adodataset1.Parameters.clear; adodataset1.Parameters.AddParameter; adodataset1.Parameters[0].name:='s0'; adodataset1.Parameters[0].DataType:=ftstring; adodataset1.Parameters[0].Direction:=pdinput; 34 adodataset1.Parameters[0].Value:=edit1.text; adodataset1.Parameters.AddParameter; adodataset1.Parameters[1].name:='s1'; adodataset1.Parameters[1].DataType:=ftstring; adodataset1.Parameters[1].Direction:=pdinput; adodataset1.Parameters[1].Value:=edit2.text; adodataset1.Parameters.AddParameter; adodataset1.Parameters[2].name:='s2'; adodataset1.Parameters[2].DataType:=ftstring; adodataset1.Parameters[2].Direction:=pdinput; adodataset1.Parameters[2].Value:=edit3.text; adodataset1.Parameters.AddParameter; adodataset1.Parameters[3].name:='s3'; adodataset1.Parameters[3].DataType:=ftcurrency; adodataset1.Parameters[3].Direction:=pdinput; adodataset1.Parameters[3].Value:=StrToFloat(edit4.text); adodataset1.Active:=true; if adodataset1.Recordset.RecordCount=0 then new:=true else begin maskedit1.text:=DateToStr(AdoDataset1.fieldbyname('出版年月 ').AsDateTime); combobox1.text:=AdoDataset1.fieldbyname('订书单位').AsString; edit5.text:=AdoDataset1.fieldbyname('经办人').AsString; edit6.text:=IntToStr(AdoDataset1.fieldbyname('教材数量').AsInteger); edit9.text:=AdoDataset1.fieldbyname('获奖情况').AsString; edit10.text:=AdoDataset1.fieldbyname('使用说明').AsString; edit11.text:=AdoDataset1.fieldbyname('说明').AsString; end; 35 end; procedure TbookinForm.BitBtn1Click(Sender: TObject); var AdoQuery1:TAdoquery; adotable1:Tadotable; begin if maskedit3.Text=' - - - ' then showmessage('ISBN编号不能为空') else if edit1.Text='' then showmessage('请输入教材名') else if edit4.Text='' then showmessage('请输入教材单价') else if edit3.Text='' then showmessage('请输入作者') else if edit2.Text='' then showmessage('请输入出版社名称') else if edit7.Text='' then showmessage('请输入本期数量') else if MaskEdit1.Text=' - - ' then showmessage('请输入出版年月') else begin adoquery1:=TAdoquery.Create(self); adoquery1.Connection:=adoconnection1; adotable1:=TAdotable.Create(self); adotable1.Connection:=adoconnection1; adotable1.close; adoquery1.close; adoquery1.SQL.clear; if new then 36 begin adotable1.TableName:='教材表'; adotable1.Open; adotable1.AppendRecord([edit1.text,edit2.text,edit3.text,edit9.text,StrToDate(maskedi t1.text),combobox1.text,edit5.text,edit8.text,StrToFloat(edit4.text),edit10.text,Date(),e dit11.text,username,date()]); new:=false; adotable1.Close; end else begin adoquery1.SQL.add('update 教材表 set 教材数量=:s0,最后修改时间 =date(),说明=:s1 where 教材名=:s2 and 出版社=:s3 and 作者=:s4 and 教材单价 =:s5'); adoquery1.Parameters.Clear; adoquery1.Parameters.AddParameter; adoquery1.Parameters[0].name:='s0'; adoquery1.Parameters[0].DataType:=ftInteger; adoquery1.Parameters[0].Direction:=pdinput; adoquery1.Parameters[0].Value:=StrToInt(edit8.text); adoquery1.Parameters.AddParameter; adoquery1.Parameters[1].name:='s1'; adoquery1.Parameters[1].DataType:=ftstring; adoquery1.Parameters[1].Direction:=pdinput; adoquery1.Parameters[1].Value:=edit11.text; adoquery1.Parameters.AddParameter; adoquery1.Parameters[2].name:='s2'; adoquery1.Parameters[2].DataType:=ftstring; adoquery1.Parameters[2].Direction:=pdinput; adoquery1.Parameters[2].Value:=edit1.text; 37 adoquery1.Parameters.AddParameter; adoquery1.Parameters[3].name:='s3'; adoquery1.Parameters[3].DataType:=ftstring; adoquery1.Parameters[3].Direction:=pdinput; adoquery1.Parameters[3].Value:=edit2.text; adoquery1.Parameters.AddParameter; adoquery1.Parameters[4].name:='s4'; adoquery1.Parameters[4].DataType:=ftstring; adoquery1.Parameters[4].Direction:=pdinput; adoquery1.Parameters[4].Value:=edit3.Text; adoquery1.Parameters.AddParameter; adoquery1.Parameters[5].name:='s5'; adoquery1.Parameters[5].DataType:=ftcurrency; adoquery1.Parameters[5].Direction:=pdinput; adoquery1.Parameters[5].Value:=StrToFloat(edit4.text); adoquery1.ExecSQL; adoquery1.Close; end; adotable1.Close; adotable1.TableName:='教材出入库历史表'; adotable1.open; adotable1.AppendRecord([edit1.text,edit2.text,edit9.text,StrToDate(maskedit1.text),c ombobox1.text,edit5.text,StrToInt(edit6.text),StrToInt(edit7.text),StrToInt(Edit8.text), StrToFloat(edit4.text),edit10.text,Date(),edit11.text,username,date()]); adotable1.close; initiate; end end; procedure TbookinForm.Edit7Exit(Sender: TObject); begin 38 edit8.text:=IntTostr(StrToInt(edit6.text)+StrToInt(edit7.text)); end; procedure TbookinForm.BitBtn2Click(Sender: TObject); begin close; end; 学生领书: unit studentbook; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB, Buttons; type TStudentBookForm = class(TForm) Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Edit2: TEdit; Label4: TLabel; Edit3: TEdit; Label5: TLabel; Edit4: TEdit; DBGrid1: TDBGrid; Label6: TLabel; Edit5: TEdit; Label7: TLabel; Edit6: TEdit; Label8: TLabel; 39 Edit7: TEdit; Label9: TLabel; Edit8: TEdit; Label10: TLabel; Edit9: TEdit; Label11: TLabel; Edit10: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; ADODataSet1: TADODataSet; DataSource1: TDataSource; Label12: TLabel; Edit11: TEdit; procedure BitBtn2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure ComboBox1Click(Sender: TObject); procedure Edit4Exit(Sender: TObject); procedure ADODataSet1AfterScroll(DataSet: TDataSet); procedure Edit7Exit(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure initiate; end; var StudentBookForm: TStudentBookForm; implementation 40 uses main; {$R *.dfm} procedure TStudentBookForm.BitBtn2Click(Sender: TObject); begin close; end; procedure TStudentBookForm.initiate; begin combobox1.text:=''; edit1.text:='0'; edit1.Enabled:=false; edit1.TabStop:=false; edit1.ReadOnly:=true; edit2.text:='0'; edit2.Enabled:=false; edit2.TabStop:=false; edit2.ReadOnly:=true; edit3.text:=''; edit3.Enabled:=false; edit3.TabStop:=false; edit3.ReadOnly:=true; edit4.text:=''; edit5.text:=''; edit5.Enabled:=false; edit5.TabStop:=false; edit5.ReadOnly:=true; edit6.text:=''; edit6.Enabled:=false; edit6.TabStop:=false; edit6.ReadOnly:=true; 41 edit7.text:='0'; edit8.text:='0'; edit8.Enabled:=false; edit8.TabStop:=false; edit8.ReadOnly:=true; edit9.text:='0'; edit9.Enabled:=false; edit9.TabStop:=false; edit9.ReadOnly:=true; edit10.text:='default'; edit11.text:='0'; edit11.Enabled:=false; edit11.TabStop:=false; edit11.ReadOnly:=true; combobox1.setfocus; end; procedure TStudentBookForm.FormActivate(Sender: TObject); var adotable1:TAdoTable; begin dbgrid1.DataSource:=datasource1; datasource1.DataSet:=adodataset1; adodataset1.Connection:=adoconnection1; adodataset1.Close; adodataset1.CommandType:=cmdtext; adodataset1.CommandText:='select * from 教材表'; adodataset1.open; dbgrid1.ReadOnly:=true; adotable1:=TAdoTable.Create(self); adotable1.Connection:=adoconnection1; 42 adotable1.TableName:='班级表'; adotable1.open; combobox1.Items.clear; while not adotable1.Eof do begin combobox1.Items.Add(adotable1.fieldbyname('班级名').asstring); adotable1.next; end; adotable1.close; initiate; end; procedure TStudentBookForm.ComboBox1Click(Sender: TObject); var adodataset1:TAdoDataset; begin adodataset1:=TAdoDataset.Create(self); adodataset1.Connection:=adoconnection1; adodataset1.CommandType:=cmdtext; adodataset1.CommandText:='select * from 班级表 where 班级名=:s0'; adodataset1.Parameters.Clear; adodataset1.Parameters.AddParameter; adodataset1.Parameters[0].name:='s0'; adodataset1.Parameters[0].DataType:=ftstring; adodataset1.Parameters[0].Direction:=pdinput; adodataset1.Parameters[0].Value:=combobox1.text; adodataset1.Active:=true; edit1.text:=IntToStr(adodataset1.fieldbyname('班级人数').asinteger); edit2.text:=FloatToStr(adodataset1.fieldbyname('书费').ascurrency); edit3.text:=adodataset1.fieldbyname('所在院系').asstring; adodataset1.Close; 43 end; procedure TStudentBookForm.Edit4Exit(Sender: TObject); begin adodataset1.Close; adodataset1.CommandText:='select * from 教材表 where 教材名 like ''%'+Edit4.Text+'%'''; adodataset1.Open; if adodataset1.Recordset.RecordCount=0 then showmessage('该教材不存在~'); end; procedure TStudentBookForm.ADODataSet1AfterScroll(DataSet: TDataSet); begin edit4.text:=adodataset1.fieldbyname('教材名').asstring; edit5.text:=adodataset1.fieldbyname('出版社').asstring; edit6.text:=adodataset1.fieldbyname('作者').asstring; edit11.text:=Inttostr(adodataset1.fieldbyname('教材数量').asinteger); edit8.text:=floattostr(adodataset1.fieldbyname('教材单价').ascurrency); end; procedure TStudentBookForm.Edit7Exit(Sender: TObject); begin if StrToInt(Edit7.text)>StrToInt(Edit11.text) then begin Application.MessageBox('目前书库该书的数量不够,请检查!','提示信息 ',mb_ok); edit7.SetFocus; end else edit9.text:=FloatToStr(StrToInt(Edit7.Text)*StrToFloat(Edit8.text)); end; procedure TStudentBookForm.BitBtn1Click(Sender: TObject); 44 var adoquery1:TAdoQuery; adotable1:Tadotable; begin if edit4.Text='' then showmessage('教材名不能为空~') else begin adoquery1:=TAdoQuery.Create(self); adoquery1.Connection:=adoconnection1; adoquery1.close; adoquery1.SQL.add('update 班级表 set 书费=:s0 where 班级名=:s1'); adoquery1.Parameters.Clear; adoquery1.Parameters.AddParameter; adoquery1.Parameters[0].name:='s0'; adoquery1.Parameters[0].DataType:=ftcurrency; adoquery1.Parameters[0].Direction:=pdinput; adoquery1.Parameters[0].Value:=strToFloat(Edit2.Text)-StrToFloat(Edit9.text); adoquery1.Parameters.AddParameter; adoquery1.Parameters[1].name:='s1'; adoquery1.Parameters[1].DataType:=ftstring; adoquery1.Parameters[1].Direction:=pdinput; adoquery1.Parameters[1].Value:=combobox1.text; adoquery1.Prepared; adoquery1.ExecSQL; adoquery1.close; adotable1:=TAdoTable.Create(self); adotable1.Connection:=adoconnection1; adotable1.Close; 45 adotable1.TableName:='学生书费历史库'; adotable1.open; adotable1.AppendRecord([combobox1.text,StrToFloat(Edit2.text),StrToFloat(Edit9.te xt),StrToFloat(Edit2.text)-StrToFloat(Edit9.text),Edit10.text,username,date(),'学生领 书'+Edit7.text+'*'+Edit8.text]); adotable1.close; adoquery1.close; adoquery1.SQL.Clear; adoquery1.sql.add('update 教材表 set 教材数量=:s0,最后修改时间=Date() where 教材名=:s1'); adoquery1.Parameters.Clear; adoquery1.Parameters.AddParameter; adoquery1.Parameters[0].name:='s0'; adoquery1.Parameters[0].DataType:=ftinteger; adoquery1.Parameters[0].Direction:=pdinput; adoquery1.Parameters[0].Value:=StrToInt(Edit11.text)-StrToInt(Edit7.text); adoquery1.Parameters.AddParameter; adoquery1.Parameters[1].name:='s1'; adoquery1.Parameters[1].DataType:=ftstring; adoquery1.Parameters[1].Direction:=pdinput; adoquery1.Parameters[1].Value:=edit4.text; adoquery1.ExecSQL; adoquery1.close; adotable1.Close; adotable1.TableName:='教材出入库历史表'; adotable1.open; adotable1.AppendRecord([edit4.text,Edit5.text,adodataset1.FieldByName('获奖 情况').AsString,adodataset1.FieldByName('出版年月 ').Asdatetime,combobox1.text,Edit10.text,StrToInt(Edit11.text),StrToInt(Edit7.text),St rToInt(Edit11.text)-StrToInt(Edit7.text),StrToFloat(Edit8.text),adodataset1.FieldByNa 46 me('使用说明').AsString,date(),'学生领书 '+Edit7.text+'*'+Edit8.text,username,date()]); adotable1.close; initiate; end end; end. 10运行管理与维护说明 (1) 数据库的转储和恢复 DBA(即本系统的管理员)要针对不公的应用要求制定不同的转储计 划,定期对数据库和日志文件进行备份,以保证数据库中数据在遭到 破坏后能及时进行恢复。 (2) 维护数据库的完整性与安全性 DBA应采取有效的措施保护数据不受非法盗用和遭到任何破坏 1)通过权限管理、口令、跟踪及审计来保证数据库的安全。 2)通过行政手段,建立一定规章制度以确保数据库的安全 3)数据库应备有多个副本并保存在不同的安全地点 4)采取有效的措施防止病毒入侵,当出现病毒后应及时查杀 (3) 监测并改善数据库性能 DBA需要随时观察数据库的动态变化,并在数据库出现错误、故障或 产生不适应情况时能够随时采取有效措施保护数据库 (4) 数据库的重组和重构 (5) 因为不断的删除会造成磁盘区内碎块的增多从而影响I/O速度,所以应该 适时的进行数据库的重组和重构 47
本文档为【教材管理系统数据库课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_348501
暂无简介~
格式:doc
大小:214KB
软件:Word
页数:57
分类:生活休闲
上传时间:2017-09-18
浏览量:71