#include "TypeDef.h"
#include "Function.h"
#include <stdio.h>
#include <stdlib.h>
//*****主菜单************************************
char MainMenu()
{
char choice;
system("cls");
printf("\n\t\t图书管理系统\n");
printf("=========================\n");
printf("\t1.系统维护\n");
printf("\t2.读者管理\n");
printf("\t3.图书管理\n");
printf("\t4.图书利通\n");
printf("\t0.退出系统\n");
printf("=========================\n");
printf("请选择0—4:");
while(1)
{
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
if( choice < '0' || choice > '4' )
{
printf("\n\t输入错误,重选0—4:");
}
else
{
break;
}
}
return choice ;
}
//***********************************************
//*****系统维护菜单******************************
char XtwhMenu()
{
char choice;
system("cls");
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("请选择0—6:");
while(1)
{
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
if( choice < '0' || choice > '6' )
{
printf("\n\t输入错误,重选0—6:");
}
else
{
break;
}
}
return choice;
}
//***********************************************
//*****系统维护菜单处理程序**********************
void Xtwh(BookDbFile *bf, BnoIdxFile *bif, BnameIdxFile *bnif, BauthorIdxFile *baif, BpressIdxFile* bpif, BborrowFile *bbf)
{
int i;
char choice;
while(1)
{
switch(XtwhMenu())
{
case '1':
system("cls");
printf("记录号 书号 书名 指针1 作者 指针2 出版社 指针3 分类 藏书量 借出数\n");
for(i = 1; i <= bf->len; i++)
{
printf("%-6d %-4s %-10s %-5d %-8s %-5d %-10s %-5d %-4s %-6d %d\n",
i,
bf->BookDbase[i].bno,
bf->BookDbase[i].bname,
bf->BookDbase[i].namenext,
bf->BookDbase[i].author,
bf->BookDbase[i].authnext,
bf->BookDbase[i].press,
bf->BookDbase[i].prenext,
bf->BookDbase[i].sortno,
bf->BookDbase[i].storenum,
bf->BookDbase[i].borrownum);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '2':
system("cls");
printf("书号 记录号\n");
for(i = 0; i < bif->len; i++)
{
printf("%-4s %d\n", bif->BnoIdx[i].bno, bif->BnoIdx[i].RecNo);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '3':
system("cls");
printf("书名 链头地址 长度\n");
for(i = 0; i < bnif->len; i++)
{
printf("%-10s %-8d %-2d\n",
bnif->BnameIdx[i].bname,
bnif->BnameIdx[i].head,
bnif->BnameIdx[i].RecNum);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '4':
system("cls");
printf("作者 链头地址 长度\n");
for(i = 0; i < baif->len; i++)
{
printf("%-8s %-8d %-2d\n",
baif->BauthorIdx[i].author,
baif->BauthorIdx[i].head,
baif->BauthorIdx[i].RecNum);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '5':
system("cls");
printf("出版社 链头地址 长度\n");
for(i = 0; i < bpif->len; i++)
{
printf("%-10s %-8d %-2d\n",
bpif->BpressIdx[i].press,
bpif->BpressIdx[i].head,
bpif->BpressIdx[i].RecNum);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '6':
system("cls");
printf("读者号 书号 借书日期 还书日期\n");
for(i = 0; i < bbf->len; i++)
{
printf("%-6s %-4s %-8s %-8s\n",
bbf->Bbook[i].rno,
bbf->Bbook[i].bno,
bbf->Bbook[i].date1,
bbf->Bbook[i].date2);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '0':
return;
break;
}
}
}
//***********************************************
//*****读者管理菜单******************************
char DzglMenu()
{
char choice;
system("cls");
printf("\n\t\t读者管理菜单\n");
printf("=========================\n");
printf("\t1.查看所有读者\n");
printf("\t2.添加读者信息\n");
printf("\t0.返回主菜单\n");
printf("=========================\n");
printf("请选择0—2:");
while(1)
{
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
if( choice < '0' || choice > '2' )
{
printf("\n\t输入错误,重选0—2:");
}
else
{
break;
}
}
return choice;
}
//***********************************************
//*****读者管理菜单处理程序**********************
void Dzgl(ReaderFile *rf)
{
int i = 0;
char choice = '\0';
while(1)
{
switch(DzglMenu())
{
case '1':
system("cls");
printf("读者号 读者姓名 可借书数 已借书目\n");
for(i = 0; i < rf->len; ++i)
{
printf("%-6s %-8s %-8d %-8d\n",
rf->ReadRec[i].rno,
rf->ReadRec[i].name,
rf->ReadRec[i].bn1,
rf->ReadRec[i].bn2);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '2':
system("cls");
AddReader(rf);
break;
case '0':
return;
}
}
}
//***********************************************
//*****图书管理菜单******************************
char TsglMenu()
{
char choice;
system("cls");
printf("\n\t\t图书管理菜单\n");
printf("=========================\n");
printf("\t1.查看所有图书\n");
printf("\t2.添加图书信息\n");
printf("\t3.查找图书\n");
printf("\t0.返回主菜单\n");
printf("=========================\n");
printf("请选择0—3:");
while(1)
{
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
if( choice < '0' || choice > '3' )
{
printf("\n\t输入错误,重选0—3:");
}
else
{
break;
}
}
return choice;
}
//***********************************************
//*****图书管理菜单处理程序**********************
void Tsgl(BookDbFile *bf, BnoIdxFile *bif, BnameIdxFile *bnif, BauthorIdxFile *baif, BpressIdxFile* bpif)
{
int i = 0;
char choice = '\0';
while(1)
{
switch(TsglMenu())
{
case '1':
system("cls");
printf("记录号 书号 书名 作者 出版社 分类 藏书量 借出数\n");
for(i = 1; i <= bf->len; i++)
{
printf("%-6d %-4s %-10s %-8s %-10s %-4s %-6d %d\n",
i,
bf->BookDbase[i].bno,
bf->BookDbase[i].bname,
bf->BookDbase[i].author,
bf->BookDbase[i].press,
bf->BookDbase[i].sortno,
bf->BookDbase[i].storenum,
bf->BookDbase[i].borrownum);
}
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
break;
case '2':
AddDbRec(bf, bif, bnif, baif, bpif);
break;
case '3':
SearchBook(bf, bif, bnif, baif
评论0
最新资源