教材管理系统设计.doc_第1页
教材管理系统设计.doc_第2页
教材管理系统设计.doc_第3页
教材管理系统设计.doc_第4页
教材管理系统设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教材管理系统设计1、系统概述本系统应该实现的功能如下:1、系统管理模块:首先是对本系统的操作用户设置权限以及用户基本信息的添加、修改、删除其次是设置有系统初始化,能够在系统出现问题或者有大量错误、冗余数据时进行初始化设置,使系统恢复期初始状态;2、书费管理局模块:财务科根据学生订书情况和教材费用收缴学生订书费用,并记录相应的数据;3、教材出入库模块:教材科根据学生订书数量和教材基本信息想学生发放教材的出库管理和向书商下达供书订单并打印教材报表,便于用户直接查看;4、综合查询模块:根据用户的类型和需求查询教材的库存信息,班级信息以及费用收缴信息;5、统计分析模块:录入班级信息闭和教师单位信息并设置打印报表功能供用户查看然后操作员根据订书情况统计分析学生买书的人数比例和学生不购买教材的原因分析,一次给校方提供相应的数据,便于改进学校的教材管理措施,满足学生对教材的需求;6、 帮助模块:介绍本系统的相关信息和操作指南。1、2、2、需求分析教材管理是教学管理中的组成部分,一般学校的教材管理模式是在学年制基础上以班级为单位进行处理的。院校的教材管理随着学生规模的日益增大、教材日益多样化、学生个人之间教材差异越来越大的现实面前已呈现出无法应对的局面。因此,建立一套与选课相配套的教材管理模式和管理系统具有十分重要的意义和实际应用的迫切性,而且现有的条件、管理理念和技术水平已使之成为可能。教材管理员信息教材管理员管理教材删除信息修改信息登记信息发书财务管理员信息财务管理员拨款教材管理员登记信息删除信息修改信息购买教材 财务管理员信息操作流程图1. 教师信息教师选定教材修改人数删除人数统计人数预订教材 教师信息操作流程图2. 教材信息教材分类班级删除领取信息修改领取信息登记领取信息被领取 教材信息操作流程图整理信息联系购买商被订购分类出版教材出版社3. 出版社信息 出版社信息操作流程图三、概念模型设计从课程设计选题中可以得知,我们设计的教材管理系统数据库需具备以下功能:(1)可随时查询教材库中订购的教材的种类、数量、订购班级。(2)可随时查询班级某一学期订购教材的情况。包括订购班级、教材号、教材名称、教材数量、书费等。(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关教材。(4)查询某种教材被哪些班级订购过(显示班级号、班级名称、班级人数、领书状态)。(5)查询出版某书籍的出版社的出版社名、电话、地址(6)查询各种图书借阅次数(显示书名,书号,借阅次数)。(7)查询图书所属出版社的相关信息(显示书名,书号,出版社名,电话,邮编,地址)(8)查询书库中某种类书籍的书名、书号(9)查询借阅了多种图书的读者的姓名、借书证号(10)查询某书架上放置的图书的书名、书号、数量(11)查询作者投稿的出版社的出版社名、出版社电话、地址(12)查询读者投稿时间、出版社名在普通教材的管理应用中,一般的流程有以下几个:1、管理员可以对用户进行管理,如添加用户,分配用户的角色,如“普通用户” 、“用户管理员” ;删除用户信息;修改用户信息。2、每个班级将需要订购的教材费用交由财务科科,财务科再通知教材科,根据上报的教材数量找到供应商订购教材,并详细记录教材信息。3、每个班级按照缴费情况,到教材科领书,并记录领取信息。并且教材管理处根据教库存信息决定是否订购书。4、校方高层管理人员可在学校教材发放完毕后根据教材科和财务科所提供的学生购书人数比例。5、当系统出现异常、人为故障时,或者在使用过程中出现了大量的冗余、错误数据时,可通过系统初始化设置使系统恢复初始状态。其系统流程图如下图所示:2.3 教材系统的数据流图数据流程图班级表的结构字段名数据类型说明班级名文本(索引)主键,字段大小为20入学时间日期/时间所在院系文本字段大小为20班长文本字段大小为8班长联系电话文本字段大小为20班主任文本预算科目代码,字段大小为8班主任联系电话文本预算科目代码,字段大小为20操作员文本业务金额,字段大小为8最后修改时间日期/时间书费货币所学专业文本字段大小为20班级总人数数字整型买书人数数字整型单位信息表的结构字段名数据类型说明单位名文本(索引)主键,字段大小为20负责人文本字段大小为8联系电话文本字段大小为50书费货币操作员文本字段大小为8最后修改时间日期时间学生书费历史表的结构字段名数据类型说明班级名文本字段大小为20上期费用货币本次费用货币本期费用货币经办人文本字段大小为8上期数量数字整型本次数量数字整型操作员文本字段大小为8最后修改时间日期时间说明文本字段大小为50班级人数数字整型id自动编号主键,长整型 递增教材表的结构字段名数据类型说明教材名文本字段大小为50出版社文本字段大小为50作者文本字段大小为8获奖情况文本字段大小为50出版年月日期时间订书单位文本字段大小为50经办人文本字段大小为8教材数量数字整型教材单价货币使用说明文本字段大小为50入库时间日期时间说明文本字段大小为50操作员文本字段大小为8最后修改时间日期时间Id自动编号主键,长整型 递增教材出入库历史表的结构字段名数据类型说明教材名文本字段大小为50出版社文本字段大小为50获奖情况文本字段大小为50出版年月日期时间经办单位文本字段大小为50经办人文本字段大小为8上期数量数字整型本次数量数字整型本期数量数字整型教材单价货币使用说明文本字段大小为50入库时间日期时间说明文本字段大小为50操作员文本字段大小为8最后修改时间日期时间id自动编号主键,长整型 递增操作用户表的结构字段名数据类型说明用户名文本主键,字段大小为8密码文本字段大小为8所在单位文本字段大小为50权限一是/否管理权权限二是/否收费权权限三是/否出入库权权限四是/否查询权操作员文本字段大小为8最后修改时间日期/时间不购书原因记录字段名数据类型说明班级名文本主键所在专业文本字段大小为50太贵数字整型与专业不符数字整型没必要数字整型其他数字整型2.4.2数据库关联图第3章 总体设计3.1 软件设计流程图3.2 软件功能模块图图3.2.1 软件功能模块图系统登录本模块实现验证用户身份并登录系统的功能。本模块的主要程序设计思想是:启动教材管理系统后,显示系统登录界面,此时,用户输入名称和口令,单击 “登录”按钮,系统验证用户身份通过后,将显示系统主界面。继承JDialog类,构造登录界面。继承conDB类,构造数据库操作对象,验证用户身份。本模块的核心代码如下。 本模块的核心代码如下。 voidjbtnok_actionPerformed(ActionEvente)(/jbtnok为登录按钮name userid=jtfname.getTextO.trim();/获取用户id sql=select*fromidpwdwhereid-“+jtfname.getText()+” andpwd=“+jtfpwd.getText()+“”; /从表中查找满足条件的记录 try rs=con.getrs(con.con,sql);/得到记录集 if(rs.next()/如果记录集不空 this.dispose(); mainFramemf=newmainFrameO;mf.show(true);/显示系统主界面 con.dbclose(con.con,rs); catch(Exceptionee)4.2 主界面设计本模块为系统功能提供平台支持,用户经身份验证后登录系统,在主界面上完成各种教材管理工作。本模块的程序设计思想是:继承Jframe类,构造系统主界面。在主界面上添加JmenuBar组件,以菜单形式体现系统的功能结构。在本界面上添加一个 JScrollPane面板,其内填充JTable组件,该表格响应报表菜单和主界面下方按钮事件,用以显示各种报表内容,系统默认显示教材入库情况。设置菜单代码为:this.setjMenuBar(jMnubar);jMnubar为菜单工具条名称。在菜单条中添加菜单项调用函数add0方法实现。相应菜单项被选择事件,显示相应模块界面,只需构造该模块类一个对象即可。显示教材入库信息的核心代码如下。Stringsql=“select*frombookin;/选择bookin表中所有记录 try( ResultSetrst=con.getrs(con.con,sql);/得到所有记录 while(rst.next()/构造表格行记录 rowdatarowcount0=rst.getString(bkname); rowdatarowcount1=rst.getString(bkeditor) rowdatarowcount2=rst.getString(pubname);rowdatarowcount3=rst.getString(bkisbn); rowdatarowcount4=rst.getString(bkprice): rowdatarowcount5=rst.getString(bknumber) rowdatarowcount6=rst.getString(suncomp); rowcount十+;/行计数器自增,确定行数 rst.close(); catch(Exceptionpe)(pe.toString0; jtablistbook=newJTable(rowdata,col): /构造表格,rowdata和。of为己定义的object对象和string对象 tf = true;/标识表格内存在记录内容相应 “显示开课计划”按钮的代码与以上代码在思想上没有太大差别,可以修改后显示开课计划。4.3 部门信息本模块主要实现初始化部门信息功能,本模块主要实现思想是:系统初始化时将实现与数据库的连接,当用户输入部门名称时,单击 “增加按钮”,conDB类对象将使用insert语句实现对部门信息表的插入记录功能。系统初始化时,将自动初始化部门列表,保持与部门信息表的同步,同时便于用户选择部门,当用户选择某一部门时,该部门名称同时被填充到部门文本框中,用户单击 “删除”按钮即可删除某一部门,重新输入部门信息,单击 “修改”按钮实现修改部门信息功能。 部门列表的初始化代码如下,本模块中以函数形式体现,便于操作。 publicvoidinit_combox()/初始化部门列表 try Stringsql二“select*fromdepartment; rs=con.getrs(con.con,sql);/得到记录集 while(rs.next() jcmbdeplist. addItem(rs.getString(DEPNAME);/添加条目 rs.close();/关闭记录集 catch(Exceptionee) 增加部门信息代码如下。 voidjbtnadd_actionPerformed(ActionEvente) if(jtfdepname.getText0.length()!=0)/部门信息非空 String sql = insert into department values(,+ jtfdepname.getText()+”)“: con.moddb(con.con,sql):/执行sql语句实现增加信息功能 jcmbdeplist.addItem(jtfdepname.getText();表 当实现删除、修改部门信息时,分别使用delete,updateSQL语句,调用conDB类成员方法mondb(Connectioncon,Stringsql),把以上删除、修改 sql语句分别作为mondb的参数即可实现部门信息的删除、修改工作,代码实现同部门增加方法。当单击 “退出”按钮时,退出本模块,此时关闭记录集,调用onDB类成员方法dbclose();4.4 用户管理本模块实现增加、删除用户的管理功能,本模块的程序设计思想是:继承JDialog类,构造模块界面,按界面设计添加各种组件。当初始化界面后,模块程序连接数据库,初始化用户列表,便于用户查看当前系统所有用户和便于删除某一用户。在不断增加用户的情况下,用户可以单击用户列表右边的刷新按钮,使得列表内容保持与数据库表记录的同步。初始化用户列表的代码如下。sql=select*fromidpwd; ResultSetrs=con.getrs(con.con,sql);/得到所有用户 while(rs.next()cmblist.addltem(rs.getString(id);/添加用户到列表中当要刷新用户列表时,只要删除当前所有内容,重新调用列表初始化方法即可,代码如下。 jcmblist.removeAllItems();/清空所有的用户initcombox();/其代码为以上列出的用户列表初始化代码 在增加用户时要判断是否该用户己经存在,所以要有两遍查询数据库记录的过程,代码如下。 voidjbtnuserinactionPerformed(ActionEvente)try JOptionPanejop=newJOptionPane(); sql=select*fromidpwdwhereid=” +jtfid.getText().trim()+“;rs=con.getrs(con.con,sql);/用于验证用户是否存在 if(rs.next() jop.showConfirmDialog(nul1,”该用户已经存在”); else/增加用户并赋予用户退出系统的权限 sql=insertintoidpwdvalues(“+jtfid.getText()+”,” +jtfpwd.getText0+“,6001)“:con.moddb(con.con,sql); catch(Exceptionee) jtfid.setText();/清空各种文本框,便于下次输入 tfpwd.setText(“);4.5 技术难点与解决 在系统开发实现过程中,遇到了一定的技术实现问题,现把问题及其解决方 法描述如下。 (1)用户权限分配模块中遇到的问题及其解决方法权限分配模块中原来程序设计思想:用两个JTree控件分别用于显示系统权 限树和用户权限树。当为用户分配权限时,单击系统权限树某叶结点,然后分配后的权限即可在用户权限树中增加相应的叶结点,而且结点之间从属关系不改 变。但要删除用户某一权限时,只要单击树中的叶结点且树刷新即可。用户权限树同系统权限树在默认状态下都要通过数据库表中的权限值动态生成。 在实际开发过程中,用户权限树的建立、为用户分配权限后树的刷新问题没 有解决,成为代码实现中的一个难点。鉴于此,改用JTable控件代替JTre。控 件来表现用户的权限,技术问题随之解决。(2)主界面中同一表格显示多种内容的问题在主界面中,设想用同一表格显示教材入库信息、教材出库信息、教材使用查询、各种费用查询、各种报表等内容,但正确显示表头成为一个小技术难点。当改显其他内容时,列标题维持原有的内容,限于编程水平,该问题尚未得到解决。(3)报表打印问题由于本系统没有完全实现,代码开发阶段尚未结束,所以报表打印问题虽有考虑,但还未真正尝试解决。此为从未接触的新问题,应是难点之一,可以考虑用目前免费的可以提供二次开发的报表打印程序来实现。1.1.1 创建模式创建数据库“图书管理”1、 打开企业管理器,单击目录树窗口中的sql server服务器,选择工具向导菜单命令。2、 在打开的“选择向导”对话框表中双击“数据库”,展开节点,显示数据库操作向导,单击“创建数据库向导”。3、 单击确定按钮,打开创建数据库向导的欢迎对话框。4、 单击下一步按钮,打开命名数据库对话框,将对话框的“数据库名称”文本框中显示的默认数据库名称“Administrator数据库”修改为“图书管理”,数据库文件位置使用默认值。5、 单击下一步按钮,打开命名数据库文件对话框,将数据文件的初始大小修改为2。6、 单击下一步按钮,打开定义数据文件增长对话框,选中“文件增长的最大值”,并将其后的文本框的数字修改为4。7、 单击下一步按钮,打开命名事务日志文件对话框,将文件初始大小修改为2。8、 单击下一步按钮,打开定义日志增长对话框,选中“事务日志文件不自动增长”,不允许事务日志文件自动增长。9、 单击下一步按钮,打开完成信息对话框。10、 单击完成按钮,执行创建数据库操作。11、 单击确定按钮,有提示是否为数据库创建维护计划,单击否.至此,完成数据库创建操 作。5.1.2创建数据表1、打开查询分析器,在数据库下拉表框中选择“成图书管理”数据库。2、在查询窗口中输入下面的sql语句。 3、单击工具栏中执行按钮执行查询,完成数据表创建操作。(1)读者信息表的建立。命令如下:create table 读者信息(姓名 char(8) not null,借书证号 char(10) primary key not null,借书人单位 char(40)(2)出版社信息表的建立。命令如下:create table 出版社信息(出版社名 char(20) primary key not null,电话 char(20),邮编 char(10),地址 char(40)(3)图书信息表的建立。命令如下:create table 图书信息(书名 char(40) not null,书号 char(10) primary key not null,种类 char(10)not null,总数量 int not null) (4)借阅信息表的建立。命令如下:create table 借阅信息(借书证号 char(10) foreign key references 读者信息 not null,书号 char(10) foreign key references 图书信息 not null,借书日期 datetime not null,primary key(借书证号,书号)(5)归还信息create table 归还信息(借书证号 char(10) foreign key references 读者信息 not null,书号 char(10) foreign key references 图书信息 not null,归还日期 datetime not null,primary key(借书证号,书号)(6)放置信息create table 放置信息(书架号 char(10) foreign key references 书架信息 not null,书号 char(10) foreign key references 图书信息 not null,数量 int not null,primary key(书架号,书号)(7)书架信息create table 书架信息(书架号 char(10) primary key not null,书架名 char(10) )(8)供应信息create table 供应信息(书号 char(10) foreign key references 图书信息 not null,出版社名 char(20) foreign key references 出版社信息 not null,数量 int not null primary key(书号,出版社名)(9)投稿信息create table 投稿信息(姓名 char(8) foreign key references 作者信息 not null,出版社名 char(20) foreign key references 出版社信息 not null,投稿日期 datetime not null,primary key(姓名,出版社名)(10)作者信息create table 作者信息(姓名 char(8) primary key not null,性别 char(10) not null,联系方式 char(20)5.1.3 创建索引(1)考虑到在连接中会频繁使用到表 图书管理.读者信息中的“姓名”和“借书证号”两列,同时“借书证号”列已经存在唯一索引,所以在表图书管理.读者创建一个名为“读者情况”的非聚簇索引,索引关键字为“姓名”、“借书证号”。命令如下:create nonclustered index 读者情况 on 读者信息(借书证号,姓名)(2)在表图书上创建名为“图书情况”的非聚簇索引,索引关键字为“书名”、“书号”。命令如下: create nonclustered index 图书情况 on 图书信息(书号,书名)(3)在表借阅信息上创建名为“借阅时间”的非聚簇索引,索引关键字为“借书日期”。命令如下:create nonclustered index 借阅时间 on 借阅信息(借书日期)(4)在表归还信息上创建名为“归还时间”的非聚簇索引,索引关键字为“借书日期”。命令如下:create nonclustered index 归还时间 on 归还信息 (归还日期)(5)在表出版社信息上创建名为“出版社情况”的非聚簇索引,索引关键字为“出版社名”。命令如下:create nonclustered index 出版社情况 on 出版社信息(出版社名)(6)在表书架信息上创建名为“书架情况”的非聚簇索引,索引关键字为“书架号”。命令如下:create nonclustered index 书架情况 on 书架信息(书架号)(7)在表投稿信息上创建名为“投稿时间”的非聚簇索引,索引关键字为“投稿日期”。命令如下:create nonclustered index 投稿时间 on 投稿信息(投稿日期)(8)在表作者信息上创建名为“作者情况”的非聚簇索引,索引关键字为“姓名”。命令如下:create nonclustered index 作者情况 on 作者信息(姓名)5.1.4 数据库关系图为“图书管理”数据库创建关系图1) 打开企业管理器,并在窗口中选中“图书管理”数据库,在内容窗口中使用鼠标右键单击“关系图”项目,在弹出的快捷菜单中选择“新建数据库关系图”命令2) 在打开的“创建数据库关系图”对话框向导中单击“下一步”按钮,打开向导的选择数据表对话框,在对话框的“可用的表”列表框中分别双击“图书”、“出版社”、“借阅信息”和“读者”数据表,将其铁甲到“要添加到关系图中的表”列表框中3) 单击“下一步”按钮,打开向导的完成信息对话框,单击“完成”按钮关闭向导。(因为已经创建了“图书”、“出版社”、“借阅信息”和“读者”数据表之间的关联,所以向导自动绘制出了表之间的关系连线。准备表“读者信息”数据“读者信息”数据可以使用记事本创建,如图,注意各个数据项之间使用用以的分隔符,如英文的逗号活空格,一个记录数据为一行。将文件保存为“读者信息.txt”。1、 在开始菜单中选择Microsoft SQL S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论