C++课程设计报告数据库应用的图书管理系统.doc

上传人:文库蛋蛋多 文档编号:2384430 上传时间:2023-02-17 格式:DOC 页数:53 大小:163.50KB
返回 下载 相关 举报
C++课程设计报告数据库应用的图书管理系统.doc_第1页
第1页 / 共53页
C++课程设计报告数据库应用的图书管理系统.doc_第2页
第2页 / 共53页
C++课程设计报告数据库应用的图书管理系统.doc_第3页
第3页 / 共53页
C++课程设计报告数据库应用的图书管理系统.doc_第4页
第4页 / 共53页
C++课程设计报告数据库应用的图书管理系统.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《C++课程设计报告数据库应用的图书管理系统.doc》由会员分享,可在线阅读,更多相关《C++课程设计报告数据库应用的图书管理系统.doc(53页珍藏版)》请在三一办公上搜索。

1、南京航空航天大学面向对象程序设计语言课程设计报告图 书 管 理 系 统目录一、需求分析6二、程序的主要功能6三、程序运行平台6四、系统总框架图7五、程序类的说明7六、模块分析8七、比较有特色的地方8八、存在的不足与对策、编程体会13九、程序源代码13一、需求分析一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。 以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程

2、度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。 为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写本程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者的借阅情况,还可以对当前图书馆内图书进行查看,新书上架,旧书下架,删除所有信息等操作。本次作业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会

3、为管理者对图书管理系统提供极大的帮助二、程序的主要功能1、管理员账号管理功能:通过一个IDMa类对图书馆管理员账号进行管理,只能有一个高级管理员,并且不能删除。通过这个管理功能实现对管理员账号的注册、注销、修改、删除等操作2、书库信息管理功能:通过一个BookMa类对图书馆书籍进行管理。通过这个管理功能实现对学校书库中书籍的管理,如显示全部图书信息、新书上架、旧书下架、书籍查询、清除书库等操作3、读者管理功能:通过一个ReaderMa类对图书馆读者进行管理。通过这个管理功能实现对学校读者中读者记录的管理,如显示全部读者信息、读者注册、读者注销、通过学号查询读者信息并显示借阅信息、清除所有读者信

4、息等操作4、借书还书功能:通过一个Borrow_Return类对读者借还书进行管理。三、程序运行平台VC+ 6.0具体操作如下:该程序是用VC+6.0制做的,使用Microsoft Visual C+ 6.0运行该程序,具体操作是:打开Microsoft Visual C+ 6.0,菜单栏里点文件打开工作区找到“学生成绩管理系统.dsw”这个文件打开,或者在资源管理器中双击该文件,此时,VC+6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。另需要在ODBC中增加名为LibraryDB的图书管理系统的数据源。四、 系统总框架图开始界面管理员界面账

5、号管理菜单1、显示 2、增加3、下架4、修改5、删除 6、清除 1、显示 2、注册3、注销4、修改5、删除 6、清除借 还 书 书 账号管理账号登陆图书维护读者维护后退后退后退后退后退1、显示 2、注册3、注销4、修改5、删除 借还书 五、程序类的说明#ifndef _ABSTRACT_H#define _ABSTRACT_H/*定义一个抽象类具有显示信息、增加信息、修改信息、删除信息四个纯虚函数 这个Abstract类将被ReaderMa、BookMa两个子类继承*/class Abstractpublic: virtual void ShowInfo() = 0; /显示信息纯虚函数 vi

6、rtual void AddInfo() = 0; /增加信息纯虚函数 virtual void SelectInfo() = 0; /查找信息纯虚函数 virtual void EditInfo() = 0; /修改信息纯虚函数 virtual void DeleteInfo() = 0; /删除信息纯虚函数;#endif BookMa类的声明#ifndef _BOOKMA_H#define _BOOKMA_H#include Abstract.h#include #include using namespace std;/封装一个BookMa类继承于Abstract,用于书籍的管理,实现显

7、示、增加、修改、删除、清楚所有书籍信息的功能class BookMa : public Abstractpublic:void Manage( ); / 书库管理界面,可用this指针应用自身函数void ShowInfo( ); / 显示void AddInfo( ); / 增加void SelectInfo( ); / 查找 void EditInfo( ); / 修改void DeleteInfo( ); / 删除void Clean_allInfo( ); / 清除 ;#endif Borrow_Return类的声明#ifndef _BORROW_RETURN_H#define _BO

8、RROW_RETURN_H#include /封装一个Borrow_Return类实现读者借书还书的操作class Borrow_Returnpublic:void Borrow(); /借书void Return(); /还书void Manage(); /借书还书的界面;#endif IDMa类的声明#ifndef _IDMA_H#define _IDMA_H#include Abstract.h#include DataBase.h#include using namespace std;/定义一个IDMa类继承于Abstract抽象类,实现对管理员信息的管理功能class IDMa :

9、 public Abstractpublic:void Manage(); /管理员账号管理界面void ShowInfo(); /显示所有管理员信息void AddInfo(); /增加管理员信息void SelectInfo(); /查找管理员信息void EditInfo(); /修改管理员信息void DeleteInfo(); /删除管理员信息;#endif ManagerMa类的声明#ifndef _MANAGERMA_H#define _MANAGERMA_H/*定义一个ManagerMa类*/class ManagerMapublic:void Manage(); /图书馆管理

10、系统的主界面;#endif ReaderMa类的声明#ifndef _READERMA_H#define _READERMA_H#include Abstract.h#include #include using namespace std;/*封装一个读者管理类,实现对读者信息的显示、增加、修改、删除及清除所有读者信息的功能*/class ReaderMa : public Abstractpublic:void Manage( ); / 读者管理界面 可用this指针应用自身函数void ShowInfo( ); / 显示void AddInfo( ); / 增加void SelectIn

11、fo( ); / 查找 void EditInfo( ); / 修改void DeleteInfo( ); / 删除void Clean_allInfo( ); / 清除 ;#endif六、模块分析1. 读者信息模块 该模块实现读者信息的管理,如读者注册、读者注销、读者信息查找、读者信息更新、删除所有读者信息。2. 书库管理模块 该模块实现图书信息的管理,如图书上架、旧书下架、图书查找、图书信息更新、删除所有图书信息。3. 管理员账号管理模块 该模块实现管理员账号的管理,如管理员注册、账号注销、显示管理员信息、修改密码。4. 借书还书模块该模块实现读者借书还书功能利用SQL语句对数据库进行操作

12、七、比较有特色的地方 1、 使用sql语句实现对Access数据库进行操作,这样大大方便了对数据的管理 2、使用了windows.h库中的MessageBox函数,实现一些操作的提醒、警告等 3、由于IDMa,BookMa,ReaderMa都将用到增加记录,删除记录,查找,修改记录功能所以定义了一个共同的抽象基类Abstract #ifndef _ABSTRACT_H#define _ABSTRACT_H/*定义一个抽象类具有显示信息、增加信息、修改信息、删除信息四个纯虚函数 这个Abstract类将被ReaderMa、BookMa两个子类继承*/class Abstractpublic:vi

13、rtual void ShowInfo() = 0; /显示信息纯虚函数virtual void AddInfo() = 0; /增加信息纯虚函数virtual void SelectInfo() = 0; /查找信息纯虚函数virtual void EditInfo() = 0; /修改信息纯虚函数virtual void DeleteInfo() = 0; /删除信息纯虚函数;#endif4、将CDataBase 和 CRecordset类定义成一个DataBase方便对sql语句的执行#ifndef DATABASE_H#define DATABASE_H#include class D

14、ataBasepublic:DataBase();DataBase()crRS.Close();cdDB.Close();BOOL ExcuteSQL(const CString &SQLStmt);void ExcuteSelectSql(const CString &SQLStmt);BOOL MoveFirst();BOOL MoveNext();BOOL MovePre();BOOL MoveLast();BOOL IsEOF();BOOL IsBOF();int GetRecordCount();int GetRecordQuantity();BOOL GetFieldValue(s

15、hort nIndex,CString &strVslue);void CloseConnect();void ConnectToDBQ();static void SetDBPath(const CString cstrDBPath) DataBase:strDBPath = cstrDBPath;protected:static CString strDBPath;CDatabase cdDB;CRecordset crRS; extern DataBase LibManDB;#endif八、存在的不足与对策、编程体会 因为掌握的知识有限没能实现自动读取当前日期为借书日期并进行系统自行累加

16、实现还书日期自动生成功能 通过编写图书管理系统,我体会到了一个系统应该作为一个整体来看待,系统具有牵一发而动全身的特性,某一个模块的一个小小错误都可能导致系统其他模块功能的丧失甚至是崩溃,同时在编程时应该按照模块来编写,一个模块实现一个功能,这样在调试的时候就方便检查,还有一个程序写完了,不是真正的结束,还需要不断地调试不断地修改程序中的错误。在编程中出现了一个致命的错误:我在程序中定义了几个CRecordset类但是忘记了使用引用导致了最后编译是出现了重大错误,经过近10小时仔细排查终于找到了问题所在。 所以此次编程我最大的一个收获是:仔细研究每一个函数的定义,不要出现定义中形参缺少或者实参

17、形参形式不符出现的错误九、程序源代码主函数#include Assist.h#include IDMa.h#include ManagerMa.h#include #include using namespace std;void main()int choose; IDMa _ID;ManagerMa manager;while(choose!=0)system(cls); cout endl t ;cout endl t ; cout endl t NUAA图书管理系统 ;cout endl t ; cout endl t ;cout endl t ; cout endl t 1.账号登录

18、 ;cout endl t ;cout endl t 2.账号管理 ;cout endl t ;cout endl t 3.帮助 ;cout endl t ;cout endl t 0.退出系统 ;cout endl t ;cout endl t ;cout endl t ;cout endl t ;cout endl t ;cout endl t ;cout endl t ;cout endl choose;switch(choose) case 1:if(assist:Login() MessageBox(NULL,TEXT(登陆成功!),TEXT(提示框),MB_OK | MB_ICON

19、INFORMATION);manager.Manage(); /尚未添加实参 break;case 2:_ID.Manage(); /尚未添加实参 未定义break;case 3:cout tt1、管理员对书库、读者信息、借/还书等功能进行操作。 endl endl;cout tt2、进行管理员账号注册、注销、密码修改操作。 endl;system(pause);break;case 0:cout tt谢谢使用! endl;exit (0);default:system(cls);cout endl endl endl;cout tt输入错误,请重新输入! endl;system(pause)

20、;break; #ifndef _ABSTRACT_H#define _ABSTRACT_H/*定义一个抽象类具有显示信息、增加信息、修改信息、删除信息四个纯虚函数 这个Abstract类将被ReaderMa、BookMa两个子类继承*/class Abstractpublic:virtual void ShowInfo() = 0; /显示信息纯虚函数virtual void AddInfo() = 0; /增加信息纯虚函数virtual void SelectInfo() = 0; /查找信息纯虚函数virtual void EditInfo() = 0; /修改信息纯虚函数virtual

21、 void DeleteInfo() = 0; /删除信息纯虚函数;#endif#ifndef _AISSIST_H#define _AISSIST_H#include DataBase.h#include #include #include #include #include using namespace std;namespace assistBOOL Login();BOOL assist : Login()char manaID10,Password10;char cTempchar;CString tempch;int iCounter = 0;CString sql;system

22、(cls);cout endl tt ;cout endl tt 管理员账号登录 ;cout endl tt ;cout endl endl endl manaID;sql.Format(TEXT(SELECT * FROM t_manager WHERE FmanaID = %s),manaID); LibManDB.ExcuteSelectSql(sql);if (LibManDB.GetRecordCount()LibManDB.GetFieldValue(short)1,tempch);elsecout endl endl;MessageBox(NULL,TEXT(未找到该管理员账号!

23、),TEXT(提示框),MB_OK | MB_ICONINFORMATION);system(pause);return FALSE; cout endl ttt登录密码: ;cin.sync();while (1)if ( (cTempchar = getch() != r)if (cTempchar != b)if ( iCounter 10)PasswordiCounter = cTempchar;putch(*);iCounter +;elseputch(7);elseif (iCounter != 0)iCounter -;cout b b; /实现退格功能elsePasswordi

24、Counter = 0;break;if (strcmp(Password,tempch) = 0)return TRUE;elseMessageBox(NULL,TEXT(您输入的密码不正确!请重新登录!),TEXT(提示框),MB_OK | MB_ICONINFORMATION);return FALSE;#endif#ifndef _BOOKMA_H#define _BOOKMA_H#include Abstract.h#include #include using namespace std;/封装一个BookMa类继承于Abstract,用于书籍的管理,实现显示、增加、修改、删除、清

25、楚所有书籍信息的功能class BookMa : public Abstractpublic:void Manage( ); / 书库管理界面,可用this指针应用自身函数void ShowInfo( ); / 显示void AddInfo( ); / 增加void SelectInfo( ); / 查找 void EditInfo( ); / 修改void DeleteInfo( ); / 删除void Clean_allInfo( ); / 清除 ;#endif#include BookMa.h#include DataBase.h#include #include #include #i

26、nclude using namespace std;/显示全部图书信息的函数void BookMa:ShowInfo()CString varid;CString sql = _T(SELECT * FROM t_bookinfo order by FISBN);LibManDB.ExcuteSelectSql(sql);system(cls);cout endl tt ;cout endl tt 显示图书信息 ;cout endl tt ;cout endl endl endl ;cout 书名ttISBN号tt作者t出版商tt出版日期 endl;while (!LibManDB.IsEO

27、F()for (int i = 0; i 5; i +)LibManDB.GetFieldValue( (short)i, varid);cout (const char *)varid t;if (i = 4)cout t;cout endl endl endl;LibManDB.MoveNext();system(pause);/图书上架函数void BookMa:AddInfo()char bookISBN10,bookName10,authorName10,press20,pressDate10;char again;system(cls);cout endl tt ;cout end

28、l tt 图书上架 ;cout endl tt endl;docout bookISBN; CString sql; sql.Format(SELECT * FROM t_bookinfo WHERE FISBN = %s ORDER BY FISBN,bookISBN); LibManDB.ExcuteSelectSql(sql);if(!LibManDB.IsBOF() | !LibManDB.IsEOF() /判断是否有重复的学号 MessageBox(NULL,TEXT(ISBN号重复,不可增加!),TEXT(提示框),MB_OK | MB_ICONINFORMATION); syst

29、em(pause); return; cout endl bookName; cout authorName;cout press;cout pressDate;sql.Format(INSERT INTO t_bookinfo VALUES(%s,%s,%s,%s,%s,),bookName,bookISBN,authorName,press,pressDate); if(LibManDB.ExcuteSQL(sql)MessageBox(NULL,TEXT(注册成功!),TEXT(提示框),MB_OK | MB_ICONINFORMATION);cout again;while (toup

30、per(again)=Y);/旧书下架函数定义void BookMa:DeleteInfo()char bookISBN10; system(cls);cout endl tt ;cout endl tt 旧书下架 ;cout endl tt ;cout endl bookISBN;CString sql;sql.Format(SELECT * FROM t_bookinfo WHERE FISBN = %s,bookISBN);LibManDB.ExcuteSelectSql(sql);if (LibManDB.IsBOF() & LibManDB.IsEOF() /通过学号判断是否存在该读

31、者记录 MessageBox(NULL,TEXT(未找到该书籍信息!),TEXT(提示框),MB_OK | MB_ICONINFORMATION);system(pause);elsesql.Format(DELETE * FROM t_reader WHERE FISBN = %s,bookISBN);LibManDB.ExcuteSQL(sql);MessageBox(NULL,TEXT(图书已成功下架!),TEXT(提示框),MB_OK | MB_ICONINFORMATION);system(pause);/图书ISBN号查询图书信息函数void BookMa:SelectInfo()

32、char bookISBN10;CString sql;CString varid;system(cls);cout endl tt ;cout endl tt 书目查询 ;cout endl tt ;cout bookISBN;sql.Format(TEXT(SELECT * FROM t_bookinfo WHERE FISBN = %s),bookISBN);LibManDB.ExcuteSelectSql(sql);if ( LibManDB.IsBOF() & LibManDB.IsEOF()MessageBox(NULL,TEXT(未找到该书籍的上架记录),TEXT(提示框),MB_OK | MB_IC

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号