返回 教育学习

展开

可可软件园> 应用软件> 教育学习

c语言图书管理系统附源码

大小:22KB时间:2020-06-12 15:27:37 类别:教育学习系统:WinAll
简介|教程
软件介绍

c语言图书管理系统附源码是一款由C语言编写的图书管理系统,它是由吾爱论坛网友分享提供的,对于学习C语言的朋友可以借鉴参考学习代码的编写,这也是在大学里初学C语言经常会遇到的课题,欢迎大家下载学习。

c语言图书管理系统附源码

系统说明

猜测大一的同学只要是学习C语言的应该最后都会有课程设计,我们一组当时分配到的题目是写图书馆管理系统。

系统并不是很完善,只是实现功能,望大佬勿喷。

其中程序的主要贡献者是我舍友范同学(Robin),我是负责了其中一部分函数。

为了在课上方便演示,我们把所有的代码全都放到一个源文件里了。

这里把源代码给大家供大家参考。

大家在查看图书信息之前一定要先导入信息(也就是7号功能),不然是读取不到的,导入之前提前在盘符准备好图书 .txt 文件。

使用说明

管理员账户密码皆为admin(学习C语言的朋友应该都懂)

源码展示

#include<stdio.h>

#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;

}

TCHAR szMsg[MAX_PATH];

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();

}

加载全部内容

热门推荐
推荐教程
猜你喜欢
相关合集
本类排行