图书管理系统软件工程课程设计


    XX学



    课程名称:软件工程

    试题题目:图书理系统





    姓 名:
    学 号:
    专 业: 计算机科学技术
    学 院:计算机信息科学学院
    时 间:20XX年X 月 X日

    目录
    开发背景目标
    11开发背景…………………………………………………………………… 6
    开发目标………………………………………………………………………6
    二需求分析说明书 6
    21系统介绍 6
    22系统面户群体 7
    23系统功性需求 7
    24系统非功性需求 8
    241户界面需求 9
    242软硬件环境需求 9
    243软件质量需求 9
    三行性分析报告 9
    31济行性分析 9
    32操作行性分析 9
    33技术行性分析 10
    34时间设备性 10
    35系统工作量 11
    36文档求 11
    四开发环境项目规划 11
    41开发环境 11
    42项目规划理 11
    421开发员安排 12
    422开发进度安排 12
    五结构化分析设计 13
    51分析设计方法:…………………………………………………………13
    52组织结构图………………………………………………………………13
    53数流程图………………………………………………………………15
    54数字典…………………………………………………………………18
    六面象分析设计 20
    61分析设计方法……………………………………………………………20
    62况模型……………………………………………………………………20
    63活动图……………………………………………………………………21
    64序图……………………………………………………………………22
    七数库分析设计 23
    71数库环境说明 23
    72数库命名标准规范 24
    73数库逻辑设计 24
    731逻辑设计步骤 24
    732逻辑设计图 24
    74数库物理设计 26
    741数库物理设计步骤 26
    742表视图汇总 30
    743表视图设计详解 30
    八 机界面设计 32
    81界面设计原 32
    82界面设计 32
    83子界面设计 32
    九项目系统实现 35
    91 实现环境技术………………………………………………………35
    92 核心模块实现技术代码……………………………………………36
    十软件测试分析报告 61
    101测试范围容 61
    102测试方法 61
    103测试程 61
    1031系统测试 61
    1032单元系统 63
    1033 集成测试 64
    十软件说明书 64
    111软件概述 64
    112说明 64
    1121系统登陆 65
    1122注册 66
    1123 系统简介 66
    十二系统开发评价…………………………………………………………67
    121功方面……………………………………………………………67
    122性方便……………………………………………………………67
    123课程知识运方面…………………………………………………67
    参考文献 67














    开发背景目标
    11 开发背景
    着计算机技术断发展计算机已深入社会生活角落知识爆炸天种样图书越越图书馆规模断壮理日臻完善面着庞信息量传统方式图书馆进行理耗费力物力满足图书理需图书馆信息化理已越越重必须制定套合理效规范实图书理系统整图书馆资料进行集中统理方便理员图书馆书籍读者资料图书阅情况等进行高效理工作员具备定计算机操作力基础果采图书理系统提高图书馆理效率减轻图书馆工作员工作负担方便阅者阅查找图书图书理更加科学序
    12 开发目标
    次开发目标适合中型图书馆图书理系统完成关图书信息理关读者阅情况理信息化理方式代传统工理方式方便工作员理省繁琐手工操作程改计算机代处理减少工操作会带错误足提高图书理效率
    二需求分析说明书
    21 系统介绍
    着科学技术断提高计算机科学日渐成熟强功已深刻认识已进入类社会领域发挥着越越重作作计算机应部分计算机图书馆信息进行理具着手工理法拟优点优点够极提高图书馆理效率图书馆科学化正规化理重条件根情况决定实施建立图书理系统 图书信息理图书馆缺少部分图书理系统应该够户提供充足信息快捷查询手段解决直传统工方式理文件档案存着许缺点效率低保密性差外时间长产生量文件数查找更新维护带少困难着计算机技术飞速发展计算机企业理中应普利计算实现图书馆图书信息理势必行图书理系统现代图书馆理工作缺少部分适应现代图书馆发展求推动图书馆图书信息理走科学化规范化必条件
    图书理系统针图书馆拥量图书信息读者阅信息读者资料进行信息化理软件必须具功:
    (1)图书信息数库集表操作实现图书信息录入删查询理工作(包括:图书号书名作者出版社出版日期单价图书类存放位置入库日期否出等)相关信息维护
    (2)阅者信息数库表操作实现阅者信息增加删日常信息维护等理工作(包括:阅卡号姓名性身份证号单位家庭住址联系电话阅者类办证日期已书数目否挂失等)相关信息维护
    (3)阅信息数库表操作实现已出图书信息理(包括:阅卡号图书号姓名书名出日期实际日期罚款金额等)相关信息维护
    22 系统面户群体
    图书理系统面中型图书馆图书理员理图书馆图书阅员通系统查阅相关信息
    23 系统功性需求
    图书理系统完整功需求:
    1阅者理
    通资格审查员办理张阅卡需说明系统面中型图书馆里资格审查通申请亲图书馆指定部门进行面面审查果审查通办理阅卡拥户名密码成注册户户登陆系统果审查未通予办理
    通审查员(注册户)拥仅拥张阅卡阅卡里包含该户信息该户图书阅活动卡进行知道该卡注销删止
    阅者理包括阅者相关信息添加修改删检索功
    2图书信息理
    图书馆理中部分馆藏图书理里涉功:
    A新书入库:方便户阅查询新图书需详细信息加记录登记入库方外阅
    B图书检索:作图书馆馆藏图书非常丰富想数万甚数十万图书中迅速找读者需图书必须提供相关图书快速检索查询功
    C图书信息修改:般说图书入库时基信息(书名作者单价出版社等)已确定程中永远会改变信息需提供相应修改功图书辅助信息(存放位置否出等)会发生变化需提供部分图书信息修改功
    D图书信息删:书籍太破旧淘汰者丢失馆藏书籍够系统信息中删
    3图书阅信息理
    功系统核心功作图书理系统功图书出涉阅图书阅者(阅卡持者)图书基信息阅者部分信息出日期等
    具体说书首先获阅者信息否权利书次检查相关书籍信息该书否外两者满足情况阅书时样需阅者信息图书信息书时计算次阅否超期果超期计算出罚款金额阅者交足额罚款书成功外历史记录提供定查询功时存储空间限制永远保存历史记录时需提供相应删记录功
    需说明操作通系统理员实现
    4户登录
    该系统户系统理员普通注册户(阅卡持者—阅者)两种系统理员拥系统功权限普通注册户够理信息检索需图书信息(然书系统理员检索阅效率太低)系统功具权限系统需种户进行理户予权限合法户户名密码户次登录系统样满足类型系统户操作需求基础提高系统安全性
    5系统基信息理
    系统基信息理图书理中涉基信息处理包括
    A阅者类设置:作注册户阅者根类设置阅图书数量限
    B图书类设置:类型图书予阅期限旦户阅超期 根图书类型罚款金额
    C系统户理:正前面述系统员必须户名密码登录系统系统中暂定两类户:系统理员普通注册户户系统权限
    24 系统非功性需求
    1界面更换
    户根爱审美求更换皮肤颜色行搭配空间行选择界面模式化模式窗口模式迷模式等等
    2系统保护
    户进入系统进行注册登录户名密码户信息进行保护中户行修改密码等
    3民交流
    户系统中公台进行工作生活方面进行交流部门领导交流意见建议种新通知
    4信息存储
    户该系统中申请邮箱进行信息存储备份

    241 户界面需求
    图书理系统需进行机交互交互程中需界面:户登录界面添加阅者界面查询阅者界面删阅者界面添加图书界面查询图书界面删图书界面书理界面书理界面查询记录界面删记录界面等
    242 软硬件环境需求
    图书理系统硬件没特殊求般计算机安装软件产品运行MicrosoftWindows系列操作系统
    243软件质量需求
    软件中型图书馆图书理系统完成关图书信息阅信息理求产品安全便操作方便进行系统升级维护工作
    三行性分析报告
    31 济行性
    济行性研究系统投入带济效益进行评估包括系统投资预算解决两问题资金性济合理性前办公PC机普 开发应理系统济成
    现计算机价格已十分低廉性长足进步系统开发
    企业工作效率带质飞跃表现方面
    1系统运行代工进行许繁杂劳动
    2 系统运行节省许资源力财力物力等方面
    3 系统运行提高企业工作效率
    4系统敏感文档更加安全等等
    方面企业身说需样系统计算机没普前信息必须通纸填写实现样浪费时间容易出错着信息时代
    项工作讲求效率事理补例外事理系统提供群系统济行
    32 操作行性
    图书理般图书基信息理阅者基信息理图书阅情况理数库模式定义中图书基信息定义表中样数增加修改删查询统计操作处理起相简单统计报表导出利OLE(象连接嵌入)项成熟技术实现印功完全根开发工具带属性灵活实现户账号权限设置理数库中建立张独立
    表实现图书理系统根户权限设置操作功系统操作简单计算机基础需培训没计算机基础需简单培训熟练系统系统运行户方面言户系统时会必关心系统部结构实现方法户说透明系统户言定位界面友操作方便功齐全原户需鼠标点击界面选项卡钮执行相应功理者言关心处理种数图书阅者相关信息输入计算机理者运行相应台程序进行处理功选择开发环境中选择开发工具实现说系统操作没问题操作行
    33 技术行性
    数库技术计算机软件领域研究中项非常重题产60年代40年数库技术迅速发展已形成较完整理系统批系统面象种新兴程序设计方法者种新程序设计规范(paradigm)基思想象类继承封装消息等基概念进行程序设计许程序开发工具VBJava Microsoft Visual Studio 2005等支持面象程序开发
    系统开发台选择前流行WindowsXP操作系统应程序开发采Microsoft公司面象Microsoft Visual C++ 60Microsoft Visual C++ 60款视化编程软件提供种方便快捷Windows应程序开发工具普通数库系统相Microsoft Visual C++ 60作数库开发台简单灵活扩充等特点非常适合初学者快速掌握开发数库理系统
    数库选择Microsoft Office Access 2007Microsoft Office Access 2007作种功强MIS系统开发工具具界面友易学易开发简单接口灵活等特点典型新代数理信息系统开发工具Microsoft数库产品FOXPRO等相Access具较独特优势提供更强数组织户理安全检查等功前理信息系统开发基数库技术面象软件开发技术技术目前已成熟广泛应领域综述事理系统开发技术行
    34 时间设备行性
    目前企业部实现数字化办公办公室线线网路覆盖情况相理想企业良硬件设施图书理系统提供坚实基础根企业系统般期运行时间开发组现力物力开发技术掌握情况求时间完成开发务具体分析
    系统开发时间4月01日6月30日期3月(开发时间)
    开发程重里程碑表
    第周
    选定次课程设计报告研究课题
    第二周
    选定次课程设计报告研究课题

    第三周
    收集资料参考文献
    第四周
    认真阅读学资料文献做出初步构思
    第五周
    制定出整系统设计构想设计思路方法
    第六周
    进行系统设计开发编写程序代码
    第七周
    系统进行测试系统调试
    第八周
    完成整系统开发进行系统维护
    第九周
    撰写课程设计报告
    第十周
    终完成系统修改文撰写表格填写
    设备方面计算机服务器网络开发工具等该系统开发提供性

    35 系统工作量
    设计图书理系统前组进行量研究搜集量资料文献调查中型图书馆图书理机制方法图书理系统设计完成时进行系统测试系统调试时组进行量数测试基础进行相应修改该图书理系统时满足户系统操作时图书信息查询阅信息查询系统采桌面型台数库段时间户数库进行操作会影响户数库维护数库高独立性
    36 文档求
    国家计算机软件产品开发文件编制指南现代软件工程理原编制标准软件技术文档
    四开发环境项目规划
    41开发环境
    系统选择Microsoft Visual C++作开发语言编程环境相Visual C++效率较高提供相优秀集成开发环境(Intergrated Developing Environment)集代码编辑调试导编译视化资源编辑功体MFC基类库Windows API函数做非常封装扩展功满足全部基功需求程序设计员需简单调MFC封装类函数Visual C++超强功享Windows环境外科手术刀称
    时系统选择Microsoft Access作数库理系统选择系统面中型图书馆需处理数量Access较目前办公动化软件中般包含需外安装软件普通计算机调试程序需联网等操作
    42项目规划理
    (1)数输入模块该模块功负责输入数该模块设计出发点应方便户操作角度出发非法数输入出现错误提示等外较固定数户拉框种选择必输入
    (2) 数查询模块户直接快速查阅印系统中图书信息(书名出版社出版时间书号阅情况等信息)做出种复杂查询户根意字段进行查询包括条件运算阅者作出准确判断提供数支持
    (3)数删修改模块修改删模块通常数库中必须模块输入数程中难免会出错时候修改删涉表时系统做出判断出提示相应处理保证数完整性致性
    (4)数统计分析模块该模块数进行统计包括分组统计二维表统计饼图统计种统计结果应该够印
    (5)报表印模块 数印系统缺模块印页面左右边距应户设置报表导入word者excel中户设定印方式
    ( 6)账号理模块实现户分组理户数访问权限功操作权限进行设置保证操作安全性严谨性保密性
    (7)日志理模块系统户名操作时间操作容记录然写数库中样知道户什时间作什操作更维护系统安全性
    421开发员安排
    次课程设计需求分析数库设计1单独完成
    王莹莹(20110514296)完成基数理功系统理完成数库备份恢复功图书信息理户设置系统退出功报告撰写
    422开发进度
    序号
    设计(文)阶段名称

    起止日期
    1
    选定次课程设计报告研究课题
    宿舍

    2
    选定次课程设计报告研究课题
    宿舍

    3
    收集资料参考文献
    图书馆

    4
    认真阅读学资料文献做出初步构思
    宿舍


    5
    制定出整系统设计构想设计思路方法
    宿舍

    6
    进行系统设计开发编写程序代码
    实验室

    7
    系统进行测试系统调试
    实验室

    8
    完成整系统开发进行系统维护
    宿舍

    9
    撰写课程设计报告
    宿舍

    10
    终完成系统修改文撰写表格填写
    宿舍

    11
    交课程设计报告系统答辩
    教学楼

    进度进行时间周左右
    五结构化分析设计
    51分析设计方法:
    1该系统分成相独立模块模块进行集中式理
    2整系统采模块化结构设计作应软件较强操作性扩展性
    3应系统设计中相独立模块数流方式相互连接模块间耦合性较低方便系统运行
    52组织结构图
    1图书理系统软件结构图

    2精化系统结构图

    53数流程图
    1图书理系统基数流图
    2图书理系统功级数流图


    3改进图书理系统功级数流图


    4改进系统数流图

    54数字典
    该图书理系统数字典:
    阅者理请求[添加阅者|修改阅者|删阅者|检索阅者]
    图书理请求[添加图书|修改图书信息|删图书信息|检索图书]
    图书理请求图书阅理请求
    图书阅理请求[添加阅信息|修改阅信息|删阅信息|检索阅信息]
    理信息请求[检索信息|修改信息]
    基信息维护请求[阅者类信息维护|图书类信息维护|登录户维护]
    阅者类信息维护[阅者类信息添加|阅者类信息修改|阅者类信息删|阅者类信息检索]
    图书类信息维护[图书类信息添加|图书类信息修改|图书类信息删|图书类信息检索]
    登录户维护[户信息添加|户信息修改|户信息删|户信息检索]
    时间年+月+日
    阅卡信息阅卡号+姓名+性+身份证号+单位+家庭住址+联系电话+阅者类+办证日期+已书数目+否挂失
    阅者阅卡信息
    读者阅者
    阅卡号8(数字)8
    性(男|女)
    身份证号18(数字)18
    联系电话(区号)+8(数字)8
    区号4(数字)4
    阅者类[级读者|二级读者|三级读者]
    读者类阅者类
    描述:系统中级读者10级读者5三级度者3
    办证日期年+月+日
    已书数目[0|1|2|3|4|5|6|7|8|9|10]
    否挂失[挂失|没挂失]
    挂失1
    没挂失0
    图书信息图书号+书名+作者+出版社+出版日期+单价+图书类+存放位置+入库日期+否出
    图书图书信息
    图书号7(数字)7+书副编号
    书副编号[0|1|2|3|4|5|6|7|8|9]
    出版日期年+月+日
    图书类[类图书|二类图书|三类图书|四类图书|五类图书|六类图书]
    入库日期年+月+日
    否出[出|未出]
    出1
    未出0
    阅信息阅卡号+姓名+图书号+书名+出日期+实际日期+罚款金额
    阅信息
    出日期年+月+日
    实际日期年+月+日
    系统基信息[阅者类信息|图书类信息|系统户]
    阅者类信息阅者类+书数量
    阅者类[级读者|二级读者|三级读者]
    书数量[1|2|3|4|5|6|7|8|9]单位:
    图书类信息图书类+天数+图书超期天罚款金额
    图书类[类图书|二类图书|三类图书|四类图书|五类图书|六类图书]
    天数[10|20|30|40|50|60|70] 单位:天
    图书超期天罚款金额[01|02] 单位:元
    系统户户名+密码+否理员
    户名1(字母|数字)16
    密码1(字母|数字)8
    否理员[理员|理员]
    理员1
    理员0
    六面象分析设计
    61分析设计方法
    系统采UML统建模语言系统进行面象分析设计UML种定义良易表达功强普遍结构化建模语言融入软件工程领域新思想新方法新技术面象图形方式描述系统
    62况模型

    63活动图

    64序图

    七数库分析设计
    71数库环境说明
    图书理系统数库采Microsoft Office Access2007
    数库种存储数数进行操作工具数库作组织表达信息简言数库信息集合计算机数库分两类非关系数库(flatfile)关系数库(relational)关系数库中包含数表信息数库含部分术语象记录域等数库间关系指明两库间享关键字值连接指种虚拟表种表户求相互关联表中获取信息时建立关键字段相互连接表中查找匹配记录更高级连接形式称连接种连接指表连接字段记录中重复数组合字段数库中三种类型关键字关键字组合关键字外关键字表中关键字类型描述库表示什数库中库建立关系
    Microsoft Access2007Windows环境非常流行桌面型数库理系统Microsoft Access需编写代码需通直观视化操作完成部分数理务Microsoft Access数库中包括许组成数库基素素存储信息表显示机交互界面窗体效检索数查询信息输出载体报表提高
    应效率宏功强模块工具等仅通ODBC数库相连实现数交换享WordExcel等办公软件进行数交换享通象链接嵌入技术数库中嵌入链接声音图等媒体数
    72数库命名标准规范
    1数库命名:全部英文字母组成
    2数库表命名表义名(缩写)
    英文单词首字母

    73数库逻辑设计
    731逻辑设计步骤
    系统逻辑设计事理系统数库概念结构转化Microsoft Office Access2007数库系统支持实际数模型:数库逻辑结构采底概念设计系统建立六数表阅者表图书表阅表阅者类表图书类表系统户表
    732逻辑设计图
    1图书理系统ER图

    2图书理系统详细ER图

    74数库物理设计
    741数库物理设计步骤
    首先建立表
    然表中输入数表信息
    1阅表


    2阅者表


    3阅者类表


    4 图书表

    5 图书类表


    6 系统户表

    742表视图汇总
    视图表名
    英文名
    类型
    说明
    阅者表
    Borrower
    基表
    存储阅者信息
    图书表
    Book
    基表
    存储图书信息
    阅表
    BorrLend
    基表
    存储阅图书信息
    阅者类表
    BorrowerType
    基表
    存储阅者普通户理员
    图书类表
    BookType
    基表
    图书类阅天数
    系统户表
    User
    基表
    户名密码否理员

    743表视图设计详解
    1阅者表
    字段中文名称
    英文名称
    否关键字
    阅卡号
    cardnum

    姓名
    cardName


    Sex

    身份证号
    Personnum

    单位
    Workplace


    家庭住址
    Address

    联系电话
    Phone

    阅者类
    Type

    办证日期
    Signdate

    已书数目
    Borrowernum

    否挂失
    Loss





    2图书表
    字段中文名称
    英文名称
    否关键字
    图书号
    booknum

    书名
    Bookname

    作者
    Author

    出版社
    Press

    出版日期
    Pressdata

    单价
    Price

    图书类
    Type

    存放位置
    Site

    入库日期
    Regdate

    否出
    Islend


    3阅表
    字段中文名称
    英文名称
    否关键字
    阅卡号
    Bl_cardnum

    图书号
    Bl_booknum

    姓名
    Bl_cardname

    书名
    Bl_bookname

    出日期
    Borrowday

    实际日期
    Returnday

    罚款金额
    Fineminey


    4阅者类表
    字段中文名称
    英文名称
    否关键字
    阅者类
    type

    书数量
    Number


    5图书类表
    字段中文名称
    英文名称
    否关键字
    图书类
    type

    天数
    Daynum

    图书超期天罚款金额
    Punmoney


    7 系统户表
    字段中文名称
    英文名称
    否关键字
    户名
    user

    密码
    Passed

    否理员
    Isadmin


    八 机界面设计
    81界面设计原
    简单易简洁明兼容性标准规范
    82界面设计
    界面设计采标准系统登录样式次:户名密码选项确定取消等系统户拥相似界面界面包含基享功图书馆介绍等
    83子界面设计
    系统中基功外子系统非享功实现均采子界面设计实现查询添加图书信息录入图书信息密码初始化修改密码信息显示删图书注销阅者等




    1户登录界面





    2添加图书界面

    3添加阅者界面


    4删图书界面

    5 删阅者界面


    6 查询图书界面

    7查询阅者界面

    九项目系统实现
    91 实现环境技术
    visual studio环境启动系统出现户登录窗体户身份输入正确户名密码进入系统户名者密码错误连续达三次者便继续登录
    设置三RadioButton控件供户登录时选择户权限提高数库安全性
    两文框(textbox)输入户名密码两button钮确定者取消登录
    点击关闭钮时出提示信息真退出?确定否真退出系统
    92 核心模块实现技术代码
    1户登录模块
    功:模块功实现户身份鉴户通表单提供户名密码信息系统根户提供登录信息户进行身份查询鉴
    输入:户名密码验证码
    处理:
    (1)输入户登录信息
    页面提供表单出输入户户名密码信息验证码点击登录钮提交表单信息身份验证页面
    (2)users表单获取输入数户单击登录钮登录信息form表单提交check asp进行处理
    (3)户身份进行验证输入数户名查询条件创建数集查输入户名否存果存继续检验密码否正确密码户名正确方进入办公理系统页面果户名存密码正确验证码正确出登录失败提示框返回首页重新登录
    核心代码:
    void CloginDlgOnOk()
    {
    CUserSet recordset创建系统户记录集名字CUserSet
    CString strSQL
    ClibraryApp * ptheApp(ClibraryApp *)AfxGetApp()
    UpdateData(TRUE)
    检查户否输入
    if(m_strUserIsempty())果户没输入
    {
    AfxMessageBox(请输入户名)
    m_strUserSetFocus()
    return
    }
    if(m_strPassIsEmpty())
    {
    AfxMessageBox(请输入密码)
    m_strPassSetFocus()
    return
    }
    根控件中读出户名密码台数库中查找
    strSQLFormat(select * from user where users and passwdsm_strUserm_strPass)
    if(recordsetOpen(AFX_DB_USE_DEFAULTstrSQL))果没开数库
    {
    MessageBox(没开指定数库数库错误MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)果没找指定户
    {
    recordsetclose()
    MessageBox(户名密码错误请重新输入MB_OK)
    m_strUser
    m_strPass
    m_strUserSetFocus()
    UpdataData(False)
    }
    else
    {
    ptheApp>m_IsAdminrecordsetm_isadimin
    recordsetclose()
    CDialogOnOk()
    }
    }
    2添加阅者模块
    正前面详细设计介绍户点击添加阅者命令时首先会显示话框里供填写阅者信息户填写完成点击确定系统立刻户填入信息写入数库首先验证阅卡号合理性系统阅卡号编码方式系统方便起见卡号否零进行验证卡号零合法阅卡号果户卡号编码求进行添加然查找数库验证卡号唯性新加入卡号数库中卡号没重复添加外需说明系统中
    阅者办证日期手工输入通读取系统时间获具体代码
    {
    CDfalongOnInitDialog()
    CBorrowerTypeSet recordset
    CString strSQL
    UpdateData(TRUE)
    strSQLselect * from BorrowerType
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开阅者类表MB_OK)
    return
    }
    while(recordsetIsEof())
    {
    dlgm_sTypeAddString(recordsetm_type)
    recordsetMoveNext()
    }
    recordsetClose()
    return true
    }

    {
    CAddDlg dlg
    if(dlgDoModalIDOK)
    {
    if(dlgm_nID<0)
    {
    MessageBox(户阅卡号必须0MB_OK)
    return
    }
    if(m_BorrowerSetIsOpen()true)
    m_BorrowerSetclose()
    面阅卡号原表中否已记录
    CString BFilter
    BFilterFormat(阅卡号ddlgm_nID)
    m_BorrowerSetm_strFilterBFilter
    m_BorrowerSetopen()
    if(m_BorrowerSetGetRecordCount()>0)确实已卡号突
    {
    MessageBox(阅卡号已存请重新输入MB_OK)
    m_BorrowerSetclose()
    return
    }
    m_BorrowerSetclose()
    m_BorrowerSetm_strFilter
    m_BorrowerSetopen()
    m_BorrowerSetMovLast()
    添加阅卡记录
    m_BorrowerSetAddNew()
    m_BorrowerSetm_CardNumdlgm_nID
    m_BorrowerSetm_CardNamedlgm_sName
    m_BorrowerSetm_sexdlgm_cSex
    m_BorrowerSetm_personNumdlgm_nperID
    m_BorrowerSetm_workplacedlgm_sWplace
    m_BorrowerSetm_addressdlgm_sAddress
    m_BorrowerSetm_phonedlgm_nPhone
    m_BorrowerSetm_typedlgm_sType
    int yeardlgm_oleDateGetYear()
    int montedlgm_oleDateGetMonth()
    int datedlgm_oleDateGetdate()
    m_BorrowerSetm_signdateCTime(yearmouthday000)
    m_BorrowerSetm_BorrowerNum0
    m_BorrowerSetm_loss0
    m_BorrowerSetUpdate()
    m_BorrowerSetclose()
    CDialogOnOk()
    }
    }

    3查询阅者模块

    {
    CDfalongOnInitDialog()
    设置显示阅卡信息类表表头
    m_ctrListInsertColumn(0阅卡号)
    m_ctrListInsertColumn(1姓名)
    m_ctrListInsertColumn(2性)
    m_ctrListInsertColumn(3身份证号)
    m_ctrListInsertColumn(4单位)
    m_ctrListInsertColumn(5家庭住址)
    m_ctrListInsertColumn(6联系电话)
    m_ctrListInsertColumn(7阅者类)
    m_ctrListInsertColumn(8办证日期)
    m_ctrListInsertColumn(9已书数目)
    m_ctrListInsertColumn(10否挂失)
    设置没列宽度
    m_ctrListSetColumnWidth(0100)
    m_ctrListSetColumnWidth(1130)
    m_ctrListSetColumnWidth(280)
    m_ctrListSetColumnWidth(3100)
    m_ctrListSetColumnWidth(4200)
    m_ctrListSetColumnWidth(5160)
    m_ctrListSetColumnWidth(6100)
    m_ctrListSetColumnWidth(7130)
    m_ctrListSetColumnWidth(8120)
    m_ctrListSetColumnWidth(930)
    m_ctrListSetColumnWidth(1030)
    阅者类表里信息填充查询控件
    CBorrowerTypeSet recordset
    CString strSQL
    UpdateData(TRUE)
    strSQLselect * from BorrowerType
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开阅者类表MB_OK)
    return
    }
    while(recordsetIsEof())
    {
    dlgm_sTypeAddString(recordsetm_type)
    recordsetMoveNext()
    }
    recordsetClose()
    return true
    }

    {
    m_ctrListDeleteAllItems()
    m_ctrListSetRedraw(FALSE)
    UpdateData(TRUE)
    构造根户输入条件SQL语句
    CString strSQL
    if(m_strCardNumIsEmpty()&&m_strTypeIsEmpty())
    {
    strSQLselect * from borrower
    }
    else if(m_strTypeIsEmpty())
    {
    strSQLFormat(select * from borrower where cardnum's'm_strCardNum)
    }
    else if(m_strCardNumIsEmpty())
    {
    strSQLFormat(select * from borrower where type's'm_strCardType)
    }
    else
    {
    strSQLFormat(select * from borrower where type's' and cardnum's'm_strCardTypem_strCardNum)
    }
    if(m_BorrowerSetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开相应数库MB_OK)
    return
    }
    满足条件阅者信息显示列表控件中
    int i0
    CString strTime
    while(m_BorrowerSetIsEof())
    {
    m_ctrListInsterItem(im_BorrowerSetm_CardNum)
    m_ctrListSetItemText(i1m_BorrowerSetm_CardName)
    m_ctrListSetItemText(i2m_BorrowerSetm_sex)
    m_ctrListSetItemText(i3m_BorrowerSetm_personNum)
    m_ctrListSetItemText(i4m_BorrowerSetm_workplace)
    m_ctrListSetItemText(i5m_BorrowerSetm_address)
    m_ctrListSetItemText(i6m_BorrowerSetm_phone)
    m_ctrListSetItemText(i7m_BorrowerSetm_type)
    strTimeFormat(dddm_BorrowerSetm_signdateGetYear()m_BorrowerSetm_signdateGetMouth()m_BorrowerSetm_signdateGetDay())
    m_ctrListSetItemText(i8strTime)
    m_ctrListSetItemText(i9m_BorrowerSetm_BorrowerNum)
    m_ctrListSetItemText(i10m_BorrowerSetm_loss)
    i++
    }
    m_BorrowerSetclose()
    m_ctrListsetRedraw(TRUE)
    }

    4删阅者模块

    {
    UpdateData()
    获取户需删记录号
    int im_ctrListGetSelectionMark()
    CString strSQL
    strSQLFormat(select * from Borrower where cardnum's'm_ctrListGetItemText(i0))
    if(m_BorrowerSetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开相应数库MB_OK)
    return
    }
    检查该阅者否没书
    if(m_BorrowerSetborrowerNum0)
    {
    MessageBox(阅者未图书删MB_OK)
    m_BorrowerSetclose()
    return
    }
    if(MessageBox(否真确定删条记录?MB_OKCANCEL)IDOK)

    {
    m_BorrowerSetDelete()
    m_BorrowerSetclose()
    MessageBox(记录删成功MB_OK)
    m_ctrListDeleteItem()
    UpdateData(FALSE)
    }
    else
    {
    m_BorrowerSetclose()
    return
    }
    }

    5修改阅者模块

    {
    首先获取户选择记录号
    int im_ctrListGetSelectionMark()
    if(i<0)
    {
    MessageBox(请选择条记录进行修改MB_OK)
    return
    }
    户选中记录填充数编辑框容
    CEditDlg dlg
    dlgm_nIDm_ctrListGetItemText(i0)
    dlgm_sNamem_ctrListGetItemText(i1)
    dlgm_nSexm_ctrListGetItemText(i2)
    dlgm_nPerIDm_ctrListGetItemText(i3)
    dlgm_sWplacem_ctrListGetItemText(i4)
    dlgm_sAddressm_ctrListGetItemText(i5)
    dlgm_nPhonem_ctrListGetItemText(i6)
    dlgm_sTypem_ctrListGetItemText(i7)
    dlgm_sSigndatem_ctrListGetItemText(i8)
    dlgm_nBorrNumm_ctrListGetItemText(i9)
    dlgm_sLossm_ctrListGetItemText(i10)
    果户点击ok
    if(dlgDoModal()IDOK)
    {
    CString strSQL
    strSQLFormat(select * from Borrower where cardnum's'm_ctrListGetItemText(i0))
    if(m_BorrowerSetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开阅者表MB_OK)
    return
    }

    m_BorrowerSetedit()
    m_BorrowerSetm_workplacedlgm_sWplace
    m_BorrowerSetm_addressdlgm_sAddress
    m_BorrowerSetm_phonedlgm_nPhone
    m_BorrowerSetm_typedlgm_sType
    m_BorrowerSetm_borrowerdNumdlgm_nBorrNum
    m_BorrowerSetm_lossdlgm_sLoss
    m_BorrowerSetupdate()
    m_BorrowerSetclose()
    Refreshdata()
    }
    }

    6 添加图书

    {
    面代码户点击确定钮代码
    UpdateData()
    检查输入项否空
    if(m_strBookNumIsEmpty())
    {
    MessageBox(图书号空MB_OK)
    return
    }
    if(m_strBookNameIsEmpty())
    {
    MessageBox(图书名空MB_OK)
    return
    }
    if(m_strBookAuthorIsEmpty())
    {
    MessageBox(作者名空MB_OK)
    return
    }
    if(m_strTypeIsEmpty())
    {
    MessageBox(图书类空MB_OK)
    return
    }
    CBookSet recordset
    CString strSQL
    strSQLFormat(select * from Book where booknum's'm_strBookNum)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开图书表MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(图书号已存请重新输入MB_OK)
    recordsetClose()
    return
    }
    recordsetClose()
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE))
    {
    MessageBox(法开图书表MB_OK)
    return
    }
    具体添加图书记录
    recordsetAddNew()
    recordsetm_bookNumm_strBookNum
    recordsetm_bookNamem_strBookName
    recordsetm_authorm_strAuthor
    recordsetm_pressm_strPress
    recordsetm_pressdatem_tmPressDate
    recordsetm_pricem_strPrice
    recordsetm_typem_strType
    recordsetm_sitem_strSite
    recordsetm_regdatem_tmRegDate
    recordsetm_islendm_strIslend
    recordsetUpdate()
    recordsetClose()
    if(MessageBox(已成功输入该图书否继续输入图书?MB_OKCANCEL)IDOK)
    return
    CDialogOnOk
    }

    7 查询图书

    {
    首先清空结果列表框
    m_ctrListDeleteAllItems()
    m_ctrSetRedraw(FALSE)
    UpdateData(TRUE)
    构造根户输入条件sQl语句
    CString strSQL
    if(m_strBookNumIsEmpty()&&m_strTypeIsEmpty())
    {
    strSQLselect * from book
    }
    else if(m_strTypeIsEmpty())
    {
    strSQLFormat(select * from book where booknum's'm_strBookNum)
    }
    else
    {
    strSQLFormat(select * from book where type's' and booknum's'm_strTypem_strBookNum)
    }
    if(m_BorrowerSetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开相应数库MB_OK)
    return
    }
    int i0
    CString strTime
    while(m_recordsetIsEof())
    {
    m_ctrListInsertItem(im_recordsetm_bookNum)
    m_ctrListSetItemText(i1m_recordsetm_bookName)
    m_ctrListSetItemText(i2m_recordsetm_author)
    m_ctrListSetItemText(i3m_recordsetm_press)
    strTimeFormat(dddm_recordsetm_pressdateGetYear()m_recordsetm_pressdateGetMouth()m_recordsetm_pressdateGetDay())
    m_ctrListSetItemText(i4strTime)
    m_ctrListSetItemText(i5m_recordsetm_price)
    m_ctrListSetItemText(i6m_recordsetm_type)
    m_ctrListSetItemText(i7m_recordsetm_site)
    strTimeFormat(dddm_recordsetm_regdateGetYear()m_recordsetm_regdateGetMouth()m_recordsetm_regdateGetDay())
    m_ctrListSetItemText(i8strTime)
    m_ctrListSetItemText(i9m_recordsetislend)
    i++
    m_recordsetMoveNext
    }
    m_recordsetClose()
    m_ctrListseetRedraw(TURE)
    }

    8删图书模块

    {
    首先获取户选择记录号
    int im_ctrListGetSelectionMark()
    if(i<0)
    {
    MessageBox(请选择条记录进行删MB_OK)
    return
    }
    CString strSQL
    strSQLFormat(select * from book where booknum's'm_ctrListGetItemText(i0))
    if(m_recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开图书表MB_OK)
    return
    }
    检查图书否出果出删该记录
    if(m_recordsetislend1)
    {
    MessageBox(图书正阅删该图书MB_OK)
    m_recordsetClose()
    return
    }
    次询问该户否真删记录
    if(MessageBox(否真确定删条记录MB_OKCANCELIDOK))
    {
    m_recordsetDelete()
    m_recordsetClose()
    MessageBox(记录删成功MB_OK)
    m_recordsetDeleteItem(i)
    UpdateData(FALSE)
    }
    else
    {
    m_recordsetClose()
    return
    }
    }

    9修改图书模块

    户点击修改钮代码
    {
    首先获取户选择记录号
    int im_ctrListGetSelectionMark()
    if(i<0)
    {
    MessageBox(请选择条记录进行修改MB_OK)
    return
    }
    CString strSQL
    dlgm_strSitem_ctrListGetItemText(i7)
    if(dlgDoModal()IDOK)
    {
    CString strSQL
    strSQLFormat(select * from book where booknum's'm_ctrListGetItemText(i0))
    if(m_recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开图书表MB_OK)
    return
    }
    }
    m_recordsetedit
    m_recordsetmsitedlgm_strSite
    m_recordsetupdate()
    m_recordsetClose()
    Refreshdata()
    }

    10书理模块
    阅卡信息显示
    {
    书理中读者信息显示
    UpdateData()
    CBorrowerSet recordset
    CString strSQL
    strSQLFormat(select * from Borrower where cardnum's'm_strCarNum)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开数库MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(卡号没应记录MB_OK)
    recordsetClose()
    return
    }
    if(recordsetm_loss1)
    {
    m_strLoss已挂失
    MessageBox(阅卡已挂失书MB_OK)
    recordsetClose()
    return
    }
    m_strNamerecordsetm_cardName
    m_strTyperecordsetm_type
    m_mBorrNumrecordsetm_borrowerdNum
    recordsetClose()
    根阅者类型获阅卡阅书数目
    CBorrowerTypeSetBorr_typeset
    strSQLFormat(select * from BorrowerType where type's'm_strType)
    if(Borr_typesetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(Borr_typesetGetRecordCount()0)
    {
    MessageBox(目前读者类型空请输入读者类型MB_OK)
    Borr_typesetClose()
    return
    }
    m_mMavnumberBorr_typesetm_number
    Borr_typesetClose()
    m+nUnBorrm_mMavnumberm_nBorrNum
    UpdateData(FALSE)
    }
    预图书信息显示
    {
    UpdateData()
    根图书号获整图书记录信息
    CBookSet bookset
    CString strSQL
    strSQLFormat(select * from Book where booknum's'm_strBookNum)
    if(booksetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(booksetGetRecordCount()0)
    {
    MessageBox(图书号没应记录请重新输入MB_OK)
    booksetClose()
    return
    }
    if(m_IsLend)
    {
    MessageBox(书籍已出MB_OK)
    booksetClose()
    return
    }
    m+strBookNamebooksetm_bookName
    m+strBookTypebooksetm_booktype
    根图书类型查找显示该图书阅天数
    CBookTypeSet booktypeset
    strSQLFormat(select * from Booktype where type's'm_strBookType)
    if(booktypesetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(booktypesetGetRecordCount()0)
    {
    MessageBox(图书号没应记录请重新输入MB_OK)
    booksetClose()
    return
    }
    m_nDaynumbooktypesetm_daynum
    booktypesetClose()
    UpdateData(FALSE)
    }
    具体书处理
    {
    if(m_nUnBorr0)
    {
    MessageBox(阅者已满书MB_OK)
    return
    }
    修改应阅者记录
    CBorrowerSet recordset
    CString strSQL
    strSQLFormat(select * from Borrower where cardnum's'm_strCardNum)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(卡号没应记录请重新输入MB_OK)
    recordsetClose()
    return
    }
    recordsetedit()
    recordsetm_borrowerdNumrecordsetm_borrowerdNum+1
    recordsetUpdate()
    recordsetClose()
    修改应图书信息记录
    CBookSet bookset
    CString strSQL
    strSQLFormat(select * from Book where booknum's'm_strBookNum)
    if(booksetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(booksetGetRecordCount()0)
    {
    MessageBox(图书号没应记录请重新输入MB_OK)
    booksetClose()
    return
    }
    booksetedit()
    booksetm_IsLend1
    booksetUpdate()
    booksetClose()
    增加条阅记录
    CBorrLendSet borrlendset
    CString strSQL
    strSQLFormat(select * from BorrLend)
    if(borrlendsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    borrlendsetAddNew()
    borrlendsetm_bl_cardnumm_strCardNum
    borrlendsetm_bl_booknumm_strBookNum
    borrlendsetm_bl_cardnamem_strName
    borrlendsetm_bl_booknamem_strBookName
    borrlendsetm_borrowdayCTimeGetCurrentTime()
    borrlendsetm_finemoney0
    borrlendsetUpdate()
    borrlendsetClose()
    UpdateData(FALSE)
    Refreshdata()
    更新界面显示该阅卡已解约记录信息
    }

    函数具体实现
    Refreshdata()
    {
    第步先清空列表框
    m_ctrListDeleteAllItems()
    m_ctrListSetRedraw(FALSE)
    UpdateData(TRUE)
    阅者信息已显示列表框中
    里显示尚未图书信息已予显示
    CString strSQL
    strSQLFormat(select * from BorrLend where bl_cardnum's' and returnday is nullm_strCardNum)
    if(borrlendsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    int i0
    CString st_beginst_end
    CTime time_temp
    while(m_BorrLendSetIsEof())
    {
    m_ctrListInsterItem(im_BorrLendSetm_bl_booknum)
    m_ctrListSetItemText(i1m_BorrLendSetm_bl_bookname)
    st_beginFormat(dddm_BorrLendSetm_borrowdayGetYear()m_BorrLendSetm_borrowdayGetMonth()m_BorrLendSetm_borrowdayGetDay())
    m_ctrListSetItemText(i2st_begin)
    time_tempm_BorrLendSetm_borrowday+m_nDaynum*24*3600
    st_endFormat(dddtime_tempm_borrowdayGetYear()time_tempm_borrowdayGetMonth()time_tempm_borrowdayGetDay())
    m_ctrListSetItemText(i2st_end)
    i++
    m_BorrLendSetMoveNext()
    }
    m_BorrLendSetClose()
    m_ctrListsetRedraw(TURE)
    }

    11书理模块
    {
    根图书号查找显示相关信息
    UpdateData()
    CString strSQL
    strSQlFormat(select * from BorrLend where bl_booknum's' and returnday is nullm_strblbnum)
    if(m_borrlendsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(m_borrlendsetGetRecordCount()0)
    {
    MessageBox(图书没出请重新输入MB_OK)
    m_borrlendsetClose()
    return
    }
    显示相应信息
    m_strblbnamem_borrlendsetm_bl_bookname
    m_strblcnumm_borrlendsetm_bl_cardname
    m_strblcnamem_borrlendsetm_bl_cardname
    m_tmblbdatem_borrlendsetm_bl_borrowday
    CTime should_returnm_BorrLendsetm_borrowday+m_nDaynum*24*3600
    CTime return_dayCTimeGetCurrentTime()
    CString strDay
    m_strredaystrDayFormat(dddreturn_daym_borrowdayGetYear()return_daym_borrowdayGetMonth()return_daym_borrowdayGetDay())
    if(return_day>should_return)
    m_nPunDay(int)(return_dayshould_return)GetDays()
    else
    m_nPunDay0
    根书名书类
    CBookSet book
    CString strSQL
    strSQlFormat(select * from Book where bl_booknum's'm_strblbnum)
    if(bookopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    查找应书类天罚款额度
    CBookTypeSet rs
    CString strSQL
    strSQlFormat(select * from BookType where type's'booktype)
    if(rsopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    bookClose()
    rsClose()
    根超期天数天罚款额度计算总罚款金额显示相应控件
    m_ftotalPun(float)(m_nPunDay*(atof(rspunmoney)))
    m_borrlendsetClose()
    UpdateData(FALSE)
    设置钮点击状态
    m_bntReturnEnableWindow(TURE)
    }
    钮点击实现代码
    {
    UpdateData()
    CString strSQL
    CBookSet bkset
    strSQlFormat(select * from Book where booknum's'm_strblbnum)
    if(bksetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    bksetedit()
    bksetm_islend0
    bksetUpdate()
    bksetClose()
    CBorrowerSet borrset
    strSQlFormat(select * from Borrower where cardnum's'm_strblcnum)
    if(borrsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    borrsetedit()
    borrsetm_borrowerNumborrsetm_borrowerNum1
    borrsetUpdate()
    borrsetClose()
    实际日期刚刚计算出总罚款金额写入表相应字段
    strSQlFormat(select * from BorrLend where bl_booknum's' and returnday is nullm_strblbnum)
    if(m_borrlendsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    m_borrlendsetedit()
    m_borrlendsetm_returndayCTimeGetCurrentTime()
    char buffer[7[
    gcvt(m_ftotalPun7buffer)
    m_borrlendsetm_finemoneybuffer
    m_borrlendsetUpdate()
    m_borrlendsetClose()
    MessageBox(已成功书MB_OK)
    返回书界面界面控件清空
    OnButtonClear()
    }
    果户想放弃次操作点击取消钮实现代码
    {
    代码控件清空便次输入
    m_strblbnum_T
    m_strblbname_T
    m_strblcnum_T
    m_strblcname_T
    m_tmbibdatem_borrlendsetm_borrowday
    m_strreday_T
    m_nPunDay0
    m_ftotalPun00
    设置钮点击状态
    m_bntReturnEnableWindow(FALSE)
    }
    12查询记录模块
    点击查询钮实现代码
    {
    UpdateData(TRUE)
    CString strSQL
    if(m_strborrnumIsEmpty()&&m_strborbnumIsEmpty())
    {
    strSQLselect * from BorrLend
    }
    else if(m_strborrnumIsEmpty())
    {
    strSQLFormat(select * from BorrLend where bl_booknum's'm_strborbnum)
    }
    else
    {
    strSQLFormat(select * from BorrLend where bl_cardnum's' and bl_booknum's'm_strborrnumm_strborbnum)
    }
    if(m_brsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    int i0
    CString strTime
    while(m_m_brsetIsEof())
    {
    m_ctrListInsertItem(im_brsetm_bl_cardnum)
    m_ctrListSetItemText(i1m_brsetm_bl_booknum)
    m_ctrListSetItemText(i2m_brsetm_bl_cardname)
    m_ctrListSetItemText(i3m_brsetm_bl_bookname)
    strTimeFormat(dddm_brsetm_borrowdayGetYear()m_brsetm_borrowdayGetMonth()m_brsetm_borrowdayGetDay())
    m_ctrListSetItemText(i4strTime)
    strTimeFormat(dddm_brsetreturndayGetYear()m_brsetreturndayGetMonth()m_brsetreturndayGetDay())
    m_ctrListSetItemText(i5strTime)
    m_ctrListSetItemText(i6m_brsetm_finemoney)
    i++
    m_brsetMoveNext()
    }
    m_brsetClose()
    m_ctrListsetRedraw(TURE)
    }

    13删记录模块
    {
    首先获户选择记录号
    int im_ctrListGetSelectionMark()
    if(i>0)
    {
    MessageBox(请选择某条记录进行删MB_OK)
    return
    }
    检查删记录阅卡号阅卡表中否记录
    果说明户正常阅记录删
    CString strSQL
    strSQLFormat(select * from Borrower where booknum's'm_strborrnum)
    if(borropen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(borrGetRecordCount()0)
    {
    MessageBox(阅卡删应记录MB_OK)
    borrClose()
    return
    }
    else
    {
    CString strSQL
    strSQLFormat(selece * from BorrLend where bl_cardnum's' and bl_booknum's'm_ctrListGetItemText(i0)m_ctrListGetItemText(i2))
    if(borrlendopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开应数库MB_OK)
    return
    }
    if(MessageBox(否真删条记录MB_OKCANCEL)IDOK)
    {
    borrlendDelete()
    borrlendClose()
    MessageBox(记录删成功MB_OK)
    m_ctrListDeleteItem(i)
    UpdateData(FALSE)
    }
    else
    {
    borrlendClose()
    return
    }
    }
    }
    14添加新户模块

    模块理员
    {
    面代码户点击提交钮相应代码
    UpdateData()
    检查输入项否空
    if(m_strUseNumIsEmpty())
    {
    MessageBox(户名空MB_OK)
    return
    }
    if(m_strPasswdIsEmpty())
    {
    MessageBox(密码空MB_OK)
    return
    }
    if(m_strPasswdm_strRePasswd)
    {
    MessageBox(两次密码样请重新输入密码MB_OK)
    m_strPasswd
    m_strRePasswd
    m_ctrPasswdSetFocus()
    UpdateData(FALSE)
    return
    }
    CUserSet recordset
    CString strSQL
    strSQLFormat(select * from ser where usename's'm_strUseName)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开系统户表MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(户名已存请重新输入MB_OK)
    recordsetClose()
    return
    }
    recordsetClose()
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开系统户表MB_OK)
    return
    }
    具体添加系统户
    recordsetAddNew()
    recordsetm_usenamem_strUsename
    recordsetm_Passwdm_strPasswd
    recordsetm_isadminm_bIsAdmin
    recordsetUpdate()
    MessageBox(已成功输入该户请记住户名密码MB_OKCANCEL)
    recordsetClose()
    Refreshdata()
    }

    15查询户模块

    {
    查询户
    UpdateData(TRUE)
    CUserSet recordset
    CString strSQL
    strSQLFormat(select * from ser where usename's'm_strDelName)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开系统户表MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(系统中没该户请重新输入户名MB_OK)
    recordsetClose()
    return
    }
    显示户密码理员
    {
    m_strSearPasswdrecordsetm_Psaawd
    m_strSearIsAdminm_recordsetm_isadmin
    recordsetClose()
    UpdateData(FALSE)
    }
    }

    16删户模块

    {
    户点击删钮
    UpdateData(TRUE)
    CUserSet recordset
    CString strSQL
    strSQLFormat(select * from ser where usename's'm_strDelName)
    if(recordsetopen(AFX_DB_USE_DEFAULT_TYPE)strSQL)
    {
    MessageBox(法开系统户表MB_OK)
    return
    }
    if(recordsetGetRecordCount()0)
    {
    MessageBox(系统中没该户请重新输入户名MB_OK)
    recordsetClose()
    return
    }
    if(MessageBox(否真确定删条记录MB_OKCANCELIDOK))
    {
    recordsetDelete()
    recordsetClose()
    MessageBox(记录删成功MB_OK)
    UpdateData(FALSE)
    }
    else
    {
    recordsetClose()
    return
    }
    }

    17修改户模块

    {
    修改户密码实现代码
    recordsetedit()
    recordsetm_strUpNamem_strUpName
    recordsetm_passwdstrUpPasswd
    recordsetm_isadminm_bUpIsAdmin
    recordsetupdate()
    MessageBox(户记录修改成功请记住户名密码MB_OK)
    recordsetClose()
    }

    十软件测试分析报告
    101测试范围容
    测试范围

    简说明
    系统登陆验证
    验证户身份进行权限控制
    功性测试
    信息检索功测试
    测试数库检索代码健壮性
    功性测试
    图书理功测试
    测试系统实性方便性
    功性测试
    数完整性测试
    测试登记失败时数完整性控制
    功性测试
    核心代码复检
    检验核心代码质量
    逻辑检错性测试
    102测试方法
    1系统测试方法
    针系统模块功集中数库处理户交互界面设计系统部没涉复杂算法数结构制定测试方法注重测试功黑盒测试果需话重模块辅白盒测试保证系统正确性
    2系统测试步骤
    先进行单元测试进行集成测试遵循底策略测试例考虑合法非法测试情况
    103测试程
    1031 系统测试
    根前面需求分析功描述系统系统登录阅者理图书理阅理基信息理五部分系统测试围绕着模块展开需说明前面编码中系统具更交互性述模块里设置相应出错处理出错处理部分出相应测试部分测试放子模块里
    测试1:系统登录测试
    测试系统登录界面否正确合理合法户否够转入正确界面非法户否进行正确处理
    测试 2:阅者理测试
    根前面详细设计知该模块四子模块需四子模块先分进行单元测试测试添加阅者修改阅者删阅者查询阅者然进行集成测试
    测试21 添加阅者测试
    首先需测试户填写正确阅者信息否成功提交测试户提交含错误信息时否拒绝正确指出出错位置
    测试22 修改阅者测试
    首先需测试允许修改字段修改允许修改字段修改允许修改字段先正确修改值否正确提交错误修改值否拒绝出正确提示
    测试23 删阅者测试
    测试户确定删该记录否真删户放弃删时该记录否
    测试24 查询阅者测试
    首先需测试输入合法条件时否出满足条件阅者次需测试输入非法条件时否出正确提示
    需说明修改阅者测试删阅者测试中先调查询阅者找指定阅者修改删中予测试放查询中测试面测试中类似重复说明
    测试3:图书理测试
    根前面详细设计知该模块四子模块需四子模块先分进行单元测试测试添加图书修改图书删图书查询图书然进行集成测试
    测试31 添加图书测试
    首先需测试某该填写信息没输入时系统否够出正确提示需测试信息填入新输入图书号台表中已时否出正确提示需测试输入正确记录时否成功提交
    测试32 修改图书测试
    需测试:户没点击记录时系统否出相应提示户选择某条记录时否满足条件记录正确显示相应编辑框中户修改否正确提交
    测试33 删图书测试
    首先需测试户没选中记录时系统否出相应提示需测试户选中某条记录进行删时否出否确定删提示分点击确定取消够进行正确处理
    测试34 查询图书测试
    首先需测试图书号图书类型空时系统否进行正确处理需测试中空时否进行正确处理测试二者空时否进行正确处理
    测试 4:阅理测试
    根前面详细设计知该模块四子模块需四子模块先分进行单元测试测试书书删信息查询信息然进行集成测试
    测试41 书测试
    首先需测试输入正确阅卡号否正确显示该阅卡信息输入错误阅卡号时否出相应提示接着需测试输入正确图书号否正确显示该图书信息
    输入错误图书号时否出相应提示需测试时输入正确阅卡号图书号时否进行正确书处理(包括书书测试)
    测试42 书测试
    首先需测试输入合法已出图书号时界面控件否出正确图书信息需测试出合法没出图书合法图书号时出正确提示正确输入分测试超期没超期情况超期情况测试否正确计算罚款值户点击钮测试记录否进行正确处理测试户点击放弃钮交互界面否清空
    测试43 删信息测试
    首先需测试需删记录中阅卡号阅卡中应记录时时删出正确提示信息测试需删记录中阅卡号阅卡中没应记录时删时否出相应提示户点击确定时否正确删户点击取消时记录应该
    测试44 查询信息测试
    需测试:户设置两条件阅卡号图书号空时否正确处理相应结果显示控件中中空时否正确处理显示结果两空时否正确处理显示结果
    测试 5:基信息理测试
    包含阅者类信息理图书类信息理户理3子模块测试子模块分添加删查询修改4更细子模块测试喝面阅着理测试4子模块完全类似里赘述
    103 2 单元测试
    面出系统需测试模块较模块测试容较相似单元测试仅系统书理例详细说明设计测试例模块类模块
    单元测试采方法黑盒测试更具体说采取等价类划分辅边界值分析法力图发现系统错误
    测试41 书测试例设计
    (1) 等价类划分
    里包含效等价类划分效等价类划分
    效输入等价类:
    A 效阅卡号未挂失阅卡号书数目没超该卡数目
    B 效图书号该图书未出
    效输出等价类:
    Z成功阅
    效输入等价类:
    b效阅卡号
    c效阅卡号挂失阅卡号
    d效阅卡号未挂失阅卡号书数目超该卡数目
    e效图书号
    f效图书号该书已出
    效输出等价类:
    z提示阅卡效
    y提示阅卡挂失
    x提示阅卡书数额已满
    w提示图书号效
    v提示该图书已出
    (2)设计覆盖等价类测试例
    效等价类希设计测试例覆盖等价类越越效等价类设计测试例表示:
    效性
    输入
    输出
    覆盖等价类

    AB
    Z
    ABZ

    b
    z
    bz

    c
    y
    cy

    d
    x
    dx

    e
    w
    ew

    f
    v
    fv

    1033 集成测试
    通单元测试便进行系统集成测试般采底集成方法面阅理模块例阐述图书理系统集成测试
    测试 4:阅理测试
    测试41书测试42书测试43删信息测试44查询信息四子模块单元测试完成进行阅理模块集成测试里测试模块间接口涉全局变量具体设计步骤:
    1) 利模块41完成某阅卡次书然调模块44次书行否查询果没查询发现错误否进入步
    2) 接着次书行调模块42进行书果进入步否发现错误
    3) 调模块44查询述书行果查询进入步否发现错误
    4) 调模块43删述记录否出正确提示果出进入步否发现错误
    5) 修改阅卡相关字段满足删条件次调模块43记录进行删果删次测试成功否发现错误
    十软件说明书
    111软件概述
    图书理系统面中型图书馆工作员读者旨图书理员阅者提供方便快捷图书查询图书阅等功
    系统采设置普通户理员权限普通户查图书信息查询图书等理员普通户基础增加信息理权限
    户权限:
    ()普通户权限:查询图书阅图书查询阅者密码修改关闭系统
    (二)理员权限:注销查询图书阅图书查询阅者密码修改添加图书删图书添加阅者删阅者信息理关闭系统
    112说明
    1121系统登陆
    通登陆界面输入正确户名密码登录系统中理员名称admintor密码:123456普通户elna密码:124578jake 密码:345678
    1登陆界面

    2界面


    面图书理例
    点击图书理进入图书理界面

    图书查询界面

    1122注册
    注册页面添入相关信息点击提交钮记录户名密码完成注册注册该户名密码进行登陆
    1123 系统简介
    系统中型图书理系统具图书理阅者理阅理三模块通系统实现图书馆工作信息化理图书理模块关图书添加删修改等功阅者理模块关阅者注册删等功阅理模块关书处理书处理关相关阅者信息更改等功
    系统户分普通户理员普通户进行普通书查询等操作操作限理员进行提高系统安全性
    十二系统开发评价
    121功方面
    系统功方面实现图书理员添加图书删图书修改图书等方面工作系统化理效率提高减省理员工作量运行效果机交互界面利般员学较操作性然系统存功欠缺问题会学程中系统继续改进成实高效图书理系统
    122性方面
    安全性方面实现系统数库备份理数更具安全性时登录员身份限制整系统更具安全性系统性具较快速查询力户提供图书阅图书查询等操作户根求修改密码等具良性
    123课程知识运方面
    课堂知识运方面系统开发设计进程紧着课堂教学容课堂教学保持步充分课堂学知识运系统开发设计程中严格教材软件开发程步骤进行开发设计通次课程设计仅软件工程方面知识运理解课程知识更加深刻认识实际动手操作力编程力里提高

    参考文献:
    Visual C++ 60 入门精通 邱仲潘柯渝谢燕
    Access 2007数库程序设计 蒋年德全蕾王志萍
    软件工程课程设计 李龙澍郑诚

    1 求12组述文档模板完成整项目组根项目特点需适增删模块
    2 整项目系统分析设计求Visio2007Power Designer软件
    3 项目完成组求台家讲解项目老师学进行提问
    4 组须提交WOED文档代码课程考核表课堂运行讲解WORD文档课程考核表模板完成组完成项目WORD文档代码相课程考核表须分填写

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    图书管理系统(软件工程课程设计报告)

    图书管理系统(软件工程课程设计报告)一、可行性研究报告1.引言1.1编写目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解 经过对此项目进行详细调查研究...

    2年前   
    513    0

    图书馆图书管理系统课程设计

     课程设计 (图书馆图书管理系统) 指导老师: 班 级:能动 姓 名: 学 号: ...

    5年前   
    1608    0

    软件工程课程设计管理系统

    软件工程课程设计论文软件工程课程设计管理系统软件工程课程设计报告姓 名: 年 级: 05级 ...

    3年前   
    731    0

    基于UML的图书馆管理系统设计《软件工程》课程设计网络教育

     网络教育学院《软件工程》课 程 设 计 ...

    1年前   
    245    0

    基于UML的图书管理系统设计课程设计

    滨江学院 统一建模语言课程设计报告( 2013 -- 2014 年度第 二 学期)课程名称: 统一建模语言课程设计 题 目: 图书馆管理系统 院 系: ...

    1年前   
    389    0

    UML课程设计—图书管理系统

    《信息系统分析与设计》课程设计报告设计题目: 图书管理系统 姓 名: 班 级: 信管班 ...

    3年前   
    822    0

    学生选课系统《软件工程》课程设计

    详细版!目 录一、问题定义 51.1问题的定义 51.2 系统要解决的问题 5二、可行性研究 62.1 引言 62.1.1目的 62.1.2背景及功能 62.1.3 参考资料 62.2 可行...

    6个月前   
    327    0

    软件工程学生选课系统课程设计

    网上选课系统课程设计手册团队: 学校: 队长: 时间:2014目 录1. 项目概述 ………………………………………………………………………31.1开发背景 …………………………………………...

    3年前   
    619    0

    软件工程银行系统 课程设计

    一、可行性研究报告一、可行性研究报告 11.引言 11.1编写目的 11.2项目背景 11.3定义 11.4参考资料 22.可行性研究的前提 22.1要求 22.2目标 32.3条件、假定和限...

    6个月前   
    262    0

    饭卡管理系统软件工程课程设计

    软件工程课程设计任 务 书1、课程设计题目饭卡管理系统2、设计任务和内容一个饭卡管理系统是根据学校的饭卡管理工作专门设计的一个管理信息系统。该系统能够完成饭卡管理的工作过程。饭卡管理过程中主要...

    3年前   
    712    0

    软件工程课程设计学生信息管理系统

     课程设计报告 学生信息管理系统 学 院 年级专业 学生姓名 指导教...

    1年前   
    385    0

    人事管理系统软件工程课程设计

    软件工程课程设计              ―――人事管理系统                   指导老师:                  班  级:                  ...

    3年前   
    622    0

    学生信息管理系统软件工程课程设计

    信息科学与工程学院课程设计任务书 题目: 学生信息管理系统 学 生1: ...

    1年前   
    317    0

    电子相册管理系统软件工程课程设计

    XX大学《软件工程》课程设计报告 题    目 :  电子相册管理系统 院 (系): 计算机与信息科学学院 年级专业 : 20XX级计算机科学与技术组 员 :  ...

    2年前   
    560    0

    酒店客房管理系统(软件工程课程设计)

    酒 店 客 房 管 理 系 统 第X组 组长: 组员: 计算机科学与技术 目录 一、摘要: 5 二、可行性分析...

    5年前   
    1288    0

    软件工程仓库管理系统课程设计

    软件设计书仓库管理系统 系别:应用数学系专业:信息与计算科学班级:学号:姓名:第一章 可行性研究报告1.1引言1.1.1目的本软件是用来有效的管理超市仓库货物数量及种类,以方便...

    1年前   
    404    0

    停车场管理系统软件工程导论课程设计

     计算机科学学院课程设计报告课 程 软件工程导论 题 目 停车场管理系统年 级 2013级 分组号学 号姓 名成绩等级6指导教师 ...

    1年前   
    295    0

    软件工程可行性分析报告实例(图书管理系统)

     可行性分析报告实例本实例以一个图书管理系统为例,介绍软件工程技术方法以及软件工程各阶段主要文档。本文介绍可行性分析报告。可行性分析报告包括:l 封面(略)l 目录(略)l 可行性分析报告内容...

    2年前   
    484    0

    图书管理系统

    毕业设计论文 毕业设计题目:图书管理系统 教 学 班: 学生姓名: 学 ...

    5年前   
    1697    0

    数据结构课程设计报告——图书管理系统

    课程设计报告 课设课题: 课程设计——图书管理系统 学 院: 电 子 信 息 学 院 专 业: 网 络 工 程 ...

    3年前   
    674    0

    文档贡献者

    文***品

    贡献于2019-07-21

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档