基于web的教材管理系统设计与实现(编辑修改稿)内容摘要:

这里完成。 右部框架用来显示和操作各主要功能模块。 数据操作公共类 整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。 所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。 首先建立一个和 SQL Server 数据库之间的连接。 代码如下: SqlConnection sqlconn = new SqlConnection( Data Source=( local) \\sqlexpress。 Initial Catalog=bm。 Persist Security Info=True。 User ID=xsliang。 Password=xiaosong)。 DataCom 方法用来返回受影响的结果的行数,但不返回任何 东西。 操作过程是首先打开连接,之后建立一个对 SQL Server 数据库执行的一个 SQL 语句的对象,执行 SQL 语句,然后关闭数据库连接。 具体代码如下: public void DataCom( string sqlstr) { ()。 SqlCommand sql = new SqlCommand( sqlstr, sqlconn)。 ()。 ()。 } rowNumber 方法用来返回受影响的行数。 但是和 DataCom 不同的是回返回一个具体的 int 类型的行数。 rowFirst 方法用来返回一个 object 类型的查询后的第一行的第一列的结果。 代码和上面的两个方法类似,只是执行 ExecuteScalar 方法来取得第一行的第一列的结果。 数据库设计 ER 图 出版日期 教材 教材名称 教材出版社 ISBN号 价格 教材 作者 XII 条形码号 图 41 教材实体 ER图 图 42 用户实体 ER图 图 43 管理员实体图 数据库的表结构是非常重要的环节 ,一个良好的数据库设计,可以提高效率,方便维护,并且为以后进行功能的扩展留有余地。 表 41 是系统数据库表的清单。 表 41 数据表清单 序号 数据表名称 说明 1 damage 对报损的教材进行记录 2 lingshu 对学生和教师领书进行记录 3 dingshu 对学生和教师订书进行记录 4 user 用户信息 5 jiaocai 教材信息记录 6 number 库存报警阀值记录 7 change 对换书的教材进行记录 8 sell 对销售的教材进行记录 9 class 记录班级和系的信息 报损表 (damage): 存放由于教材科原因造成的教材损坏的报损信息,如表 42所示: 表 42 报损信息表 字段名 属性 主键 /外键 说明 da_ID int 主键 自动增加 number Numeric( 5,0) 报损数量 time datetime 报损时间 name nchar( 10) 操作者 Bookname nchar( 30) 书名 阀值表 (number):设置库存报警阀值。 如表 43 所示: 用户名 用户 编号 电话 编号 性别 密码 管理员 名字 密码 XIII 表 43 阀值 信息表 字段名 属性 主键 /外键 说明 number Numeric( 5,0) 报警阀值 教材表( jiaocai):显示教材信息。 如表 44 所示: 表 44 教材信息表 字段名 属性 主键 /外键 说明 zuozhe nchar( 20) 教材作者 date nchar( 10) 出版日期 bookname nchar( 30) 书名 ISBN nchar( 20) ISBN号 price Money 价格 tiaoma Numeric( 18,0) 条形码号 cover Nchar( 50) 封面,可以为空 jc_ID Int 主键 自动增加 chubanshe nchar( 30) 出版社 订书表 (dingshu):显示记录学生、教师、教材科的订书消息。 如表 45 所示: 表 45 订书信息表 字段名 属性 主键 /外键 说明 Ds_ID int 主键 自动增加 number Numeric( 10,0) 订书数量 time datetime 订书时间 name Nchar( 10) 外键 操作者 class Nchar( 20) 订书班级 department Nchar( 20) 订书系 teacher Nchar( 20) 订书教师 jiaocaike bit 是否教材科订书 xnd Nchar( 10) 使用学年度 Bookname Nchar( 30) 书名 领书表 (lingshu):存放学生、教师的领书消息。 如表 46 所示: 表 46 领书信息表 字段名 属性 主键 /外键 说明 ls_ID int 主键 自动增加 number Numeric( 10, 0) 领书数量 time datetime 领书时间 name Nchar( 10) 外键 操作者 class Nchar( 20) 领书班级 department Nchar( 20) 领书系 teacher Nchar( 20) 领书教师 jiaocaike bit 是否教材领书 XIV xnd Nchar( 10) 使用学年度 Bookname Nchar( 30) 书名 tag bit 领书标记 换书表( change):存放因非人为原因的图书问题进行换书的信息。 如表 47 所示: 表 47 换书信息表 字段名 属性 主键 /外键 说明 ch_ID int 主键 自动增加 number numeric( 5,0) 换书数量 time datetime 换书时间 name Nchar( 10) 外键 操作者 Bookname Nchar( 30) 书名 班级表( class):存放系和班级的信息。 如表 48 所示: 表 48 班级信息表 销售表( sell):记录教材零售信息。 如表 49 所示: 表 49 销售信息表 字段名 属性 主键 / 外键 说明 se_ID int 主键 自动增加 number numeri( 5,0) 销售数量 time datetime 销售时间 name Nchar( 10) 外键 操作者 Bookname Nchar( 30) 书名 Price Money 总价格 用户表( user) :管理用户信息。 如表 410 所示: 表 410 用户信息表 字段名 属性 主键 /外键 说明 User_ID int 自动增加 name Nchar( 10) 主键 用户名 password Nchar( 10) 用户密码 leave int 用户类型 功能设计 登录操作 登录页面的功能主要是供合法的用户根据自己的用户类型进行登录。 网上教材管理系统登录模块运行的结果如图 45 所示。 字段名 属性 主键 /外键 说明 cl_ID int 主键 自动增加 departm nchar( 20) 系名 class nchar( 20) 班级名 XV 图 45 网上教材管理系统登录模块运行的结果 如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。 如果用户已经登录,可以在登录模块进行退出登录的操作。 在登录到这个页面或者刷新这个页面的时候,首先要进行一次 session 的判断。 在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。 如果一切通过,将产生两个 session 分别用来存放用户名和用户类型。 之后跳转到相应的登录成功的页面。 订书操作 网上教材管理系统订书模块分为三个子模块,分别是学生订书模块、教师 订书模块、教材科订书模块。 主要功能是完成各类用户的订书操作。 网上教材管理系统学生订书模块运行的结果如图 46 所示。 XVI 图 46 网上教材管理系统学生订书模块运行的结果 当教材科工作人员以教材科类型用户登录到系统后,可进行教材的订书操作。 首先填写教材使用的学年度,然后选择使用的系和班级,再选择使用的教材名,最后填写订书的数量,如果确认无误后,就可以点击确定订书。 在进入到这个模块时,首先还是判断是否有 session 存在,没有的情况下返回登录页面。 存在 session 时,判断用户类型是否属于教材科用户,如果不是 ,跳转到管理页面。 在输入了订书信息选择确定后,如果一切无误,会进行插入操作。 订购信息会先后插入到订书表和领书表。 但是在领书表中不会插入领书时间、操作者、领书标记这些信息。 成功后会返回订书模块。 具体的实现代码如下。 string sql_dingshu = insert into dingshu +( number,time,name,class,department,xnd,jiaocaike,bookname) +values( 39。 + number + 39。 ,39。 + time + 39。 ,39。 + name + 39。 ,39。 + classname + 39。 ,39。 + department + 39。 ,39。 + xnd + 39。 ,39。 + jiaocaike + 39。 ,39。 + bookname + 39。 )。 //编写 insert ( sql_dingshu)。 //导入数据库 string sql_lingshu = insert into lingshu + ( number,class,department,xnd,jiaocaike,bookname,tag) + values( 39。 + number + 39。 ,39。 + classname + 39。 ,39。 + department + 39。 ,39。 + xnd + 39。 ,39。 + jiaocaike + 39。 ,39。 + bookname + 39。 ,39。 + tag + 39。 )。 //编写 insert ( sql_lingshu)。 //导入数据库 ( )。 //跳转到订书 页面 领书操作 网上教材管理系统领书模块分为两个子模块,分别是学生领书模块、教师领书模块。 主要功能是完成学生和老师的领书操作。 网上教材管理系统学生领书模块运行的结果如图 47 所示。 XVII 图 47 网上教材管理系统学生领书模块运行的结果图 如是学生领书操作,只需要选择相应的系和班级,点击查询后就可以看到已经领了的教材和需要领取的教材。 教师领书模块操作类似,不同的只是根据教师名字选择。 在进行订书操作的时候,首先会判断用户是否选择了要领取的教材。 如果没有选择具体的教材就进 行领书操作,会弹出错误提示,之后返回。 实现代码如下: //判断是否选择了书 if ( == 1 amp。 amp。 == 1) { ( script lanuage=javascriptalert( 39。 没有选择图书。 39。 )。 location=39。 javascript:( 1) 39。 /script)。 //返回上一页 return。 } string ID1。 if ( == true) { ID1 = ()。 //设置 选定行的主键值 } else { D1 = ()。 //设置 选定行的主键值 } 如果选择了具体的教材,接下来会通过领书标记判断选择的教材是否已经被领 XVIII 取了。 如果书已经被领取了,也会弹出出错提示,之后返回。 具体代码如下: //判断领书是否已经发生 string sql_1=select tag from lingshu where tag。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。