图书管理系统-C++课程设计(共31页).doc
《图书管理系统-C++课程设计(共31页).doc》由会员分享,可在线阅读,更多相关《图书管理系统-C++课程设计(共31页).doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上信息科学与技术学院程序设计基础课程设计报告题目名称: 图书信息管理系统设计 学生姓名: 王栎沣 学 号: 1102014 专业班级: 计科专业计双2011级1班 指导教师: 郭 理 2012年 6月21日1. 课程设计目的1.1. 课程设计的题目图书信息管理系统设计1.2. 课程设计的要求1.2.1 问题描述(功能要求): 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)图书信息录入功能(图书信息以文件保存)输入 (3)图书信息浏览功能输出 (4)查询和排序功能:(
2、至少一种查询方式)算法 (5)图书信息的删除与修改(可选项)1.2.2问题的解决方案: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中的各个类的描述(包括属性和方法) (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试 (7)完成系统总结报告以及系统使用说明书。1.2.3其他要求: (1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好) (3)学生可自动增加新功能模块2. 总体设计图书信息管理系统设计信息查询还书管理借书登记新书入库打
3、印读者信息打印图书信息图书信息查询读者信息查询2.1. 新书入库模块 功能:登记入库的新书信息2.2. 信息查询模块2.2.1读者信息查询模块 功能:查询某一读者的信息2.2.2图书信息查询模块 功能:查询某一图书的信息2.2.3打印图书信息 功能:打印所有图书的信息2.2.4打印读者信息 功能:打印所有读者的信息2.3. 借书模块 功能:登记读者的借书信息2.4. 还书模块 功能:登记读者的还书信息3. 详细设计3.1. 类设计typedef struct BOOK /声明图书结构体变量BOOK,表示图书信息char number10; /书号char title20; /书名char wr
4、iter10; /作者 char publish20; /出版社 int year; /出版年份 int month; /出版月份 int day; /出版日期 float price; /出版价格int storage; /库存量int remain; /现存量struct BOOK *next; /下一个节点指针BOOK;typedef struct BORROW /借书信息char book_number10; /书号BORROW;typedef struct READER /读者信息char number3; /读者编号char name10; /读者名字int borrow_amou
5、nt; /当前借书量BORROW borrowMax; /借书信息struct READER *next;READER;3.2. 基本操作函数int DisplayMenu();/显示主菜单void Initialize(); /初始化(初始化读者和图书的信息)void Init_reader();/初始化读者信息void Init_book(); /初始化图书信息void Insert_New_Book();/新书入库模块int Find(); /查找菜单void Find_Select();/查找菜单选择函数void Find_Reader();/查找某个读者信息void Find_Boo
6、k();/查找某个图书信息 void Print_reader(); /打印所有读者信息void Print_book();/打印所有图书信息void Borrow_Book();/借书函数void Return_Book();/还书函数void Save(); /保存到文件void Selectmenu(); /主菜单选择函数3.3. 程序流程图 3.3.1主函数流程图图3.3.1 主函数流程图3.3.2初始化模块图3.2 初始化模块流程图3.3.3借书模块图3.3 借书模块流程图3.3.4新书入库模块图3.4 新书入库模块3.3.5信息查询模块图3.5 信息查询模块流程图3.3.6还书模块
7、图3.6 还书模块流程图4. 运行结果5. 设计源码/*Standard Template Library,标准模板库*/#include /数据流输入输出#include /字符串类using namespace std;#define Max 3 typedef struct BOOK /声明图书结构体变量BOOK,表示图书信息char number10;/书号char title20; /书名char writer10;/作者 char publish20; /出版社 int year; /出版年份 int month; /出版月份 int day; /出版日期 float price;
8、 /出版价格int storage; /库存量int remain; /现存量struct BOOK *next; /下一个节点指针BOOK;typedef struct BORROW /借书信息char book_number10;/书号BORROW;typedef struct READER /读者信息char number3; /读者编号char name10;/读者名字int borrow_amount;/当前借书量BORROW borrowMax; /借书信息struct READER *next;READER;BOOK *h_book = NULL;/图书链表头结点READER *
9、h_reader = NULL;/读者链表头结点int DisplayMenu();/显示主菜单void Initialize();/初始化(初始化读者和图书的信息)void Init_reader();/初始化读者信息void Init_book();/初始化图书信息void Insert_New_Book();/新书入库模块int Find();/查找菜单void Find_Select();/查找菜单选择函数void Find_Reader();/查找某个读者信息void Find_Book();/查找某个图书信息 void Print_reader();/打印所有读者信息void Pr
10、int_book();/打印所有图书信息void Borrow_Book();/借书函数void Return_Book();/还书函数void Save();/保存到文件void Selectmenu(); /主菜单选择函数/显示主菜单int DisplayMenu() int choice;coutendl图书管理系统主菜单endl; coutstring(50,=)endl;cout*t0-退出系统 *endl;cout*t1-新书入库 *endl;cout*t2-信息查询 *endl;cout*t3-借书登记 *endl;cout*t4-还书管理 *endl; coutstring(5
11、0,=)endl; coutchoice;if(choice4)coutpBook-number;if (strcmp(pBook-number, 0) = 0)/读到了文件末尾/strcmp是字符串比较函数/关闭文件输入流,恢复标准输入流fclose(stdin);freopen(CON, r, stdin);return;cinpBook-titlepBook-writerpBook-publishpBook-yearpBook-monthpBook-daypBook-pricepBook-storagepBook-remain;/创建下一个节点BOOK *temp = (BOOK*)ma
12、lloc(sizeof(BOOK);memset(temp, 0, sizeof(BOOK);pBook-next = temp;pBook = temp;/关闭文件输入流,恢复标准输入流fclose(stdin);freopen(CON, r, stdin);/初始化读者信息void Init_reader() READER *pReader;pReader = (READER*)malloc(sizeof(READER); /*向系统申请分配指定size个字节的内存空间,返回类型是 void* 类型。*/memset(pReader, 0, sizeof(READER); /* 把pRea
13、der 清零 */h_reader = pReader;if (freopen(reader.txt, r, stdin) = NULL) /打开文件fclose(stdin);freopen(CON, r, stdin);return;while (1)/读取读者信息cinpReader-number;if (strcmp(pReader-number, 0) = 0)/如果读到了文件末尾fclose(stdin);freopen(CON, r, stdin); return;cinpReader-namepReader-borrow_amount; for (int i = 0; i bo
14、rrow_amount; i+)cinpReader-borrowi.book_number;/创建下一个节点READER *temp = (READER*)malloc(sizeof(READER);memset(temp, 0, sizeof(READER);pReader-next = temp;pReader = temp; /关闭文件输入流,恢复标准输入流fclose(stdin); /函数原型: int fclose(FILE *stream);freopen(CON, r, stdin); /*重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定
15、向,则freopen将会清除该定向。*/*函数原型: FILE *freopen(const char *filename,const char *type, FILE *stream);*/*功 能: 关闭一个流。注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。*/void Insert_New_Book() /新书入库模块BOOK *p,*p0,*p1; p=p1=h_book;coutntt新书入库n; coutstring(40,=)endl;coutn请输入新书信息:n; p0=(BOOK *)malloc(sizeof(B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 C+ 课程设计 31
限制150内