C图书管理系统实验报告_第1页
C图书管理系统实验报告_第2页
C图书管理系统实验报告_第3页
C图书管理系统实验报告_第4页
C图书管理系统实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计(C+语言)课程设计图书管理系统的设计与实现起止日期:年 月 日至指导教师(签字)计算机与通信学院年 月曰图书管理系统.需求分析图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对 图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实 现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完面 向对象程序设计课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计 中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。.设计要求:1. 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价

2、格等。试设计一图书信息管理系统,使之能提供以下功能:2. 系统以菜单方式工作?3. 图书信息录入功能(图书信息用文件保存)一一输入?4. 图书信息浏览功能一-输出?5. 查询和排序功能:(至少一种查询方式)一一算法?6. 按书名查询7. 按作者名查询8. 图书信息的删除与修改(可选项)?三.概要设计1、类的设计 、Book类的设计(内部函数流程图): 、BDatabase类的设计: 、主函数流程图:4多态的实现class People p ublic:virtual void card()coutvvcard peop lee ndl; ;class Stude nt: public Peop

3、lep ublic:virtual void card()coutcard stude nte ndl;四、详细设计:#defi ne StrNum 20#define Type 20 #include #include #include #include /输入/ 输出文件流类using namespace std;const int Maxb=100; /最多可存储的图书class People public:virtual void card()coutcard peopleendl; ;class Student:public Peoplepublic:virtual void car

4、d()coutcard studentendl;class Book private:int lab;/删除标记int num;/图书编号int add;/增加标记char numberStrNum;/编号char booknameStrNum;/书名char bookkindType;/图书类型public:Book()char getkind()/获取图书类型return bookkindType;char getname()/获取书名return booknameStrNum;int getnum()/获取图书编号return num;int getlab()/获取删除标记return

5、lab;设置书名void setname(char na) /设置类型strcpy(bookname,na);void setkind(char kin) /strcpy(bookkind,kin);void delbook()/删除图书lab=1;void addbook(int n,char *na,char *kin)/增加图书lab=0;num=n;strcpy(bookname,na);strcpy(bookkind,kin);void disp()/输出图书cout.flags (ios:left); /设置对齐的标志位为左coutsetw(15)numsetw(20)bookna

6、mesetw(15)bookkindendl;class BDatabaseprivate:int top;Book bookMaxb;/图书记录public:BDatabase()/构造函数,将 book.txt 读到 book 中Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close();void clear()/全删查找图书增加图书top=-1;int addbook(int n,char *n

7、a,char *kin) /Book *p=query(n);if(NULL=p)top+;booktop.addbook(n,na,kin);return 1;return 0;Book *query(int bookid) /for (int i=0;i=top;i+)if (booki.getnum()=bookid &booki.getlab()=0)return &booki;return NULL;void disp() / 图书库for (int i=0;i=top;i+)if (booki.getlab()=0)booki.disp();BDatabase()/析构函数,将 b

8、ook 写到 book.txt 文件中, 实现文本的写入fstream file(book.txt,ios:out);for (int i=0;i=top;i+)if (booki.getlab()=0)file.write(char *)&booki,sizeof(booki);file.close();void main()BDatabase BookDB;char choice;char bname40;char bkind40;char newType20;int bookid;Book *b;while (choice!=0) coutt* *n;nn;coutcoutttt书 管

9、理 系 统 nn;coutttt1新增图书记录 n;coutttt2更改图书记录 n;coutttt3删除图书记录 n;coutttt5显示图书记录n;coutttt6清空全部记录慎用) n;coutttt4查找图书记录n;coutttt0退出系统 n;coutttt7人员 n;nn;coutcoutt*n;cout请选择 (1,2,3,4,5,6,0):;cout 输入图书编号 :choice;switch (choice) case 1:cout 输入图书编号 :bookid;cout 输入图书类型 :newType;cout输入图书书名 :bname;BookDB.addbook(boo

10、kid,bname,newType);break;case 2:cinbookid;b=BookDB.query(bookid);cout 确定要删除此记录吗 ?(Y/N)endl;if(b=NULL)cout 该图书不存在 endl;break;cout 输入新的书名 :bname;b-setname(bname);cout 输入新的类型 :bkind;b-setkind(bkind);break;case 3:cout 读入图书编号 :bookid;b=BookDB.query(bookid);if(b=NULL)break;char tg1;cintg1;if(tg1!=n&tg1!=N

11、) b-delbook();cout 已成功删除该书记录! endl;break;case 4:cout 读入图书编号 :bookid;b=BookDB.query(bookid);if (b=NULL)cout 该图书不存在 endl;break;coutdisp();break;case 5:n;b=BookDB.query(bookid);b-disp();break;case 6:char tg2;cout 确定要清空所有记录吗 ?(Y/N)tg2;if(tg2!=n&tg2!=N)BookDB.clear();cout 已成功清空记录! endl;break;case 0:break;default:coutcard();ref.card();break;五.用户使用说明本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,基本符合设计要求,利用类的封装实现了一定的安全性,函数的实现与调用在主函 数中实现。但在记录查询上仍有缺陷,有待于完善。六、实验心得:1、通过实验加深了对C+的了解,在程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论