关键词不能为空

当前您在: 主页 > 英语 >

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++程序设计图书管理系统的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文