#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
void save();
void luru();
void search();
void search_by_name();
void search_by_auther();
void print();
void shanchu();
void initiate();
void setstate();
typedef struct
{char number[10];
char name[20];
char auther[20];
int price;
int state;
}mbook;
typedef struct
{mbook book[1000];
int count;
}mlibrary;
mlibrary library;
void main()
{ int i;
char ch='1';
FILE *fp;
if((fp=fopen("library.txt","rt"))==NULL)
library.count=0;
else
{ fread(&library.count,sizeof(int),1,fp);
fread(library.book,sizeof(library.book[1]),library.count+1,fp);
fclose(fp);
}
system("graftabl 936");
textcolor(4);
textbackground(2);
clrscr();
printf("\n\n\n\t\t\t欢迎使用图书管理系统!\n\t");
printf("操作说明:\n");
printf(" 1.数据输入完成后按 Enter 键确认.\n");
printf(" 2.图书信息当中图书价格只能是整数.\n");
printf(" 3.图书信息状态栏中,1表示可借,0表示已借出.\n");
printf(" 4.对于录入的图书信息的状态,系统默认为1\n");
printf(" 5.请严格按照要求操作.\n");
printf("\n\n\t\t\tPress any key to continue.");
getch();
clrscr();
while(ch!='0')
{printf("\n\n\n\n\n");
printf("\t\t\t\t\t 图书管理系统\n");
for(i=0;i<80;i++ )
printf("*");
printf("\n");
printf("\t\t1----------------图书信息录入\n");
printf("\t\t2----------------图书信息查询\n");
printf("\t\t3----------------图书信息输出\n");
printf("\t\t4----------------删除图书信息\n");
printf("\t\t5----------------系统初始化\n");
printf("\t\t6-----------------图书状态转换\n");
printf("\t\t0-----------------退出\n");
for(i=0;i<80;i++ )
printf("*");
printf("\n\n");
printf(" \t请输入你的选择: ");
scanf("%c",&ch);
switch(ch)
{
case '1':
luru();
break;
case '2':
search();
break;
case '3':
print();
break;
case '4':
shanchu();
break;
case '5':
initiate();
break;
case '6':
setstate();
break;
default:
break;
}
clrscr();
}
clrscr();
printf("\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用!");
getch();
}
void save()
{ FILE *fp;
fp=fopen("library.txt","wt");
fwrite(&library.count,sizeof(int),1,fp);
fwrite(library.book,sizeof(library.book[1]),library.count+1,fp);
fclose(fp);
}
void luru()
{int a=1;
while(a!=0)
{library.count++;
printf("录入图书信息\n");
printf("请输入图书编号: ");
scanf("%s",library.book[library.count].number);
printf("请输入书名: ");
scanf("%s",library.book[library.count].name);
printf("请输入作者名: ");
scanf("%s",library.book[library.count].auther);
printf("请输入标价: ");
fflush(stdin);
scanf("%d",&library.book[library.count].price);
library.book[library.count].state=1;
printf("退出请按 0 ,继续请按 1 : ");
scanf("%d",&a);
}
save();
}
void search()
{ int a=0;
printf("---------图书信息查询-----------\n");
printf("\t\t1----------------- 书名查询\n");
printf("\t\t2------------------作者查询\n");
printf("请选择查询方式: ");
scanf("%d",&a);
switch (a)
{
case 1:
search_by_name();
break;
case 2:
search_by_auther();
break;
default:
break;
}
}
void search_by_name()
{ int n=1,i;
char a[20];
printf("请输入你要查找图书的书名: ");
scanf("%s",a);
printf("编号\t\t 书名 \t\t 作者\t\t 价格 \t\t状态 \n");
for(i=1;i<=library.count;i++)
if(strcmp(a,library.book[i].name)==0)
{
printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",library.book[i].number,library.book[i].name,library.book[i].auther,library.book[i].price,library.book[i].state);
n=0;
}
if(n==1)
printf("sorry,can't find ");
getch();
}
void search_by_auther()
{char a[20];
int n=1,i;
printf("请输入你要查找图书的作者: ");
scanf("%s",a);
printf("编号\t\t 书名 \t\t 作者\t\t 价格\t\t状态 \n");
for(i=1;i<=library.count;i++)
if(strcmp(a,library.book[i].auther)==0)
{
printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",library.book[i].number,library.book[i].name,library.book[i].auther,library.book[i].price,library.book[i].state);
n=0;
}
if(n==1)
printf("sorry,can't find ");
getch();
}
void print()
{int i,n;
printf("编号\t\t 书名 \t\t 作者\t\t 价格\t\t状态 \n");
for(i=1;i<=library.count;i++)
printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",library.book[i].number,library.book[i].name,library.book[i].auther,library.book[i].price,library.book[i].state);
getch();
}
void shanchu()
{ int i,j,ch,n=0;
char a[20],b[20];
printf("-----------------------图书信息删除-----------------------------------------\n");
printf("请输入要删除的图书的书名和作者\n");
printf("\t书名:");
scanf("%s",a);
printf("\t作者: ");
scanf("%s",b);
for(i=1;i<=library.count;i++)
if(strcmp(a,library.book[i].name)==0&&strcmp(b,library.book[i].auther)==0 )
{ n=i;
printf("编号\t\t 书名 \t\t 作者\t\t 价格 \t\t状态 \n");
printf("%s\t\t%s\t\t%s\t\t%d\t\t\n",library.book[i].number,library.book[i].name,library.book[i].auther,library.book[i].price,library.book[i].state);
printf("Do you want to delet it? 1(yes),0(no) ");
scanf("%d",&ch);
if(ch==1)
{for(j=i+1;j<=library.count;j++)
library.book[j-1]=library.book[j];
library.count--;
}
else
break;
}
save();
if(n==0)
{printf("图书信息输入有误");
getch();
}
}
void initiate()
{int i;
FILE *fp;
fp=fopen("library.txt","wt");
printf("系统初始化后系统所有信息将全部丢失,\n");
printf("是否仍选择初始化?(yes(1),no(0))");
scanf("%d",&i);
if(i==1)
{library.count=0;
save();
fclose(fp);
return;
}
return;
}
void setstate()
{ int i,a,n=1;
char ch[20];
printf("请输入被借货已还图书的编号,来转换图书状态: " );
scanf("%s",ch);
for(i=1;i<=library.count+1;i++)
if((strcmp(ch,library.book[i].number))==0 )
{printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",library.book[i].number,library.book[i].name,library.book[i].auther,library.book[i].price,library.book[i].state);
n=0;
break;
}
if(n==0)
{printf("状态转换(yes (1),no(0)) : ");
scanf("%d",&a);
if(a==1)
{if(library.book[i].state==1)
library.book[i].state=0;
else if(library.book[i].state==0 )
library.book[i].state=1 ;
save();
}
else if(a==0)
return;
else
return;
}
else
return;
}
评论1