c上机试题2009.9.19上午单号 

c上机试题2009.9.19上午单号 

ID:24209920

大小:82.00 KB

页数:3页

时间:2018-11-13

c上机试题2009.9.19上午单号 _第1页
c上机试题2009.9.19上午单号 _第2页
c上机试题2009.9.19上午单号 _第3页
资源描述:

《c上机试题2009.9.19上午单号 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、要求:将卩J执行程序命名为TransManager.exe题目:事务具有ACID特性,在现代应用系统中建立事务环境是保证信息完整性和一致性的重要手段,请按照题目要求实现简单的事务管理操作。1.实现事务管理类TransactionManager,其中包括基本的函数:a)voidbeginO开始事务,即初始化事务环境,准备接受操作命令b)voidcommit(>提交事务,即完成事务环境中所有操作,清空操作命令c)voidrollBackU回滚事务,即将事务环境中的所有操作均放弃执行,恢复到事务开始时的状态为保证操作的一致性,需要将操作

2、命令依次保存到事务环境屮(最多可以保存5条命令),所以该类还包括函数:intaddCommand(ICommand*comm)将某个操作命令放入事务环境中,成功吋返冋1,命令已满时返冋0,其中ICommand说明见下2.设计操作命令的抽象类ICommand,其中包括基本的函数:a)intexecute()执行该操作,成功吋返冋1,失败吋返冋0b)voidundo()反向执行该操作,即补偿执行时造成的损失3.该系统的命令均是对自定义口期类Date的处理,其屮Date类包括属性年、月、日(整数类型),构造函数可用以给这些属性赋值,重载

3、输入输出运算符函数,定义口期后延函数AddDays和口期前推函数SubDays,返回值要求为整数,函数原型为intDate::AddDays(intdays);intDate::SubDays(intdays);返回值计算方法为:如果经过计算FI期会跳出该月份,则不记录运算结果,返回o表示失败(如2005年9月10日减去20天的情况);否则用运算后的日期更新原日期,返回1表示成功。4.该系统屮有两种操作命令种类,分别为a)曰期后延命令ForwardCommand类,其中包括属性Date*pDate和intdays,构造函数用以给两

4、个属性赋初值,执行操作时使得日期后延,反向操作时将延后的H期减回来;b)闩期前推命令BackwardCommand类,其中包括属性Date*pDate和intdays,构造函数用以给两个属性赋初值,执行操作吋使得日期前推,反向操作时将减去的円期加回来;注:以上操作须注意对不成功情况的处理。1.编写main函数,测试事务管理器的功能。模拟输入若干命令,对同一个Date对象进行操作,如果成功完成运算则提交事务,否则回滚事务,最后观察操作后的日期是否正确。类似执行如下的操作一一测试程序示例:TransactionManagermanag

5、er;//事务对象Datemydate;//待运算的日期对象cin»mydate;//读入对象的初始值inthasError=0;ICommand*command;intdays;//计算的天数,待输入manager.begin();while(l)//与用户的交互界面省略{//根据用户的输入,构造相应命令,形如下一条语句//command=newAddCommandys);if(!manager.addCommand(command)){事务环境己满!dl;break;}if(command-〉execute⑴//执行命令成功{

6、当前日期为}else{hasError=1;命令执行失败!endl;break;}}if(hasError)manager.rollBack();elsemanager.commit();cou当前日期为;omanip.h>classDate{public:intyear;intmonth;intday;Date();Date(intx,inty,intz);friendistrr»(istreamte);intAddDays(intdays);intSubDays(intdays);};/////////////////////

7、////classICommand{protected:Date*num;public:ICommand();virtuaIintexecute()=O;virtualvoidundo()=0;};//////////////////////////////////classForwardCommand:public1Command{private:Date*pDate;intdays;public:ForwardCommand();intexecute));voidundo();};classBackwardCommand:pu

8、blicICommand{private:Date*pDate;intdays;public:BackwardCommand();intexecutef);voidundoO;};///////////////////////////////cla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。