首页 图书馆管理系统

图书馆管理系统

举报
开通vip

图书馆管理系统 长 沙 学 院 课程设计说明书 题目 图书预定系统 系(部) 计算机科学与技术系 专业(班级) 软件工程6班 姓名 邹 胤 屏 学号 2010022615 指导教师 付细楚 起止日期 2011.06.06-2011.06.20 程序设计基础课程设计任务书 系 计算机科学与技术系 专业 软件工程 班级 六 设计人 邹胤屏 课程名称:C++高级编程 一、题目:图书预定系统 二、目的与要求 1. 目的: (1)培养学生综合利用C++语言进行程序设计的能力,掌握...

图书馆管理系统
长 沙 学 院 课程设计说明 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目 图书预定系统 系(部) 计算机科学与技术系 专业(班级) 软件工程6班 姓名 邹 胤 屏 学号 2010022615 指导教师 付细楚 起止日期 2011.06.06-2011.06.20 程序设计基础课程设计任务书 系 计算机科学与技术系 专业 软件工程 班级 六 设计人 邹胤屏 课程名称:C++高级编程 一、题目:图书预定系统 二、目的与要求 1. 目的: (1)培养学生综合利用C++语言进行程序设计的能力,掌握排序算法,使学生能够解决信息管理系统中的一些问题。 (2)提高学生建立程序文档、归纳总结的能力。 2.  基本要求: (1)要求用C++面向对象编程思想来完成程序的设计; (2)要求各个功能分别使用函数来完成。 (3)源代码程序要求必要的注释。 3. 创新要求 在基本要求达到后,请修改代码,在功能不变的情况下尽可能修改代码使代码短小。 4. 书写设计报告的要求 设计报告中包含以下几个方面: 1、 设计题目 2、 总体设计 1) 首先设计类,建立类的成员 2) 用自顶而下或自底而上的方法,划分功能模块,设计每个类的成员函数 3) 确定各模块的算法 3、 根据算法画出 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图 4、 列出程序清单,并加以必要的注释 5、 写出调试程序的方法 6、 指出所设计问题的不足和改进 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 7、 画出程序流程图 5. 课程设计材料的装订顺序为: 1) 设计说明书封面 2) 课程设计任务书 3) 课程设计鉴定表 4) 目录 5) 设计报告书正文 三、设计方法和基本原理 1. 问题描述: 张晨是一位很爱学习的同学,但是他总是为在图书馆借阅不到自己想看的书而烦恼。终于有一天他在图书馆做勤工俭学时突发奇想:“要是有一个包含图书预定的图书借阅系统就好了”。你能够帮助他完成这个系统的编写吗? 系统的大致要求如下: 1. 系统 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 图书的主要信息:书号、书名、作者、出版社、版次、出版时间、馆藏编号、剩余本数、馆藏总数、预定人数。 2. 系统应该记录读者的信息:借书证号、姓名、所在系部、分类(学生?老师?)、已借书籍的本数、超期书籍的本数、预定书籍的本数、已借书籍、超期书籍、预定书籍。每本书都应记录其借出日期。 3. 借书的规则如下,学生读者可以借5本图书,教师可以借6本,借期都是一个月。一旦超期,就不可以再借书或预定(原预定的图书取消)。为了简化系统,本题不考虑续借的问题。 4. 预定规则如下:每个学生可以以预定两本,老师可以预定三本图书。被预定的书本一旦重新入库,则通知第三个预定者,先到的人先借。 如果被预定的图书超过一定人数图书比(比如说某本书被5个人预定,这本书的预定比为5:1),则将本书加入到下一次的采购清单。 2. 问题的解决方案: 根据问题的描述,可以按照要求的功能采用面向对象的设计思想。 1) 要求使用面向对象的方法实现,类的成员中必须包含题干描述的内容。 2) 使用排序函数实现排序功能。 四、主要技术问题的描述 1、菜单:用户需要通过菜单来选择功能。例如,菜单可以设计为下面的样子(菜单和功能可以自己设计,以下界面仅供参考): ######################################## 欢迎来到长沙学院图书馆 请按键选择功能 ######################################## 1、登陆 2注销 2、借书 3、还书 4、图书预定 5、图书检索 7、退出系统 ######################################### 2、设计合理的检索功能,要求实现 · 按名称检索图书 · 按书号检索图书 · 按出版社检索图书 · 按馆藏编号检索图书 3、设计合理的排序功能,要求实现所借书籍: · 按还期排序 · 按书号排序 · 按馆藏编号排序 4、巧妙灵活的运用文件知识,将多个信息写入文件,如读者信息、图书信息等 5、馆藏书目和读者信息事先已经存放在各自的文件中,程序只需读取和处理即可 6、无需设计全面的图书的管理功能和读者的管理功能,这样可以控制程序规模和复杂度 五、课程设计时间:第15-16周(共两周) 六、课程设计的考核方式及评分方法 1.考核方式 课程设计结束时,在机房当场验收。 1) 教师提供测试数据,检查运行结果是否正确。 2) 回答教师提出的问题。 3) 学生提交课程设计文档(A4纸打印) 2.评分方法 上机检查:书面报告 5:5,没有通过上机检查的其成绩直接记录不及格 指导教师签名:         日期:         教研室主任签名:        日期:         系主任签名:          日期:         长沙学院课程设计鉴定表 姓名 邹胤屏 学号 2010022615 专业 软件工程 班级 六班 设计题目 图书预定系统 指导教师 付细楚 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级:     答辩小组长签名:     日期:     教研室意见: 教研室主任签名: 日期:   系(部)意见: 系主任签名:        日期:      说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 摘要 此次课程序设计是图书预定管理系统设计,所用的是C++模块化和面向对象的设计思想。在图书预定管理系统功能中,有用户的登陆、借书、还书、预定、检索等功能。我定义了tushu(图书类)和reader(读者类)这两个类,在tushu中它们的全是公有成员,而reader有私有的和公有的。各种功能可以独立分成各个模块。我设计的必须先登陆才能进入主界面(若没有注册就必须先注册才能进入)。进入后用户可以选择功能来满足自己的要求。 关键字:函数调用;C++面向对象;类;文件的运用 目录 1. 需求分析 …………………………………………………08 2. 系统分析 …………………………………………………09 2.1 功能模板设计 ………………………………………09 2.1.1登陆设计 …………………………………………09 2.1.2 按书号书设计 ……………………………………09 2.1.3 按书号还书设计 …………………………………10 2.1.4 按书号预订设计 …………………………………10 2.1.5 图书检索设计 ……………………………………11 2.2 UML类图 ………………………………………………12 2.3 文件 ………………………………………………………13 3. 运行效果图 ……………………………………………………14 4. 总结 ……………………………………………………………18 参考文献 ………………………………………………………19 附录A源程代码 ………………………………………………20 1. 需求分析 1.1设计要求 5. 系统记录图书的主要信息:书名、作者、书号(ISBN)、出版社、版次、出版时间、馆藏编号。 6. 系统应该记录读者的信息:姓名、借书证号、所在系部、分类(学生?老师?)、已借书籍、超期书籍、预定书籍。每本书都应记录其借出日期和应归还日期。 7. 借书的规则如下,学生读者可以借5本图书,教师可以借6本,借期都是一个月。一旦超期,就不可以再借书或预定(原预定的图书取消)。为了简化系统,本题不考虑续借的问题。 8. 预定规则如下:每个学生可以以预定两本,老师可以预定三本图书。被预定的书本一旦重新入库,则通知第三个预定者,先到的人先借。 如果被预定的图书超过一定人数图书比(比如说某本书被5个人预定,这本书的预定比为5:1),则将本书加入到下一次的采购清单。 1.2 技术要求 1、菜单:用户需要通过菜单来选择功能。例如,菜单可以设计为下面的样子(菜单和功能可以自己设计,以下界面仅供参考): ######################################## 欢迎来到长沙学院图书馆 请按键选择功能 ######################################## 1、登陆 2注销 2、借书 3、还书 4、图书预定 5、图书检索 7、退出系统 ######################################### 2、设计合理的检索功能,要求实现 1.按名称检索图书 2.按书号检索图书 3.按出版社检索图书 4.按馆藏编号检索图书 3、设计合理的排序功能,要求实现所借书籍: 1. 按还期排序 2. 按书号排序 3. 按馆藏编号排序 4.技术提示: 1、分析和设计很重要,设计清楚再动手 2、使用面向对象的方法可以减轻复杂问题的分析难度 3、使用模板可以减少函数的数量 4、文件不要用太多,要注意文件之间(文件中信息之间)的关系 2.系统设计 2.1 功能模块设计 2.1.1 登陆设计 文字说明:输入登陆时间及一个月后相应的这一天,输入帐号和密码后会在text文档中查找,若找到帐号但密码不对时输出错误,都对了就输出登陆成功,否则就注册。 2.1.2 按书号借书设计 文字说明:输入要借的书的书号,自动在outfile文档查找并判断本书是否还有剩余,若有,就判断用户借书数是否超过最大借书数,若没有就借书成功,否则借书失败。 2.1.3 按书号还书设计 文字说明:输入要还得书的书号,自动在read文档查找并判断本书书目是否大于0; 若是就还书成功并更新text和outfile文档,否则还书失败。 2.1.4 桉书号预定设计 文字说明:判断outfile文档中本书是否为0;若是就判断用户预订数是否超过最大预订数,若没有就预订成功,否则预订失败。 2.1.4 图书检索设计 文字说明: 图书检索里有四种方法, 1.按名称检索图书 2.按书号检索图书 3.按出版社检索图书 4.按馆藏编号检索图书 选择你要的方法后,输入相应的信息,输出信息。 例如:按名称检索图书 2.2 UML类 图书类 tushu char bookname[30]; //书名 char author[20]; //作者 char bookset[10]; //书号 char time[20]; //出版时间 char publish[30]; //出版社 int bianhao; //管藏编号 int book_num; //预定本数 int book_sum; //剩余本数 tushu(){} ~tushu(){} void show()//图书馆书显示 读者类 reader private: char name[20];//读者姓名 char password[16]; //密码 char lend_num[11];//借书证号(学生学号) char xibu[30];//所在系部 int lendbook; //已借书籍本数 int beyondbook; //超期书籍本数 int fobook;//预定书籍本数 int kind;//老师或学生(0/1) public: char lends[11];//记录账号 int otime,Otime;//记录时间 int denglu();//登陆 void set();//修改 void borrow(); //借书 void limited();//判断是否超期 void returns();//还书 void books();//预定图书 void look();//检索图书 2.3 文件 图书馆信息: 从左至右:书名 作者 书号 剩余本数 "出版社 出版时间 管藏编号 预定本数 读者信息: 从左至右:姓名 账号 密码 系部 借书本数 超期本数 预订本数 老师/学生(0/1) 读者借书信息: 从左至右:账号 书号 本数 时间 3 .运行效果图 3-1 输出图书信息 3-2 登陆(没有注册) 3-3 登陆(注册) 3-4 借书 3-5 还书 3-6 预订书籍 3-7 图书检索 3-8 注销到登陆面 3总结 这次课程设计让我了解了世上没有白吃的午饭,如果没有努力,认真,坚持不懈的话是不能做成任何事的。虽然我这次不是独立完成的,但大部分都是我自己做的。这种感觉真好,自己不用抄袭别人的,用自己的汗水做出的成果可让自己有成就感,虽然看到别人的比自己的好很多时会有些沮丧,但我还是很高兴很高兴。这次也让我学到了很多C++面向对象的知识,让我知道了在C++中哪些是我没有学到的,不过我好象没有学到什么,别人只要一天两天就做出来了,而我用了别人的好几倍。不过笨鸟也会有展翅高飞的时候。 参考文献 [1] 王挺,周会平,贾丽丽,徐锡山.C++程序设计[M] .北京:清华大学 出版社,2005:223-225 附录A源程代码 #include #include #include #define ki 6 //定义图书馆书的种类 #define ren 5 char *WO[10]; class tushu //定义图书馆书类 { public: char bookname[30];//书名 char author[20];//作者 char bookset[10];//书号 char time[20];//出版时间 char publish[30];//出版社 int bianhao;//管藏编号 int book_num;//预定本数 int book_sum;//剩余本数 public: tushu(){} ~tushu(){} void show()//图书馆书显示 { ifstream nfile("outfile.txt",ios::in|ios::out); if(! nfile) cout<<"file open error\n"; else { cout<<"书名 "<<"作者 "; cout<<"书号 "<<"剩余本数 "<<"出版社 "; cout<<"出版时间 "<<"管藏编号 "<<"预定本数\n\n"<>bookname>>author>>bookset>>book_sum>>publish>>time>>bianhao>>book_num; cout<>otime1; otime=otime1; cout<<"请输入后一个月此时的时间(年.月.日):\t"; cin>>otime2;Otime=otime2; cout<<"请输入账号(学生学号):\t"; cin>>lend_num; strcpy(lends,lend_num); cout<<"请输入密码:\t"; cin>>mima; if((! Da) && (! DA)) cout<<"file open error!"<>R.name>>R.lend_num>>R.password>>R.xibu>>R.lendbook >>R.beyondbook>>R.fobook>>R.kind; if(strcmp(lend_num,R.lend_num)==NULL && strcmp(mima,R.password)==NULL) { cout<<"登陆成功!"<>R.name;cout<>R.password;cout<>R.xibu;cout<>R.kind;cout<>bookset1; for(int i=1;i<=ki;i++) { outfile>>b.bookname>>b.author>>b.bookset>>b.book_sum >>b.publish>>b.time>>b.bianhao>>b.book_num; if(strcmp(bookset1,b.bookset)==NULL) { if(b.book_sum>0) { n=1; b.book_sum-=1; } else { n=0; cout<<"这本书已经借完了!\n"; } } infile<>c.name>>c.lend_num>>c.password>>c.xibu>>c.lendbook >>c.beyondbook>>c.fobook>>c.kind; if(strcmp(lends,c.lend_num)==NULL) { if(c.kind==1)//学生 { if(c.lendbook>=5) { n=0; cout<<"借书数目已满,不能再借"<=6)//老师 { n=0; cout<<"借书数目已满,不能再借"<>lendnums>>book_set>>n>>otime1; if(strcmp(lendnums,lends)==NULL) { if(otime>otime1) { cout<>c.name>>c.lend_num>>c.password>>c.xibu>>c.lendbook >>c.beyondbook>>c.fobook>>c.kind; if(strcmp(c.lend_num,lends)==NULL) c.beyondbook+=1; w1<>bookset; while(! outfile.eof()) { outfile>>nameset>>book_set>>num>>n; if((strcmp(nameset,lends)==NULL)&& (strcmp(book_set,bookset)==NULL) && num>0) { a=1; num-=1; ifstream Ab("outfile.txt",ios::in); ofstream AB("file.txt",ios::out|ios::trunc); if(! Ab) cout<<"file open error\n"; else { for(int i=0;i>b.bookname>>b.author>>b.bookset>>b.book_sum >>b.publish>>b.time>>b.bianhao>>b.book_num; if(strcmp(b.bookset ,bookset)==NULL) b.book_sum+=1; AB<>c.name>>c.lend_num>>c.password>>c.xibu>>c.lendbook >>c.beyondbook>>c.fobook>>c.kind; if(strcmp(c.lend_num,lends)==NULL) c.lendbook-=1; AC<>v.bookname>>v.author>>v.bookset>>v.book_sum>>v.publish>>v.time>>v.bianhao>>v.book_num; if(v.book_num>=5) v.book_num+=1; file<>c.name>>c.lend_num>>c.password>>c.xibu>>c.lendbook >>c.beyondbook>>c.fobook>>c.kind; if(strcmp(c.lend_num,lends)==NULL) { if(c.beyondbook>0) { cout<<"你有超期书籍,不能预订书籍哦!\n"; n=0; } else { cout<<"请输入你要预定的书籍的书号:\t"; cin>>booksets; ifstream p1("outfile.txt",ios::in); ofstream P1("file.txt",ios::out); if(! p1) cout<<"file open error\n"; else { while(!p1.eof()) { p1>>b.bookname>>b.author>>b.bookset>>b.book_sum >>b.publish>>b.time>>b.bianhao>>b.book_num; if(strcmp(b.bookset,booksets)==NULL) { if(c.kind==1) { if(c.fobook>2) { n=0; cout<<"预订已满了\n"; } if(b.book_sum==0) { n=1; c.fobook+=1; b.book_num+=1; } } if(c.kind==0) { if(c.fobook>3) { n=0; cout<<"预订已满了\n"; } if(b.book_sum==0) { n=1; c.fobook+=1; b.book_num+=1; } } WO<
本文档为【图书馆管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_891935
暂无简介~
格式:doc
大小:367KB
软件:Word
页数:40
分类:互联网
上传时间:2012-01-06
浏览量:37