《C++课程设计(图书馆管理系统).doc》由会员分享,可在线阅读,更多相关《C++课程设计(图书馆管理系统).doc(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+课程设计(图书馆管理系统)2006-2007-(1)-C+-1 C+程序设计课程设计说明书题 目:图书馆管理系统 班 级:09级电信2班 姓 名:姜有栋 学 号:0967118237 指导教师:余金林 成 绩: 日 期:2011年6月内蒙古科技大学课程设计任务书课程名称C+语言课程设计设计题目图书馆管理系统指导教师余金林时间2011.6.13-6.24一、教学要求
2、1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设计内容适当修改题目名称。图书馆管理系统定义图书基类和读者类,并派生出各种所需类并在类中声明各自的成员函数;要求至少设计以下各功能模块:v 输入图书和读者记录v 查询图书和读者功能v 统计图书和读者v 显示信息三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使
3、其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C+面向对象程序设计,吴敏、杨国林 主编,内蒙古大学出版社2C+语言程序设计(第三版),郑莉,清华大学出版社目录一、 问题描述 1二、 问题分析 1三、 数据模型 1 四、 设计流程图 2五、 程序代码 3六
4、、程序运行 8七、设计总结 81. 问题描述:图书馆管理系统定义图书基类和读者类,并派生出各种所需类并在类中声明各自的成员函数; 要求至少设计以下各功能模块:v 输入图书和读者记录 v 查询图书和读者功能 v 统计图书和读者数据v 显示信息2. 问题分析:2.1阐述你对问题的理解、解决问题的方案说明。 在实际生活中,图书馆工作人员都面临着一个非常具体现实的问题,即图书借阅的管理。当图书与读者数量不大时,工作人员可以根据相关纸质纪录进行定期检查与核对而清楚的掌握书籍与读者信息,并对其行修改与维护,但是现实生活中工作人员管理的数据数量庞大,不可能人工完成相关管理。为了迎合自动化办公的要求,现要求设
5、计一个图书借阅管理系统完成对于读者、图书相关信息的记录操作及添加、修改、更新等维护操作。2.2系统功能模块的划分 3数据模型:3.1相关数据结构的说明3.2类的设计 3.3全局变量,重要形式参数、局部变量等等,它们的命名及用途解释4. 程序流程图 5. 程序代码#include #include #include #include #include #include #include #include using namespace std;const int MAX=10;const int MAXB=5;/图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Bookpri
6、vate:string bname;/书名string bnumber;/书号string bstype;/藏书类型int tag;/1删除,0表示未删除int on;/0表示在书架,1表示已借出public:Book()tag=0;on=0;Book(const string &name,const string &number,const string &stype,int t,int o);Book();void Setbname(const string &name);/设置书名string Getbname();/返回书名 void Setbnumber(const string &
7、number);/设置书号string Getbnumber();/返回书号void Setbstype(const string &stype);/上架类型string Getstype();/返回上架类型void Settag(int i);int Gettag();/获取删除标记void Seton(int i);int Geton();/获取上架标记void Dele();/删除图书void Add(const string name,const string num,const string stype);/增加图书int Bbook();/借书void Rbook();/还书voi
8、d Display();/显示图书信息;Book:Book(const string &name,const string &number,const string &stype,int t,int o) bname=name; bnumber=number; bstype=stype; tag=t; on=o;void Book:Setbname(const string &name)bname=name;string Book:Getbname()return bname;void Book:Setbnumber(const string &number) bnumber=number;s
9、tring Book:Getbnumber()return bnumber;void Book:Setbstype(const string &stype)bstype=stype;string Book: Getstype()return bstype;void Book:Settag(int i)tag=i;int Book:Gettag()return tag;void Book: Seton(int i)on=i;int Book: Geton()return on;void Book:Dele()tag=1;void Book: Add(const string name,const
10、 string num,const string stype)Setbname(name);Setbnumber(num);Setbstype(stype);Settag(0);Seton(0);int Book:Bbook()if(Geton()=1) Seton(1);return 1;else return 0;void Book: Rbook()Seton(0);void Book: Display()if(tag=0)coutsetw(3)书名setw(3)书号setw(3)上架类型setw(3)是否借出endl;coutsetw(3)Getbname()setw(3)Getbnum
11、ber()setw(3) Getstype();if(on=1) cout已借出;else cout在书架;coutendl;/图书类的操作class Controlbookpublic:int i;/下表指针Book bMAX;/为了方面静态插入操作,定义内嵌对象数组public: Controlbook(); Controlbook(int ii); Controlbook(); void Controlbook1() i=-1; int n; cout初始化图书馆中藏书个数:n; string sa;string sb;string sc; while(n-) coutsa; couts
12、b; coutsc; Book b0(sa,sb,sc,0,0); i+; bi=b0;/调用系统默认的拷贝构造函数 int Geti() return i; bool Search1(const string &name,const string &number) for(int n=0;n=Geti();n+) if(!(pare(bn.Getbname()&!(pare(bn.Getbnumber()&bn.Gettag()=0) cout图书已经在书架,请编写不同编号i+; /bthis-i.Add(name,number,stype); return 1; bool Search(c
13、onst string &name,const string &number); bool Search(const string &name,const string &number,int &ii); void Addbook(const string &name,const string &number,const string stype); void Delbook(const string &name,const string &number,const string stype); void Cbookmap(); void Display();Controlbook:Contr
14、olbook() i=-1;Controlbook:Controlbook(int ii) string sa;string sb;string sc; while(ii-) coutsa; coutsb; coutsc; Book b0(sa,sb,sc,0,0); i+; bi=b0;/调用系统默认的拷贝构造函数 bool Controlbook: Search(const string &name,const string &number) for(int n=0;n=Geti();n+) if(!(pare(bn.Getbname()&!(pare(bn.Getbnumber()&bn
15、.Gettag()=0) cout查找所要图书endl; bn.Seton(1); bn.Display(); return 0; return 1; bool Controlbook: Search(const string &name,const string &number,int &ii) for(int n=0;n=Geti();n+) if(!(pare(bn.Getbname()&!(pare(bn.Getbnumber()&bn.Gettag()=0) ii=n; cout查找所要图书i+;bthis-i.Add(name,number,stype);/* for(int n=
16、0;n=Geti();n+) if(!(pare(bn.Getbname()&!(pare(bn.Getbnumber()&bn.Gettag()=0) cout图书已经在书架,请编写不同编号i+; bthis-i.Add(name,number,stype); */ void Controlbook: Delbook(const string &name,const string &number,const string stype) int n=0; if(!Search(name,number,n)bn.Dele(); else cout不存在该书籍endl; void Controlb
17、ook:Display()for(int n=0;n=i;n+)if(bn.Gettag()=0)bn.Display(); void Controlbook: Cbookmap() char choose; / int n; / cout初始化图书馆中藏书个数:n; string sna; string snu; string sst; cout-图书操作-endl; coutsetw(8)增加图书endl; coutsetw(8)删除图书endl; cout setw(8)查找图书endl; coutsetw(8)输出操作endl; cout setw(8) 初始化图书endl; cout
18、 setw(8)退出操作endl; while(1) cout输入你选择的功能choose; getchar(); if(choose=0) break; switch (choose) case 5:/cout初始化图书馆中藏书个数:endl; Controlbook1(); break; case 4:cout输出现有书籍endl; Display(); break; case 3:coutsna; coutsnu; coutsst; if(Search(sna,snu) cout未查找所需的图书endl; ; break; case 2:coutsna; coutsnu; coutsst
19、; Delbook(sna,snu,sst); break; case 1:coutsna; coutsnu; coutsst; Addbook(sna,snu,sst); break; default :cout输入选择项有误endl;break; ; class Readprivate:string name;/读者姓名int number;/学号int count;/借书个数int tag;/0读者存在,1表示不存在public:/int count;/借书个数string booknameMAXB;/借阅图书名集合(最多借五本书)Read();Read(const string n,i
20、nt num,int c,int t);Read();void Setname(const string na);string Getname();void Setnumber(int num);int Getnumber();void Setcount(int n)count+=n;int Getcount();int Gettag()return tag;void Delreader();void Addreader(const string n,int num,int c,int t);void Display();Read:Read()count=0;tag=1;Read:Read(c
21、onst string n,int num,int c,int t)name=n;number=num;count=c;tag=t;void Read:Setname(const string na)name=na;string Read:Getname()return name; void Read:Setnumber(int num) number=num; int Read:Getnumber() return number; int Read:Getcount()return count;void Read: Delreader()tag=1;void Read:Addreader(c
22、onst string n,int num,int c,int t)Read( n,num,c, t);void Read:Display()int ii=Getcount();coutsetw(3)读者姓名namesetw(3)学号numbersetw(3)借书统计Getcount();if(ii=0)cout没有借阅图书;elsewhile(ii-)coutbooknameii ;class ControlRead:public Controlbookprivate: int i; Read rMAX;public:ControlRead()i=-1;ControlRead(int rn,
23、int rb): Controlbook(rb)string n;int num;i=-1;while(rn-)cout读者姓名n;cout读者学号num;Read re(n,num,0,0);+i;ri=re; ;void Controlreadinial() int rn;string n;int num;cout初始化读者个数rn;i=-1;while(rn-)cout读者姓名n;cout读者学号num;Read re(n,num,0,0);+i;ri=re;void Addread();/增加读者bool Searchread(int num);/查找是否存在这个读者void Read
24、rbook();/读者归还书籍void Readbbook();/读者借阅的书籍void Searchreadbook();/读者借书信息void Controlreadmap();void ControlRead:Controlreadmap() char choose; cout-读者与图书操作-endl; coutsetw(8)增加读者endl; coutsetw(8)读者归还书籍endl; cout setw(8)读者借阅的书籍endl; coutsetw(8)读者借书信息endl; coutsetw(8)初始化读者信息endl; cout setw(8)退出操作endl; while
25、(1) cout输入你选择的功能choose; getchar(); if(choose=0) break; switch (choose) case 1:Addread();break; case 2: Readrbook();break; case 3:Readbbook();break; case 4:Searchreadbook();break; case 5:Controlreadinial();break; default :cout输入选择项有误endl;break; bool ControlRead:Searchread(int num)int n;for(n=0;n=i;n+
26、)if(rn.Getnumber()=num&rn.Gettag()=0)return 1;/查找到读者return 0;/未查找到读者void ControlRead: Addread()string n;int num1;cout读者姓名n;cout读者学号num1;if(!Searchread(num1)Read re(n,num1,0,0); +i;ri=re;else cout读者存在endl;void ControlRead:Readbbook()/Book b;int n;string name;string num;int snum;cout输入要借阅读书名字name;cout
27、输入要借阅读书序列号num;cout输入要借书的读者学号snum;if(!Search(name,num)for(n=0;ni;n+)if(rn.Getnumber()=snum)rn.booknamern.Getcount()=name;rn.Setcount(1);break;void ControlRead:Searchreadbook()int n;for(n=0;n=i;n+) rn.Display();int main() int choose;while(1)cout是否退出(0退出,非0不退出)choose;if(choose=0) break;ControlRead c1;c1.Cbookmap();c1.Controlreadmap();return 0;-