安徽科技学院 信网学院网络文化节 李彤彤

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 100

///全局变量
static char glzhanghao[MAX]={“aaaaaa”};///管理员账户唯一
static char glmima[MAX]={“k666666”};

///图书结构体///
typedef struct book
{

char shuming[MAX]; //书名定义
char shuhao[MAX];//书号定义
char zuozhe[MAX];//作者
int shuliang;//书的数量
char fenlei[MAX];//书的分类
char chubanshe[MAX];//书的出版社定义
char banci[MAX];//版次
double jiage;//价格
struct book *next;///下一本书

}Book;//图书结构体
Book * book_head;///图书的头指针
int book_sum;///图书的总数\

//用户结构体
typedef struct user
{
int xuhao1;///用户的序号,用于确定用户
char name[MAX]; //用户姓名定义
char user_zhanghao[MAX];//账号定义
char user_mima[MAX];//账号密码
int zhengjianhao;///证件号

char jieyue[MAX];///用户正在借阅的图书

int n;///用户正在借阅的数量


struct user *next;///下一个用户

}User;//用户结构体
User * user_head;///用户的头指针
int user_sum;///用户的总数

/
void save() //保存数据到文件
{
FILE* fp = fopen(“user.txt”, “wb”);///定义一个指向文件的指针fp,并以只写的方式打开文件
User* t = user_head->next;
while (t)
{
fwrite(t, sizeof(User), 1, fp);
t = t->next;
}
fclose(fp);

FILE *fp1 = fopen("book.txt", "wb");///定义一个指向文件的指针fp,并以只写的方式打开文件
Book* s = book_head->next;
while (s)
{
	fwrite(s, sizeof(Book), 1, fp1);///将所有数据输出到fp指向磁盘文件中
	s = s->next;
}
fclose(fp1);

}

//创建链表//
void creatbooklist(char *shuming,char *shuhao,char *zuozhe,int shuliang,double jiage,char *fenlei,char *chubanshe,char *banci)///创建图书链表
{
Book p1=(Book)malloc(sizeof(Book));///
p1=book_head;///将头指针赋给p1
while(p1->next)///当p1的next为真时
p1=p1->next;///p1始终指向尾结点

Book *p2=(Book*)malloc(sizeof(Book));

strcpy(p2->shuming ,shuming);
strcpy(p2->shuhao ,shuhao);
strcpy(p2->zuozhe ,zuozhe);
	p2->shuliang =shuliang;
    p2->jiage =jiage;
strcpy(p2->fenlei ,fenlei);
strcpy(p2->chubanshe ,chubanshe);
strcpy(p2->banci ,banci);
p2->next=NULL;
p1->next=p2;
save();

}

void creatuserlist(char *name,char *user_zhanghao,char *user_mima,int zhengjianhao,char *jieyue)///创建用户信息链表
{
User p1=(User)malloc(sizeof(User));///
p1=user_head;///将头指针赋给p1
while(p1->next)///当p1的next为真时
p1=p1->next;///p1始终指向尾结点

User *p2=(User*)malloc(sizeof(User));

strcpy(p2->name,name);
strcpy(p2->user_zhanghao ,user_zhanghao);
strcpy(p2->user_mima ,user_mima);
	p2->zhengjianhao =zhengjianhao;
strcpy(p2->jieyue ,jieyue);
p2->next=NULL;
p1->next=p2;
save();

}

图书管理部分//

void addbook()///添加图书
{
char shuming[MAX]; //书名定义
char shuhao[MAX];//书号定义
char zuozhe[MAX];//作者
int shuliang;//书的数量
double jiage;
char fenlei[MAX];//书的分类
char chubanshe[MAX];//书的出版社定义
char banci[MAX];//版次
printf(“请输入要添加图书的书名、书号、作者、数量、类别\n”);

    printf("书名:");
	scanf("%s",shuming);
	printf("书号:");
	scanf("%s",shuhao);
	Book *b=(Book*)malloc(sizeof(Book));
	b=book_head;
	while(b)
	{
		if(strcmp(b->shuhao,shuhao)==0) {printf("该书号已存在,请重新输入!");addbook();}
		b=b->next;
	}
	printf("作者:");
	scanf("%s",zuozhe);
	printf("书的数量:");
    scanf("%d",&shuliang );	
	if(shuliang<=0) {printf("数量输入有问题!请重新输入数量!\n");addbook();}
    printf("书的价格:");
    scanf("%lf",&jiage );
	if(jiage<=0) {printf("价格输入有问题!请重新输入价格!\n");addbook();}
	printf("书的分类:");
	scanf("%s",fenlei);
    printf("书的出版社:");
	scanf("%s",chubanshe);
    printf("书的版次:");
	scanf("%s",banci);
	++book_sum;
	creatbooklist(shuming,shuhao,zuozhe,shuliang,jiage,fenlei,chubanshe,banci);
	printf("添加书籍%s成功!\n",shuming);
	system("pause");
	system("cls");

}

void outbook()///输出全部图书信息
{
int xuhao=1;
if(!book_sum)
{
printf(“本系统内暂无图书,请联系管理员添加图书!\n”);
return ;
}
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“全部图书信息如下所示:\n”);
printf(“序号 书名 书号 作者 数量 价格 分类 出版社 版次\n”);
while(b)
{
printf("%-9d",xuhao);
printf("%-16s",b->shuming );
printf("%-9s",b->shuhao);
printf("%-9s",b->zuozhe);
printf("%-9d",b->shuliang);
printf("%-9.2lf",b->jiage);
printf("%-9s",b->fenlei);
printf("%-15s",b->chubanshe);
printf("%-9s\n",b->banci);
b=b->next;
++xuhao;
}
}

/查找方式///
void zuozhe()/按作者查找
{
int xuhao=1;
int t=0;
char zuozhe[MAX];
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“请输入需要查找的作者的图书:”);
scanf("%s",zuozhe);
printf(“该作者的图书信息如下所示:\n”);
printf(“序号 书名 书号 作者 数量 价格 分类 出版社 版次\n”);
while(b)
{
if(strcmp(b->zuozhe,zuozhe)==0)
{
printf("%-9d",xuhao);
printf("%-16s",b->shuming );
printf("%-9s",b->shuhao);
printf("%-9s",b->zuozhe);
printf("%-9d",b->shuliang);
printf("%-9.2lf",b->jiage);
printf("%-9s",b->fenlei);
printf("%-15s",b->chubanshe);
printf("%-9s\n",b->banci);
t=1;
}
b=b->next;
++xuhao;
}

if(t==0)
	printf("本系统内暂无该作者的图书的信息!!!");
    system("pause");
	system("cls");

}

void fenlei()按分类查找
{
int xuhao=1;
int t=0;
char fenlei[MAX];
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“请输入需要查找的分类的图书:”);
scanf("%s",fenlei);
printf(" 该分类的图书信息如下所示:\n");
printf(“序号 书名 书号 作者 数量 价格 分类 出版社 版次\n”);
while(b)
{
if(strcmp(b->fenlei,fenlei)==0)
{
printf("%-9d",xuhao);
printf("%-16s",b->shuming );
printf("%-9s",b->shuhao);
printf("%-9s",b->zuozhe);
printf("%-9d",b->shuliang);
printf("%-9.2lf",b->jiage);
printf("%-9s",b->fenlei);
printf("%-15s",b->chubanshe);
printf("%-9s\n",b->banci);
t=1;

}

b=b->next;
++xuhao;
}
if(t==0)
	printf("本系统内暂无该分类的图书的信息!!!");
system("pause");
	system("cls");

}

void shuming()/按书名查找
{
int xuhao=1;
int t=0;
char shuming[MAX];
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“请输入需要查找的书名:”);
scanf("%s",shuming);
printf(“序号 书名 书号 作者 数量 价格 分类 出版社 版次\n”);

