• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

机房收费系统总结(一)——事务 - c语言源码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

机房收费系统总结(一)——事务

前言:首先介绍一下机房收费系统需求

             机房收费系统是为我们学校管理机房做的一个小MIS。因为,现在大学的英语——《新视野大学英语》是网上学习的,而且用的是本学校的内网服务器,还有一些大学要参加相应的计算机等级考试,所以,希望学校的机房可以对本学校的学生开放(在指定的时间,如果晚上、周末等)。

           但是,学校如果开放机房的话,那么一定会投入相应的人力与物力(顺便赚点钱,其实大家心里都明白……),所以,希望学生有偿上机,也就是对学生上机进行收费管理,并同时记录相应的上机记录等。

           该系统可以实现的功能包括、学生注册、学生充值、学生退卡、学生上机、下机管理、学生信息维护、报表统计数据等。因为,此系统所用的磁卡,是学校的饭卡,属于另一个系统,所以,不涉及关于磁卡方面的管理与维护。

 

好了,今天我想说的的,在实现机房收费系统中的一个细节问题。

大家可以想到,比如,学习充值(数据库包括:充值记录表,卡表(加上充值金额)),所以,我认为,在这里一定要保证学习充值这个用例的原子性。想到原子性的话,那么大家自然而然的就会想到关于数据库的一个概念,对就是——事务。

 

下面我想说一下,我是怎么实现的,希望大家提出宝贵意见。

 

在系统架构方面,我用到了三层架构,底层加上了抽象工厂模式,并用了一个SQLHelper

下面是我的构架图:


下面是实现充值的类图:


现在是我写的SQLHelper中关于事务的一个函数:


下面这个私有函数,也在SQLHelper里,用来帮助执行


下面是RechargeRecordDAL类中的方法


下面是CardDAL里的方法:


现在是RechargeBLL里的方法(注:里面还用到了其它的表,用来获取学习、卡等信息,还有就是有一个Verify类,用来帮助验证学生是否存在。):



其实想验证一下,事务有没有起作用,很简单,只要设置一个断点(事务执行到一半),到这个断点然后强制终止程序,可以看到,数据库里面的数据没有变化,说明事务起作用了。

这是我的想法,希望大家给出您的宝贵意见!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
利用ASP.NET DataGrid显示主次关系的数据(c#版)发布时间:2022-07-13
下一篇:
C++this指针详解(精辟)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap