程序课程设计报告 图书信息管理系统.docx
《程序课程设计报告 图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《程序课程设计报告 图书信息管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
![程序课程设计报告 图书信息管理系统.docx](https://file1.bdocx.com/fileroot1/2023-4/16/e7b3f05e-8145-4d88-b773-383d8db95340/e7b3f05e-8145-4d88-b773-383d8db953401.gif)
程序课程设计报告图书信息管理系统
信息科学与技术学院
程序设计基础课程设计报告
题目名称:
图书信息管理系统设计
学生姓名:
学号:
专业班级:
计算机科学与技术11级
(一)班
指导教师:
2012年6月28日
目录
1.课程设计目的3
1.1课程设计目的:
3
1.2课程设计题目:
3
1.3题目要求:
3
2.总体设计5
2.1总体组成框图:
5
2.2总体流程图:
6
3.详细设计7
3.1图书信息的增添模块7
3.1.1函数功能:
7
3.1.2函数具体内容:
7
3.1.3函数流程图:
9
3.2图书信息的查询模块9
3.2.1函数功能:
9
3.2.2函数介绍:
9
3.2.3函数流程图:
10
3.3图书信息的删除模块10
3.3.1函数功能:
10
3.3.2函数具体内容:
10
3.4图书信息系统的主要函数11
3.4.1函数功能:
11
3.4.2函数的流程图:
12
4、运行结果13
4.1主界面13
4.2输入图书信息14
4.3查找图书信息14
4.4更改图书信息16
4.5删除图书信息18
5、课程设计总结19
6、参考文献20
1.课程设计目的
1.1课程设计目的:
《C++程序设计》是计算机科学与技术专业的必修课。
自己做一个课程设计是学习完本书后进行的一次全面的综合性练习。
其目的在于加深对C++编程的理解,培养学生的实践能力,促进理论与实践的结合。
通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
1.2课程设计题目:
题目:
图书信息管理系统设计
1.3题目要求:
1.问题描述(功能要求):
图书信息包括:
登录号、书名、作者名、分类号、出版单位、出版时间、价格等.
试设计一图书信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)图书信息录入功能(图书信息用文件保存)--输入
(3)图书信息浏览功能--输出
(4)查询和排序功能:
(至少一种查询方式)--算法
按书名查找
按作者名查找
(5)图书信息的删除与修改(可选项)
2.问题的解决方案:
根据系统功能要求,可以将解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类中的各个类的描述(包括类的属性和方法);
(4)完成类中的各个成员的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)完成系统总结报告以及系统使用说明书.
3.其他要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块
2.总体设计
2.1总体组成框图:
图2-1物理模型图
2.2总体流程图:
图2-2总体流程图
3.详细设计
总体上建立两个类:
classBook和classBDatabase.classBook图书类,实现对图书的描述,图书的编号,书名等功能.classBDatabase图书库类,实现对图书的维护,查找,删除等.
3.1图书信息的增添模块
3.1.1函数功能:
在类内建立一些小的函数,用来新增图书的的基本信息。
比如,图书的书名,作者名等.使用磁盘存储数据,以便在后面的使用。
3.1.2函数具体内容:
1.获取类中的信息:
char*getname()
{//获取书名
returnname;
}
2.设置类中图书的信息:
voidsetname(charna[])
{//设置书名
strcpy(name,na);
}
3.新增图书信息:
intaddbook(intn,char*na,char*aa,char*sa,char*ca,inttime,doubleprice)
{//增加图书
Book*p=query1(n);
if(NULL==p)
{
top++;
book[top].addbook(n,na,aa,sa,ca,time,price);
return1;
}
return0;
}
voidaddbook(intn,char*na,char*aa,char*sa,char*ca,inttime,doubleprice)
{//增加图书
tag=0;
no=n;
strcpy(name,na);
strcpy(author,aa);
strcpy(sno,sa);
strcpy(cbs,ca);
cbtime=time;
bookprice=price;
}
3.1.3函数流程图:
图3-1add()函数流程图
3.2图书信息的查询模块
3.2.1函数功能:
通过不同的方式查询图书的基本信息
3.2.2函数介绍:
Book*query1(intbookid),Book*query2(chara[]),Book*query3(chara[]),通过这些函数,分别可以按登陆号查找图书,按书名查找图书,按作者查找图书.
3.2.3函数流程图:
图3-2query()类型函数的流程图
3.3图书信息的删除模块
3.3.1函数功能:
对图书信息的删除和全删功能.
3.3.2函数具体内容:
voiddelbook()
{//删除图书
chari;
cout<<"确定删除吗?
Y/N?
"<cin>>i;
if(i=='y'||i=='Y')
tag=1;
}
voidclear()
{//全删
chari;
cout<<"确定全部删除吗?
Y/N?
"<cin>>i;
if(i=='y'||i=='Y')
top=-1;
}
3.4图书信息系统的主要函数
3.4.1函数功能:
对条件进行判断,对图书信息进行输入,修改,查询,显示,删除等内容.
3.4.2函数的流程图:
图3-3Bookdata()函数的流程图
4、运行结果
4.1主界面
图4-1—程序主界面
4.2输入图书信息
图4-2—图书信息输入
4.3查找图书信息
图4-3-1进行查找
图4-3-2按图书编号查找
图4-3-3按图书作者查找
4.4更改图书信息
图4-4-1选择是否更改
图4-4-2更改图书信息
4.5删除图书信息
图4-5-1选择是否删除
图4-5-2删除图书信息
5、课程设计总结
通过这次实践,我们成功的实现了数据的输入与保存,并在程序中实现了使用类对各个图书的各参数的基本操作。
该系统的难点在于不使用任何数据库,只使用磁盘文件来实现对图书的信息的存储和读取。
虽然测试的图书的信息条数不够多,但是题目的要求是完全能够达到的,在现有的基础上只要稍加修改就能够满足批量数据的存储和查阅。
要想增加更多图书信息,只要增加相应的对象的属性即可,前提是在拥有相似的属性的时候。
若有不同的属性,可以增加相应的类就可满足需求。
其中重要的是打开文件,保存文件,也就是对数据的妥善的存储和再次的调用的操作。
本次的课程设计对我们也是一个很好的实践的机会,锻炼了自己,提高了自己编程的能力,为今后的项目打好基础。
6、参考文献
1.《C++程序设计》作者:
谭浩强清华大学出版
2.《VisualC++程序设计技巧与实例》作者:
许福舒志张威等出版社:
中国铁道出版社
3.《VisualC++全能速查宝典》作者:
刘锐宁,梁水,宋坤人民邮电出版社
4.《C++语言程序设计题典》作者:
李春,曾平,刘斌清华大学出版社