while(b)
{
if(strcmp(b->shuming,shuming)==0)
{
	
	    printf("%-9d",xuhao);
	    printf("%-16s",b->shuming );
	    printf("%-9s",b->shuhao);
	    printf("%-9s",b->zuozhe);
	    printf("%-9d",b->shuliang);
        printf("%-9.2lf",b->jiage);
	    printf("%-9s",b->fenlei);
	    printf("%-15s",b->chubanshe);
	    printf("%-9s\n",b->banci);
	    t=1;
	break;
}

b=b->next;
++xuhao;
}
if(t==0)
	printf("本系统内暂无%s的信息!!!",shuming[MAX]);
system("pause");
	system("cls");

}

/更改库存///
void kucun()
{
int xuhao=1;
int t=0;
int kucun;
char shuming[MAX];
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“请输入需要修改库存的书名:”);
scanf("%s",shuming);
printf(“序号 书名 书号 作者 数量 价格 分类 出版社 版次\n”);
while(b)
{
if(strcmp(b->shuming,shuming)==0)
{

	printf("%-9d",xuhao);
	    printf("%-16s",b->shuming );
	    printf("%-9s",b->shuhao);
	    printf("%-9s",b->zuozhe);
	    printf("%-9d",b->shuliang);
        printf("%-9.2lf",b->jiage);
	    printf("%-9s",b->fenlei);
	    printf("%-15s",b->chubanshe);
	    printf("%-9s\n",b->banci);
	t=1;
	break;
}

b=b->next;
++xuhao;
}
if(t==0)
	printf("本系统内暂无%s的信息!!!",shuming[MAX]);
    printf("请输入修改后的库存:");
    scanf("%d",&kucun);
    printf("是否确认修改?1.是 2.否(请输入1或2选择功能)\n");
	int a;
	scanf("%d",&a);
	if(a==1||a==2)
	{
		if(a==1)
		{
			b->shuliang =kucun;
			save();
			printf("更改库存成功!!!");
		}
		if(a==2)return;
	}
	else printf("指令选择有误!!!\n");
     system("pause");
	system("cls");

}
void sum()
{
int a;
int sum1=0;
int sum2=0;
double sum=0;
printf(“1.查看图书总图书库存量\n”);
printf(“2.查看图书总用户量\n”);
printf(“3.查看图书总图书资产\n”);
scanf("%d",&a);
if(a==1)
{
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
while(b)
{

sum1=sum1+b->shuliang;
b=b->next;
}
printf(“本图书馆的总图书库存为%d\n”,sum1);
}
if(a==2)
{

User *b=(User*)malloc(sizeof(User));
b=user_head->next;
if(b) sum2++;
printf("用户一共有%d位!\n",sum2);

}
if(a==3)
{
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
while(b)
{
double c;
c=b->shuliang*b->jiage;
sum=sum+c;
b=b->next;
}
printf(“本图书馆的图书总价为%.2lf\n”,sum);
}
}
void delbook() //删除图书信息
{

	outbook();
	printf("请输入待删除的书籍序号(输入 -1 退出删除操作):\n");
	int xuhao; scanf("%d", &xuhao);
	if (xuhao == -1)
	{
		printf("已成功退出删除系统!\n");
		system("pause"); 
		system("cls");
		return;
	}
	else if (xuhao > book_sum || xuhao <= 0)
	{
		printf("请正确输入待删除的图书序号!\n");
	}
	else
	{
		Book* tb = (Book*)malloc(sizeof(Book));
		Book* np = (Book*)malloc(sizeof(Book));
		np = book_head;
		tb = book_head->next;
		for (int i = 1; i < xuhao; ++i)///找到需要删除的位置
		{
			np = tb;
			tb = tb->next;
		}             
		np->next = tb->next;
		free(tb);
		--book_sum;
		save();
		printf("该图书已从系统内删除成功!\n");
	}
	system("pause");
	system("cls");

}

