头文件library.h
/***********************************************************
* 版权所有 (C)2016,YangYaxin
*
* 文件名称: library.h
* 文件标识:无
* 内容摘要:函数文件
* 其它说明:各个模块函数
* 当前版本: V5.0
* 作 者:杨雅鑫
* 完成日期: 20161228
*
* 修改记录1:
* 修改日期 :201611027
* 版本号: V1.0
* 修改人: 杨雅鑫
* 修改内容:创建
*
* 修改记录2:
* 修改日期: 20161128
* 版本号: V2.0
* 修改人: 杨雅鑫
* 修改内容:模块建立1
*
* 修改记录3:
* 修改日期: 20161205
* 版本号: V2.1
* 修改人: 杨雅鑫
* 修改内容:模块建立2
*
* 修改记录4:
* 修改日期: 20161215
* 版本号: V3.0
* 修改人: 杨雅鑫
* 修改内容:模块建立3
*
* 修改记录5:
* 修改日期: 20161224
* 版本号: V4.0
* 修改人: 杨雅鑫
* 修改内容:整理函数
*
* 修改记录6:
* 修改日期: 20161228
* 版本号: V5.0
* 修改人: 杨雅鑫
* 修改内容:界面整合
**********************************************************/
#include <iostream>
using namespace std;
#include<windows.h>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <iomanip>
#include <cstdlib>
#include <fstream>
#define MAX 100
#define MaxSize 100 //100条记录
#define MAX1 5//学生的最大借阅数量
#define MAX2 10//教师的最大借阅数量
#define MAX3 100 //管理员最大借阅量
typedef char InfoType[10];
typedef struct //记录类型
{
int key; //关键字项
}RecType; //排序的记录类型定义
//书的结构体
typedef struct book
{
float price; //图书单价
int membernum; //借书人的登录号
char name[100]; //图书名
long num; //图书编号
char writername[20];//作者姓名
char publish[50];//出版社名称
int yes; //判断图书是否存在或已经借出,1存在 未借出,0借出
struct book *next; //节点指针
}Book,*BookList;
//借书时间结构体
typedef struct Time
{
int year;
int month;
int day;
}data;
//读者借的书的结构体
typedef struct BorrowBook
{
long num;//借的书的编号
struct Time time;//借书的时间
struct Time borrowtime; //借书期限
}BBook;
//读者的结构体
typedef struct member
{
char name[20];//读者姓名
char sex;//读者性别,男为m,女为f
long num;//读者的登录号
int style; //读者类型,1:学生;2:教师;3:管理员;
int max;//读者借书数目,初始为0
int yes;//读者是否借书,1是,0否
BBook t[MAX];//读者借的书的数组
struct member *next;//结点指针
}Member,*MemberList;
//界面
void Face();//欢迎界面
void FaceDuSearch();//读者查询界面
void FaceBookSearch();//图书查询界面
void FaceDu();//读者管理界面
void FaceBook();//图书管理界面
//查询图书方式
int BookSearch(BookList &); //图书查询菜单
int Search_BookName(BookList &); //按书名查询
int Search_BookNum(BookList &); //按编号查询
int Search_BookWritername(BookList &); //按作者名查询
int Search_Publish(BookList &); //按出版社查询
int Search_AllB(BookList &); //查询所有图书信息
//查询读者
int MemberSearch(MemberList &);
int Search_MemberName(MemberList &); //按姓名查询
int Search_MemberNum(MemberList &); //按编号查询
int Search_MemberSex(MemberList &); //按性别查询
int Search_AllM(MemberList &); //查询所有读者信息
Book *Init_B();//初始化图书链表
int BookAdd(BookList &);//增加图书
int BookDel(BookList &);//删除图书
int BookPai(BookList &);//排序图书
void ShellSort(RecType [],int);//希尔排序
int Member_Y(MemberList &,long ) ; //判断是否为读者
int BookBorrow(BookList &,MemberList &);//图书借阅
int BookChange(BookList &);//修改图书信息
int BookReturn(BookList &,MemberList &);//还书
Member *Init_M(); //初始化读者链表
int MemberAdd(MemberList &);//增加读者
int MemberSearch(MemberList &);//查询读者
int MemberDel(MemberList &);//删除读者
int BorrowInfo(MemberList &);//借书信息
int MemberChange(MemberList &);//修改读者信息
int LimitTimeInfo(BookList &,MemberList &);//到期催还
//全局变量声明
extern RecType R[MaxSize];
extern int xer;
extern int X[100];
各功能函数library.cpp
/***********************************************************
* 版权所有 (C)2016,YangYaxin
*
* 文件名称: library.cpp
* 文件标识:无
* 内容摘要:函数文件
* 其它说明:各个模块函数
* 当前版本: V5.0
* 作 者:杨雅鑫
* 完成日期: 20161228
*
* 修改记录1:
* 修改日期 :20161205
* 版本号: V1.0
* 修改人: 杨雅鑫
* 修改内容:创建
*
* 修改记录2:
* 修改日期: 20161215
* 版本号: V2.0
* 修改人: 杨雅鑫
* 修改内容:模块建立1
*
* 修改记录3:
* 修改日期: 20161216
* 版本号: V2.1
* 修改人: 杨雅鑫
* 修改内容:模块建立2
*
* 修改记录4:
* 修改日期: 20161220
* 版本号: V3.0
* 修改人: 杨雅鑫
* 修改内容:模块建立3
*
* 修改记录5:
* 修改日期: 20161224
* 版本号: V4.0
* 修改人: 杨雅鑫
* 修改内容:整理函数
*
* 修改记录6:
* 修改日期: 20161228
* 版本号: V5.0
* 修改人: 杨雅鑫
* 修改内容:界面整合
**********************************************************/
#include "library.h"
/*********************************************************
* 功能描述:欢迎界面
* 输入参数:无
* 输出参数:无
* 返回值 :无
* 其它说明:界面1
************************************************************/
void Face()//欢迎界面
{
system("color 3F");
cout<<endl<<" ┅┅┅┅欢迎进入图书管理系统┅┅┅┅"<<endl;
cout<<" ┏━━━━━━━━━━━┓"<<endl;
cout<<" ┃ ┃"<<endl;
cout<<" ┃ ◆1◆管理图书 ┃"<<endl;
cout<<" ┃ ◆2◆管理读者 ┃"<<endl;
cout<<" ┃ ◆0◆退出系统 ┃"<<endl;
cout<<" ┃ ┃"<<endl;
cout<<" ┗━━━━━━━━━━━┛"<<endl;
cout<<" →请在此输入您的选择: ";
}
/*********************************************************
* 功能描述:读者查询界面
* 输入参数:无
* 输出参数:无
* 返回值 :无
* 其它说明:界面2
************************************************************/
void FaceDuSearch()//读者查询界面
{
cout<<" ┏━━━━━━━━━━━━━┓"<<endl;
cout<<" ┃ ◆欢迎进入读者查询系统◆ ┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按姓名查询----(1)★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按编号查询----(2)★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按性别查询----(3)★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎查询所有信息--(4)★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎到期催还----(5) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ 0.退出----(ESC) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃ →请在此输入您的选择 ┃"<<endl;
cout<<" ┗━━━━━━━━━━━━━┛"<<endl;
}
/*********************************************************
* 功能描述:图书查询界面
* 输入参数:无
* 输出参数:无
* 返回值 :无
* 其它说明:界面2
************************************************************/
void FaceBookSearch()//图书查询界面
{
cout<<" ┏━━━━━━━━━━━━━━┓"<<endl;
cout<<" ┃ #欢迎进入图书查询系统# ┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按书名查询---( 1 )★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按编号查询---( 2 )★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按作者名查询-( 3 )★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎按出版社查询-( 4 )★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎查询所有信息-( 5 )★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ 0.退出----(ESC) ★┃"<<endl;
cout<<" ┗━━━━━━━━━━━━━━┛"<<endl;
cout<<" →请在此输入您的选择 ";
}
/*********************************************************
* 功能描述:读者管理界面
* 输入参数:无
* 输出参数:无
* 返回值 :无
* 其它说明:界面1
************************************************************/
void FaceDu()//读者管理界面
{
cout<<" ┏━━━━━━━━━━━━━┓"<<endl;
cout<<" ┃ #欢迎进入读者管理系统# ┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎增加读者----(1) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎查询读者----(2) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎删除读者----(3) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎借书信息----(4) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎修改信息----(5) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎到期催还----(6) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ 0.退出----(ESC) ★┃"<<endl;
cout<<" ┗━━━━━━━━━━━━━┛"<<endl;
cout<<" →请在此输入您的选择 ";
}
/*********************************************************
* 功能描述:图书管理界面
* 输入参数:无
* 输出参数:无
* 返回值 :无
* 其它说明:界面1
************************************************************/
void FaceBook()//图书管理系统
{
cout<<" ┏━━━━━━━━━━━━━┓"<<endl;
cout<<" ┃ #欢迎进入图书管理系统# ┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎增加图书----(1) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎查询图书----(2) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎删除图书----(3) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎排序图书----(4) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎图书借阅----(5) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎修改图书----(6) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ ◎图书归还----(7) ★┃"<<endl;
cout<<" ┣━━━━━━━━━━━━━┫"<<endl;
cout<<" ┃★ 0.退出----(ESC) ★┃"<<endl;
cout<<" ┗━━━━━━━━━━━━━┛"<<endl;
cout<<" →请在此输入您的选择 ";
}
/*********************************************************
* 功能描述:查询图书选择模块
* 输入参数:0~6(对应相应功能)
* 输出参数:相应界面
* 返回值 :(1)
* 其它说明:0是退出
************************************************************/
int BookSearch(BookList &H) //图书查询菜单
{
int m;
while(m!=0)
{
FaceBookSearch();
cin>>m;
cout<<"------------------------------------------"<<endl;
switch(m)
{
case 1:
Search_BookName(H); //按书名查询
break;
case 2:
Search_BookNum(H);//按编号查询
break;
case 3:
Search_BookWritername(H);//按作者名查询
break;
case 4:
Search_Publish(H);//按出版社查询
break;
case 5:
Search_AllB(H);//查询所有图书信息
case 0:
br