图书管理系统代码

#ifndef BOOK
#define BOOK
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define HH printf("%-10s%-20s%-20s%-10s%-10s%-10s%-10s\n","编号","作者","书籍名称","楼层","书架号码","出版时间","剩余量")
struct book
{
	char name[100];
	char writer[100];
	int id;
	int floor;
	int number;
	int time;
	int residue;
};
static int n;
void menu();
void add(struct book b[]);
void show(struct book b[],int i);
void showAll(struct book b[]);
void modify(struct book b[]);
void del(struct book b[]);
void search(struct book b[]);
void sort(struct book b[]);
#endif

void menu()
{
	system("cls");
	printf("\n");
	printf("\t\t--------------图书馆书籍借阅管理系统--------------\n") ;
	printf("\t\t|\t\t 1 添加书目名称                  |\n");
	printf("\t\t|\t\t 2 显示书目名称                  |\n");
	printf("\t\t|\t\t 3 修改书目信息                  |\n");
	printf("\t\t|\t\t 4 删除书目信息                  |\n");
	printf("\t\t|\t\t 5 查找书目信息                  |\n");
	printf("\t\t|\t\t 6 书目排序                      |\n");
	printf("\t\t|\t\t 0 退出系统                      |\n");
	printf("\t\t--------------------------------------------------\n") ;
	printf("\t\t请选择(0-6):") ;
}
void add(struct book b[])
{
	int i,id=0;
	char quit;
	do
	{
		printf("书籍编号:");
		scanf("%d",&id);
		for(i=0;i<n;i++)
		{
			if(id==b[i].id)
			{
				printf("此书存在。\n");
				return;
			}
		}
		b[i].id =id;
		printf("作者:");
		scanf("%s",&b[i].writer);
		printf("书籍名称:"); 
		scanf("%s",&b[i].name);
		printf("楼层:");
		scanf("%d",&b[i].floor);
		printf("书架号码:");
		scanf("%d",&b[i].number);
		printf("出版时间:");
		scanf("%d",&b[i].time);
		printf("剩余量:");
		scanf("%d",&b[i].residue);
		n++;
		printf("是否继续添加?(Y/N)");
		scanf("\t%c",&quit) ;
	}while(quit != 'N' && quit != 'n');
}
void show(struct book b[],int i)
{
	printf("%-10d",b[i].id);
	printf("%-20s",b[i].writer);
	printf("%-20s",b[i].name);
    printf("%-10d",b[i].floor);
    printf("%-10d",b[i].number);
    printf("%-10d",b[i].time);
    printf("%-10d\n",b[i].residue);
}
void showAll(struct book b[])
{
	int i=0;
	HH;
	for (;i<n;i++)
	{
		show(b,i);	  
	}
}
void modify(struct book b[])
{
	char name[100],ch;
	int i;
	printf("修改书籍的记录。\n");
	printf("请输入书目名称:");
	scanf("%s",&name);
	for (i=0;i<n;i++)
	{
		if(strcmp(name,b[i].name)==0)
		{
			getchar();
			printf("找到该书信息,如下所示:\n");
			HH;
			show(b,i);
		    printf("是否修改信息?(Y/N)\n");
			scanf("%c",&ch);
			if(ch=='Y'||ch=='y')	
			{
				getchar();
				printf("书籍名称:");
				scanf("%s",&b[i].name) ;
				printf("编号:");
				scanf("%d",&b[i].id) ;
				printf("作者:");
				scanf("%s",&b[i].writer) ;
				printf("出版时间:");
				scanf("%d",&b[i].time) ;
				printf("楼层:");
				scanf("%d",&b[i].floor) ;
				printf("书架号码:");
				scanf("%d",&b[i].number) ;
				printf("剩余量:");
				scanf("%d",&b[i].residue) ;
				printf("修改完毕。\n") ;
			}
			return;
		}
	 } 
	 printf("没有找到该书的记录。\n");
}
void del(struct book b[])
{
	char name[100];
	int i;
	char ch;
	printf("删除该书的记录。\n");
	printf("请输入书籍名称:"); 
	scanf("%s",&name);
	for (i=0;i<n;i++)
	{
		if(strcmp(name,b[i].name)==0)
		{
			getchar();
			printf("找到该书记录,如下所示:\n");
			HH;
			show(b,i);
			printf("是否删除?(Y/N)\n");
			scanf("%c",&ch);
			if(ch=='Y'||ch=='y')
			{
				for(;i<n;i++)
				b[i]=b[i+1];
				n--;
				printf("删除成功。"); 
			}
			return; 
		}
	}
	printf("没有找到该书信息。\n");
}	
void search(struct book b[])
{
	char name[100];
	int i;
	printf("查找该书的记录。\n");
	printf("请输入书籍名称:");
	scanf("%s",&name);
	for (i=0;i<n;i++) 
	{
	if(strcmp(name,b[i].name)==0) 
	{
		printf("找到该书记录,如下所示:\n");
		HH;
		show(b,i);
		return;
	}
}
printf("没有找到该书信息。\n");
}
void sort(struct book b[])
{
	int i,j;
	struct book t;
	printf("按楼层排序,");
	for (i=0;i<n-1;i++) 
	{
		for(j=i+1;j<n;j++)
		{
			if(b[i].floor<b[j].floor)
			{
			t=b[i];
			b[i]=b[j];
			b[j]=t;
		}
	 } 
}
printf("排序结果如下:\n");
showAll(b);
}

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "book.h"
int main()
{
	struct book b[10];
	int select,quit=0;
	int i;                     
    char *a1="123456";
	char a2[7];    
    printf("欢迎使用图书管理系统: \n"); 
    for(i=0;i<3;i++)                            
    {  
        printf("请输入您的密码:\n");  
        scanf("%s",&a2);                   
        if (strcmp(a1,a2)==0)                    
        {  
          break; 
        }  
        else  
        {                              
            printf("您的账号或密码错误%d次,请重新输入\n",i+1);  
        }  
    }  
    if(i<3) 
    printf("登录成功。"); 
    else
    {
	printf("密码错误3次,系统锁定。");
    return 0;
	}
	while (1)
    {
    	menu();
    	scanf("%d",&select);
    	switch(select)
    	{
    		case 1:
    			add(b);
    			break;
    		case 2:
    			showAll(b);
    			break;
    		case 3:
    			modify(b);
    		    break;
    		case 4:
    		    del(b);
    			break;
    		case 5:
    			search(b);
    			break;
    		case 6:
    			sort(b);
    			break;
    		case 0:
    			quit=1;
    			break;
    		default:
    			printf("请输入0-6之间的数字\n");
    			break;
		}
		if(quit==1)
		break;
		printf("按任意键返回主菜单。\n");
		getchar();
		getchar();
	}
	printf("程序结束。\n");
	return 0;
}      

book.h

#ifndef BOOK
#define BOOK
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define HH printf("%-10s%-15s%-15s%-10s%-10s%-10s%-10s\n","书籍名称","编号","楼层","书架号码","出版时间","作者","剩余量")
struct book
{
	char name[10];
	char writer[10];
	int id;
	int floor;
	int number;
	int time;
	int residue;
};
static int n;
void menu();
void add(struct book b[]);
void show(struct book b[],int i);
void showAll(struct book b[]);
void modify(struct book b[]);
void del(struct book b[]);
void search(struct book b[]);
void sort(struct book b[]);
#endif
发布了37 篇原创文章 · 获赞 3 · 访问量 1115

猜你喜欢

转载自blog.csdn.net/weixin_43264873/article/details/90298751