用户信息管理/
void outuser()///输出全部用户信息
{
int xuhao1=1;
if(!user_sum)
{
printf(“本系统内暂无用户账号,请联系管理员添加账号!\n”);
return ;
}
User b=(User)malloc(sizeof(User));
b=user_head->next;
printf(“全部用户信息如下所示:\n”);
while(b)
{
printf(“序号:%d\n”,xuhao1);
printf(“姓名:%s\n”,b->name );

	printf("账号:%s\n",b->user_zhanghao );
	
	printf("密码:%s\n",b->user_mima);

	printf("证件号:%d\n",b->zhengjianhao );
	printf("正在借阅的书籍:%s\n" ,b->jieyue);
	for(int i=0;i<b->n;i++)
	{
		printf("%s",b->jieyue[i]);

	}
	b=b->next;
	++xuhao1;
}

}

void adduser()///添加账户
{
char name[MAX]; //用户姓名定义
char user_zhanghao[MAX];//账号定义
char user_mima[MAX];//账号密码
int zhengjianhao;///证件号
// User_book b[10];
char jieyue[MAX];///用户正在借阅的图书
printf(“请输入要添加的账户信息(添加账户时请将用户正在借阅的书籍设为无):\n”);

    printf("姓名:");
	scanf("%s",name);
	
	printf("账号:");
	scanf("%s",user_zhanghao);

	printf("密码:");
	scanf("%s",user_mima);

	printf("证件号:");
    scanf("%d",&zhengjianhao );
	printf("用户正在借阅的书:");
	scanf("%s",jieyue);

	++user_sum;
	creatuserlist(name,user_zhanghao,user_mima,zhengjianhao,jieyue);
	printf("添加用户:%s成功!\n",name);
	system("pause");
	system("cls");

}

void deluser() //删除用户账号
{

	outuser();
	printf("请输入待删除的用户序号(输入 -1 退出删除操作):\n");
	int xuhao1;
	scanf("%d", &xuhao1);
	if (xuhao1 == -1)
	{
		printf("已成功退出删除系统!\n");
		system("pause"); 
		system("cls");
		return;
	}
	else if (xuhao1 > user_sum || xuhao1 <= 0)
	{
		printf("请正确输入待删除的用户序号!\n");
	}
	else
	{
		User* tb = (User*)malloc(sizeof(User));
		User* np = (User*)malloc(sizeof(User));
		np = user_head;
		tb = user_head->next;
		for (int i = 1; i < xuhao1; ++i)///找到需要删除的位置
		{
			np = tb;
			tb = tb->next;
		}
		np->next = tb->next;
		free(tb);
		--user_sum;
		save();
		printf("该用户账号已从系统内删除成功!\n");
	}
	system("pause");
	system("cls");

}

