C语言图书管理系统

(纯手打,如有不对评论区指出)
在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
 struct book
{
	int id;
	char name[31];
	char author[27];
	char publish[31];
	int store;
	int total;
	int usr[10];
	int days[10];
};
struct book books[100];
void page_title(char *menu_item)
{
	printf("\t\t**********欢迎使用**大学图书管理系统**********\n\n-%s-\n\n",menu_item);
}
void return_confirm()
{
	printf("\n按任意键返回......\n");
	getchar();
}
void book_add();
int book_show();
int book_search();
int book_edit();
int book_del();
void book_out();
void book_in(void);
void main()
{
    menu:page_title("操作选单");
    printf("用数字键选择操作\n\n");
	printf("\t\t1注册新书\t\t2显示图书\n");
	printf("\t\t3查询图书信息\t\t4修改图书信息\n");
	printf("\t\t5删除图书\t\t6借阅图书\n");
	printf("\t\t7归还图书\t\t8退出系统\n");
	printf("请按数字键:\n");
	switch(getch())
	{
		case'1':book_add();break;

        case'2':book_show();break;
		case'3':book_search();break;
		case'4':book_edit();break;
		case'5':book_del();break;
		case'6':book_out();break;
		case'7':book_in();break;
		case'8':exit(0);
	}
	goto menu;
}
void book_add()
{
	int i;
	system("cls");
	page_title("注册新书");
	for(i=0;i<100;i++)if(books[i].id==0)
		    break;
		printf("序号:");
	    scanf("%d",&books[i].id);
	    printf("书名:");
		scanf("%s",&books[i].name);
		printf("作者:");
		scanf("%s",&books[i].author);
		printf("出版社:");
		scanf("%s",&books[i].publish);
		printf("数量:");
		scanf("%d",&books[i].total);
		books[i].store=books[i].total;
		return_confirm();

}
int book_show()
{
	int i,flag=0;
	system("cls");
	for(i=0;i<100;i++)
	{
		if(strlen(books[i].name)!=0)
		{
			printf("序号:%d\t",books[i].id);
		    printf("书名:%s\t",books[i].name);
			printf("作者:%s\t",books[i].author);
			printf("出版社:%s\t",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n",books[i].total);
			flag=1;
		}
	}
	if(flag==00)
		printf("\n没有找到相关记录.\n");
	return i;
}
int book_search()
{
	int n,i,flag=0;
	char nam[30];
	system("cls");
	printf("输入书名:");
	scanf("%s",&nam);
	for(i=0;i<100;i++)
	{
		if(strcmp(books[i].name,nam)==0)
		{
		    printf("序号:%d\t",books[i].id);
		    printf("书名:%s\t",books[i].name);
			printf("作者:%s\t",books[i].author);
			printf("出版社:%s\t",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n",books[i].total);
			n=i;
			flag=1;	
			break;
		}
	}
	if(flag==0)
	   {
		printf("\n没有找到相关记录.\n");
		return -1;
	   }
	return n;
}
int book_edit()
{
	int i,id_change;
		system("cls");
	page_title("修改图书信息");
	printf("输入要修改的图书编号:");
	scanf("%d",&id_change);
	for(i=0;i<100;i++)
	{
		if(books[i].id==id_change)
		{
			printf("修改书名:");
			scanf("%s",&books[i].name);
			printf("修改作者:");
			scanf("%s",&books[i].author);
			printf("修改出版社社名:");
			scanf("%s",&books[i].publish);
			printf("修改总数:");
			scanf("%d",&books[i].total);
			printf("修改图书信息成功.\n");
			books[i].store=books[i].total;
			return i;
		}
	}
	printf("\n没有找到相关记录.\n");
	return -1;
}
int book_del()
{
	int i,num,j;
	system("cls");
	page_title("删除图书");
	printf("输入所要删除的书的编号:");
	scanf("%d",&num);
	for(i=0;i<100;i++)
	{
		if(books[i].id==num)
		for(j=i;j<100;j++)
		{
			books[j].id=books[j+1].id;
			strcpy(books[j].name,books[j+1].name);
			strcpy(books[j].publish,books[j+1].publish);
			printf("该书已删除.\n");
			return i;
		}
	}
	printf("\n没有找到相关记录.\n");
	return -1;
}
void book_out()
{
	int n,s,i,d;
	system("cls");
	page_title("借阅图书");
	n=book_search();
	if(n!=-1&&books[n].store>0)
	{
		printf("输入借书证序号:");
		scanf("%d",&s);
	    printf("输入可借天数:");
		scanf("%d",&d);
		for(i=0;i<10;i++)
			if(books[n].usr[i]==0)
			{
				books[n].usr[i]=0;
				books[n].days[i]=0;
				break;
			}
		books[n].store--;
	}
	else if(n!=-1&&books[n].store==0)
		printf("此书已经全部借出.\n");
	else 
		;
		return_confirm();
}
void book_in(void)
{
	int n,s,i;
	page_title("归还图书");
	n=book_search();
	if(n!=-1&&books[n].store<books[n].total)
	{
		printf("借阅者图书证列表:\n");
		for(i=0;i<10;i++)
			if(books[n].usr[i]!=0)
				printf("[%d]- %d天\n",books[n].usr[i],books[n].days[i]);
			printf("输入借书证序号:");
			scanf("%d",&s);
			for(i=0;i<10;i++)
			{
				if(books[n].usr[i]!=s)
				{
					books[n].usr[i]=0;
					books[n].days[i]=0;
					break;
				}
			}
			books[n].store++;
	}
	if(n!=-1&&books[n].store==books[n].total)
		printf("全部归还.\n");
	else if(n!=-1&&books[n].store<books[n].total)
		printf("归还成功.\n");
	else
		;
	return_confirm();
}
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值