软件工程实验课题.doc
《软件工程实验课题.doc》由会员分享,可在线阅读,更多相关《软件工程实验课题.doc(21页珍藏版)》请在咨信网上搜索。
. . 图书管理系统 组长:晓华 组员:巴雅尔图、那日、天、 牛莉、宇婷 作业提交日期:二О一五年十月3三十日 . .word.zl. . . 作者简介 组长:晓华 学号:120714241 学院:经济管理学院 组员:巴雅尔图 学号:110412185 学院:生态环境学院 那日 学号:111710874 学院:兽医学院 天 学号:120714242 学院:经济管理学院 牛莉 学号:120714767 学院:经济管理学院 宇婷 学号:120715553 学院:经济管理学院 . .word.zl. . . 图书管理系统 摘要 简单介绍了图书管理系统数据库的设计和系统功能的实现过程。该系统是运行在学校网络上的网络图书管理系统,由图书编目,图书管理,读者管理,资料管理, Web查询等几个子系统组成,,实现了图书资料的计算机网络管理和Web查询功能。计算机技术的迅猛开展,特别是随着网络技术的出现标志着信息时代已经降临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和效劳式已不能适应读者对日益增长的文献信息的需求,建立图书馆信息网络系统,是图书馆现代化建立的客观要求。建立以计算机为核心的图书馆信息网络,实现图书馆管理和效劳的自动化,更好地为科技工作效劳,是图书馆开展的必由之路。目前,国大局部高校图书馆都实现了网络管理,目前图书馆都在在朝着这个向开展。 关键词:图书, 网络, 数据库,管理系统, VC 一、 系统可行性分析 1.总体功能设计 根据高校图书馆的实际情况和校园网网的现状,我们确定了网络图书系统应该具备8个面的功能,它们是图书编目,图书采购,图书管理,读者管理,标准管理,资料管理,系统维护,Web查询。其中Web查询是该系统突出的特点,它的实现是因为有学校校园网的支持。系统组成和功能框图见图1。 图书 位置 书名 书号 ISBN 数量 作者 价格 图2 业务流程图 读者 编号 地址 XX 性别 图3 读者 名字 地址 联系人 图4 管理员 生日 名字 地址 性别 编号 图5 管理员 读者号 借书日期 书号 管理员号 还书日期 借阅 图6 借阅图书 图7 借阅关系 表1 读者信息说明 读者信息 系统名 高校图书系统 别名 无 描述 每一位读者具体信息 定义 读者信息=读者学号+XX+学院+专业+年级 位置 读者目录文件 简要说明:学号是学生唯一识别码 修改记录: 编写: 日期: 表2 图书信息说明 图书信息 系统名 高校图书系统 别名 无 描述 每一本图书的详细信息 定义 图书信息=分类目录号+流水号+书名+作者+容摘要+价格+购书日期 位置 图书目录文件 简要说明 图书条形码是图书唯一识别信息 修改记录: 编写: 日期: 表3 借书信息说明 借书信息 系统名 高校图书系统 别名 无 描述 每一本所借图书的具体信息 定义 借书信息=读者学号+流水号+图书分类号+借阅日期+归还日期 位置 借书文件 简要说明 所借图书条形码是图书唯一识别信息 修改记录: 编写: 日期: Web查询功能应该能够查询图书,期刊和读者等信息,因此我们在查询系统中设计了以下主要功能:图书查询、期刊查询、读者信息查询,图书推荐。 “图书查询〞主要查询在图书库中现有的资料,让用户了解是否有其需要的图书、有哪些图书,它包括按书名查询图书、按索书号查询和按作者查询图书等。 “期刊查询〞主要查询期刊的情况,包括按刊名查询出版物信息、按索书号查询连续出版物信息和按编辑部查询连续出版物信息等。 “读者信息查询〞主要查询读者的图书借阅情况,包括读者借阅记录查询和读者超期借阅记录查询等。 “图书推荐〞是让读者推荐图书,作为工作人员采购新书的参考。 二、 需求分析 1.运行环境规定 联网的微型计算机 立足于校园实际,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享。图书管理系统是一 种基于集中统一规划的数据库数据管理新模式。在对图书、读者、信息的管理,其实是对图书、读者数据信息的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销、图书归还中的问题;还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况,还可以根据图书类别查询图书,可以查询的信息,以及某的图书在本校的借阅情况和平均价等信息。 图书管理系统,最主要处理两个过程,借书与还书。借书之前先看看是不是有借书的资格。还书时,检查一下书是否过期等如有进展相关的处理。其他的一些功能主要是围绕这两个功能展开。 图书模块的功能应包括:图书信息的添加、删除、修改、编辑、并可以根据图书类别查询图书。管理员,等信息查询与图书相类似。。 用vc作为前台的开发工具,定义Cdatabase、CRecordset建立与数据库的连接。要求应前台用程序和后台数据库在数据类型面要统一,否那么会出现插入和更新异常等,导致系统异常,不利于使用。本系统的宗旨是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施 三、系统设计 1.总体设计 运行系统:Linux,Unix,Windows2000、WindowsXP及其以上操作系统。 2.功能 (1)图书编目子系统:实现编目处理、查重、馆藏管理等功能。其中编目处理包括原始编目、书目记录、数据维护、各类输出等项;馆藏管理包括馆藏数据维护、丢剔处理、馆藏统计、报表输出等项。 (2)图书采购子系统:实现预订查询、新书订购、验收记到、资金管理、统计报表处理等功能。 (3)图书流通子系统:实现出纳管理、读者管理、查询及统计打印功能模块。其中出纳管理包括借书、还书、续借、预约、罚款等项;读者管理包括读者登记、借书证挂失、读者数据维护等项;查询包括是查书去向、查读者借书情况、查总体借还情况等;统计打印那么是打印图书借阅和读者情况的统计报表以及打印催还单等。 (4)期刊管理子系统:实现期刊查缺、采购、编目、记到、典藏、流通、统计等功能。 (5)标准管理子系统:实现期刊查缺、采购、编目、记到、典藏、流通、统计等功能。 (6)资料管理子系统:实现资料查缺、采购、编目、记到、典藏、流通、统计等功能。 (7)系统维护子系统:实现操作员库、读者库、单位库维护,权限设置等功能。 (8)Web查询子系统:实现网上查询(图书、期刊查询和读者查询)、读者荐书、意见反响等功能。 图8 系统构造图 四、详细设计 1.算法设计 图9 工作人员流程图 图10 普通学生流程图 图11 借阅者流程图 2.数据库设计 在图书管理系统中,数据库设计占有重要位置,数据库设计质量的优劣,可直接影响到数据库数据的冗余度、数据的一致性、数据丧失等问题。 图书管理系统数据库常常要设计含有如下数据项:借书证号、XX、单位、馆藏号(馆藏号为每本书上的条形码号)、书名、分类号、作者、价格等。下面以图书流通模块所涉及的数据库为例来说明模式的设计。 先设计图书流通的实体——关系图(E-R图)。E-R图由3个相关联的局部构成,即实体、实体与实体之间的关系以及实体和关系的属性。图书流通过程中实体“图书〞与“读者〞之间的关系是借阅和被借阅的关系,实体“读者〞与“单位〞之间的关系是属于和被属于的关系,“图书〞的属性有“馆藏号〞 ,“书名〞 ,“分类号〞 、“作者〞 、“价格〞 ,“读者〞的属性有“借书证号〞 、“XX〞 、“性别〞 ,“单位〞的属性有“单位编号〞和“单位名称〞 ,“借阅〞属性“借书日期〞 ,由此得出E-R图如图4。 3.概念设计 图 书 读 者 借阅 借阅时间 馆藏号 书名 分类号 作者 价格 学号 XX 性别 图书流通的E-R图 属于 单 位 单位名称 单位编号 图12 图书流通的E-R图 4.逻辑设计 (1)导出初始关系模式 book(图书编号#,入库时间,图书名称,作者,,出版日期,价格,数量,图书状态) bookuser(借阅者的图书证号#,学号,XX,性别,出生年月,民族,系别) worker(用户名,密码) borrow(图书编号#,图书名称,借阅者XX,借阅数量,借阅时间,归还时间,过期天数,归还标志位) (2)产生子模式 子模式是用户所用到的那局部数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。 借书子模式(借阅者的图书证号群,XX,图书编号#,图书名称,借阅时间) 五、实现与测试 1.控制台应用程序 a.日期构造,包含有年、月、日,以及减法与小于号的重载 struct Date{ int m_year; int m_moth; int m_day; int operator – (const Date&d) { int days=365*〔m_year-a. m_year〕; days+=30*(m_moth-d.m_moth)+m_day-d.m_day; return days; } BOOL operator <(const Date& d) { if(*this-d<0) return TRUE; return FALSE; } }; b.读者构造,包含有XX、借书证号、性别与类别,小于号的重载 struct Reader{ CString m_name; CString m_certificateNo; BOOL m_sex;//1--male,0--female int m_type;//0--student,1--graduate,2--teacher BOOL operator <(Reader &r) { if(m_type<r.m_type) return TRUE; if(m_certificateNo<r.m_certificateNo) return TRUE; if(m_name<r.m_name) return TRUE; if(m_sex<r.m_sex) return TRUE; return FALSE; } }; c. CBooks类 class CBooks : public CObject { DECLARE_SERIAL(CBooks) public: CString m_serialNumber;//编号 CString m_category;//类别 CString m_title;//书名 CString m_auther;//作者 CString m_press;// Date m_publicDate;//出版日期 double m_price; Date m_purchaseDate;//购书时间 Reader m_lender;//借阅者 Date m_lendDate;//借书日期 Date m_returnDate;//还书日期 CBooks(); virtual ~CBooks(); void Serialize(CArchive&ar); }; CBooks类具有所需要的数据成员外,需要注意到 首先,它是由CObject派生的,CObject是绝大局部MFC类的基类; 其次,类中有一个宏DECLARE_SERIAL(CBooks),其作用就是为了实现文件的序列化与类的动态创立。相应的,在此类的实现文件中必定要有宏IMPLEMENT_SERIAL(CBooks,CObject,1)。 最后,CBooks应重载CObject虚拟函数Serialize(CArchive&ar)。 CBooks类的实现文件类似于: IMPLEMENT_SERIAL(CBooks,CObject,1) CBooks::CBooks() { m_price=0.0; m_lender.m_sex=TRUE; m_lender.m_type=2; m_publicDate.m_year=0; m_publicDate.m_moth=0; m_publicDate.m_day=0; m_lendDate.m_year=0; m_lendDate.m_moth=0; m_lendDate.m_day=0; m_returnDate.m_year=0; m_returnDate.m_moth=0; m_returnDate.m_day=0; m_purchaseDate.m_year=0; m_purchaseDate.m_moth=0; m_purchaseDate.m_day=0; } CBooks::~CBooks() { } void CBooks::Serialize(CArchive&ar) { if(ar.IsStoring()) { ar<<m_serialNumber<<m_category<<m_title <<m_auther<<m_press<<m_price; ar<<m_lender.m_name<<m_lender.m_certificateNo <<m_lender.m_sex<<m_lender.m_type; ar<<m_publicDate.m_year<<m_publicDate.m_moth<<m_publicDate.m_day; ar<<m_lendDate.m_year<<m_lendDate.m_moth<<m_lendDate.m_day; ar<<m_returnDate.m_year<<m_returnDate.m_moth<<m_returnDate.m_day; ar<<m_purchaseDate.m_year<<m_purchaseDate.m_moth<<m_purchaseDate.m_day; } else { ar>>m_serialNumber>>m_category>>m_title >>m_auther>>m_press>>m_price; ar>>m_lender.m_name>>m_lender.m_certificateNo >>m_lender.m_sex>>m_lender.m_type; ar>>m_publicDate.m_year>>m_publicDate.m_moth>>m_publicDate.m_day; ar>>m_lendDate.m_year>>m_lendDate.m_moth>>m_lendDate.m_day; ar>>m_returnDate.m_year>>m_returnDate.m_moth>>m_returnDate.m_day; ar>>m_purchaseDate.m_year>>m_purchaseDate.m_moth>>m_purchaseDate.m_day; } } 2.建立管理图书的类 首先建一个基类 class CManager { CObArray m_list; public: void AddTail(CBooks*pBook);//在链表尾部放书籍 void AddHead(CBooks*pBook); //在链表头部放书籍 void Add(CBooks*pBook,int index);//将书籍放到index处 void Delete(int index);//删除index处的书籍 void Fit(int index);//修改index处的书籍 CBooks* GetBook(int index);//获取index出的书籍 CManager(); virtual ~CManager(); virtual int Find(void*para,CobArray&list); virtual void Delete (void*para); viraul void Sort(); void Serialize(CArchive&ar); friend ostream& operator <<(ostream& os,CManager &mg); }; 其实现文件类似于 CManager::CManager() { } CManager::~CManager() { int num=m_list.GetSize(); for(int i=0;i<num;i++) { CBooks*p=(CBooks*)m_list[i]; delete p; } m_list.RemoveAll(); } void CManager::Serialize(CArchive&ar) { m_list.Serialize(ar); } void CManager::Delete (void*para) { } void CManager::Sort() { } int CManager::Find(void*para,CobArray&list) { return –1; } CManagerTitle:public CManager { public: CManager* m_pParent; CManagerTitle(); int Find(void*para,CobArray&list); void Delete (void*para); void Sort(); } : CManagerTitle::CManagerTitle():m_pParent(0){} int CManagerTitle::Find(void*para,CobArray&list) { if(!m_pParent) return; CString*pStr= (char*)para; int i,value=-1,num=m_pParent->m_list.GetSize(); for(i=0;i<num;i++) { CBooks*p=(CBooks*) m_pParent->m_list[i]; if(p->m_title==pStr) { list.Add(p); if(value<0) value=i; } } return value; } void CManagerTitle::Delete (void*para) { if(!m_pParent) return; CString pStr= (char*)para; int i=0; while(i< m_pParent->m_list.GetSize()) { CBooks*p=(CBooks*) m_pParent->m_list[i]; if(p->m_title==pStr) { delete p; m_pParent->m_list.RemoveAt(i); } else i++; } } void CManagerTitle::Sort() { if(!m_pParent) return; int i,j for(i=0;i<num;i++) { CBooks* b1=(CBooks*) m_pParent->m_list[i]; for(j=i+1;j<num;j++) { CBooks*b2=(CBooks*) m_pParent->m_list[j]; if(b2->m_title<b1->m_title) { m_pParent->m_list.RemoveAt(i); m_pParent->m_list.InsertAt(i,b2); m_pParent->m_list.RemoveAt(j); m_pParent->m_list.InsertAt(j,b1); b1=b2; 3.完成主界面的设计与实现 class CMenuA { public: void ShowMain(); void ShowSort(); void ShowFind(); void ShowDelete(); ……………………………….. CMenuA(); virtual ~CMenuA(); }; 六、设计体会 计算机具有强大的功能,它现已应用于各行各业,在人们生活的各个领域起着非常重要的作用。它的高速运算能力极大的提高了工作效率,把人们从浩瀚的计算中解放出来,并且在高、尖的大型科学计算和大型信息处理及运算需求高的领域发挥着重要的作用。因此学习vc语言就显得更为重要,vc语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。vc语言兼顾了诸多高级语言的特点。 通过此次图书管理系统的设计,使我对VC++程序设计有了深一步的了解,对系统设计及开发有了比较全面的思路。首先,通过对系统进展需求分析,确定各个功能函数;然后一个个具体地对他们进展编程,并且仔细检查看是否有错;在完成这一步之后才开场构造主函数,通过主函数把各个功能函数联系起来,编译修改错误和缺乏之处 在实际编程过程中会遇到很多不同的错误,有时候是一些很明显很细节的语法错误,这些可以通过编译来查找错误的所在,然而那些并不明显难以查找的隐性错误却真让人头痛。同时我翻阅了大量的书籍,也在网上查了很多资料。 . .word.zl.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实验 课题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文