//借阅部分///
void duzhejieyue()//按书号借阅图书
{
int n=0;
User *l=(User *)malloc(sizeof(User));
l=user_head->next ;
int t=0;
char zh[MAX];
int ID;
int xuhao1=1;
printf(“用户请再输入您的账号以进行接下来的操作!\n”);
scanf("%s",zh);
printf(“请输入您的证件号以进行接下来的操作!\n”);
scanf("%d",&ID);
while(l)
{
if((strcmp(l->user_zhanghao,zh)0)&&(l->zhengjianhaoID)) break;
else if((strcmp(l->user_zhanghao,zh)0)&&(l->zhengjianhao!=ID)) printf(“密码错误!请从新登陆!”);
l=l->next;
++xuhao1;
}
if(ID
l->zhengjianhao)
{
int xuhao=1;
char shuhao[MAX];
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
printf(“请输入需要查找的书号的图书:”);
scanf("%s",shuhao);
while(b)
{
if(strcmp(b->shuhao,shuhao)0)
{
printf(" 该图书信息如下所示:\n");
printf(“书名:%s\n”,b->shuming);
printf(“书号:%s\n”,b->shuhao);
printf(“作者:%s\n”,b->zuozhe);
printf(“书的数量:%d\n”,b->shuliang);
printf(“书的价格:%.2lf\n”,b->jiage);
printf(“书的分类:%s\n”,b->fenlei);
printf(“书的出版社:%s\n”,b->chubanshe);
printf(“书的版次:%s\n”,b->banci);
t=1;
break;
}
b=b->next;
}
if(t
0)
printf(“本系统内暂无该书号的图书的信息!!!”);
while(b)
{
if(b->shuliang>0)
{
printf(“该图书可以借阅!\n”);
printf(“1.确定借阅!\n”);
printf(“2.退出系统!\n”);
int s;
scanf("%d",&s);
switch(s)
{
case 1:
{
b->shuliang=b->shuliang-1;
User u1=(User)malloc(sizeof(User));
u1=user_head;//用u1指向用户
while(u1->next)
u1=u1->next; //u1始终指向尾结点
User u2=(User)malloc(sizeof(User));
u2=user_head->next;
while(u2)
{
if(u2->zhengjianhao ==ID)
{
printf(“姓名:%s\n”,u2->name );
printf(“账号:%s\n”,u2->user_zhanghao );
printf(“证件号:%d\n”,u2->zhengjianhao );
break;
}
u2=u2->next;
}
while(u2)
{
strcat(u2->jieyue ,b->shuming);
break;
}
save();
printf(“借阅成功!!!”);
}
case 2:return ;
}

		}
		else {printf("该图书库存不足,欢迎下次借阅!");break;}
	}
}

}

void backbook() 还书
{
int n=0;
User *l=(User *)malloc(sizeof(User));
l=user_head->next ;
int t=0;
char zh[MAX];
int ID;
int xuhao1=1;
printf(“用户请再输入您的账号以进行接下来的操作!\n”);
scanf("%s",zh);
printf(“请输入您的证件号以进行接下来的操作!\n”);
scanf("%d",&ID);
while(l)
{
if((strcmp(l->user_zhanghao,zh)0)&&(l->zhengjianhaoID)) break;
l=l->next;
++xuhao1;
}
if(ID==l->zhengjianhao)
printf(“您借阅图书有:”);
printf("%s\n",l->jieyue);
printf(“请输入您要归还的图书书名:”);
char c[MAX];
scanf("%s",c);
int lent=strlen©;
char p;
while(p=strstr(l->jieyue,c))//找到l->jieyue中第一次与c匹配的地址,若找不到返回NULL
{//strstr
while(
(p+lent)!=’\0’)
{//能找到
p=(p+lent);//从开始找到的位置将去掉c的那部分复制过来
p++;
}
*p=’\0’;//s串打上结束标志
}
Book b=(Book)malloc(sizeof(Book));
b=book_head->next;
while(b)
{
if(strcmp(b->shuming,c)==0)
{
b->shuliang=b->shuliang+1;
break;
}

b=b->next;
}

printf(“您现在借阅图书有:”);
printf("%s\n",l->jieyue);
save();
}

//菜单//
void menu_chazhao()/查找方式的菜单/
{
int c;
system(“color 0B”);
system(“cls”);
printf("\t\t\t ◆◇请选择查找方式◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇1.按书名查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇2.按作者查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇3.按分类查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇0.退出◇◆\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请选择功能◇◆\t\t\t\t\n");
scanf("%d",&c);system(“cls”);
switch©
{
case 1: shuming();system(“pause”);menu_chazhao();break;
case 2: zuozhe();system(“pause”);menu_chazhao();break;
case 3: fenlei();system(“pause”);menu_chazhao();break;
case 0: return ;
default:printf(“指令错误,请重新输入!!!\n”);system(“pause”);system(“cls”);break;
}
}

