#include"c1.h"
#include"sqstack.c"
#include<string.h>
LinkList L,S;
//函数操作声明
void show_book(LinkList L);//显示图书链表信息
void show_student(LinkList S);//显示学生链表信息
void start(LinkList *L);//初始图书表信息
void start1(LinkList *S);//初始学生表信息
void add(LinkList *L);//添加图书
void del(LinkList L);//删除图书信息
void modify(LinkList *L);//修改图书信息
void query_stu(LinkList L);//查询学生借阅信息
void query_book();//查找图书
void lend(LinkList L,LinkList S);//借阅图书
void getback(LinkList L,LinkList S);//归还图书
void show_self();//查看个人借阅情况
void savebook(LinkList L);//保存图书表文件
void savestudent(LinkList L);//保存学生表文件
LinkList Loadstudent();//打开学生表文件
LinkList Loadbook();//打开图书表文件
void xt();
void menu()
{
printf("\t\t*****************************************\n");
printf("\t\t* *\n");
printf("\t\t* 欢迎进入图书管理系统 *\n");
printf("\t\t* *\n");
printf("\t\t* 1.管理员 *\n");
printf("\t\t* *\n");
printf("\t\t* 2.学生 *\n");
printf("\t\t* *\n");
printf("\t\t* 0.退出系统 *\n");
printf("\t\t* *\n");
printf("\t\t*****************************************\n");
printf("\t\t请输入选择的指令(0-2):");
}
void show_student(LinkList S)//显示学生链表信息
{
LNode *p=S->next;
if(!p)
printf("该图书管理系统未存入数据!\n");
else
{
printf("\t\t所有学生信息\n");
printf("学生姓名 学生学号 借阅状态(已借/未借)\n");
while(p)
{
printf("%s\t%s\t%s\n",p->data1.name,p->data1.num,p->data1.jyzt);
p=p->next;
}
}
}
void show_book(LinkList L)//显示图书链表信息
{
LNode *p=L->next;
if(!p)
printf("该图书管理系统未存入数据!\n");
else
{
printf("\t\t所有书籍信息\n");
printf("书籍编号 书籍名称 现存数量\n");
while(p)
{
printf("%-10s\t%-s\t%d\n",p->data.bnum,p->data.bname,p->data.n);
p=p->next;
}
}
}
void start(LinkList *L)//初始图书表信息
{
int n;
printf("请输入所要添加的图书的种类数量:");
scanf("%d",&n);
CreateList_L(L,n);
}
void start1(LinkList *S)//初始学生表信息
{
int n;
printf("请输入学生人数:");
scanf("%d",&n);
CreateList_L1(S,n);
}
void add(LinkList *L)//添加图书
{
ElemType e;
int a;
int temp,n,i;
printf("请输入你要添加的位置:");
scanf("%d",&i);
printf("请输入所要添加的图书的种类数量:");
scanf("%d",&n);
for(a=1;a<=n;a++)
{
printf("请输入添加图书信息(书编 书名 数量):");
scanf("%s %s %d",e.bnum,e.bname,&e.n);
}
temp=ListInsert_L(L,i,e);
if(temp==OK)
{
printf("添加成功!\n");
}
else
printf("添加失败!\n");
}
void del(LinkList L)//删除图书信息
{
int i,temp;
ElemType e;
printf("请输入要删除位置:");
scanf("%d",&i);
temp=ListDelete_L(&L,i,&e);//若删除元素成功temp==OK
if(temp==OK)
{
printf("删除成功!\n");
}
else
printf("删除失败!\n");
}
void modify(LinkList *L)//修改图书信息
{
printf("请输入您要修改的书籍编号:");
char ch[20];
int i;
scanf("%s",&ch);
LNode *p=(*L)->next;
while(p!=NULL)
{
if(strcmp(ch,p->data.bnum)==0)
{
printf("你所要修改的书籍信息:");
printf("%s %s %d\n",p->data.bname,p->data.bnum,p->data.n);
printf("修改格式:(图书名称 图书编号 现有图书数量)\n");
scanf("%s %s %d",p->data.bname,p->data.bnum,&p->data.n);
printf("系统:修改成功!\n");
break;
}
p=p->next;
}
}
void menu_3()
{
printf("\t\t*****************************************\n");
printf("\t\t* *\n");
printf("\t\t* 欢迎进入学生系统 *\n");
printf("\t\t* *\n");
printf("\t\t* 1.初始学生表信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 2.保存学生表信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 3.显示学生表信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 4.借阅图书 *\n");
printf("\t\t* *\n");
printf("\t\t* 5.归还图书 *\n");
printf("\t\t* *\n");
printf("\t\t* 6.查看个人借阅信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 7.打开图书表 *\n");
printf("\t\t* *\n");
printf("\t\t* 0.返回主界面 *\n");
printf("\t\t* *\n");
printf("\t\t*****************************************\n");
printf("\t\t请输入选择的指令(0-7):");
}
void usrstudent()
{
//清理窗口信息
system("cls");
int cmd;
while(1){
menu_3();
scanf("%d",&cmd);
switch(cmd)
{
case 1:start1(&S);break;//显示学生表信息
case 2:savestudent(S);break;//保存学生表信息
case 3:show_student(S);break;//显示学生表信息
case 4:lend(L,S);break;//借阅图书
case 5:getback(L,S);break;//归还图书
case 6:show_self(S);break;//查看个人借阅信息
case 7:show_book(L);break;
case 0:xt();break;
default:printf("\n-->无效指令!\n\n\n");
}
//界面暂停
system("pause");
printf("请重新输入!");
//清理窗口信息
system("cls");
}
}
void menu_2()
{
printf("\t\t*****************************************\n");
printf("\t\t* *\n");
printf("\t\t* 欢迎进入管理员系统 *\n");
printf("\t\t* *\n");
printf("\t\t* 1.初始图书表信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 2.显示图书表信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 3.添加图书信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 4.删除图书信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 5.修改图书信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 6.查询图书信息 *\n");
printf("\t\t* *\n");
printf("\t\t* 7.保存图书表(所有功能执行后) *\n");
printf("\t\t* *\n");
printf("\t\t* 0.返回主界面 *\n");
printf("\t\t* *\n");
printf("\t\t*****************************************\n");
printf("\t\t请输入选择的指令(0-7):");
}
void usrmanager()
{
//清理窗口信息
system("cls");
int cmd;
while(1){
menu_2();
scanf("%d",&cmd);
switch(cmd)
{
case 1:start(&L);break;//初始图书表信息
case 2:show_book(L);break;
case 3:add(&L);break;//添加图书信息
case 4:del(L);break;//删除图书信息
case 5:modify(&L);break;//修改图书信息
case 6:query_book(L);break;//查询图书信息
case 7:savebook(L);break;//保存图书信息
case 0:xt();break;
default:printf("\n-->无效指令!\n\n\n");
}
//界面暂停
system("pause");
printf("请重新输入!");
//清理窗口信息
system("cls");
}
}
void xt()
{
//清理窗口信息
system("cls");
int cmd;
while(1)
{
//显示主菜单,调用menu函数模型
menu();//进入首界面
scanf("%d",&cmd);
switch(cmd)
{
case 1:usrmanager(); break;//管理员系统
case 2:usrstudent();break;//学生系统
case 0: