📄 bookmanagement.cpp
字号:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
struct book
{char name[10],price[10],store,total,author[20];
int num,condition;
}book[100];
struct card
{
int num;
char name[10],sex[4],cass[10];
}card[1000];
struct record
{
int cardnum;
char name[10];
}record[1000];
bookadd()
{
system("cls");
int i,n;
printf("添加图书\n\n");
FILE *fp;
fp=fopen("book.txt","wb");
printf("请输入要添加的数目: \n\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d书的序号\n",i+1);
scanf("%d",&book[i].num);
printf("请输入书名\n");
scanf("%s",&book[i].name);
printf("请输入书的作者\n");
scanf("%s",&book[i].author);
printf("请输入书的价格\n");
scanf("%s",&book[i].price);
printf("0 表示书已借出 1 表示书还未借出\n");
printf("请设定书的状态\n");
scanf("%d",&book[i].condition);
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
printf("按任意键返回\n");
getch();
}
searchbook()
{
system("cls");
printf("图书信息查询\n\n");
FILE *fp;
int i;
char bookname[10];
fp=fopen("book.txt","r");
printf("请输入要查找的书名\n\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
if(strcmp(bookname,book[i].name)==0)
{
printf("序号: %d\n",book[i].num );
printf("书名: %s\n",book[i].name);
printf("作者: %s\n",book[i].author);
printf("价格: %s\n",book[i].price);
if(book[i].condition==1)
{printf("此书还未借出\n");}
else {printf("该书已经借出\n");}
}
else {printf("该书不存在\n");}
fclose(fp);
printf("按任意键返回\n");
getch();
}
bookdel()
{
system("cls");
int i,h;
char bookname[10];
printf("删除图书\n\n");
printf("请输入你要删除的书名\n");
scanf("%s",bookname);
FILE *fp,*fp1;
fp=fopen("book.txt","r");
fp1=fopen("books.txt","w");
for(i=0; fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookname,book[i].name)!=0)
{
fwrite(&book[i],sizeof(struct book),1,fp1);
}
}
fclose(fp);
fclose(fp1);
printf("\n确定要删除该图书吗?\n请用数字键选择操作\n");
printf("请用数字键选择操作\n");
printf("1 确定 2 取消\n ");
scanf("%d",&h);
if(h==1)
{
fp=fopen("books.txt","r");
fp1=fopen("book.txt","w");
for(i=0; fread(&book[i],sizeof(struct book),1,fp1)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp1);
printf("\n删除成功\n");
}
printf("按任意键返回\n");
getch();
}
addcard()
{
system("cls");
printf("\n 申请新卡\n");
int i=0;
FILE *fp;
fp=fopen("card.txt","a+");
printf("请输入卡号\n");
scanf("%d",&card[i].num);
printf("请输入学生姓名\n");
scanf("%s",&card[i].name);
printf("请输入性别\n");
scanf("%s",&card[i].sex);
printf("请输入班级\n");
scanf("%s",&card[i].cass);
fwrite(&card[i],sizeof(struct card),1,fp);
fclose(fp);
printf("申请新卡成功\n");
getch();
}
delcard()
{
system("cls");
printf("\n 删除书卡\n\n");
FILE *fp1,*fp2;
int i,cardnum;
printf("请输入要删除的卡号:\n");
scanf("%d",&cardnum);
fp1=fopen("card.txt","r");
fp2=fopen("cards.txt","w");
for(i=0;fread(&card[i],sizeof(struct card),1,fp1)!=0;i++)
{
if(card[i].num!=cardnum)
{
fwrite(&card[i],sizeof(struct card),1,fp2);
}
}
fclose(fp1);
fclose(fp2);
fp1=fopen("card.txt","w");
fp2=fopen("cards.txt","r");
for(i=0;fread(&card[i],sizeof(struct card),1,fp2)!=0;i++)
{
fwrite(&card[i],sizeof(struct card),1,fp1);
}
fclose(fp1);
fclose(fp2);
fp2=fopen("cards.txt","w");
fclose(fp2);
printf("\n\n删除成功!");
printf("\n\n按任意键返回");
getch();
return;
}
bookcard()
{
system("cls");
printf("\n办理借书卡");
printf("\n1 申请新卡\n2 删除书卡");
printf("\n请用数字键选择操作");
switch (getch())
{
case '1' : addcard();break;
case '2' : delcard();break;
}
printf("按任意键返回\n");
getch();
}
bookborrow()
{
system("cls");
printf("\n 借书\n\n");
FILE *fp,*fp2;
int i,n;
int carnum;
printf("请你输入你的卡号\n");
scanf("%d",&carnum);
fp=fopen("card.txt","r");
for(i=0;fread(&card[i],sizeof(struct card),1,fp)!=0;i++)
{
if(card[i].num==carnum)
{
n=i;
fclose(fp);
printf("请输入要借阅书名\n");
scanf("%s",&record[n].name);
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].name,record[n].name)==0)
{
if(book[i].condition==0) {printf("对不起,此书已借出");
fclose(fp);getch();return;}
else
fclose(fp);
fp=fopen("record.txt","a+");
record[n].cardnum=carnum;
fwrite(&record[n],sizeof(struct record),1,fp);
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("books.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].name,record[n].name)==0)
{
book[i].condition=0;
fwrite(&book[i],sizeof(struct book),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("books.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("books.txt","w");
fclose(fp2);
printf("借书成功,按任意键返回\n");
getch();
return;
}
else printf("该书不存在,任意键返回\n");
}
fclose(fp);
getch();
return;
}
}
printf("该卡不存在,按任意键返回\n");
fclose(fp);
getch();
}
returnbook()
{
system("cls");
printf("\n 还书\n\n");
FILE *fp,*fp2;
int i,n,carnum;
char name[10];
printf("请你输入借书卡卡号\n");
scanf("%d",&carnum);
fp=fopen("card.txt","r");
for(i=0;fread(&card[i],sizeof(struct card),1,fp)!=0;i++)
{
if(card[i].num==carnum)
{
n=i;
fclose(fp);
printf("请输入你要还的书的名字\n");
scanf("%s",&name);
fp=fopen("record.txt","r");
for(i=0;fread(&record[i],sizeof(struct record),1,fp)!=0;i++)
{
if(strcmp(record[i].name,name)==0)
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("records.txt","w");
for(i=0;fread(&record[i],sizeof(struct record),1,fp)!=0;i++)
{
if(strcmp(record[i].name,name)==0)
{
continue;
}
fwrite(&record[i],sizeof(struct record),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("record.txt","r");
for(i=0;fread(&record[i],sizeof(struct record),1,fp2)!=0;i++)
{
fwrite(&record[i],sizeof(struct record),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("books.txt","w");
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("books.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(i==n)
{
book[i].condition=1;
fwrite(&book[i],sizeof(struct book),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("books.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("bookstxt","w");
fclose(fp2);
printf("还书完毕,按任意键返回\n");
getch();
return 1;
}
}
printf("你没借该书,按任意键返回\n");
fclose(fp);
getch();
return 0;
}
}
printf("该卡不存在\n"); /*出错提示*/
fclose(fp);
getch();
}
void main()
{
menu:
printf("\t\t*******************图书管理系统*******************\n\n");
printf("\t\t 1 添加图书 \n\n");
printf("\t\t 2 图书信息查询 \n\n");
printf("\t\t 3 删除图书 \n\n");
printf("\t\t 4 办理借书卡 \n\n");
printf("\t\t 5 借书 \n\n");
printf("\t\t 6 还书 \n\n");
printf("\t\t 7 退出 \n\n");
printf("\t\t 请用数字键选择操作 \n");
switch(getchar())
{
case '1' : bookadd();break;
case '2' : searchbook();break;
case '3' : bookdel();break;
case '4' : bookcard();break;
case '5' : bookborrow();break;
case '6' : returnbook();break;
case '7' : exit(0);break;
}
system("cls");
goto menu;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -