/***********************************************************
* 版权所有 (C)2016,ChenDi
*
* 文件名称: cd.cpp
* 文件标识:无
* 内容摘要:函数文件
* 其它说明:各个模块函数
* 当前版本: V1.0
* 作 者:陈迪
* 完成日期: 20161229
*
* 修改记录1:
* 修改日期 :20161229
* 版本号: V1.0
* 修改人: 陈迪
* 修改内容:创建
#include<stdio.h> //调用函数
#include <string.h> //字符串处理
#include <stdlib.h> //定义杂项函数及内存分配函数
#include<conio.h> //包含一些常用函数
#define Max 4 //每人最多借4本书
typedef struct book //顺序链表结构 存放书的链表的节点类型
{
char book_num[10]; //书的数量
char book_name[20]; //存储书的名字
char book_writer[10]; //存储书的读者
int book_xy; //书的现有量
int book_kc; //书的库存
struct book *next; //一个指向book类型对象的指针 * next是个数据成员, 这个数据成员用来记录别人的地址,
//每个结构体对象(或结构体变量)都有这么一个成员来记录(或指向)别人的地址。指向后继节点。
}BK;
typedef struct borrow //借书
{
char borrow_book_num[10];
char limit_date[8];
}BO;
typedef struct reader //读者
{
char reader_num[10]; //读者的数目
char reader_name[10]; //读者的姓名
int right;
BO borrow[Max]; //借的书赋值为最大数量
struct reader *next; //指向下一个节点
}RD;
BK *h_book;
RD *h_reader;
void Login(); //进入
int Menu(); //主菜单
void Init(); //先初始化图书信息
void Init2(); //再初始化读者信息
void Init_book(); //初始化书的这一线性表,构造一个空的书的线性表()
void Menu_select(); //主菜单函数选择
void Insert_New_Book(); //插入新的书
void Find_Book(); //找书的信息
void add_reader(); //增加读者
void Print_reader(); //查询读者信息
void Print_book(); //查询书的信息
void Borrow_Book(); //借书
void Return_Book(); //还书
void Save(); //保存信息
void Save_Book(); //保存书的信息
void Save_Reader(); //保存读者信息
void Load(); //加载信息
void Load_Reader(); //加载读者信息
void Load_Book(); //加载书的信息
/****************************
功能描述:进入
输入参数:任意键进入
输出参数:出现主菜单
其他说明:无
*****************************/
void Login()
{
system("cls"); //清屏函数
printf("\n\n\n\t\t********************************************\n");
printf("\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t欢迎使用图书管理系统\n");
printf("\n\n\n\t\t********************************************\n");
printf("\n\n\n\t\t 请按任意键进入系统...");
getch(); //按下任意键而不需要回车就可以接受到用户的输入
system("cls");
}
/************************
功能描述:主菜单
输入参数:要选择的功能前的数字
输出参数:所输入数字对应的功能
其他说明:无
*************************/
int Menu() //主菜单进入
{ int dm;
printf("\n\t\t图书管理系统主菜单\n");
printf("=================================================\n");
printf("*\t1----采编入库 \n");
printf("*\t2----登记读者 \n");
printf("*\t3----借阅登记 \n");
printf("*\t4----还书管理 \n");
printf("*\t5----查询图书信息 \n");
printf("*\t6----查询读者信息 \n");
printf("*\t0----退出系统 \n");
printf("=================================================\n");
printf("请选择相应的代码:");
for(;;)
{
scanf("%d",&dm); //dm输入的数字
if(dm<0||dm>6) //只能输入0-6
printf("\n输入错误 请重新输入:");
else break;
}
return dm;
}
/************************
功能描述:主菜单选择函数
输入参数:无
输出参数:无
其他说明:无
*************************/
void Menu_select() //主菜单函数选择
{
for(;;)
{
switch(Menu()) //功能选择
{
case 0:
system("cls"); //清屏
Save();
printf("\n\n\t文件保存成功 \n");
printf("\n\n\t欢迎下次使用本系统 \n");
getch();
exit(0);
case 1: //加入新书
Insert_New_Book();
break;
case 2: //加入读者
add_reader();
break;
case 3: //借书
Borrow_Book();
break;
case 4: //还书
Return_Book();
break;
case 5: //查询书的信息
Print_book();
break;
case 6: //查询读者的信息
Print_reader();
break;
default:
printf("\n错误!");
exit(0);
}
}
}
/************************
功能描述:初始化
输入参数:编号.书名. 作者.数量
输出参数:无
其他说明:
*************************/
void Init()
{
BK *p0;