图书管理系统
【问题描述】
设计一个计算机管理系统完成图书管理基本业务。
【基本要求】
1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2) 对书号建立索引表(线性表)以提高查找效率;
3) 系统主要功能如下:
*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
*归还:注销对借阅者的登记,改变该书的现存量。

初始化图书信息及系统主菜单界面


部分源代码(主要模块函数需要补充完整)
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include<conio.h>
#define Max 4
typedef struct book
{
charbook_num[10];
charbook_name[20];
charbook_writer[10];
intbook_xy;
intbook_kc;
intn;
structbook *next;
}BK;
typedef struct borrow
{
charborrow_book_num[10];
charlimit_date[10];
}BO;
typedef struct reader
{
charreader_num[10];
charreader_name[10];
intright;
intm;
BOborrow[Max];
structreader *next;
}RD;
BK *h_book;
RD *h_reader;
int n=0;
int m=0;
void Login();
int Menu();
void Init();
void Menu_select();
void Insert_New_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** 欢迎使用图书管理系统 **\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)
printf("\n错误!请重新输入:");
else
break;
}
return dm;
}
void Menu_select()/*主菜单选择函数*/
{ }
void Init() /*初始化*/
{
BK*p0;
printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");
p0=(BK*)malloc(sizeof(BK));
h_book=p0;
...../*补全代码 */
}
void Insert_New_Book()/*新书入库*/
{ }
void add_reader()/*添加读者*/
{ }
void Borrow_Book() /*借书模块*/
{ }
void Return_Book() /*还书模块*/
{ }
void Print_book() /*查询图书信息*/
{ }
void Save() /*保存信息*/
{ }
void Save_Book() /*保存图书信息*/
{ }
void Load() /*加载信息*/
{
Load_Reader();
Load_Book();
}
void Load_Reader() /*加载读者信息*/
{
RD *p1,*p2,*p3;
FILE *fp; /*创建文件型指针*/
fp=fopen("Reader.txt","rb"); /*打开文件*/
p1=(RD *)malloc(sizeof(RD));
fread(p1,sizeof(RD),1,fp);
h_reader=p3=p2=p1;
while(! feof(fp)) /*读出信息,重新链入链表*/
{
p1=(RD*)malloc(sizeof(RD));
fread(p1,sizeof(RD),1,fp);
p2->next=p1;
p3=p2;
p2=p1;
}
p3->next=NULL;
free(p1);
fclose(fp); /*关闭文件*/
}
void Load_Book() /*加载图书信息*/
{ }
int main()
{
FILE *fp_book,*fp_reader; /*创建文件型指针*/
Login();
if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt","rb"))==NULL)
Init();
else
Load();
Menu_select(); /*调用主菜单*/
}

