关键词不能为空

当前您在: 主页 > 英语 >

c++程序设计图书管理系统

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 08:17
tags:

-

2021年2月10日发(作者:snake什么意思)


一、



需求分析



图书系统在生活中运用相当广泛,因此需要很多程序对他进行管理。本系统有四个类,


Book


类,


BDatebase

< p>
类、


Reader


类、


R Datebase


类,存储借阅者的个人信息、借阅信息以及预定信息。持有

< p>
借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定等功能。

< p>


二、



系统总框图




图书管理系统



四个类



程序实现功能


















< br>文

















退






三、



模块的设计分析



4.1


图书入库管理模块设计



设定了书籍总数,定义了新图书的增加和书籍编号。



Book p[1000];


void inlibrary()


int sort_add


4.2


图书借书管理模块设计



定义了图书的借书系统,和借出书籍编号。



int Book::borrow()


int number_out;


4.3


图书还书管理模块设计



定义了图书的还书系统,和还出书籍编号。



int Book::restore()


int number_in;










4.4


图书查询管理模块设计



无专门模块,同借还书系统。



在借书和还书的同时,进行查询。



四、



程序中出现的函数



看看该类定义了借书操作,还书操作,设置读者姓名等功能。



Reader


+name[20]:char


+no:int


+tag:int


+borbook:int


+ getname():char


+gettag():int


+ getno():int


+setname(char na[]):void


+ delbook():void


+ addreader(int n,char *na):void


+ borrowbook(int bookid):void


+ retbook(int bookid):int


+ disp():void



该类实现了建立读者的个人资料, 删除读者信息,输出读者信息等功能。



RDatebase


+ top:int


+ rname[20]:char


+readerid:int


+readerdata():void


+choice:char


+addreader(int n,char *na):int


+clear():void


+disp():void



图书类的设计




Book


+no:int


+name[20]:char


+onshelf:int


+getname():char


+getno():int


+gettag():int


+setname(char na[]):void


+delbook():void


+addbook():void


+borrowbook():int


+retbook():void


+disp ():void


图书库类的设计




Xingzhengrenyuan


+top:int


+clear():void


+addbook(int n,char *na):int


+bookdata():void


+bookdata():void


+ disp():void



五、



特色的函数实现



void BDatabase::bookdata()



{



char choice;



char bname[40];



int bookid;



Book *b;



while (choice!='0')



{



cout <<


图书维护





cout<<




n


tt2




ntt3




ntt4




ntt5




ntt6




ntt0


退





cin >> choice;



switch (choice)



{



case '1':



cout <<


输入图书编号


:



cin >> bookid;



cout <<


输入图书书名


:



cin >> bname;



addbook(bookid,bname);



break;



case '2':



cout <<


输入图书编号


:



cin >> bookid;



b=query(bookid);



if (b==NULL)



{



cout <<


该图书不存在





break;



}



cout <<


输入新的书名


:



cin >> bname;



b->setname(bname);



break;



case '3':



cout <<


读入图书编号


:



cin >> bookid;



b=query(bookid);



if (b==NULL)



{



cout <<


该图书不存在




break;



}



b->delbook();



break;



case '4':



cout <<


读入图书编号


:



cin >> bookid;



b=query(bookid);



if (b==NULL)



{



cout <<


该图书不存在




break;



}



b->disp();



break;



case '5':



disp();



break;



case '6':



clear();



break;



default:c out<<


输入错误,请从新输入


:



}



}



}



六、



存在的问题与不足及对策



由于设计者 水平有限及时间等方面的原因,该系统的功能比较简单,查错能力也不强,对于一


些不正 确的输入可能会造成一些难以预料的结果,因此,请不要故意输入错误信息。这些不足请老


师多多谅解。今后设计者会更多的学习编程技巧,不断的提高程序设计水平。




七、心得体会


通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,这个程序的设计


过程中,我清楚的意识到自己的水平有多么的薄弱,每增加一个函数就要调试好久,有时候应为少


了一个大括号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但 我


意识到了自己有太多的不足。



以后 还会有很多的课程设计,


一定要吸取这次的教训,


把知识学懂学 透学精,


真正的为我所用,


这样走上社会我才能真正的发挥所长 。




源程序



#include


#include


#include


#include


using namespace std;


const int Maxr=100;


const int Maxb=100;


const int Maxbor=5;


class Reader


{


private:


int tag;


int no;


char name[10];


int borbook[Maxbor];


public:


Reader() {}


char *getname() {return name;}


int gettag() {return tag;}


int getno() {return no;}


void setname(char na[])


{


strcpy(name,na);



}


void delbook(){ tag=1; }


void addreader(int n,char *na)


{


tag=0;


no=n;


strcpy(name,na);


for(int i=0;i


borbook[i]=0;


}


void borrowbook(int bookid)


{


for(int i=0;i


{


if (borbook[i]==0)


{


borbook[i]=bookid;


return;



}


}



}


int retbook(int bookid)


{


for(int i=0;i


{


if(borbook[i]==bookid)


{


borbook[i]=0;


return 1;



}


}


return 0;


}


void disp()


{


cout << setw(5) << no <


借书编号:


[


for(int i=0;i


if(borbook[i]!=0)


cout << borbook[i] <<


cout <<



}


};



class RDatabase


{


private:


int top;


Reader read[Maxr];


public:


RDatabase()


{


Reader s;


top=-1;


fstream file(


while (1)


{


((char *)&s,sizeof(s));


if (!file)break;


top++;


read[top]=s;


}


();


}


void clear()


{


top=-1;


}


int addreader(int n,char *na)


{


Reader *p=query(n);


if (p==NULL)


{


top++;


read[top].addreader(n,na);


return 1;


}


return 0;



}


Reader *query(int readerid)


{


for (int i=0;i<=top;i++)


if (read[i].getno()==readerid &&


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


{


return &read[i];


}


return NULL;


}


void disp()


{


for (int i=0;i<=top;i++)


read[i].disp();


}


void readerdata();


~RDatabase()


{


fstream file(


for (int i=0;i<=top;i++)


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


((char *)&read[i],sizeof(read[i]));


();



}


};


void RDatabase::readerdata()


{



char choice;


char rname[20];


int readerid;


Reader *r;


while (choice!='0')


{


cout <<


读者维护


nnntt 1


新增


nntt 2


更改


nntt 3


删除


nntt 4




nntt 5


显示


nntt 6


全删


nntt 0


退出



cin >> choice;


switch (choice)


{


case '1':


cout <<


输入读者编号


:


cin >> readerid;


cout <<


输入读者姓名


:


cin >> rname;

-


-


-


-


-


-


-


-



本文更新与2021-02-10 08:17,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/627637.html

c++程序设计图书管理系统的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文