c语言图书管理系统附源码是一款由C语言编写的图书管理系统,它是由吾爱论坛网友分享提供的,对于学习C语言的朋友可以借鉴参考学习代码的编写,这也是在大学里初学C语言经常会遇到的课题,欢迎大家下载学习。
猜测大一的同学只要是学习C语言的应该最后都会有课程设计,我们一组当时分配到的题目是写图书馆管理系统。
系统并不是很完善,只是实现功能,望大佬勿喷。
其中程序的主要贡献者是我舍友范同学(Robin),我是负责了其中一部分函数。
为了在课上方便演示,我们把所有的代码全都放到一个源文件里了。
这里把源代码给大家供大家参考。
大家在查看图书信息之前一定要先导入信息(也就是7号功能),不然是读取不到的,导入之前提前在盘符准备好图书 .txt 文件。
管理员账户密码皆为admin(学习C语言的朋友应该都懂)
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
//由506小组编写
struct account
{
char name[10],password[10];
} user[2]= {{"admin","admin"},{"Robin","000000"}};
void gotoxy(int x,int y)
{
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
int color(int c)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
return 0;
}
struct book //定义结构体类型
{
char no[50]; //书号
char name[50]; //书名
char publishday[50]; //出版日期
char chapt[50]; //类别
char writer[50]; //作者
char index[50]; //借阅标记
int repeat; //借阅次数
char add[50]; //备份
} booknum[100];
struct temp
{
char no[50]; //书号
char name[50]; //书名
char publishday[50]; //出版日期
char chapt[50]; //类别
char writer[50]; //作者
char index[50]; //借阅标记
int repeat; //借阅次数
char add[50];
} tempbook;
int i=0;
void menu();
void menu2();
void log_in() //输入并验证账户名
{
char a[10]= {0},b[10]= {0};
int j=-1;
reput:
printf("账户名:");
color(11);
scanf("%s",a);
if(strcmp(a,user[0].name)==0)
j=0;
else if(strcmp(a,user[1].name)==0)
j=1;
else
{
color(7);
printf("请重新输入!\n");
goto reput;
}
color(7);
reput2:
printf("密码:");
color(11);
for(int k=0; k<10;)
{
b[k]=getch();
if(b[k]!=13&&b[k]!='\b')
{
printf("*");
k++;
}
else if(b[k]=='\b'&&k>0)
{
printf("\b \b");
k--;
}
else if(k<=0)
printf("\a");
else
{
b[k]='\0';
break;
}
}
if(strcmp(b,user[j].password)!=0)
{
color(7);
printf("\n请重新输入!\n");
goto reput2;
}
wsprintf(szMsg,("欢迎您,管理员%s"),a);
MessageBox(NULL,szMsg,"登录成功",MB_OK);
}
void enter()
{
system("cls");
if(IDCANCEL==MessageBox(NULL,"您是否想添加新图书信息","新图书信息录入确认",MB_OKCANCEL))
return menu();
color(11);
redo:
system("cls");
printf("请输入新录入的图书数量:");
int n;
if(!scanf("%d",&n))
{
MessageBox(NULL,"输入有误,请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
fflush(stdin);
goto redo;
}
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("您要新录入的图书数量是%d本"),n);
if(IDNO==MessageBox(NULL,szMsg,"录入图书数量确认",MB_YESNO|MB_ICONQUESTION))
goto redo;
system("cls");
int j=1;
while(n--)
{
color(7);
printf("这是您新添加的第%d本书\n",j);
color(15);
printf("图书总数:%d本\n",i);
color(13);
printf("请输入书号:");
scanf("%s",booknum[i].no);
color(12);
printf("请输入书名:");
scanf("%s",booknum[i].name);
color(14);
printf("请输入出版日期:");
scanf("%s",booknum[i].publishday);
color(10);
printf("请输入类别:");
scanf("%s",booknum[i].chapt);
color(11);
printf("请输入作者:");
scanf("%s",booknum[i].writer);
color(3);
printf("请输入借阅标记:");
scanf("%s",booknum[i].index);
color(9);
printf("请输入借阅次数:");
scanf("%d",&booknum[i].repeat);
color(5);
printf("请输入备份:");
scanf("%s",booknum[i].add);
color(15);
printf("您添加的第%d本书的信息为:\n",j++);
printf("书号:%s\n",booknum[i].no);
printf("书名:%s\n",booknum[i].name);
printf("出版日期:%s\n",booknum[i].publishday);
printf("类别:%s\n",booknum[i].chapt);
printf("作者:%s\n",booknum[i].writer);
printf("借阅标记:%s\n",booknum[i].index);
printf("借阅次数:%d\n",booknum[i].repeat);
printf("备注:%s\n\n",booknum[i].add);
i++;
}
getchar();
system("cls");
return menu();
}
void print()
{
system("cls");
if(i==0)
{
MessageBox(NULL,"您的图书信息为空!","系统信息不足",MB_OK|MB_ICONEXCLAMATION);
goto go;
}
for(int j=0,k=-1; j<i; j++)
{
color(15);
gotoxy(0,++k);
printf("这是您添加的第%d本书\n",j+1);
color(13);
gotoxy(0,++k);
printf("书号:%s",booknum[j].no);
color(12);
gotoxy(20,k);
printf("书名:%s",booknum[j].name);
color(14);
gotoxy(0,++k);
printf("出版日期:%s",booknum[j].publishday);
color(10);
gotoxy(20,k);
printf("类别:%s",booknum[j].chapt);
color(11);
gotoxy(0,++k);
printf("作者:%s",booknum[j].writer);
color(3);
gotoxy(20,k);
printf("借阅标记:%s",booknum[j].index);
color(9);
gotoxy(0,++k);
printf("借阅次数:%d",booknum[j].repeat);
color(5);
gotoxy(20,k);
printf("备注:%s\n",booknum[j].add);
}
getchar();
getchar();
go:
system("cls");
return menu();
}
void print2()
{
system("cls");
if(i==0)
{
MessageBox(NULL,"您的图书信息为空!","系统信息不足",MB_OK|MB_ICONEXCLAMATION);
goto go;
}
for(int j=0,k=-1; j<i; j++)
{
color(15);
gotoxy(0,++k);
printf("这是您添加的第%d本书\n",j+1);
color(13);
gotoxy(0,++k);
printf("书号:%s",booknum[j].no);
color(12);
gotoxy(20,k);
printf("书名:%s",booknum[j].name);
color(14);
gotoxy(0,++k);
printf("出版日期:%s",booknum[j].publishday);
color(10);
gotoxy(20,k);
printf("类别:%s",booknum[j].chapt);
color(11);
gotoxy(0,++k);
printf("作者:%s",booknum[j].writer);
color(3);
gotoxy(20,k);
printf("借阅标记:%s",booknum[j].index);
color(9);
gotoxy(0,++k);
printf("借阅次数:%d",booknum[j].repeat);
color(5);
gotoxy(20,k);
printf("备注:%s\n",booknum[j].add);
}
getchar();
getchar();
go:
system("cls");
return menu2();
}
void search()
{
system("cls");
recheck:
printf("请输入您要查找的书号:");
char no[150];
scanf("%s",no);
if(i==0)
{
MessageBox(NULL,"您尚未输入任何图书信息!","系统信息不足",MB_OK|MB_ICONEXCLAMATION);
goto go;
}
for(int j=0; j<i; j++)
{
if(strcmp(no,booknum[j].no)==0)
{
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("书号:%s 书名:%s\n出版日期:%s 类别:%s\n作者:%s 借阅标记:%s\n借阅次数:%d 备注:%s\n"),booknum[j].no,booknum[j].name,booknum[j].publishday,booknum[j].chapt,booknum[j].writer,booknum[j].index,booknum[j].repeat,booknum[j].add);
MessageBox(NULL,szMsg,"查询结果",MB_OK);
break;
}
else if(j==i-1)
{
MessageBox(NULL,"未查询到该图书!","查询结果",MB_OK);
if(IDNO==MessageBox(NULL,"您是否要重新输入?","重新查询确认",MB_YESNO|MB_ICONQUESTION))
goto recheck;
}
}
go:
system("cls");
return menu();
}
void search2()
{
system("cls");
recheck:
printf("请输入您要查找的书号:");
char no[50];
scanf("%s",no);
if(i==0)
{
MessageBox(NULL,"您尚未输入任何图书信息!","系统信息不足",MB_OK|MB_ICONEXCLAMATION);
goto go;
}
for(int j=0; j<i; j++)
{
if(strcmp(no,booknum[j].no)==0)
{
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("书号:%s 书名:%s\n出版日期:%s 类别:%s\n作者:%s 借阅标记:%s\n借阅次数:%d 备注:%s\n"),booknum[j].no,booknum[j].name,booknum[j].publishday,booknum[j].chapt,booknum[j].writer,booknum[j].index,booknum[j].repeat,booknum[j].add);
MessageBox(NULL,szMsg,"查询结果",MB_OK);
break;
}
else if(j==i-1)
{
MessageBox(NULL,"未查询到该图书!","查询结果",MB_OK);
if(IDNO==MessageBox(NULL,"您是否要重新输入?","重新查询确认",MB_YESNO|MB_ICONQUESTION))
goto recheck;
}
}
go:
system("cls");
return menu2();
}
void insert()
{
int n;
redo:
system("cls");
printf("请输入新图书插入的位置:");
if(!scanf("%d",&n))
{
MessageBox(NULL,"输入有误,请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
fflush(stdin);
goto redo;
}
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("您是否在%d位置插入新录入的图书数量"),n);
if(IDNO==MessageBox(NULL,szMsg,"插入位置确认",MB_YESNO|MB_ICONQUESTION))
goto redo;
printf("请输入你要插入的图书信息\n");
color(13);
printf("请输入书号:");
scanf("%s",tempbook.no);
color(12);
printf("请输入书名:");
scanf("%s",tempbook.name);
color(14);
printf("请输入出版日期:");
scanf("%s",tempbook.publishday);
color(10);
printf("请输入类别:");
scanf("%s",tempbook.chapt);
color(11);
printf("请输入作者:");
scanf("%s",tempbook.writer);
color(3);
printf("请输入借阅标记:");
scanf("%s",tempbook.index);
color(9);
printf("请输入借阅次数:");
scanf("%d",&tempbook.repeat);
color(5);
printf("请输入备份:");
scanf("%s",tempbook.add);
for(int j=i,k=i+1; j>=n-1; j--,k--)
{
strcpy(booknum[k].no,booknum[j].no);
strcpy(booknum[k].name,booknum[j].name);
strcpy(booknum[k].publishday,booknum[j].publishday);
strcpy(booknum[k].chapt,booknum[j].chapt);
strcpy(booknum[k].writer,booknum[j].writer);
strcpy(booknum[k].index,booknum[j].index);
booknum[k].repeat=booknum[j].repeat;
strcpy(booknum[k].add,booknum[j].add);
}
strcpy(booknum[n-1].no,tempbook.no);
strcpy(booknum[n-1].name,tempbook.name);
strcpy(booknum[n-1].publishday,tempbook.publishday);
strcpy(booknum[n-1].chapt,tempbook.chapt);
strcpy(booknum[n-1].writer,tempbook.writer);
strcpy(booknum[n-1].index,tempbook.index);
booknum[n-1].repeat=tempbook.repeat;
strcpy(booknum[n-1].add,tempbook.add);
i++;
printf("新图书信息插入成功!\n");
system("cls");
return menu();
}
void del()
{
char no[50];
int delname=-1;
redo:
system("cls");
MessageBox(NULL,"返回主菜单,请输入0","特别提示",MB_OK|MB_ICONEXCLAMATION);
printf("请输入要删除的图书书号:");
scanf("%s",no);
if(strcmp(no,"0")==0)
{
system("cls");
return menu();
}
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("您是否要删除书号为%s的图书"),no);
if(IDNO==MessageBox(NULL,szMsg,"删除图书信息确认",MB_YESNO|MB_ICONQUESTION))
goto redo;
if(i==0)
{
MessageBox(NULL,"您的图书信息为空!","系统信息不足",MB_OK|MB_ICONEXCLAMATION);
system("cls");
return menu();
}
for(int j=0; j<i; j++)
{
if(strcmp(no,booknum[j].no)==0)
{
delname=j;
break;
}
else if(j==i-1)
{
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("未找到书号为%s的图书\n请核实后重新输入!"),no);
if(IDOK==MessageBox(NULL,szMsg,"输入信息有误",MB_OKCANCEL|MB_ICONEXCLAMATION))
goto redo;
}
}
if(delname!=-1)
{
TCHAR szMsg[MAX_PATH];
wsprintf(szMsg,("书号:%s 书名:%s\n出版日期:%s 类别:%s\n作者:%s 借阅标记:%s\n借阅次数:%d 备注:%s\n您确定要删除该图书吗?"),booknum[delname].no,booknum[delname].name,booknum[delname].publishday,booknum[delname].chapt,booknum[delname].writer,booknum[delname].index,booknum[delname].repeat,booknum[delname].add);
if(IDYES==MessageBox(NULL,szMsg,"删除确认",MB_YESNO|MB_ICONEXCLAMATION))
{
for(int j=delname+1,k=delname; j!=i; j++,k++)
{
strcpy(booknum[k].no,booknum[j].no);
strcpy(booknum[k].name,booknum[j].name);
strcpy(booknum[k].publishday,booknum[j].publishday);
strcpy(booknum[k].chapt,booknum[j].chapt);
strcpy(booknum[k].writer,booknum[j].writer);
strcpy(booknum[k].index,booknum[j].index);
booknum[k].repeat=booknum[j].repeat;
strcpy(booknum[k].add,booknum[j].add);
}
if(delname==i)
{
strcpy(booknum[delname].no,0);
strcpy(booknum[delname].name,0);
strcpy(booknum[delname].publishday,0);
strcpy(booknum[delname].chapt,0);
strcpy(booknum[delname].writer,0);
strcpy(booknum[delname].index,0);
booknum[delname].repeat=0;
strcpy(booknum[delname].add,0);
}
i--;
}
else if(IDNO==MessageBox(NULL,szMsg,"删除确认",MB_YESNOCANCEL|MB_ICONEXCLAMATION))
{
goto redo;
}
else
goto finish;
}
finish:
return menu();
}
void save()
{
system("cls");
int n;
FILE *fp;
fp = fopen("D:/Book.txt","w");
for (int j=0; j<i; j++)
{
fprintf(fp,"%s ",booknum[j].no);
fprintf(fp,"%s ",booknum[j].name);
fprintf(fp,"%s ",booknum[j].publishday);
fprintf(fp,"%s ",booknum[j].chapt);
fprintf(fp,"%s ",booknum[j].writer);
fprintf(fp,"%s ",booknum[j].index);
fprintf(fp,"%d ",booknum[j].repeat);
fprintf(fp,"%s ",booknum[j].add);
}
fclose(fp);
MessageBox(NULL,"信息保存成功","Sucessful",MB_OK|MB_ICONEXCLAMATION);
system("cls");
return menu();
}
void load()
{
system("cls");
if(i!=0)
i=0;
FILE *fp;
fp=fopen("D:/Book.txt","r");
while(!feof(fp))
{
fscanf(fp,"%s ",booknum[i].no);
fscanf(fp,"%s ",booknum[i].name);
fscanf(fp,"%s ",booknum[i].publishday);
fscanf(fp,"%s ",booknum[i].chapt);
fscanf(fp,"%s ",booknum[i].writer);
fscanf(fp,"%s ",booknum[i].index);
fscanf(fp,"%d ",&booknum[i].repeat);
fscanf(fp,"%s ",booknum[i].add);
i++;
}
fclose(fp);
MessageBox(NULL,"图书信息读取完毕","图书信息",MB_OK);
system("cls");
return menu();
}
void load2()
{
system("cls");
if(i!=0)
i=0;
FILE *fp;
fp=fopen("D:/Book.txt","r");
while(!feof(fp))
{
fscanf(fp,"%s ",booknum[i].no);
fscanf(fp,"%s ",booknum[i].name);
fscanf(fp,"%s ",booknum[i].publishday);
fscanf(fp,"%s ",booknum[i].chapt);
fscanf(fp,"%s ",booknum[i].writer);
fscanf(fp,"%s ",booknum[i].index);
fscanf(fp,"%d ",&booknum[i].repeat);
fscanf(fp,"%s ",booknum[i].add);
i++;
}
fclose(fp);
MessageBox(NULL,"图书信息读取完毕","图书信息",MB_OK);
system("cls");
return menu2();
}
void sort()
{
MessageBox(NULL,"目前仅支持按照书号和借阅次数两种方式排序\n书号请输入A,借阅次数请输入B","特别提醒",MB_OK|MB_ICONEXCLAMATION);
forward:
system("cls");
printf("请输入图书信息排序依据:");
char a[10];
scanf("%s",a);
if(strcmp(a,"A")==0)
{
redo1:system("cls");
printf("请输入排序方式(升序或降序):");
scanf("%s",a);
if(strcmp(a,"升序")==0)
{
for(int j=0; j<i; j++)
{
for(int k=j+1; k<i; k++)
{
if(strcmp(booknum[j].no,booknum[k].no)>0)
{
strcpy(tempbook.no,booknum[j].no);
strcpy(booknum[j].no,booknum[k].no);
strcpy(booknum[k].no,tempbook.no);
strcpy(tempbook.name,booknum[j].name);
strcpy(booknum[j].name,booknum[k].name);
strcpy(booknum[k].name,tempbook.name);
strcpy(tempbook.publishday,booknum[j].publishday);
strcpy(booknum[j].publishday,booknum[k].publishday);
strcpy(booknum[k].publishday,tempbook.publishday);
strcpy(tempbook.chapt,booknum[j].chapt);
strcpy(booknum[j].chapt,booknum[k].chapt);
strcpy(booknum[k].chapt,tempbook.chapt);
strcpy(tempbook.writer,booknum[j].writer);
strcpy(booknum[j].writer,booknum[k].writer);
strcpy(booknum[k].writer,tempbook.writer);
strcpy(tempbook.index,booknum[j].index);
strcpy(booknum[j].index,booknum[k].index);
strcpy(booknum[k].index,tempbook.index);
tempbook.repeat=booknum[j].repeat;
booknum[j].repeat=booknum[k].repeat;
booknum[k].repeat=tempbook.repeat;
strcpy(tempbook.add,booknum[j].add);
strcpy(booknum[j].add,booknum[k].add);
strcpy(booknum[k].add,tempbook.add);
}
}
}
}
else if(strcmp(a,"降序")==0)
{
for(int j=0; j<i; j++)
{
for(int k=j+1; k<i; k++)
{
if(strcmp(booknum[j].no,booknum[k].no)<0)
{
strcpy(tempbook.no,booknum[j].no);
strcpy(booknum[j].no,booknum[k].no);
strcpy(booknum[k].no,tempbook.no);
strcpy(tempbook.name,booknum[j].name);
strcpy(booknum[j].name,booknum[k].name);
strcpy(booknum[k].name,tempbook.name);
strcpy(tempbook.publishday,booknum[j].publishday);
strcpy(booknum[j].publishday,booknum[k].publishday);
strcpy(booknum[k].publishday,tempbook.publishday);
strcpy(tempbook.chapt,booknum[j].chapt);
strcpy(booknum[j].chapt,booknum[k].chapt);
strcpy(booknum[k].chapt,tempbook.chapt);
strcpy(tempbook.writer,booknum[j].writer);
strcpy(booknum[j].writer,booknum[k].writer);
strcpy(booknum[k].writer,tempbook.writer);
strcpy(tempbook.index,booknum[j].index);
strcpy(booknum[j].index,booknum[k].index);
strcpy(booknum[k].index,tempbook.index);
tempbook.repeat=booknum[j].repeat;
booknum[j].repeat=booknum[k].repeat;
booknum[k].repeat=tempbook.repeat;
strcpy(tempbook.add,booknum[j].add);
strcpy(booknum[j].add,booknum[k].add);
strcpy(booknum[k].add,tempbook.add);
}
}
}
}
else
{
MessageBox(NULL,"您输入的信息有误\n请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
goto redo1;
}
}
else if(strcmp(a,"B")==0)
{
redo2:system("cls");
printf("请输入排序方式(升序或降序):");
scanf("%s",a);
if(strcmp(a,"升序")==0)
{
for(int j=0; j<i; j++)
{
for(int k=j+1; k<i; k++)
{
if(booknum[j].repeat>booknum[k].repeat)
{
strcpy(tempbook.no,booknum[j].no);
strcpy(booknum[j].no,booknum[k].no);
strcpy(booknum[k].no,tempbook.no);
strcpy(tempbook.name,booknum[j].name);
strcpy(booknum[j].name,booknum[k].name);
strcpy(booknum[k].name,tempbook.name);
strcpy(tempbook.publishday,booknum[j].publishday);
strcpy(booknum[j].publishday,booknum[k].publishday);
strcpy(booknum[k].publishday,tempbook.publishday);
strcpy(tempbook.chapt,booknum[j].chapt);
strcpy(booknum[j].chapt,booknum[k].chapt);
strcpy(booknum[k].chapt,tempbook.chapt);
strcpy(tempbook.writer,booknum[j].writer);
strcpy(booknum[j].writer,booknum[k].writer);
strcpy(booknum[k].writer,tempbook.writer);
strcpy(tempbook.index,booknum[j].index);
strcpy(booknum[j].index,booknum[k].index);
strcpy(booknum[k].index,tempbook.index);
tempbook.repeat=booknum[j].repeat;
booknum[j].repeat=booknum[k].repeat;
booknum[k].repeat=tempbook.repeat;
strcpy(tempbook.add,booknum[j].add);
strcpy(booknum[j].add,booknum[k].add);
strcpy(booknum[k].add,tempbook.add);
}
}
}
}
else if(strcmp(a,"降序")==0)
{
for(int j=0; j<i; j++)
{
for(int k=j+1; k<i; k++)
{
if(booknum[j].repeat<booknum[k].repeat)
{
strcpy(tempbook.no,booknum[j].no);
strcpy(booknum[j].no,booknum[k].no);
strcpy(booknum[k].no,tempbook.no);
strcpy(tempbook.name,booknum[j].name);
strcpy(booknum[j].name,booknum[k].name);
strcpy(booknum[k].name,tempbook.name);
strcpy(tempbook.publishday,booknum[j].publishday);
strcpy(booknum[j].publishday,booknum[k].publishday);
strcpy(booknum[k].publishday,tempbook.publishday);
strcpy(tempbook.chapt,booknum[j].chapt);
strcpy(booknum[j].chapt,booknum[k].chapt);
strcpy(booknum[k].chapt,tempbook.chapt);
strcpy(tempbook.writer,booknum[j].writer);
strcpy(booknum[j].writer,booknum[k].writer);
strcpy(booknum[k].writer,tempbook.writer);
strcpy(tempbook.index,booknum[j].index);
strcpy(booknum[j].index,booknum[k].index);
strcpy(booknum[k].index,tempbook.index);
tempbook.repeat=booknum[j].repeat;
booknum[j].repeat=booknum[k].repeat;
booknum[k].repeat=tempbook.repeat;
strcpy(tempbook.add,booknum[j].add);
strcpy(booknum[j].add,booknum[k].add);
strcpy(booknum[k].add,tempbook.add);
}
}
}
}
else
{
MessageBox(NULL,"您输入的信息有误\n请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
goto redo2;
}
}
else
{
MessageBox(NULL,"您输入的信息有误\n请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
goto forward;
}
system("cls");
MessageBox(NULL,"排序成功","Success",MB_OK|MB_ICONEXCLAMATION);
return menu();
}
void modify()
{
redo:
system("cls");
char a[50];
int cc;
printf("请输入你要修改的图书书号:");
scanf("%s",a);
for(int j=0; j<i; j++)
{
if(strcmp(booknum[j].no,a)==0)
{
cc=j;
break;
}
else if(j==i-1)
{
MessageBox(NULL,"您输入的信息有误","Error",MB_OK|MB_ICONEXCLAMATION);
if(IDYES==MessageBox(NULL,"是否重新输入","重新输入确认",MB_YESNO|MB_ICONQUESTION))
goto redo;
else
menu();
}
}
forward:
system("cls");
int k=-1;
color(13);
gotoxy(0,++k);
printf("书号:%s",booknum[cc].no);
color(12);
gotoxy(20,k);
printf("书名:%s",booknum[cc].name);
color(14);
gotoxy(0,++k);
printf("出版日期:%s",booknum[cc].publishday);
color(10);
gotoxy(20,k);
printf("类别:%s",booknum[cc].chapt);
color(11);
gotoxy(0,++k);
printf("作者:%s",booknum[cc].writer);
color(3);
gotoxy(20,k);
printf("借阅标记:%s",booknum[cc].index);
color(9);
gotoxy(0,++k);
printf("借阅次数:%d",booknum[cc].repeat);
color(5);
gotoxy(20,k);
printf("备注:%s\n",booknum[cc].add);
color(15);
MessageBox(NULL,"返回主菜单,请输入0","特别提示",MB_OK|MB_ICONEXCLAMATION);
printf("请输入你要修改的图书信息:");
scanf("%s",a);
if(strcmp(a,"0")==0)
{
system("cls");
return menu();
}
else if(strcmp(a,"书号")==0)
{
printf("请输入新书号:");
scanf("%s",tempbook.no);
strcpy(booknum[cc].no,tempbook.no);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"书名")==0)
{
printf("请输入新书名:");
scanf("%s",tempbook.name);
strcpy(booknum[cc].name,tempbook.name);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"出版日期")==0)
{
printf("请输入新出版日期:");
scanf("%s",tempbook.publishday);
strcpy(booknum[cc].publishday,tempbook.publishday);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"类别")==0)
{
printf("请输入新类别:");
scanf("%s",tempbook.chapt);
strcpy(booknum[cc].chapt,tempbook.chapt);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"借阅标记")==0)
{
printf("请输入新借阅标记:");
scanf("%s",tempbook.index);
strcpy(booknum[cc].index,tempbook.index);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"借阅次数")==0)
{
printf("请输入新借阅次数:");
scanf("%s",tempbook.repeat);
booknum[cc].repeat=tempbook.repeat;
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else if(strcmp(a,"备注")==0)
{
printf("请输入新备注:");
scanf("%s",tempbook.add);
strcpy(booknum[cc].add,tempbook.add);
MessageBox(NULL,"图书信息已修改","Success",MB_OK);
}
else
{
MessageBox(NULL,"您输入的信息有误\n请重新输入","Error",MB_OK|MB_ICONEXCLAMATION);
goto forward;
}
system("cls");
return menu();
}
void esc2()
{
MessageBox(NULL,"您已安全退出,期待您的下次使用","系统退出成功",MB_OK|MB_ICONEXCLAMATION);
system("cls");
gotoxy(40,10);
color(12);
printf("请按任意键退出\n");
exit(0);
}
void esc1()
{
MessageBox(NULL,"期待你的下次使用","系统退出成功",MB_OK|MB_ICONEXCLAMATION);
system("cls");
gotoxy(40,10);
color(12);
printf("请按任意键退出\n");
exit(0);
}
int num()
{
color(7);
printf("请输入相应数字进行相应操作< >\n");
int b;
gotoxy(27,13);
scanf("%d",&b);
return b;
}
int num2()
{
color(7);
printf("请输入相应数字进行相应操作< >\n");
int b;
gotoxy(27,2);
scanf("%d",&b);
return b;
}
void function(int b)
{
if(b==1)
enter();
else if(b==2)
print();
else if(b==3)
search();
else if(b==4)
insert();
else if(b==5)
del();
else if(b==6)
save();
else if(b==7)
load();
else if(b==8)
sort();
else if(b==9)
modify();
else if(b==0)
esc2();
else
{
MessageBox(NULL,"您的输入有误,请重新输入","输入有误",MB_OK|MB_ICONEXCLAMATION);
system("cls");
menu();
}
}
void menu()
{
gotoxy(24,4);
color(12);
printf("1、添加图书信息 2、查看图书信息");
gotoxy(24,6);
color(14);
printf("3、查找图书信息 4、插入图书信息");
gotoxy(24,8);
color(10);
printf("5、删除图书信息 6、保存图书信息");
gotoxy(24,10);
color(9);
printf("7、读取图书信息 8、图书信息排序");
gotoxy(24,12);
color(5);
printf("9、修改图书信息 0、退出管理系统\n");
function(num());
}
void function2(int b)
{
if(b==1)
load2();
else if(b==2)
print2();
else if(b==3)
search2();
else if(b==4)
esc1();
else
{
MessageBox(NULL,"您的输入有误,请重新输入","输入有误",MB_OK|MB_ICONEXCLAMATION);
system("cls");
menu2();
}
}
void menu2()
{
color(12);
gotoxy(0,0);
printf("1、读取图书信息");
color(14);
gotoxy(20,0);
printf("2、查看图书信息");
color(10);
gotoxy(0,1);
printf("3、查找图书信息");
color(5);
gotoxy(20,1);
printf("4、退出管理系统\n");
function2(num2());
}
void main()
{
if(IDNO==MessageBox(NULL,"您是否拥有管理员权限?","图书管理信息系统",MB_ICONQUESTION|MB_YESNO))
{
if(IDYES==MessageBox(NULL,"您确定以游客身份登录系统吗","登录确认",MB_ICONQUESTION|MB_YESNO))
menu2();
else
esc1();
}
if(IDCANCEL==MessageBox(NULL,"请输入管理员用户名和密码!","图书管理信息系统",MB_ICONEXCLAMATION|MB_OKCANCEL))
esc1();
log_in();
system("cls");
menu();
}