C++毕业课程设计报告图书管理系统.docx
- 文档编号:17360788
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:25
- 大小:281.17KB
C++毕业课程设计报告图书管理系统.docx
《C++毕业课程设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《C++毕业课程设计报告图书管理系统.docx(25页珍藏版)》请在冰点文库上搜索。
C++毕业课程设计报告图书管理系统
(此文档为word格式,下载后您可任意编辑修改!
)
目录
(1)实践任务书....,............................................1
(2)总体设计方案...............................................2
1.设计分析...................................................2
2.模块设计...................................................3
3.流程图.....................................................3
(3)使用说明及运行实例.........................................4
1.系统首页...................................................4
2.操作主页...................................................4
3.功能模块...................................................5
(1)新增图书...............................................5
(2)更改图书...............................................5
(3)删除图书...............................................6
(4)查找图书...............................................6
(5)统计图书...............................................7
(6)清空全部...............................................7
(7)退出系统...............................................8
(4)成员设计内容简介...........................................9
(5)项目源程序代码.............................................10
(6)课程设计心得...............................................19
1.设计心得体会(侯想).........................................19
2.设计心得体会(孙昱).........................................20
3.设计心得体会(周易).........................................21
(7)成绩评定及评语.............................................22
(一)设计任务书
1.题目:
图书管理系统
2.程序功能组成:
程序为图书管理系统。
包括以下功能:
图书增添,修改,删除,统计,查找,清空记录。
3.成员组成与分工:
(1)成员组成:
机械1309侯想
机械1309周易
机械1309孙昱
(2)分工:
人员:
侯想
周易
孙昱
分工:
1.模块设计
2.报告修改
1.程序美化
程序调试
2.报告设计制作
1.模块设计
2.报告修改
(3)进度安排:
时间:
进度安排:
实施情况:
6月23日
自由组队,选择设计项目,明确分工。
按时完成
6月24日—26日
小组成员进行模块设计,包括编写、查找代码,运行调试代码。
按时完成
6月27日—28日
进行程序代码的组合,调试。
按时完成
7月1日—2日
进行程序的运行,检查,修改。
按时完成
7月3日—4日
提交,答辩。
按时完成
(二)总体设计方案
1.设计分析
(1)系统功能:
图书管理系统基本功能:
增加,更改,查找,删除;
全部图书记录的统计与显示;
快捷清空所有图书记录。
(2)系统要求:
数据成员
charname[StrNum];用来存放书名。
charnumber[StrNum];用来存放图书的编号。
charkind[Type];用来存放图书的类型。
inttag;定义删除标记。
intnum;定义图书编号为整形。
intadd;增加标记。
函数成员
Book(){}无参构造函数,用于为书名和作者姓名设置默认值。
chargetkind()用于获取图书类型。
chargetname()用于获取书名。
intgetnum()用于获取图书编号。
intgettag()用于获取删除标记。
voidsetname(charna[])用于设置书名。
voidsetkind(charkin[])用于设置类型。
voidsetauthor(charau[])用于设置作者。
voidsetpress(charpr[])用于设置出版社。
voiddelbook()用于删除图书。
voidaddbook(intn,char*na,char*kin,char*au.char*pr)用于增加图书。
voiddisp()用于输出图书。
(3)系统特点:
操作界面有颜色(背景蓝,字体白);
功能齐全;
系统稳定,无bug。
2.模块设计
共七个模块:
(1)新增图书
按编号,书名,类型,作者,出版社信息顺序添加图书;
(2)更改图书
按编号查找图书,然后进行信息更改录入;
(3)删除图书
按编号查找图书,然后进行删除工作;
(4)查找图书
根据编号查找图书;
(5)统计图书
显示系统所以已录入图书信息;
(6)清空全部
一次性清空系统记录,慎用(无恢复功能);
(7)退出系统
3.流程图
(三)使用说明及运行实例
1.系统首页
注)选择1才正式进入操作图书管理系统,选择0退出系统。
2.操作主页
注)输入数字1-6进入相应操作模块,输入0则退出系统。
3.功能模块
(1)新增图书
注)进入“新增图书”模块后,分别输入图书的编号,类型,书名,作者,出版社,回车结束操作。
(2)更改图书
注)进入“更改图书”模块后,输入对应需要更改的类容。
(3)删除图书
注)进入“删除图书”模块后,输入图书编号,键入y确认删除,n取消删除。
(4)查找图书
注)进入“查找图书”模块后,输入图书编号,回车后则显示所查找图书,且同时显示图书的信息。
(5)统计图书
注)进入“统计图书”模块后,即会显示所以系统保存的图书信息。
(6)清空全部
注)进入“新增图书”模块后,键入y确认清空,n取消清空。
(7)退出系统
注)在功能模块,键入0,即会返回系统首页。
若需重新操作,参考前面类容介绍;若需退出系统,则再键入0,回车,然后任意键退出系统。
(四)成员设计内容简介
成员设计工作表及简介
姓名
侯想
孙昱
周易
设计
类容
1.图书增加
加入图书书名,作者,编号,类型,出版社五种信息,录入记录。
2.图书显示
加入编号显示图书记录与信息。
3.图书统计
显示所以图书记录。
4.设计报告修改
进行报告后期修改。
1.图书删除
加入删除指定编号图书信息与记录,带有确认提示。
2.图书清空
加入清空所以图书记录信息,带有确认提示系统。
3.图书更改
加入按编号显示查找出需修改的图书,然后进行信息修改。
1.系统修改
修改源代码,美化操作界面,添加蓝色背景白色字体代码。
2.程序调试
调试程序,查看是否存在bug,修复不合理地方。
3.报告设计与制作
进行报告结构设计与简单制作,明确设计报告具体内容。
(五)项目源程序代码
程序源代码:
*****************************************************************************************
#defineStrNum20
#defineType20
#include
#include
#include
#include
usingnamespacestd;
constintMaxb=100;最多可存储的图书
classBook
{
private:
inttag;删除标记
intnum;图书编号
intadd;增加标记
charnumber[StrNum];编号
charname[StrNum];书名
charkind[Type];图书类型
charauthor[StrNum];图书作者
charpress[StrNum];出版社
public:
Book(){}
chargetkind()获取图书类型
{
returnkind[Type];
}
chargetname()获取书名
{
returnname[StrNum];
}
chargetauthor()获取作者
{
returnauthor[StrNum];
}
chargetpress()获取出版社
{
returnpress[StrNum];
}
intgetnum()获取图书编号
{
returnnum;
}
intgettag()获取删除标记
{
returntag;
}
voidsetname(charna[])设置书名
{
strcpy(name,na);
}
voidsetkind(charkin[])设置类型
{
strcpy(kind,kin);
}
voidsetauthor(charau[])设置作者
{
strcpy(author,au);
}
voidsetpress(charpr[])设置出版社
{
strcpy(press,pr);
}
voiddelbook()删除图书
{
tag=1;
}
voidaddbook(intn,char*na,char*kin,char*au,char*pr)增加图书
{
tag=0;
num=n;
strcpy(name,na);
strcpy(kind,kin);
strcpy(author,au);
strcpy(press,pr);
}
voiddisp()输出图书
{
cout.flags(ios:
:
left);设置对齐的标志位为左
cout< } }; ***************************************************************************************** classBDatabase { private: inttop;图书记录指针 Bookbook[Maxb];图书记录 public: BDatabase()构造函数,将book.txt读到book[]中 { 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,char*kin,char*au,char*pr)增加图书 { Book*p=query(n); if(NULL==p) { top++; book[top].addbook(n,na,kin,au,pr); return1; } return0; } Book*query(intbookid)查找图书 { for(inti=0;i<=top;i++) if(book[i].getnum()==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()析构函数,将book[]写到book.txt文件中 { 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() { charchoice; charbname[40]; charbkind[40]; charnewType[20]; charbauthor[40]; charbpress[40]; intbookid; Book*b; while(choice! ='0') { cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"< cout<<"※※"< cout<<"※图书管理系统※"< cout<<"※※"< cout<<"※1.新增图书※"< cout<<"※2.更改图书※"< cout<<"※3.删除图书※"< cout<<"※4.查找图书※"< cout<<"※5.统计图书※"< cout<<"※6.清空全部※"< cout<<"※0.退出系统※"< cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"< cout<<"请选择(0): "; cin>>choice; switch(choice) { case'1': cout<<"输入图书编号: "< cin>>bookid; cout<<"输入图书类型: "< cin>>newType; cout<<"输入图书书名: "< cin>>bname; cout<<"输入图书作者: "< cin>>bauthor; cout<<"输入出版社: "< cin>>bpress; addbook(bookid,bname,newType,bauthor,bpress); break; case'2': cout<<"输入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } cout<<"输入新的书名: "< cin>>bname; b->setname(bname); cout<<"输入新的类型: "< cin>>bkind; b->setkind(bkind); cout<<"输入新的作者: "< cin>>bauthor; b->setauthor(bauthor); cout<<"输入新的出版社: "< cin>>bpress; b->setpress(bpress); break; case'3': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } chartg1; cout<<"确定要删除此记录吗? (YN)"< cin>>tg1; if(tg1! ='n'&&tg1! ='N') { b->delbook(); cout<<"已成功删除该书记录! "< break; } case'4': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } cout<<"图书编号图书名称图书类型图书作者出版社\n"; b->disp(); break; case'5': cout<<"图书编号图书名称图书类型图书作者出版社\n"; disp(); break; case'6': chartg2; cout<<"确定要清空所有记录吗? (YN)"< cin>>tg2; if(tg2! ='n'&&tg2! ='N') { clear(); cout<<"已成功清空记录! "< break; } case'0': break; default: cout<<"输入错误,请从新输入(数字为0~6): "; } } } main()函数的实现,程序的主界面的引导 voidmain() { system("color3f"); charchoice; BDatabaseBookDB; while(choice! ='0') {cout<<"※※※※※※※※※※※※※※※※※※欢迎使用※※※※※※※※※※※※※※※※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※图书管理系统※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※※"< cout<<"※by侯想孙昱周易※"< cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"< cout<<"\t\t\t1进入系统\n\n\t\t\t0离开"< cout<<"请选择: "; cin>>choice; switch(choice) { case'1': BookDB.bookdata(); break; case'0': cout<<"\n\n\t\t\t欢迎再次使用图书管理系统\n\n"; break; default: cout<<"输入错误,请从新输入: "; } } } 注)操作环境: 在win732位系统中使用软件Microsoft visual c++6.0简体中文版编写。 (六)课程设计心得 1.设计心得体会(侯想) 说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。 其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。 最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。 通过此次课程设计,使我更加扎实的掌握了有关C++程序设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。 实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。 最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的观念。 这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于解决了。 在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 毕业 课程设计 报告 图书 管理 系统