C++毕业课程设计报告图书管理系统.docx

上传人:b****8 文档编号:9849052 上传时间:2023-05-21 格式:DOCX 页数:25 大小:281.17KB
下载 相关 举报
C++毕业课程设计报告图书管理系统.docx_第1页
第1页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第2页
第2页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第3页
第3页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第4页
第4页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第5页
第5页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第6页
第6页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第7页
第7页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第8页
第8页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第9页
第9页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第10页
第10页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第11页
第11页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第12页
第12页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第13页
第13页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第14页
第14页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第15页
第15页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第16页
第16页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第17页
第17页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第18页
第18页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第19页
第19页 / 共25页
C++毕业课程设计报告图书管理系统.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++毕业课程设计报告图书管理系统.docx

《C++毕业课程设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《C++毕业课程设计报告图书管理系统.docx(25页珍藏版)》请在冰点文库上搜索。

C++毕业课程设计报告图书管理系统.docx

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++程序设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

  

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的观念。

这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于解决了。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2