没有合适的资源?快使用搜索试试~ 我知道了~
C语言图书管理系统程序设计报告.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 140 浏览量
2023-06-13
22:50:36
上传
评论
收藏 690KB PDF 举报
温馨提示
试读
26页
C语言图书管理系统程序设计报告.pdf
资源推荐
资源详情
资源评论
文档从互联网中收集,已重新修正排版,word 格式支持编辑,如有帮助欢迎下载支持。
高级语言程序设计(2)课程设计
一 程序设计说明书
【设计题目】 图书馆借阅管理
【问题描述】图书馆,适合用 C++面向对象的功能来描述。图书馆管理系统分为借书、还书、
图书管理和读者服务等四个部分。设计一个读者类Reader,记录每个读者基本信息;读者库
类 Rdatabase,记录所有读者信息;图书类 Book, 记录每本书的基本信息;图书库类
Bdatabase, 记录所有图书信息。
【基本要求】
1 读者库类 RDatabase 中,其构造函数中,将 read.txt 文件中所有读入读者记录 rede[]中。
处理完毕,在析构函数中将 read[]中的所有未删记录写入到 read.txt 中。
2 图书库类 BDatabase 中,其构造函数中,将 book.txt 文件中所有读入图书记录 book[]中。
处理完毕,在析构函数中将 book[]中的所有未删记录写入到 book.txt 中。
3 利用构造函数完成读者和图书数据初始化,完成内存分配。程序结束前,析构函数完成所
申请的堆内存空间。
4 编写主函数,对所编写的矩阵类进行全面测试。要求用户界面采用菜单方式。测试中需要
读者和图书数据通过 I/O 流从磁盘文件读入,同时显示在屏幕上。得到的数据通过 I/O 流写
入磁盘文件保存,同时显示在屏幕上。
5 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。
【类的设计】
该程序包含了四个类,如下:
1.Reader 类,有读者的基本管理功能,具有以下私有数据:
int tag;//删除标记 1:已删;0:未删
int no;//读者编号
1word 格式支持编辑,如有帮助欢迎下载支持。
文档从互联网中收集,已重新修正排版,word 格式支持编辑,如有帮助欢迎下载支持。
char name[10];//读者姓名
int borbook[Maxbor];//所借图书
2.读者库类 Rdatabase, 具有以下私有数据:
int top;//读者记录指针
Reader read[Maxr];//读者记录
3.图书库类 Book,有一本图书的基本功能,有以下私有数据:
int tag;//删除标记 1:已删;0:未删
int no;//图书编号
char name[20];//书名
int onshelf;//是否在架 1 在架 0 已借
4.图书库类 BDatabase,有以下私有数据:
int top;//图书记录指针
Book book[Maxb];//图书记录
【特殊函数的设计说明】
构造函数
1.Reader 类中构造函数 Reader(),初始化函数;
2.读者库类 RDatabase 中,其构造函数 Rdatabase(),将 read.txt 文件中所有读入读者
记录 rede[]中。
3.Book 类中构造函数 Book(),初始化函数;
4.图书库类 BDatabase 中,其构造函数中,将 book.txt 文件中所有读入图书记录 book[]中。
拷贝构造函数
2word 格式支持编辑,如有帮助欢迎下载支持。
文档从互联网中收集,已重新修正排版,word 格式支持编辑,如有帮助欢迎下载支持。
Reader 类中的拷贝构造函数将 getname()的返回值读者姓名拷贝到 setname()中,Book 类中
的拷贝构造函数将 getname()函数的返回值图书名拷贝到图书名设置函数 setname()中。
析构函数
1.读者库类 RDatabase 中,其析构函数~Rdatabase(),将 read[]中的所有未删记录写入
到 read.txt 中;
2.图书库类 BDatabase 中,其析构函数~Bdatabase(),将 book[]中的所有未删记录写入
到 book.txt 中。
运算符重载
重载了“=”,当比较读者编号和图书编号时,重载;重载位运算符“〈〈”和“〉〉”等。
【主要函数算法流程图】
【程序的使用方法】
1.进入操作页面,按提示操作;
2.首先,新增图书和读者信息,之后就可以对以存在的信息进行操作;
3.操作当中,可以随时增加,更改和删除图书或读者信息;
4.当选择退出时,进行清屏。
二 程序上机调试报告
【语法错误及其排除】
3word 格式支持编辑,如有帮助欢迎下载支持。
文档从互联网中收集,已重新修正排版,word 格式支持编辑,如有帮助欢迎下载支持。
1.在敲程序时,有很多拼写错误,例好多处把 Readdata()误打 Readdate();结束的分号,
在不同的输入法状态下输入,这些小错误刚开始很难发现,不过有了经验,就很容易了。
2.创建新的构造函数时,使用出现了错误。重载构造函数要注意函数的访问权限,结果就
不会出现错误。
【算法错误及其排除】
1.读者类中借书操作函数中,采用循环语句时判断读者已借图书量时for(int
i=0;i<Maxbor;i++)误写为 for(int i=1;i<Maxbor;i++),使循环发生错误。
2.指针使用错误,指针 b 和 r 混淆,导致编译错误得到“error C2660: 'retbook' : function
does not take 1 parameters”错误报告。
三 程序测试结果
【收获及体会】
除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计这段时间,时刻都感
觉自己有好多不懂,要学的太多了!经过这次课程设计,让我对C++这门语言有了更深的认
识,操作能力有了提高。要想得到敲的代码运行出来后的满足感,需要耐心细心,毅力以及
充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候
需要多次的更正才达到所要的运行结果。学习编程,需要多揣摩,实践,实践,再实践,编
程技能才能更上一层楼,此外还得多向高手请教!
【源程序代码】
//********************
//图书馆借阅管理
//班级:
//学号:
//姓名:
//********************
#include<iostream.h>
#include<iomanip.h>
4word 格式支持编辑,如有帮助欢迎下载支持。
文档从互联网中收集,已重新修正排版,word 格式支持编辑,如有帮助欢迎下载支持。
#include<string.h>
#include<fstream.h>
const int Maxr=1000;//最多的读者
const int Maxb=10000;//最多的图书
const int Maxbor=8;//每位读者最多借 8 本书
class Reader //读者类
{
int tag;//删除标记 1 已删;0 未删
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)//增加读者
5word 格式支持编辑,如有帮助欢迎下载支持。
剩余25页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 61
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Pytorch-pytorch深度学习教程之深度残差网络.zip
- Pytorch-pytorch深度学习教程之循环神经网络.zip
- Pytorch-pytorch深度学习教程之逻辑回归.zip
- Pytorch-pytorch深度学习教程之双向循环网络.zip
- Pytorch-pytorch深度学习教程之卷积神经网络.zip
- Pytorch-pytorch深度学习教程之前馈神经网络.zip
- Pytorch-pytorch深度学习教程之线性回归.zip
- Pytorch-pytorch深度学习教程之基本操作.zip
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功