颜图书管理系统.docx
- 文档编号:14723687
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:22
- 大小:111.20KB
颜图书管理系统.docx
《颜图书管理系统.docx》由会员分享,可在线阅读,更多相关《颜图书管理系统.docx(22页珍藏版)》请在冰点文库上搜索。
颜图书管理系统
长江学院
课程设计报告
课程设计题目:
图书管理系统
姓名:
颜郑梦学号:
09324125
专业:
统计
班级:
093241
指导教师:
黄国辉
2011年11月14日
一、系统功能分析:
图书管理系统
设计说明报告:
图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书馆和用户借阅资料繁多,包含很多的信息数据的管理。
介于这一现象,我们对于图书馆的借阅管理系统进行了全面的分析处理,在信息高速发展的今天,促进图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图书的利用率。
我的系统针对的是图书管理,面对大量纷繁复杂的图书管理工作,和不同图书的借出和归还,需要设计一个合理的系统,它应包括图书库,读者库,和图书的借还书信息建立网上电子图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,
对过时、损失的图书进行删除,达到降低成本提高工作效率的目标。
我的系统设计还有很多的缺点和不足,在以后的时间里要不断的完善,修改。
希望老师能够指出我的不足,使其能够真正的,更好的应用在人们的生活中。
二、系统设计:
在程序中我们设置了四个类,每人负责一个类的运行和操作。
我这部分的是属于读者库类。
读者库类包括:
inttop;读者记录指针Readerread[Maxr];读者记录RDatabase()构造函数,将reader.txt读到read[]中voidclear()删除所有读者信息intaddreader(intn,char*na)添加读者时先查找是否存在Reader*query(intreaderid)按编号查找voiddisp()输出所有读者信息voidreaderdata();读者库维护~RDatabase()析构函数,将read[]写入reader.txt文件中。
Rdatabase(读者库类)
Inttop
Readerread[maxr]
Rdatabase()
Voidclear()
Intaddreader(intn,char*na)
Reader*query(intreaderid)
Voiddisp()
Voidreaderdata()
~Rdatabase()
三、代码编写:
#include
#include
#include
#include
constintMaxr=100;
constintMaxb=100;
constintMaxbor=5;
classReader
{
inttag;
intno;
charname[10];
intborbook[Maxbor];
public:
Reader(){}
char*getname(){returnname;}
intgettag(){returntag;}
intgetno(){returnno;}
voidsetname(charna[])
{
strcpy(name,na);
}
voiddelbook()
{
tag=1;
}
voidaddreader(intn,char*na)
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;i borbook[i]=0; } voidborrowbook(intbookid) { for(inti=0;i if(borbook[i]==0) { borbook[i]=bookid; return; } } intretbook(intbookid) { for(inti=0;i if(borbook[i]==bookid) { borbook[i]=0; return1; } return0; } voiddisp() { cout< ["; for(inti=0;i if(borbook[i]! =0) cout< cout<<"]"< } }; classRDatabase { inttop; Readerread[Maxr]; public: RDatabase() { Readers; top=-1; fstreamfile("reader.txt",ios: : in); while (1) { file.read((char*)&s,sizeof(s)); if(! file)break; top++; read[top]=s; } file.close(); } voidclear() { top=-1; } intaddreader(intn,char*na) { Reader*p=query(n); if(p==NULL) { top++; read[top].addreader(n,na); return1; } return0; } Reader*query(intreaderid) { for(inti=0;i<=top;i++) if(read[i].getno()==readerid&&read[i].gettag()==0) return&read[i]; returnNULL; } voiddisp() { for(inti=0;i<=top;i++) { if(read[i].gettag()==0) read[i].disp(); } } voidreaderdata(); ~RDatabase() { fstreamfile("reader.txt",ios: : out); for(inti=0;i<=top;i++) if(read[i].gettag()==0) file.write((char*)&read[i],sizeof(read[i])); file.close(); } }; voidRDatabase: : readerdata() { intchoice=1; charrname[20]; intreaderid; Reader*r; while(choice! =0) { if(choice! =0) { cout<<"读者维护"< 新增2: 更改3: 删除4: 查找5: 显示6: 全删0: 退出=>"; cin>>choice; if(choice==0)continue; if(choice==1) { cout<<"输入读者编号: "; cin>>readerid; cout<<"输入读者姓名: "; cin>>rname; addreader(readerid,rname); } else if(choice==2) { cout<<"输入读者编号: "; cin>>readerid; r=query(readerid); if(r==NULL) { cout<<"该读者不存在"< continue; } cout<<"输入新的姓名: "; cin>>rname; r->setname(rname); } else if(choice==3) { cout<<"输入读者编号: "; cin>>readerid; r=query(readerid); if(r==NULL) { cout<<"该读者不存在"< continue; } r->delbook(); } else if(choice==4) { cout<<"输入读者编号: "; cin>>readerid; r=query(readerid); if(r==NULL) { cout<<"该读者不存在"< continue; } r->disp(); } else if(choice==5)disp(); else if(choice==6)clear(); else cout<<"您的输入有误! ! ! 请重新输入: "< } } } classBook { inttag; intno; charname[20]; intonshelf; public: Book(){} char*getname(){returnname;} intgetno(){returnno;} intgettag(){returntag;} voidsetname(charna[]) { strcpy(name,na); } voiddelbook() { tag=1; } voidaddbook(intn,char*na) { tag=0; no=n; strcpy(name,na); onshelf=1; } intborrowbook() { if(onshelf==1) { onshelf=0; return1; } return0; } voidretbook() { onshelf=1; } voiddisp() { cout< "在架": "已借")< } }; classBDatabase { inttop; Bookbook[Maxb]; public: BDatabase() { Bookb; top=-1; fstreamfile("book.txt",ios: : in); while (1) { file.read((char*)&b,sizeof(b)); if(! file)break; top++; book[top]=b; } file.close(); } voidclear() { top=-1; } intaddbook(intn,char*na) { Book*p=query(n); if(p==NULL) { top++; book[top].addbook(n,na); return1; } return0; } Book*query(intbookid) { for(inti=0;i<=top;i++) if(book[i].getno()==bookid&&book[i].gettag()==0) return&book[i]; returnNULL; } voidbookdata(); voiddisp() { for(inti=0;i<=top;i++) { if(book[i].gettag()==0) book[i].disp(); } } ~BDatabase() { fstreamfile("book.txt",ios: : out); for(inti=0;i<=top;i++) if(book[i].gettag()==0) file.write((char*)&book[i],sizeof(book[i])); file.close(); } }; voidBDatabase: : bookdata() { intchoice=1; charbname[40]; intbookid; Book*b; while(choice! =0) { if(choice! =0) { cout<<"图书维护"< 新增2: 更改3: 删除4: 查找5: 显示6: 全删0: 退出=>"; cin>>choice; if(choice==0)continue; if(choice==1) { cout<<"输入图书编号: "; cin>>bookid; cout<<"输入图书书名: "; cin>>bname; addbook(bookid,bname); } else if(choice==2) { cout<<"输入图书编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< continue; } cout<<"输入新的书名: "; cin>>bname; b->setname(bname); } else if(choice==3) { cout<<"输入图书编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< continue; } b->delbook(); } else if(choice==4) { cout<<"输入图书编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< continue; } b->disp(); } else if(choice==5)disp(); else if(choice==6)clear(); else cout<<"您的输入有误! ! ! 请重新输入: "< } } } voidmain() { intchoice=1,bookid,readerid; RDatabaseReaderDB; Reader*r; BDatabaseBookDB; Book*b; while(choice! =0) { if(choice! =0) { cout<<"1: 借书2: 还书3: 图书维护4: 读者维护0: 离开=>"; cin>>choice; if(choice==0)continue; if(choice==1) { cout<<"借书读者编号: "; cin>>readerid; cout<<"图书编号: "; cin>>bookid; r=ReaderDB.query(readerid); if(r==NULL) { cout<<"该读者不存在,不能借书"< continue; } b=BookDB.query(bookid); if(b==NULL) { cout<<"该读者不存在,不能借书"< continue; } if(b->borrowbook()==0) { cout<<"该读者不存在,不能借书"< continue; } r->borrowbook(b->getno()); } else if(choice==2) { cout<<"还书读者编号: "; cin>>readerid; cout<<"图书编号: "; cin>>bookid; r=ReaderDB.query(readerid); if(r==NULL) { cout<<"不存在该读者,不能借书"< continue; } b=BookDB.query(bookid); if(b==NULL) { cout<<"不存在该图书,不能借书"< continue; } b->retbook(); r->retbook(b->getno()); } if(choice==3)BookDB.bookdata(); else if(choice==4)ReaderDB.readerdata(); elsecout<<"您的输入有误! ! ! 请重新输入: "< } } } 四、总结 经过一周的程序设计,我从中学到很多,从最开始的在拿到题目时候的一无所知,到现在对整个编程的结构有了初步的了解。 翻阅书籍在网上查找解释等。 最终做出了题目。 我们对图书管理系统有了进一步的认知和了解。 要不断避免自己的一些小错误。 在不断地学习中得到进步。 五、参考书 •1、 李龙澍主编,《C++程序设计》,清华大学出版社。 •2、李龙澍主编,《C++程序设计实训》,清华大学出版社社。 •3、刘振安等,《C++程序设计课程设计》,机械工业出版社。 •4、李春葆等,《C++语言程序设计题典》,清华大学出版社。 指导教师评语 学号 09324125 姓名 颜郑梦 班级 093241 选题 名称 仓库信息管理系统 序号 评价内容 权重(%) 得分 1 考勤记录、学习态度、工作作风与表现。 10 2 是否完成设计任务;能否运行、可操作性如何等。 30 3 报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。 30 4 自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。 30 合计 指导教师(签章): 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统