




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:教材管理系统2第一章 系统开发概述31.1 建立系统的必要性31.2 可行性研究3第二章 系统分析42.1 业务流程分析4图2.1.1 业务流程图62.2 数据流程分析72.3数据字典7第三章 系统设计133.1 系统功能设计13图3.1.1教材管理系统功能模块设计图143.2 数据结构与数据库设计143.3 代码设计173.4界面设计18第四章 系统实施354.1登录界面的测试364.2 系统维护36第五章 结束语36参考文献36题目:教材管理系统 本系统主要实现对教材信息的管理,主要功能为基本信息的维护功能,教材需求管理功能,采购/入库管理功能以及其他操作功能等。分为管理员登陆和教师
2、登陆两大模块,管理员操作部分主要是教材管理,用户管理,订单管理;教师登陆后的主要操作是教材的查询模块。第一章 系统开发概述1.1 建立系统的必要性教材管理对各个学校而言,都是一项复杂、烦琐的工作, 是高校教务管理中的一个重要环节, 由于大学中专业设置门类多,各专业每期开设课程种类多,其业务不仅涉及出版部门,而且要面对全校各系、部的授课教师,各班级的学生,教材科涉及管理的入出库教材种类非常多,涉及人员广,工作量大,再者是近年来,我国高等教育规模的不断扩大,学校学生人数迅速增加,使教材管理工作更加繁重不堪。因此,需要一个自动化的工具进行统筹管理,才能及时,准确的反应教材征订状态。1.2 可行性研究
3、 1.2.1技术上可行性分析visual basic 6.0是一种可视化的、面对对象和事件驱动方式的结构化高级程序设计,可用于开发windows环境下的应用程序。它简单易学、效率高,且功能强大,可以与windows的专业开发工具sdk相媲美。在visual basic 6.0环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用windows内部的应用程序接口(api)函数,以及动态链接库(dll)、动态数据交换(dde)、对象的链接与嵌入(ole)、开放式数据访问(odbc)等技术,可以高效、快速地开发出windows环境下功能强大、图形界面丰富的应用软件系统。 access数据库是
4、个人、部门及企业管理数据的最易操作的新一代数据库。它兼容传统的数据库,同时进一步增强了web支持,具有web特性的信息共享特性。可以非常方便地跨平台作业和共享数据。它不仅有一个数据库管理系统所应具有的功能而且还是一个面向对象的采用时间驱动机制的新型关系数据库管理系统。它有丰富的信息管理分析工具,可以通过odbc与其他数据库相连, 实现数据交换与共享数据库是进行信息管理的基础。access有两种使用方式:作为创建个人或部门数据库的独立应用程序,或作为更强健、更具扩展性的后端数据库的接口客户端。不论选用了何种后端数据源,最终用户都将得到使用流行的桌面数据库客户端时易于使用的好处。1.2.2经济上的
5、可行性在教材管理系统中,实现对教材的信息的管理,提高工作效率、减少人为差错提供良好的管理平台。 极低成本的数据处理、信息查询、信息录入等,可实现教材需求信息、订单管理、教材出入库管理、库存管理等功能。从目前校园网和教材管理系统的推广和运行情况来看,本系统不需增加过多的硬件投入和应用方面的培训,因此,其经济成本是很低的。1.2.3管理上可行性分析 经过领导同意可以进行开发实施。第二章 系统分析2.1 业务流程分析 通过业务流程分析对对教材管理系统作进一步的分析,教研室教师书面提出需要使用的教材名,上交后由系领导审核,审核通过后,由教学秘书统计需要数量,然后提交给教材科。教材科将教材订单进行处理,
6、以确定本学期的教材数量(除库存外的订单),同时对教材的基本信息进行完善处理,以保证教研室提出新的教材需求在教材基本信息中存在。教材科根据库存的情况发放教材,若库存有货,教材管理员打印领取教材通知单给教研室,通知领取教材。若库存无货,打印订书单交给采购员,采购员根据订货单制定补货单并将其交给相应的供应商。供应商将提货通知单发给采购员。采购员进行采购并将教材入库并打印入库单,交给教材科(见图2.1.1) 教研室领教材通知单教材需求单学生领导领教材通知单批准教材需求单领书通知单教学秘书教材需求单教材科入库单订书单采购员提货通知单补货单供书商图2.1.1 业务流程图p1教材科2.2 数据流程分析 出库
7、单教材出入库管理 入库单图2.2.1教材管理子系统的顶层流程图入库单教材需求单3教材需求单2已批准教材需求单出库单入库单订书单教材需求单1p1.4教材出库处理库存台帐f1p1.2判定教材处理方式教材科教研室 库存台账f1教材采购处理p1.3制定学生教材使用计划p1.1图2.2.2教材管理子系统的第二层数据流程图2.3数据字典数据项描述数据项编号: i-book1数据项名:教材编号简述:存储每本教材的信息简要说明:学校教材编码类型及长度:数字型,4位取值范围:00019999 数据项编号:i-book2数据项名:教材名简述:存储每本教材名称的信息简要说明:学校教材名称类型及长度:字符型,320位
8、取值范围: 表2.3.1表2.3.2数据项编号:i-tc1数据项名:教师编号简述:存储教师的信息简要说明:学校教师的编号类型及长度:字符型,3位取值范围:001999表2.3.3数据项编号:i-tc2数据项名:教师姓名简述:存储教师的信息简要说明:学校教师的名称类型及长度:字符型,24位取值范围:表2.3.4数据结构描述数据结构编号:ds001数据结构名:入库单简述: 存储教材入库的表单数据结构组成:教材编号+教材名+数量+入库时间+入库来源+备注 表2.3.5数据结构编号:ds002数据结构名:出库单简述: 存储教材出库信息的表单数据结构组成:教材编号+教材名+数量+出库时间+出库去向+备注
9、 表2.3.6数据结构编号:ds003数据结构名:教材需求单1简述: 学生上课需要的教材种类数据结构组成:教材编号+教材名+时间+教师姓名+备注 表2.3.7数据结构编号:ds004数据结构名:已批准教材需求单简述:领导批准的教材需求表单数据结构组成:教材编号+教材名+时间+教师姓名+备注 表2.3.8数据结构编号:ds005数据结构名:订书单简述:教材科制定的教材采购表单数据结构组成:教材编号+教材名+时间 +备注 表2.3.9数据流描述数据流编号:d01数据流名称: 教材需求单1简述: 学生上课需要的教材种类数据流来源:教研室数据流去向:制定教材使用的计划数据流组成:教材编号+教材名+作者
10、+出版社+时间数据流量:16份/年表2.3.10数据流编号:d02数据流名称: 已批准教材需求单简述: 领导批准的教材需求表单数据流来源:制定教材使用的计划数据流去向:教材科 数据流组成:教材编号+教材名+作者+出版社+时间+教师名称数据流量:16份/年表2.3.11数据流编号:d03数据流名称:教材需求单2简述: 教材科确定的教材需求数量数据流来源:教材科数据流去向:判定教材处理的方式数据流组成:教材编号+数量+教材名+作者+出版社+时间+教师名称数据流量:16份/年表2.3.12数据流编号:d04数据流名称: 订书单简述: 教材科制定的教材采购表单数据流来源:判定教材处理的方式数据流去向:
11、教材采购处理数据流组成:教材编号+教材名+作者+出版社+时间+数量数据流量:16份/年数据流编号:d05数据流名称: 教材需求单3简述: 教材科确定的发放教材的数量数据流来源:判定教材处理的方式数据流去向:教材出库处理数据流组成:教材编号+教材名+作者+出版社+时间+数量+教师姓名数据流量:16份/年表2.3.13数据流编号:d06数据流名称:出库单简述: 存储教材出库信息的表单数据流来源:教材出库处理数据流去向:库存台帐数据流组成:教材编号+教材名+作者+出版社+时间+数量+教师姓名数据流量:16份/年表2.3.14数据流编号:d07数据流名称: 入库单简述:教材入库信息的表单数据流来源:教
12、材采购处理数据流去向:库存台帐数据流组成:教材编号+教材名+作者+出版社+时间+数量数据流量:16份/年表2.3.15表2.3.16处理逻辑描述处理逻辑名:制定学生教材计划加工编号:p1.1简要描述:根据教师上课内容,确定学生需要使用的教材种类输入数据流: 教研室制定的的教学计划输出数据流: 教材需求单表2.3.17处理逻辑名:判定教材处理方式加工编号:p1.2简要描述:教材科统计各种教材使用数量,确定需要购买的教材数量 输入数据流:教材需求单输出数据流: 订书单+教材需求单 表2.3.18加工名:教材采购处理加工编号:p1.3简要描述:根据订书单,采购员进行教材采购 输入数据流:订书单输出数
13、据流: 订书单加工名: 教材出库处理加工编号:p1.4简要描述:根据教材需求单进行教材发放处理 输入数据流: 教材需求单输出数据流: 出库单表2.3.19表2.3.20 数据存储描述数据存储编号:f1数据存储名:库存台帐 简述:记录教材种类,数量,单价信息数据存储组成:教材编号+教材名+数量+作者+出版社。关键字:教材编号相关联的处理:p1.3 ,p1.4, 表2.3.21外部实体描述外部实体编号:w1外部实体名:教材科简述: 对于学校的教材订购发放进行管理输入数据流:已批准教材需求单输出数据流:教材需求单2表2.3.22外部实体编号:w2外部实体名:教研室简述: 确定教材需求种类的部门输入数
14、据流: 领教材通知单输出数据流:教材需求单表2.3.23第三章 系统设计3.1 系统功能设计 本系统是以教材管理业务为原型设计开发的,教材科的日常业务大体上有如下几项: 1 .教材预订。教材种类的预订工作基本上是由老师或者管理员完成。教材科将教材征订通知下发到各系(轮流传阅),各系从中选订所开课程的教材,填写预订单,经系、部汇总报教材科。教材科编制填写正式订单寄发到各出版社。2 . 教材发放。按预订数量发放专业和年级用书。通常是以班级为单位领进行领书。3 . 查询。这项工作包括四项内容,其一是预订查询及时了解各系教材的订购情况;再就是入库查询及时掌握入库情况;第三是库存查询情况:打印与报表,主
15、要用于订书、购书的打印。4 .系统管理主要包括用户、密码的更改和用户的添加。教材管理系统管理员管理教师管理教材库存查询教材征订用户管理教材管理修改用户信息添加用户订单管理库存信息管理入库管理出库管理图3.1.1教材管理系统功能模块设计图3.2 数据结构与数据库设计1.e-r模型设计教材编号 教材教材名称教材出版社教材作者 图3.2.1 教材实体e-r图教材编号仓库教材入库数量入库时间入库单价图3.2.2仓库实体e-r图班级班级编号班级名称图3.2.3班级实体e-r图供应商代号供应商 名称 地址 电话图3.2.4供应商实体e-r图教材仓库供应商班级入库1nnmnm出库订货图3.2.4整体e-r图
16、2数据库设计系统数据库中有用户管理表,教材出库表,教材入库表,教材征订表,教材库存表3.2.1.用户管理表:字段名称数据类型姓名文本密码文本权限文本3.2.2.教材出库表:字段名称数据类型教材名称文本系别文本班级文本单价数字数量数字总金额数字出库时间日期 3.2.3.教材征订表:字段名称数据类型教材名文本作者文本出版社文本出版日期日期数量数字征订时间日期征订人文本3.2.4.教材入库表字段名称数据类型教材名文本作者文本出版社文本出版日期日期书类别文本单价数量数量数量总金额数量经手人文本入库日期日期3.2.5.教材库存表字段名称数据类型教材名文本作者文本出版社文本出版日期日期单价日期书类别文本库
17、存数量数量3.3 代码设计设计问题是一个科学管理的问题。设计出一个好的代码方案对于系统的开发工作是一件极为有利的事情。它可以使很多机器处理(如某些统计、校对查询等)变得十分方便,另外还把一些现阶段计算机很难处理的工作变成很简单的处理。 代码就是以数或字符来代表各种客观实体。在现实世界中有很多东西如果我们不加标识是无法区分的,这时机器处理就十分困难。所以能否将原来不能确定的东西,唯一地加以标识是编制代码的首要任务。以教材编号为例。在教材管理中不难发现,有的书籍虽然名字一样,但是出版日期,著作人不一样,为了能够区分开这样的书籍而编制教材编码(教材号:001001 001002 001003 001
18、004 001005)。唯一化虽是代码设计的首要任务。但如果我们仅仅为了唯一化来编制代码,那么代码编出来后可能是杂乱无章的,使人无法辨认,而且使用起来也不方便。例如,在管理系统中关于计算机类的书籍以“01”打头,其中“01001”表示计算机硬件书籍,01002表示计算机软件书籍,01003”表示计算机信息管理书籍等。这样在查找或统计某一类专业书籍时就十分方便了。(专业代码:01001 01002 01003 02002 03003 04004)为了保持系统的合理性,在代码设置时也要注意系统化规范。例如,001表示书记所在的地区里面拥有的书籍编号从001001到001070当有新书加入时则会自动
19、生成书号001071。(区号:001 002 003 004 ) 如教材代码设计=教材编号+教材类别+出版社+任课教师 =0001(数理统计)001(数学类) 001(机械工业出版社) 001(胡雷) 3.4界面设计 登陆界面包括姓名,权限和密码,与数据库用户管理表相连 如图3.1 图 3.1 代码设计; private sub command1_click() adodc1.recordsource = select * from 用户管理 where user= & trim(datacombo1.text) & adodc1.refresh dim cn$ if trim(datacom
20、bo1.text) = then msgbox 用户名不能为空!, , 错误 datacombo1.setfocus exit sub end ifif adodc1.recordset.eof then msgbox 用户不存在!, , 错误 datacombo1.text = text3.text = adodc1.recordsource = select * from 用户管理 adodc1.refresh datacombo1.refresh datacombo1.setfocus else cn = trim(datacombo1.text) if adodc1.recordset
21、.fields(qx) rtrim(combo1.text) then msgbox 权限错误, , 错误 combo1.setfocus adodc1.recordsource = select * from 用户管理 adodc1.refresh datacombo1.refresh datacombo1.text = cn else if trim(text3.text) trim(adodc1.recordset.fields(password) then if mi = 2 then msgbox 密码输入错误三次 + chr(13) + chr(10) + 自动关闭本系统, , 学
22、生教材管理软件 unload me else msgbox 密码错误!, , 错误 mi = mi + 1 adodc1.recordsource = select * from 用户管理 adodc1.refresh datacombo1.text = cn text3.text = text3.setfocus end if else if trim(combo1.text) = 管理员 then unload me 主窗体.show else unload me 主窗体.show with 主窗体 .mnuyhgl.enabled = false .mnujcrk.enabled = f
23、alse .mnujcchk.enabled = false end with end if end if end if end ifend subprivate sub command2_click()unload meend subprivate sub form_activate()mi = 0end subprivate sub form_load()mi = 0end subprivate sub form_load()end sub 主界面在登陆界面输入姓名,权限和密码正确后,进入主界面 ,包括系统管理和教材管理两大模块,其中系统管理有用户管理和退出;教材管理有教材征订,教材入库,
24、教材出库和教材库存查询。 如 图3.2 图3.2教师界面a 教材征订 :选择主界面教材征订进入教材征订界面, 征订时输入教材名,作者,出版社,出版时间,征订时间,征订人还有数量。如图3.3 图3.3代码设计: private sub command1_click() dim i%, j%, m% select case command1.caption case 继续 command1.caption = 征订 command5.enabled = false command6.enabled = false command7.enabled = false command2.enabled
25、= true combo1.setfocus case 征订 i = len(trim(text1.text) if combo1.text = or combo4.text = or trim(text1.text) = then msgbox 信息不完整!, vbokonly + vbinformation: combo1.setfocus elseif trim(text1.text) then m = 1 for j = 1 to i if asc(mid$(trim(text1.text), j, 1) 57 then msgbox 请正确输入数据!, vbokonly + vbin
26、formation text1.text = text1.setfocus m = 0 exit for end if next j if m then adodc1.recordsource = select * from 教材征订表 where 教材名= & trim(combo1.text) & and 作者= & trim(combo2.text) & and 出版社= & trim(combo3.text) & and 出版日期 =# & trim(str$(dtpicker2.value) & # adodc1.refresh if adodc1.recordset.recordc
27、ount = 0 then adodc1.recordsource = select * from 教材征订表 adodc1.refresh adodc1.recordset.addnew adodc1.recordset.fields(0) = trim(combo1.text) adodc1.recordset.fields(1) = trim(combo2.text) adodc1.recordset.fields(2) = trim(combo3.text) adodc1.recordset.fields(3) = dtpicker2.value adodc1.recordset.fi
28、elds(4) = trim(text1.text) adodc1.recordset.fields(5) = dtpicker1.value adodc1.recordset.fields(6) = trim(combo4.text) adodc1.recordset.update adodc1.refresh else adodc1.recordset.fields(4) = adodc1.recordset.fields(4) + val(text1.text) adodc1.recordset.update adodc1.refresh end if adodc1.recordsour
29、ce = select * from 教材征订表 adodc1.refresh text1.text = combo1 = combo2 = combo3 = end if end if end selectend subprivate sub command2_click() zd = 1 教材征订查询.showend subprivate sub command3_click() unload meend subprivate sub command5_click() dim i%, j%, m% i = len(trim(text1.text) if combo1.text = or c
30、ombo4.text = or trim(text1.text) = then msgbox 信息不完整,请重新输入!, vbokonly + vbinformation: combo1.setfocus else m = 1 for j = 1 to i if asc(mid$(trim(text1.text), j, 1) 57 then msgbox 请正确输入数据!, vbokonly + vbinformation text1.text = text1.setfocus m = 0 exit for end if next j if m then adodc1.recordset.f
31、ields(0) = trim(combo1.text) adodc1.recordset.fields(1) = trim(combo2.text) adodc1.recordset.fields(2) = trim(combo3.text) adodc1.recordset.fields(3) = dtpicker2.value adodc1.recordset.fields(4) = trim(text1.text) adodc1.recordset.fields(5) = dtpicker1.value adodc1.recordset.fields(6) = trim(combo4.
32、text) end if command1.caption = 征订 command5.enabled = false command6.enabled = false command7.enabled = false command2.enabled = true combo1.setfocus end ifend subprivate sub command6_click() on error resume next command1.caption = 继续 command5.enabled = true command6.enabled = true command7.enabled
33、= true command2.enabled = false combo1.text = adodc1.recordset.fields(0) combo2.text = adodc1.recordset.fields(1) combo3.text = adodc1.recordset.fields(2) dtpicker2.value = adodc1.recordset.fields(3) text1.text = adodc1.recordset.fields(4) dtpicker1.value = adodc1.recordset.fields(5) combo4.text = a
34、dodc1.recordset.fields(6) command1.caption = 征订 command5.enabled = false command6.enabled = false command7.enabled = false command2.enabled = true combo1.setfocus end subprivate sub command7_click() on error resume next adodc1.recordset.delete adodc1.refresh adodc1.recordsource = select * from 教材征订表
35、 adodc1.refresh command1.caption = 继续 command5.enabled = true command6.enabled = true command7.enabled = true command2.enabled = false combo1.text = adodc1.recordset.fields(0) combo3.text = adodc1.recordset.fields(1) combo2.text = adodc1.recordset.fields(2) dtpicker2.value = adodc1.recordset.fields(
36、3) text1.text = adodc1.recordset.fields(4) dtpicker1.value = adodc1.recordset.fields(5) combo4.text = adodc1.recordset.fields(6)end subprivate sub datagrid1_click() command1.caption = 继续 command5.enabled = true command6.enabled = true command7.enabled = true command2.enabled = falseend subprivate su
37、b datagrid1_rowcolchange(lastrow as variant, byval lastcol as integer) on error resume next if me.cmdadd.enabled = true then combo1.text = trim(adodc1.recordset.fields(0) combo2.text = trim(adodc1.recordset.fields(1) combo3.text = trim(adodc1.recordset.fields(2) dtpicker2.value = trim(adodc1.records
38、et.fields(3) text1.text = trim(adodc1.recordset.fields(4) dtpicker1.value = trim(adodc1.recordset.fields(5) combo4.text = adodc1.recordset.fields(6) txtydjl.text = trim(adodc1.recordset.fields(7) end ifend subprivate sub form_load() on error resume next dim i as integer, bz as integer, cn as integer
39、 dim i1 as integer, bz1 as integer, cn1 as integer dim i2 as integer, bz2 as integer, cn2 as integer dim i3 as integer, bz3 as integer, cn3 as integer combo1.clear combo2.clear combo3.clear do while not adodc2.recordset.eof bz = 0 for i = 0 to combo1.listcount if adodc2.recordset.fields(教材名) = combo
40、1.list(i) then bz = 1 next if bz = 0 then combo1.additem trim(adodc2.recordset.fields(教材名) bz = 0 for i = 0 to combo1.listcount if adodc2.recordset.fields(作者) = combo2.list(i) then bz = 1 next if bz = 0 then combo2.additem adodc2.recordset.fields(作者) bz = 0 for i = 0 to combo1.listcount if adodc2.re
41、cordset.fields(出版社) = combo3.list(i) then bz = 1 next if bz = 0 then combo3.additem adodc2.recordset.fields(出版社) adodc2.recordset.movenext loop do while not adodc1.recordset.eof adodc2.recordset.movefirst cn = adodc2.recordset.recordcount bz = 0 for i = 1 to cn if trim(adodc1.recordset.fields(教材名) =
42、 trim(adodc2.recordset.fields(教材名) then bz = 1 adodc2.recordset.movenext next i if bz = 0 then bz = 0 for i = 0 to combo1.listcount if adodc1.recordset.fields(教材名) = combo1.list(i) then bz = 1 next if bz = 0 then combo1.additem trim(adodc1.recordset.fields(教材名) end if adodc2.recordset.movefirst cn1 = adodc2.recordset.recordcount bz1 = 0 for i1 = 1 to cn1 if trim(adodc1.recordset.fields(作者) = trim(adodc2.recordset.fields(作者) then bz1 = 1 adodc2.recordset.movenext next i1 if bz = 0 then bz = 0 for i = 0 t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市中考物理模拟试卷(含解析)
- 铁道机车专业教学湖南铁道左继红07课件
- 网红代言承包协议
- 《春季养生蜂蜜制品》课件
- 四组织结构的演变趋势一扁平化课件
- 铁路班组管理S班组效力的提升课件
- 铁路集装箱运输设备认知单元铁路集装箱装卸搬运机械课件
- 铁路客运站售票岗位作业91课件
- 《GB 14891.8-1997辐照豆类、谷类及其制品卫生标准》(2025版)深度解析
- 中国书画美术课件
- 通信工程勘察设计管理办法
- 地理高考万能答题模板
- 第四章-铣削工艺与装备
- 分布式光伏工程施工标准
- 【素养目标】人教版数学八年级下册19.1.2.2 函数的表示方法教案
- 绿色建筑工程监理实施细则
- 人教版地理八年级下册《第二节 干旱的宝地──塔里木盆地》说课稿1
- (完整文本版)日文履历书(文本テンプレート)
- 湖南省常德市2023-2024学年八年级下学期期末考试历史试题(无答案)
- 挖掘铲运和桩工机械司机(技师)考试复习题库(含答案)
- 古诗词诵读《客至》《宾至》联读课件统编版高中语文选择性必修下册
评论
0/150
提交评论