图书管理系统(c)陈明明

上传人:自*** 文档编号:80532728 上传时间:2019-02-19 格式:DOC 页数:15 大小:116.30KB
返回 下载 相关 举报
图书管理系统(c)陈明明_第1页
第1页 / 共15页
图书管理系统(c)陈明明_第2页
第2页 / 共15页
图书管理系统(c)陈明明_第3页
第3页 / 共15页
图书管理系统(c)陈明明_第4页
第4页 / 共15页
图书管理系统(c)陈明明_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《图书管理系统(c)陈明明》由会员分享,可在线阅读,更多相关《图书管理系统(c)陈明明(15页珍藏版)》请在金锄头文库上搜索。

1、东华理工大学信息工程学院面向对象程序设计课程设计报告图书馆管理系统指导教师: 谢小林 姓名:陈明明学号:201140030117 班级:1140301 20 13 年 1 月 10 日1、 需求分析:建立一个图书馆管理系统,可以处理以下对象图书馆基本信息图书馆的书籍图书馆管理员 读者信息2、 程序的主要功能:1. 查询图书馆的总信息2. 查询图书馆管理员的信息3. 查询图书馆藏书信息4. 存入新书(有管理员加入,需进行身份验证)5. 旧书处理6. 存入新的管理员的信息7. 修改管理员的信息(增加工龄,加薪)8. 两所图书馆的最大藏书量之和9. 根据书名检索书刊信息10. 查询读者的借阅信息11

2、. 查询读者信息(包括借书情况,到期时间,罚款情况。)12.管理员可以修改用户的欠款和交款的金额13.读者氛围学生、研究生和教师。所有学生的租期为1月,所有教师的租期为2月。 三、程序运行平台:软件环境:w7编程软件 VC+6.0运行平台: Win32 硬 件: 普通个人pc机4、 系统总框架图5、 程序类的说明: 类的设计Book类的设计:(1)数据成员char nameStrNum; 用来存放书名。char numberStrNum; 用来存放图书的编号。char kindType; 用来存放图书的类型。int tag; 定义删除标记。int num; 定义图书编号为整形。int add;

3、 增加标记。(2)函数成员Book() 无参构造函数,用于为书名和作者姓名设置默认值。char getkind() 用于获取图书类型。 char getname() 用于获取书名。int getnum() 用于获取图书编号。 int gettag() 用于获取删除标记。void setname(char na) 用于设置书名。void setkind(char kin) 用于设置类型。void delbook() 用于删除图书。void addbook(int n,char *na,char *kin) 用于增加图书。void disp() 用于输出图书。6、 模块分析 class BData

4、base 图书管理类的设置,实现对图书的添加,查找,删除等。int top; 设置图书记录指针。Book bookMaxb; 设置图书记录(Maxb定义为最多可存储的图书数,定义为整形)。void clear() 清空图书记录。int addbook(int n,char *na,char *kin) 增加图书记录。Book *query(int bookid) 查找图书记录。void bookdata(); 定义图书库。void disp() 输出。BDatabase() 设置析构函数,将book写到book.txt文件中void BDatabase:bookdata() 由此函数开始对图书

5、管理系统的主菜单进行调用与功能的实现。(界面参看执行界面部分)最后用main() 函数的实现,程序的主界面的引导七、比较有特色的函数 class BDatabase 图书管理类的设置,实现对图书的添加,查找,删除等。int top; 设置图书记录指针。Book bookMaxb; 设置图书记录(Maxb定义为最多可存储的图书数,定义为整形)。void BDatabase:bookdata() 由此函数开始对图书管理系统的主菜单进行调用与功能的实现。(界面参看执行界面部分)八、存在的不足与对策 使用多关键字进行查询时,我是使用以下语句:if(bname!=null) sqlStr+=and Bn

6、ame like %+bname+% ; ,实现判断是否为空,从而利用给进条件实现查询,粗看之下并没有什么错误,但是在运行是却出现了异常,在找了很久被找出错误之后,我开始考虑是否是语法错误,而是使用MySQL的命令行模式来进行调试,在MySQL命令行中运行时却并没有出现错误,完全正确的查询出我想要的结果,在试了很久之后,终于发现了上面的语句有两个小的细节错误,第一个错误就是and Bname这里没有空格,正确格式应该是 and Bname,第二个错误是 %+bname+% 中含有多余的空格,正确答案是%+bname+%;两个错误都是由于空格引起的,一个是少了空格,另一个是含有多余的空格。九、程

7、序源代码 #define StrNum 20#define Type 20#include #include #include #include /输入/输出文件流类using namespace std;const int Maxb=100; /最多可存储的图书class Bookprivate: int tag; /删除标记int num; /图书编号int add; /增加标记char numberStrNum; /编号char nameStrNum; /书名char kindType; /图书类型public:Book()char getkind() /获取图书类型return kin

8、dType; char getname() /获取书名 return nameStrNum; int getnum() /获取图书编号 return num; int gettag() /获取删除标记 return tag;void setname(char na) /设置书名strcpy(name,na);void setkind(char kin) /设置类型strcpy(kind,kin);void delbook() /删除图书tag=1;void addbook(int n,char *na,char *kin) /增加图书tag=0;num=n;strcpy(name,na);st

9、rcpy(kind,kin);void disp() /输出图书cout.flags (ios:left); /设置对齐的标志位为左coutsetw(15)numsetw(20)namesetw(15)kindendl;/*/class BDatabaseprivate: int top; /图书记录指针Book bookMaxb; /图书记录public:BDatabase() /构造函数,将book.txt读到book中 Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if

10、 (!file) break;top+;booktop=b;file.close(); void clear() /全删top=-1; int addbook(int n,char *na,char *kin) /增加图书Book *p=query(n);if(NULL=p)top+;booktop.addbook(n,na,kin);return 1;return 0;Book *query(int bookid) /查找图书for (int i=0;i=top;i+)if (booki.getnum()=bookid &booki.gettag()=0)return &booki;retu

11、rn NULL;void bookdata(); /图书库void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();BDatabase() /析构函数,将book写到book.txt文件中fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;char bkind40;char newType20;int bo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号