版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C+程序设计课程设计说明书题 目:图书馆管理系统 班 级:09级电信2班 姓 名:姜有栋 学 号:0967118237 指导教师:余金林 成 绩: 日 期:2011年6月内蒙古科技大学课程设计任务书课程名称C+语言课程设计设计题目图书馆管理系统指导教师余金林时间一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设计内容适当修改题目名称。图书馆
2、管理系统定义图书基类和读者类,并派生出各种所需类并在类中声明各自的成员函数;要求至少设计以下各功能模块:v 输入图书和读者记录v 查询图书和读者功能v 统计图书和读者v 显示信息三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告
3、的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C+面向对象程序设计,吴敏、杨国林 主编,内蒙古大学出版社2C+语言程序设计(第三版),郑莉,清华大学出版社目录一、 问题描述 1二、 问题分析 1三、 数据模型 1 四、 设计流程图 2五、 程序代码 3六、程序运行 8七、设计总结 81. 问题描述:图书馆管理系统定义图书基类和读者类,并派生出各种所需类并在类中声明各自的成员函数; 要求至少设计以下各功能模块:v 输入图书和读者记录 v 查询图书和读者功能 v 统计图书和读者数据v 显示信息2. 问题分析:2.1阐述你对问题的理解、解决问题的方案说明。 在实际生活中,图书馆
4、工作人员都面临着一个非常具体现实的问题,即图书借阅的管理。当图书与读者数量不大时,工作人员可以根据相关纸质纪录进行定期检查与核对而清楚的掌握书籍与读者信息,并对其行修改与维护,但是现实生活中工作人员管理的数据数量庞大,不可能人工完成相关管理。为了迎合自动化办公的要求,现要求设计一个图书借阅管理系统完成对于读者、图书相关信息的记录操作及添加、修改、更新等维护操作。2.2系统功能模块的划分 3数据模型:3.1相关数据结构的说明3.2类的设计 3.3全局变量,重要形式参数、局部变量等等,它们的命名及用途解释4. 程序流程图 5. 程序代码#include <iostream>#inclu
5、de <iomanip>#include <fstream>#include <string>#include <stack>#include <queue>#include <list>#include <vector>using namespace std;const int MAX=10;const int MAXB=5;/图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Bookprivate:string bname;/书名string bnumber;/书号string bsty
6、pe;/藏书类型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 &number);/设置书号string Getbnumber
7、();/返回书号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();/还书void Display();/显示图书信息;Book:B
8、ook(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;string
9、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 s
10、tring 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)cout<<setw(3)<<"书名"<<setw(3)<<"书号"<<
11、setw(3)<<"上架类型"<<setw(3)<<"是否借出"<<endl;cout<<setw(3)<<Getbname()<<setw(3)<<Getbnumber()<<setw(3)<< Getstype();if(on=1) cout<<"已借出"else cout<<"在书架"cout<<endl;/图书类的操作class Controlbookp
12、ublic:int i;/下表指针Book bMAX;/为了方面静态插入操作,定义内嵌对象数组public: Controlbook(); Controlbook(int ii); Controlbook(); void Controlbook1() i=-1; int n; cout<<"初始化图书馆中藏书个数:"<<endl; cin>>n; string sa;string sb;string sc; while(n-) cout<<"输入书名" cin>>sa; cout<<
13、"输入书号" cin>>sb; cout<<"输入藏书类型" cin>>sc; 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()&&a
14、mp;bn.Gettag()=0) cout<<"图书已经在书架,请编写不同编号"<<endl;return 0; / this->i+; /bthis->i.Add(name,number,stype); return 1; bool Search(const string &name,const string &number); bool Search(const string &name,const string &number,int &ii); void Addbook(const str
15、ing &name,const string &number,const string stype); void Delbook(const string &name,const string &number,const string stype); void Cbookmap(); void Display();Controlbook:Controlbook() i=-1;Controlbook:Controlbook(int ii) string sa;string sb;string sc; while(ii-) cout<<"输入书
16、名" cin>>sa; cout<<"输入书号" cin>>sb; cout<<"输入藏书类型" cin>>sc; 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()&&!(p
17、are(bn.Getbnumber()&&bn.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.Getbnum
18、ber()&&bn.Gettag()=0) ii=n; cout<<"查找所要图书"<<endl; bn.Settag(1); bn.Display(); return 0; return 1; void Controlbook:Addbook(const string &name,const string &number,const string stype)if(Search1(name,number)this->i+;bthis->i.Add(name,number,stype);/* for(int
19、 n=0;n<=Geti();n+) if(!(pare(bn.Getbname()&&!(pare(bn.Getbnumber()&&bn.Gettag()=0) cout<<"图书已经在书架,请编写不同编号"<<endl;break; this->i+; bthis->i.Add(name,number,stype); */ void Controlbook: Delbook(const string &name,const string &number,const string
20、stype) int n=0; if(!Search(name,number,n)bn.Dele(); else cout<<"不存在该书籍"<<endl; void Controlbook:Display()for(int n=0;n<=i;n+)if(bn.Gettag()=0)bn.Display(); void Controlbook: Cbookmap() char choose; / int n; / cout<<"初始化图书馆中藏书个数:"<<endl; / cin>>n;
21、string sna; string snu; string sst; cout<<"-图书操作-"<<endl; cout<<setw(8)<<"1->增加图书"<<endl; cout<<setw(8)<<"2->删除图书"<<endl; cout <<setw(8)<<"3->查找图书"<<endl; cout<<setw(8)<<&qu
22、ot;4->输出操作"<<endl; cout <<setw(8)<<"5-> 初始化图书"<<endl; cout <<setw(8)<<"0->退出操作"<<endl; while(1) cout<<"输入你选择的功能<0-1-2-3-4-5>"<<endl; cin>>choose; getchar(); if(choose='0') break; swi
23、tch (choose) case '5':/cout<<"初始化图书馆中藏书个数:"<<endl; Controlbook1(); break; case '4':cout<<"输出现有书籍"<<endl; Display(); break; case '3':cout<<"输入书名" cin>>sna; cout<<"输入书号" cin>>snu; cout<&l
24、t;"输入藏书类型" cin>>sst; if(Search(sna,snu) cout<<"未查找所需的图书"<<endl; ; break; case '2':cout<<"输入书名" cin>>sna; cout<<"输入书号" cin>>snu; cout<<"输入藏书类型" cin>>sst; Delbook(sna,snu,sst); break; case &
25、#39;1':cout<<"输入书名" cin>>sna; cout<<"输入书号" cin>>snu; cout<<"输入藏书类型" cin>>sst; Addbook(sna,snu,sst); break; default :cout<<"输入选择项有误"<<endl;break; ; class Readprivate:string name;/读者姓名int number;/学号int count;/借
26、书个数int tag;/0读者存在,1表示不存在public:/int count;/借书个数string booknameMAXB;/借阅图书名集合(最多借五本书)Read();Read(const string n,int 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 Del
27、reader();void Addreader(const string n,int num,int c,int t);void Display();Read:Read()count=0;tag=1;Read:Read(const 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 Re
28、ad:Getnumber() return number; int Read:Getcount()return count;void Read: Delreader()tag=1;void Read:Addreader(const string n,int num,int c,int t)Read( n,num,c, t);void Read:Display()int ii=Getcount();cout<<setw(3)<<"读者姓名"<<name<<setw(3)<<"学号"<<
29、number<<setw(3)<<"借书统计"<<Getcount();if(ii=0)cout<<"没有借阅图书"elsewhile(ii-)cout<<booknameii<<" "class ControlRead:public Controlbookprivate: int i; Read rMAX;public:ControlRead()i=-1;ControlRead(int rn,int rb): Controlbook(rb)string n;in
30、t num;i=-1;while(rn-)cout<<"读者姓名"<<endl;cin>>n;cout<<"读者学号"<<endl;cin>>num;Read re(n,num,0,0);+i;ri=re; ;void Controlreadinial() int rn;string n;int num;cout<<"初始化读者个数"<<endl;cin>>rn;i=-1;while(rn-)cout<<"
31、读者姓名"<<endl;cin>>n;cout<<"读者学号"<<endl;cin>>num;Read re(n,num,0,0);+i;ri=re;void Addread();/增加读者bool Searchread(int num);/查找是否存在这个读者void Readrbook();/读者归还书籍void Readbbook();/读者借阅的书籍void Searchreadbook();/读者借书信息void Controlreadmap();void ControlRead:Control
32、readmap() char choose; cout<<"-读者与图书操作-"<<endl; cout<<setw(8)<<"1->增加读者"<<endl; cout<<setw(8)<<"2->读者归还书籍"<<endl; cout <<setw(8)<<"3->读者借阅的书籍"<<endl; cout<<setw(8)<<"4-
33、>读者借书信息"<<endl; cout<<setw(8)<<"5->初始化读者信息"<<endl; cout <<setw(8)<<"0->退出操作"<<endl; while(1) cout<<"输入你选择的功能<0-1-2-3-4-5>"<<endl; cin>>choose; getchar(); if(choose='0') break; switch (choose) case '1':Addread();break; case '2': Readrbook();break; case '3':Readbbook();break; case '4':Searchreadbook();brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论