void menu_chazhaouser()/查找方式的菜单/
{
int c;
system(“color 0B”);
system(“cls”);
printf("\t\t\t ◆◇借阅图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇1.按书名查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇2.按作者查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇3.按分类查找◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇4.借阅图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇0.退出◇◆\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请选择功能◇◆\t\t\t\t\n");
scanf("%d",&c);system(“cls”);
switch©
{
case 1: shuming();system(“pause”);menu_chazhaouser();break;
case 2: zuozhe();system(“pause”);menu_chazhaouser();break;
case 3: fenlei();system(“pause”);menu_chazhaouser();break;
case 4: duzhejieyue();system(“pause”);menu_chazhaouser();break;
case 0: return ;
default:printf(“指令错误,请重新输入!!!\n”);system(“pause”);system(“cls”);break;
}
}

void menu_gly()//管理员管理菜单
{
//load();
int b;
system(“color 0B”);
system(“cls”);
printf(“登录成功!!!欢迎使用图书管理系统!!!\n”);
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf( “\t\t\t◆◇管理员管理系统◇◆\t\t\t\t\n” );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请选择管理模式◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇1.添加图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇2.删除图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇3.查找图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇4.更改图书库存◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇5.显示全部图书◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇6.添加读者账户◇◆\n" );
printf("\t\t\t ◆◇7.浏览读者信息◇◆\t\t\t\t\n" );
printf("\t\t\t◆◇8.删除读者信息◇◆\n" );
printf("\t\t ◆◇9.查看图书库存和总读者量◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇0.退出◇◆\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请选择功能◇◆\t\t\t\t\n");
scanf("%d",&b);system(“cls”);
switch(b)
{
case 1:addbook();system(“pause”);menu_gly();system(“pause”);break;
case 2: delbook();system(“pause”);menu_gly();system(“pause”);break;
case 3:menu_chazhao();system(“pause”);menu_gly();system(“pause”);break;
case 4:kucun();system(“pause”);menu_gly();system(“pasue”);break;
case 5: outbook();system(“pause”);menu_gly();system(“pause”);break;
case 6: adduser();system(“pause”);menu_gly();system(“pause”);break;
case 7: outuser();system(“pause”);menu_gly();system(“pause”);break;
case 8: deluser();system(“pause”);menu_gly();system(“pause”);break;
case 9: sum();system(“pause”);menu_gly();system(“pause”);break;
case 0:return ;
default:printf(“指令错误,请重新输入!!!\n”);system(“pause”);system(“cls”);break;
}
}

