/*****************************************
** 图书馆管理系统 **
** 登录界面: **
** 1.学生登录 **
** 2.管理员登录 **
** 3.注册新用户 **
** 4.退出 **
** 管理员登录: **
** 1.添加书籍 **
** 2.删除书籍 **
** 3.书籍信息更改 **
** 4.查询书籍 **
** 5.查看已注册用户列表 **
** 6.还欠款操作 **
** 7.返回登录界面 **
** 普通用户登录: **
** 1.查看已借书籍 **
** 2.借阅书籍 **
** 3.归还书籍 **
** 4.查看所有书籍 **
** 5.续借 **
** 6.返回登录界面 **
******************************************/
/**************** main函数 ****************/
void main(){
char a;
book Lb;
stu Ls,s;
man Lm,m;
Lb = Init_Book(Lb);
Ls = Stu_Table(Ls); //初始化学生链表
Lm = Man_Table(Lm); //初始化管理员链表
Select_Options();
scanf("%c",&a); //使用char类型,这样输入字母不会死循环
while(a != '4'){
switch(a){
//学生登录
case '1':s = Stu_Login(Ls);
if(s == NULL){
printf("用户名或密码错误!╮( ̄▽ ̄)╭\n");
printf("是否注册新用户?(1.是 2.否)\n");
int z;
while(true){
scanf("%d",&z);
if(z == 1) {
Ls = Guidein(Ls);
break;
}
if(z == 2) break;
else printf("您的输入有误,请重新输入!\n");
}
}else{
Stu_Menu(Lb,Ls,s);
}
break;
//管理员登录
case '2':m = Man_Login(Lm);
if(m == NULL){
printf("帐号或密码错误!╮( ̄▽ ̄)╭\n\n");
}else{
Man_Menu(Lb,m,Ls);
}
break;
//注册新用户
case '3':Ls = Guidein(Ls);break;
case 10:break;
default:printf("input error!\n");
}
if(a == 10) scanf("%c",&a); //如果是回车,就继续录入,不显示菜单
else{
Select_Options();
scanf("%c",&a);
}
}
}
上面只粘贴了部分代码,运行结果如下:
1.登录界面显示
2.学生登录
a.因为没有注册,所以出现登录失败的情况:
不慌,选择注册:
输入姓名、回车
输入学号,也就是待会儿要使用的用户名(这里用的是111)
输入密码(这里也设置为111)
确认密码(如果两次输入不一致会报错并让你重新输入密码,下面有演示)
b.这个时候就可以登录啦
c.查看所有书籍(查看书籍列表,这里默认初始化有3本)
d.借阅书籍(这里借阅3本)
e.查看已借书籍(为方便测试,我默认设置的是超时1秒罚款0.5元)
f.这里再次查看所有书籍
g.归还书籍(如果尚未超期则归还成功,如果超期状态无法自助归还)
h.超期状态无法借阅书籍
i.续借(如果无欠款续借成功,这里看有欠款的)
3.管理员登录(管理员已设置好,直接登录)
a.查看已注册用户列表
b.查看所有书籍
c.添加书籍
d.删除书籍(书籍尚未被借阅)
e.修改书籍信息(书籍尚未被借阅)
f.如果书籍已经被借阅,则无法删除或修改书籍
g.清欠款操作