《面向对象程序设计》课程设计 联系客服

发布时间 : 星期一 文章《面向对象程序设计》课程设计更新完毕开始阅读59046a48336c1eb91a375d84

甘肃政法学院

面向对象程序设计

课程设计

题 目 图书管理系统的设计

计算机科学学院 计算机科学与技术 专业 2011 级 计算科学与技术本科 班

学 号:__201181110110 姓 名:____黄志强___ 指导教师:_____金 涛_____ 成 绩:_______________ 完成时间:_2012 年 _6 月

一.问题的分析与功能的定义:

二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源

引起人们广泛的关注。如何获取信息呢!图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书。因此新的图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息 。

1、设计内容及要求:

(1)设计一个图书馆管理系统,完成图书管理和读者管理的功能,并能对借阅信息进行管理,要求完成以下功能:图书资料管理,可以添加、修改、删除、查询书籍信息;读者资料管理,可以添加、修改、删除、查询读者信息;借书管理,可以进行添加借书信息;还书管理,可以进行还书信息。

(2)该项目是在Visual C++ 6.0的平台下用c++语言实现。 2.模块图:

图书馆管理系借书 还书 读者维护 图书维护 离开

二.对象(类)设计及实现:

1、概要设计:

Reader读者类、RDatabase 读者库类、Book 图书类、BDatabase 图书库类。

2、详细设计:

(1)类的原型描述

class Reader //读者类 int tag;//删除标记1:已删0:未删 ; int no;//读者编号; char name[10];//读者姓名; int borbook[Maxbor]; //所借图书. Reader() {} char *getname() //获取姓名; int gettag() //获取删除标记; int getno() //获取读者编号;

1

void setname(char na[])//设置姓名; void delbook() //设置删除标记; void addreader(int n,char *na); //增加读者; void borrowbook(int bookid); //借书操作; int retbook(int bookid); //还书操作; void disp(); //输出读者信息. class Book //图书类 int tag; //删除标记1:已删0:未删; int no; //图书编号; char name[20];//书名; int onshelf;//是否在架1:在架0:已借. Book() {} char *getname();//获取姓名; int getno();//获取图书编号; int gettag(); //获取删除标记; void setname(char na[]);//设置书名; void delbook();//删除图书; void addbook(int n,char *na);//增加图书; int borrowbook() ;//借书操作; void retbook();//还书操作; void disp();//输出图书. class BDatabase //图书库类 int top;//图书记录指针 Book book[Maxb];//图书记录 BDatabase() ;//构造函数,将book.txt读到book[]中; void clear();//全删; int addbook(int n,char *na);//增加图书; Book *query(int bookid);//查找图书; void disp();//输出所有图书信息; void bookdata();//图书库维护;~BDatabase();//析构函数,将book[]写入book.txt文件中

三.核心控制设计

1、在主函数中我们要做的操作有:

(1)建立Reader读者类,RDatabase 读者库类,Book 图书类,BDatabase 图书

库类。

(2)建立菜单界面,从而完成以下内容:

①进入功能必须打开菜单,然后用户根据菜单选择相应的提示进行操作,如

借书,还书,图书维护,读者维护,退出等。

②从而进入相应的菜单中对相应的信息进行了解并进行统计。 (3) 将图书基本信息、图书采购信息、图书的借阅人信息存储下来。 (4) 系统界面简洁,易操作。 2、本程序应具备的功能: A.添加、借阅、还书功能:

(1)添加读者和图书信息。

(2)借阅尚在架的图书。 (3)读者归还的图书。

B.查找功能

(1) 根据图书的图书号和编号查找图书信息。 (2)根据读者的编号查找读者的信息。 C.系统的操作

(1) 系统在进入时,要有主菜单提示。

(2) 系统在用户退出时,也要有一定的提示。 3、算法分析 (1)添加操作:

1

包括两个部分,先通过输入设备输入信息,让系统获取;然后添加入读者数据库read.txt文件中。 A.获取信息

void Reader::addreader(int n,char *na) //增加读者 { tag=0; no=n; strcpy(name,na); for (int i=0;i

int RDatabase::addreader(int n,char *na) //增添读者信息 { der *p=query(n); if (p==NULL) { top++; read[top].addreader(n,na); cout<<\读者添加成功\ return 1; } return 0; }

B.析构函数写入新读者的编号跟姓名 RDatabase::~RDatabase() {

fstream file(\ for (int i=0;i<=top;i++) {

if(read[i].gettag()==0)

file.write((char *)&read[i],sizeof(read[i])); else file.close(); } }

(2)借书操作:利用for语句和if语句,通过判断图书的borbook的编号是否为0,来判断图书是否未被借走或还没有被借完。 void Reader::borrowbook(int bookid) //借书操作 { for (int i=0;i

1