




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件课程设计指导书设计名称:数据库课程软件设计班级:07级(2)班姓名:甄平指导教师:许四平组织单位:数理学院时间:2010-6-16黄石理工学院数理学院许四平第 页2013-3-2411一课程设计目的软件应用课程设计是计算机及相关专业的实践环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于巩固和加深对C+语言课程的基本知识的理解和掌握;掌握C+语言编程和程序调试的基本技能;利用C+语言进行软件设计的基本思路和方法;提高运用C+语言解决实际问题的能力。二课程设计任务与要求:1设计任务基本要求:1:工作人员登陆后,可以进行的操作(1)添加学生的信息(学号,姓名,院系,最
2、大借阅的图书数量等);(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);(3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;(4)查看学生的信息;(5)添加图书的信息(图书号,书名,作者,出版社,数量等);(6)修改图书的信息(图书号,书名,作者,出版社,数量等);(7)删除图书的信息(图书号,书名,作者,出版社,数量等);(8)查看图书的信息;2:学生登陆后,可以进行的操作(1)查看学生自己借阅的数目信息;(2)借阅图书;(3)归还图书;备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。2设计要求(1)对指导教师下达的题目进
3、行系统分析。(2)根据分析结果完成系统设计。(3)编程:在计算机上实现题目的代码实现。(4)完成对该系统的测试和调试。(5)提交课程设计报告,课程设计报告内容包括:需求分析、概要设计、详细设计,调试与结果和设计心得体会五个部分。三.原始依据已完成C+语言课程学习,有语言编程基础,能够熟练运用C+语言进行程序设计。通过C+语言编写实际应用程序,提高用C+语言解决实际问题的能力。参考文献:谭浩强等.面向对象程序设计.清华大学出版社,2006谭浩强等.面向对象程序设计上机与习题指导.清华大学出版社,2006四课程设计说明书1.需求分析(1)问题描述设计一个C+数据库管理程序,能够维护图书信息和读者信
4、息及相应的借书还书处理。(2)基本要求:1、管理员登录后能够管理所有的信息,学生登录后只能查阅自己的借阅信息,并且能够借书和还书。2、将学生和图书信息存放到外存上,每次从外存读取数据。(3)测试数据1、图书信息图书编号图书名称是否已借出1C+程序设计是2Java否2、读者信息图书编号学生姓名借书编号1readerl12reader22.概要设计1.数据结构通过面向对象程序设计,分别设计图书类Book和图书数据库类BDatabase,读者类Reader和读者数据库类RDatabase,模块清晰,结构简单,很容易达到设计要求。2.程序模块及之间的调用关系3.详细分析#include#include
5、#include#includevfstream/输入/输出文件流类usingnamespacestd;constintMaxr=100;最多的读者constintMaxb=100;最多的图书constintMaxbor=5;每位读者最多借五本书/读者类,实现对读者的信息的描述classReaderprivate:inttag;/删除标记1:已删0:未删intno;/读者编号charname10;/读者姓名intborbookMaxbor;所借图书public:Reader()char*getname()returnname;/获取姓名intgettag()returntag;/获取删除标记i
6、ntgetno()returnno;/获取读者编号intgetborbook(inti)returnborbooki;voidsetname(charna)/设置姓名strcpy(name,na);voiddelreader()tag=1;/设置删除标记1:已删0:未删voidaddreader(intn,char*na)/增加读者tag=0;no=n;strcpy(name,na);for(inti=0;iMaxbor;i+)borbooki=0;voidborrowbook(intbookid)/借书操作for(inti=0;iMaxbor;i+)if(borbooki=0)borbook
7、i=bookid;return;intretbook(intbookid)/还书操作for(inti=0;iMaxbor;i+)if(borbooki=bookid)borbooki=0;return1;return0;voiddisp()读出读者信息coutsetw(5)nosetw(10)namevv借书编号:;for(inti=0;iMaxbor;i+)if(borbooki!=0)coutborbooki|;coutendl;/读者类库,实现建立读者的个人资料classRDatabaseprivate:inttop;/读者记录指针ReaderreadMaxr;读者记录public:RD
8、atabase()/构造函数,将reader.txt读到read中Readers;top=-1;fstreamfile(reader.txt,ios:in);/打开一个输入文件while(1)file.read(char*)&s,sizeof(s);if(!file)break;top+;readtop=s;file.close();/关闭reader.txtvoidclear()删除所有读者信息top=-1;intaddreader(intn,char*na)添加读者时先查找是否存在Reader*p=query(n);if(p=NULL)top+;readtop.addreader(n,na
9、);return1;return0;Reader*query(intreaderid)/按编号查找for(inti=0;i=top;i+)if(readi.getno()=readerid&readi.gettag()=0)return&readi;returnNULL;voiddisp()/输出所有读者信息for(inti=0;i=top;i+)readi.disp();voidreaderdata();读者库维护RDatabase()析构函数,将read写到reader.txt文件中fstreamfile(reader.txt,ios:out);for(inti=0;ichoice;swi
10、tch(choice)case1:coutvv输入读者编号:;cinreaderid;coutvv输入读者姓名:;cinrname;addreader(readerid,rname);break;case2:coutvv输入读者编号:;cinreaderid;r=query(readerid);if(r=NULL)coutvv该读者不存在vvendl;break;coutrname;r-setname(rname);break;case3:coutreaderid;r=query(readerid);if(r=NULL)cout该读者不存在delreader();break;case4:cou
11、treaderid;r=query(readerid);if(r=NULL)coutvv该读者不存在vvendl;break;r-disp();break;case5:disp();break;case6:clear();break;default:coutvv输入错误,请从新输入:;classBookprivate:inttag;/删除标记1:已借0:未借intno;图书编号charname10;/图书名public:Book()char*getname()returnname;/获取姓名intgettag()returntag;/获取删除标记intgetno()returnno;voids
12、etname(charna)strcpy(name,na);voiddelbook()tag=1;/设置删除标记1:已借0:未借intaddbook(intn,char*na)tag=0;no=n;strcpy(name,na);return0;intborrowbook()if(tag=1)return0;elsereturn1;intretbook()tag=0;return0;voiddisp()读出读者信息coutsetw(5)nosetw(10)name;if(tag=0)coutvvsetw(10)vv未借出vvendl;elsecoutvvsetw(10)vv已借出vvendl;
13、classBDatabaseprivate:inttop;BookbookMaxb;public:BDatabase()Bookb;top=-1;fstreamfile(book.txt,ios:in);/打开一个输入文件while(1)file.read(char*)&b,sizeof(b);if(!file)break;top+;booktop=b;file.close();/关闭reader.txtvoidclear()top=-1;intaddbook(intn,char*na)Book*p=query(n);if(p=NULL)top+;booktop.addbook(n,na);r
14、eturn1;return0;Book*query(intbookid)/按编号查找for(inti=0;i=top;i+)if(booki.getno()=bookid)return&booki;returnNULL;voidbookdata();图书库维护voiddisp()for(inti=0;i=top;i+)booki.disp();BDatabase()析构函数,将book写到book.txt文件中fstreamfile(book.txt,ios:out);for(inti=0;i=top;i+)file.write(char*)&booki,sizeof(booki);file.
15、close();voidBDatabase:bookdata()charchoice;charbname40;intbookid;Book*b;while(choice!=0)coutvvnnnttt图书维护vvendlvvendl;coutchoice;switch(choice)case1:coutvv输入图书编号:;cinbookid;coutvv输入图书名称:;cinbname;addbook(bookid,bname);break;case2:coutvv输入图书编号:vvendl;cinbookid;b=query(bookid);if(b=NULL)cout该图书不存在endl;
16、break;coutbname;b-setname(bname);break;case3:coutvv读入图书编号:vvendl;cinbookid;b=query(bookid);if(b=NULL)coutvv该图书不存在vvendl;break;b-delbook();break;case4:coutvv读入图书编号:vvendl;cinbookid;b=query(bookid);if(b=NULL)coutvv该图书不存在vvendl;break;b-disp();break;case5:disp();break;case6:clear();break;default:coutvv输
17、入错误,请从新输入:;voidhelp()coutvvn本程序功能如下:vvendl;coutvv1:工作人员登陆后,可以进行的操作vvendl;coutvv(1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);vvendl;coutvv(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);vvendl;coutvv(3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;vvendl;coutvv(4)查看学生的信息;vvendl;coutvv(5)添加图书的信息(图书号,书名,作者,出版社,数量等);vvendl;coutvv(6)
18、修改图书的信息(图书号,书名,作者,出版社,数量等);vvendl;coutvv(7)删除图书的信息(图书号,书名,作者,出版社,数量等);vvendl;coutvv(8)查看图书的信息;vvendl;coutvv(9)允许学生借书和还书;vvendl;coutvv2:学生登陆后,可以进行的操作vvendl;coutvv(1)查看学生自己借阅的数目信息;vvendl;coutvv(2)借阅图书;vvendl;coutvv(3)vv归还图书;vvendl;coutvv!备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。”vvendl;coutvv*制作人.甄平*vvendl*coutv
19、v*设计日期.2010年6月16日*vvendl;/main()函数的实现,程序的主界面的引导voidadminlogin()charchoice;intbookid,readerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;while(choice!=0)coutvvendlvvendlvvttt图书管理系统nnn;coutvvttt1借书nnttt2还书nnttt3图书维护5口代但4读者维护nnttt5帮助文件nnttt0离开vvendl;cinchoice;switch(choice)case1:coutvv借书读者编号:;ci
20、nreaderid;coutvv图书编号:;cinbookid;r=ReaderDB.query(readerid);/按编号查找if(NULL=r)cout不存在该读者,不能借书endl;break;b=BookDB.query(bookid);if(b=NULL)cout不存在该图书,不能借书borrowbook()=0)cout该图书已借出,不能借书borrowbook(b-getno();b-delbook();break;case2:coutvv还书n读者编号:;cinreaderid;coutbookid;r=ReaderDB.query(readerid);if(r=NULL)c
21、out不存在该读者,不能还书endl;break;b=BookDB.query(bookid);if(b=NULL)cout不存在该图书,不能还书retbook();r-retbook(b-getno();break;case3:BookDB.bookdata();break;case4:ReaderDB.readerdata();break;case5:help();break;case0:break;default:coutvv输入错误,请从新输入:voidreaderlogin()inti;charchoice;intbookid,readerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;cinreaderid;r=ReaderDB.query(readerid);if(r!=NULL)while(choice!=0)coutvvendlvvendlvvttt读者管理系统nn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发布新产品时应关注的品牌策略计划
- 2025艺人经纪合同范本合同样本
- 社团活动年度总结计划
- 团队协作工具使用的月度计划
- 班级小组讨论的高效实施计划
- 工业自动化系统集成及应用案例分析
- 游戏账号买卖交易平台合作协议
- 2025年银川货运上岗证考试题答案
- 2025年荆州货运资格证培训考试题
- 环境监测设备性能优化指南
- (完整版)附:《档案目录清单》
- 《酒店概论》考试复习参考题库(含答案)
- 版式设计网格课件
- 消防安全检查表(车间)
- 产品报价单(5篇)
- 大飞机C919:追梦五十载,“破茧化蝶”
- 品牌视觉形象设计智慧树知到答案章节测试2023年天津科技大学
- 高考语文复习-议论文结尾写作之深化主旨 练习
- 汉语词汇与文化课件
- 浅析公路桥梁施工中高性能混凝土的应用
- 新概念英语第三册Lesson8 课件
评论
0/150
提交评论