void menu_jyz()//借阅者/
{
int c;

system("color 0B");
system("cls");
printf( "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
  printf( "\t\t\t ◆◇读者借阅系统◇◆\t\t\t\t\n" );
  printf(  "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
  printf("\t\t\t  ◆◇请选择读者模式◇◆\t\t\t\t\n" );
  printf("\t\t\t   ◆◇1.借阅图书◇◆\t\t\t\t\n" );
  printf("\t\t\t   ◆◇2.归还图书◇◆\t\t\t\t\n" );
  printf("\t\t\t   ◆◇3.退出系统◇◆\t\t\t\t\n" );
  printf(  "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
  printf("\t\t\t   ◆◇请选择功能◇◆\t\t\t\t\n");
  scanf("%d",&c);system("cls");
  switch(c)
  {

  case 1: menu_chazhaouser();system("pause");break;
  case 2: backbook();system("pause");break;
	case 3:return ;
default:printf("指令错误,请重新输入!!!\n");system("pause");system("cls");break;
  }

}

void gly_dl()管理员登陆///
{
char zh[MAX];
char mm[MAX];
system(“color 0B”);
system(“cls”);
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请登录管理员账户◇◆\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t 温馨提示:请正确输入账号与密码!!\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf(“账号:”);
scanf("%s",zh);
printf(“密码:”);
scanf("%s",mm);

if(strcmp(glzhanghao,zh)==0&&strcmp(glmima,mm)==0) menu_gly();
else 
{
	printf("账号或密码出错!!!");
	system("pause");
	system("cls");
}

}

void user_jyz()借阅者登陆
{
system(“cls”);
char a[MAX],b[MAX];
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
printf("\t\t\t ◆◇请输入用户账户◇◆\t\t\t\t\n" );
printf("\t\t\t ◆◇请输入用户密码◇◆\t\t\t\t\n" );
printf( “〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n” );
scanf("%s",a);
scanf("%s",b);
//int xuhao1=1;
//int t=0;
User u=(User)malloc(sizeof(User));
u=user_head->next;
while(u)
{
if(strcmp(u->user_zhanghao,a)==0)
{
if(strcmp(u->user_mima,b)==0) menu_jyz();
else {printf(“密码输入错误!”);system(“pause”);system(“cls”);break;}
}
//t=1;
u=u->next;
// ++xuhao1;
}
}

///
void load() //从文件中加载数据
{

book_head = (Book*)malloc(sizeof(Book));///创建图书头结点
book_head->next = NULL;///将其next域置为NULL
book_sum = 0;///将图书总数初始化为0

FILE* fp1;///定义一个指向文件的指针fp1
fp1 = fopen("book.txt", "rb");///以只读的方式打开book.txt
if (fp1 == NULL)///如果文件为空,存储失败
{
	fp1 = fopen("book.txt", "wb");
	if (fp1 == NULL)
	{
		printf("图书存储失败!\n"); 
		exit(0);
	}
	fclose(fp1);
}
else///如果文件不为空
{
	Book* bp = (Book*)malloc(sizeof(Book));///建立一个图书节点
	bp = book_head;///令他为头指针
	Book* tp = (Book*)malloc(sizeof(Book));
	while (fread(tp, sizeof(Book), 1, fp1))///fread从文件中读取一个数据块    读入数据
		///从fp1指向的文件中读入一个Book长度的数据,存储到节点中
		///读取book.txt文件,实现将文件中数据存入tp链表中
	{
		bp->next = tp;
		++book_sum;///图书总数加1
		
		tp = tp->next;///指针后移
		tp = (Book*)malloc(sizeof(Book));///再建立一个节点
		bp = bp->next;
	}
	fclose(fp1);
	
}

user_head = (User*)malloc(sizeof(User));
user_head->next = NULL;
user_sum = 0;

FILE* fp2;
fp2 = fopen("user.txt", "rb");
if (fp2 == NULL)
{
	system("color 0B");
	printf("本系统暂时无读者用户账号,请管理员添加读者用户账号!!!\n");
	system("pause");
	system("cls");
	menu_gly(); 
	return  ;
	printf("账户存储失败!!!\n");
	
	exit(0);
}
User* np = (User*)malloc(sizeof(User));
np = user_head;
User* t = (User*)malloc(sizeof(User));
while (fread(t, sizeof(User), 1, fp1))
{
	np->next = t;
	++user_sum;///用户总数加1
	t = t->next;///指针后移
	t = (User*)malloc(sizeof(User));
	np = np->next;
}

fclose(fp2);

}

//主函数//
void main()
{
int i;
int a=0;
int sum=0;
char zh[MAX];
char mm[MAX];

load();
system("color 0B");
system("cls");
printf( "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
printf( "\t\t\t ◆◇图书管理系统◇◆\t\t\t\t\n" );
printf(  "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
printf(  "\t\t\t~~~欢迎使用图书管理系统~~~\t\t\t\n");
printf(  "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
printf("\t\t\t ◆◇请选择登录模式◇◆\t\t\t\t\n" );
printf("\t\t\t  ◆◇1.管理员登录◇◆\t\t\t\t\n" );
printf("\t\t\t   ◆◇2.读者登录◇◆\t\t\t\t\n" );
printf("\t\t\t   ◆◇3.退出系统◇◆\t\t\t\t\n" );
printf(  "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n" );
scanf("%d",&i);system("cls");
switch(i)
{
case 1:	gly_dl();main();break;
case 2: user_jyz();main();break;
case 3:printf("\t\t\t  ~~~谢谢使用!!!~~~\t\t\t \n" );exit(0);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值