演示视频:
https://www.bilibili.com/video/BV1su4y1H72T/
4 详细设计
4.1 主框架
整个系统的布局采用了框架结构。顶部框架里是系统的标题。主框架又分左右两部分。左部框架是树型功能菜单,整个系统功能模块的跳转主要在这里完成。右部框架用来显示和操作各主要功能模块。
4.2 数据操作公共类
整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。
首先建立一个和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语句,然后关闭数据库连接。
rowNumber方法用来返回受影响的行数。但是和DataCom不同的是回返回一个具体的int类型的行数。
rowFirst方法用来返回一个object类型的查询后的第一行的第一列的结果。代码和上面的两个方法类似,只是执行ExecuteScalar方法来取得第一行的第一列的结果。
4.3 登录操作
登录页面的功能主要是供合法的用户根据自己的用户类型进行登录。网上教材管理系统登录模块运行的结果如图4-1所示。
图4-1 网上教材管理系统登录模块运行的结果
如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。如果用户已经登录,可以在登录模块进行退出登录的操作。
在登录到这个页面或者刷新这个页面的时候,首先要进行一次session的判断。在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。如果一切通过,将产生两个session分别用来存放用户名和用户类型。之后跳转到相应的登录成功的页面。
4.4 订书操作
网上教材管理系统订书模块分为三个子模块,分别是学生订书模块、教师订书模块、教材科订书模块。主要功能是完成各类用户的订书操作。网上教材管理系统学生订书模块运行的结果如图4-2所示。
图4-2 网上教材管理系统学生订书模块运行的结果
当教材科工作人员以教材科类型用户登录到系统后,可进行教材的订书操作。首先填写教材使用的学年度,然后选择使用的系和班级,再选择使用的教材名,最后填写订书的数量,如果确认无误后,就可以点击确定订书。
在进入到这个模块时,首先还是判断是否有session存在,没有的情况下返回登录页面。存在session时,判断用户类型是否属于教材科用户,如果不是,跳转到管理页面。
在输入了订书信息选择确定后,如果一切无误,会进行插入操作。订购信息会先后插入到订书表和领书表。但是在领书表中不会插入领书时间、操作者、领书标记这些信息。成功后会返回订书模块。具体的实现代码如下。
4.5 领书操作
网上教材管理系统领书模块分为两个子模块,分别是学生领书模块、教师领书模块。主要功能是完成学生和老师的领书操作。网上教材管理系统学生领书模块运行的结果如图4-3所示。
图4-3 网上教材管理系统学生领书模块运行的结果图
如是学生领书操作,只需要选择相应的系和班级,点击查询后就可以看到已经领了的教材和需要领取的教材。教师领书模块操作类似,不同的只是根据教师名字选择。
在进行订书操作的时候,首先会判断用户是否选择了要领取的教材。如果没有选择具体的教材就进行领书操作,会弹出错误提示,之后返回。实现代码如下:
//判断是否选择了书
如果选择了具体的教材,接下来会通过领书标记判断选择的教材是否已经被领取了。如果书已经被领取了,也会弹出出错提示,之后返回。具体代码如下:
//加一个判断领书是否已经发生
如果一切没有问题,会把领书的时间、操作者、领书标记填入领书记录中。然后返回领书模块。具体代码如下:
4.6 报损 换书 零售操作
报损是当教材因教材科的原因造成损坏时,选择对相应的书进行报损处理。换书是书已经发给学生或教师后,因书自身的问题进行换书处理。零售是针对部分学生因各种原因需要再次购买教材时进行教材零售。网上教材管理系统的教材零售模块运行的结果如图4-4所示。
图4-4 材库存管理系统教材零售模块运行的结果图
报损、换书、零售其实都是特殊的领书过程,只对应于教材科的领书领书操作。如果教材科没有订购教材,这些操作则都不能进行。
退换和报损处理的操作几乎相同,选择需要报损或退换的教材,在有足够库存的情况下进行报损或退换操作,分别记入报损表中和退换表中,领书表中教材科领书的相应项目数量减少。在库存少于规定的阀值的时候会进行报警。在没有库存的时候会显示“无库存”并且禁止对此教材进行相应的报损、换书、零售处理。
零售模块与报损、换书不同的是,在选择好教材进行点击查询后会显示教材的价格。在购买后会显示购买的总价格并写入表中。
首先在点击查询之后,通过数据库得到报警阀值。代码如下:
得到报警阀值后,与得到的库存教材数量进行比较,如果小于库存阀值就会出现“库存不足”的报警。如果领书标记显示为真表示该教材已经没有库存了。
通过参数化查询得到教材的价格。
在点击了确定购买按钮后,首先判断是否选择了教材,然后判断是否输入了购买的数量。之后会做一个防止过量购买的安全检查,根据输入的购买数量看是根本没有库存还是库存不足。如果通过会根据购买的数量计算总的价格,购买后会对教材科领书的数量做相应的处理,如果该图书被购买完了,会做上领书标记防止再被购买。
4.7 查询汇总
汇总是根据教材使用的学年度,通过教材名或者系,对教材的订购情况进行汇总统计。网上教材管理系统教材汇总模块运行的结果如图4-5所示。
教材查询模块是一个面向所有用户的模块。在这个模块中可以通过组合查询、班级订购教材查询、授课教师查询来查询到自己需要的教材。网上教材管理系统教材查询模块运行的结果如图4-6所示。
图4-5 网上教材管理系统教材汇总模块运行的结果
图4-6 网上教材管理系统教材查询模块运行的结果
4.8 系统管理
这是本系统的系统管理部分。需要在登录的时候选择管理员才可以进入。图书管理主要是对图书信息的添加、删除、修改。网上教材管理系统图书管理模块运行的结果如图4-7。系统管理主要作用是设置报警阀值、添加删除修改用户、添加删除班级和系。网上教材管理系统系统管理模块运行的结果如图4-8。
图4-7 网上教材管理系统教材管理模块运行的结果
图4-8 网上教材管理系统系统管理模块运行的结果
教材管理模块可以对教材进行添加、删除、修改操作。进入模块后,可以直接点击“添加新教材”打开一个新的页面来输入教材的相关信息,在确认输入无误后点击确定,通过一个insert语句把新教材的数据放入数据库的教材表。另外,在进入教材管理功能模块的时,有一个“显示所有教材”按钮,可以选择教材对一些信息进行修改,之后用UPDATA使修改后的数据写入数据表,也可以选择删除来删除错误的教材数据。
另一个重要的模块是系统管理模块,虽然在功能上相对简单,但是在整个系统各个模块中起着重要作用。该模块的主要功能是管理用户,设置用户的类型。这些user在多个表中需要作为一个值被插入,也用于session判断中。另一个功能设置报警的阀值,以便教材科可以根据需要及时补充教材。还有一个功能是添加新的系和班级,这样由管理员输入到数据库再由教材课使用的时候被调用,可以减少教材科的工作量,也避免了出错。
第16页共19页