- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图书管理系统VC 确定用例 数据库选择 我们使用access数据库作为系统后台数据库,在设计数据库时,需要注意数据库的主键和外键约束的设置。 采用ADO连接数据库,使得应用可以平滑的移植到其他数据库,如Sql Server 数据库设计 类静态设计 图书管理系统是一种典型的信息管理系统,需要与数据库进行大量的操作 对于这种系统,一般采用分层的架构模式,将数据访问功能与界面部分分离,做到低耦合,以达到能够方便的移植数据库。 ADO封装类CDataAccessLayer 在VC中使用ADO比较复杂,我们设计一个类,将所有与ADO交互的操作封装到这个类中。 在我们的类中,并没有封装所有的ADO操作,为了简化接口,我们只封装系统中会使用到的操作。 我们在这里将所有对于ADO的操作都封装在一个类中了,还可以采用另外一种方法:分别封装ADO的连接,数据集,命令对象。这种分别封装的方法比我们的方法更灵活,效率也会更高,但是需要使用者对于ADO的几个对象间的关系比较熟悉。 数据逻辑类 封装数据库SQL查询语句的生成操作 读者类CBorrower 图书编目类CTitle 库存类CItem 借阅类CLoan 读者类 Update 返回更新资料Sql语句 Add 返回插入资料的Sql语句 Delete 返回删除资料的Sql语句 Update 返回更新资料的Sql语句 Find 返回查找资料的Sql语句 FindByISBN 根据ISBN查找图书编目 GetDataRow 返回CDataAccessLayer对象中数据集当前游标指向的数据,通过函数参数返回 CTitle::Add 函数 CString CTitle::Add(CString ISBN, CString BookName, CString Author, double UnitPrice, CString Press, COleDateTime PressDate, CString SearchKey) { CString sql; sql.Format(Insert into Title values(%s,%s,%s,%.2f,%s,%s,%s),ISBN,BookName,Author,UnitPrice,Press,PressDate.Format(),SearchKey); return sql; } 界面设计 添加按钮的事件响应函数 void CDlgBookData::OnButtonAdd() { this-UpdateData(true); CTitle t; CDataAccessLayer dal; if(dal.ExecuteCommand(t.Add(m_strBookNo,m_strBookName,m_strAuthor,m_dUnitPrice,m_strPress,m_dtPressDate,m_strSearchKey))) AfxMessageBox(添加了一条记录); else AfxMessageBox(添加失败,可能是书号冲突); } 系统测试 测试用例根据需求分析用例设计
文档评论(0)