课程设计---图书登记管理系统(217行代码)【没看】

图书登记管理系统应该具有下列功能:
(1)、 通过键盘输入某本图书的信息;
(2) 、给定图书编号,显示该本图书的信息;
(3) 、给定作者姓名,显示所有该作者编写的图书信息;
(4) 、给定出版社,显示该出版社的所有图书信息;
(5) 、给定图书编号,删除该本图书的信息;
(6) 、提供一些统计各类信息的功能。

程序完整的实现代码如下:


#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct book
{
	int book_id;          //图书编号
	char book_name[20];   //图书名字
	char name[20];        //作者姓名
	char press[20];       //出版社
	struct book *next;
}book;
book *head=NULL;
int length;   //链表的长度

void create()
{
	book *p1,*p2;
	length=0;
	p1=(book *)malloc(sizeof(book));
	p1->book_id=-1;
	if(head==NULL)
		head=p1;
	printf("请输入图书的编号、名字、作者姓名、出版社信息:\n");
	while(1)  //图书编号为0的时候退出
	{
		p2=(book *)malloc(sizeof(book));
		scanf("%d %s %s %s",&p2->book_id,p2->book_name,p2->name,p2->press); //输入图书信息
		if(p2->book_id==0)
		{
			printf("图书信息输入完成!\n");
			break;
		}
		length++; //链表的长度
		p1->next=p2;
		p2->next=NULL;
		p1=p1->next;
	}
	return ;
}

void display()
{
	book *p=head->next;
	printf("链表中所有的图书信息如下:\n");
	while(p!=NULL)
	{
		printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);
		p=p->next;
	}
	return ;
}
void search()
{
	int num,x,flag1=0,flag2=0;
	char name[20],press[20];
	book *p=head->next;
	printf("1、根据图书编号进行查找\n");
	printf("2、根据作者姓名进行查找\n");
	printf("3、根据出版社进行查找\n");
	printf("请选择功能:");
	scanf("%d",&x);
	if(x==1)
	{
		printf("需要查找的图书编号为:");
		scanf("%d",&num);

		while(p!=NULL)
		{

			if(p->book_id==num)
			{
				printf("图书编号为%d的图书的信息如下:\n",num);
				printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);
				return;
			}   
			p=p->next;
		}
		if(p==NULL)
			printf("无此记录!\n");
	}
	else if(x==2)
	{
		printf("需要查找的作者姓名为:");
		scanf("%s",name);
		while(p!=NULL)
		{
			if(strcmp(p->name,name)==0)
			{
				if(flag1==0)
					printf("作者%s编写的图书信息如下:\n",name);
				flag1=1;
				printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);
			}
			p=p->next;
		}
		if(flag1==0)
			printf("图书馆没有作者%s编写的图书!\n",name);
	}
	else if(x==3)
	{
		printf("需要查找的出版社为:");
		scanf("%s",press);
		while(p!=NULL)
		{
			if(strcmp(p->press,press)==0)
			{
				if(flag2==0)
					printf("出版社为%s编写的图书信息如下:\n",press);
				flag2=1;
				printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);
			}
			p=p->next;
		}
		if(flag2==0)
			printf("图书馆没有出版社%s编写的图书!\n",press);
	}
	return ;
}

void Delete()
{
	int num;
	book *p,*q;
	q=head,p=head->next;
	printf("请输入要删除的图书编号:\n");
	scanf("%d",&num);

	while(p!=NULL)
	{
		if(p->book_id==num)
		{
			q->next=p->next;
			free(p);
			length--;
			printf("删除成功!\n");
			return ;
		}
		p=p->next;
		q=q->next;
	}
	if(p==NULL)
	{
		printf("找不到要删除的图书编号!\n");
		return ;
	}
}
void menu()
{
	printf("________________________________________________________________\n");
	printf("|               图书登记管理系统                               |\n");
	printf("|               0、 退出系统                                   |\n");
	printf("|               1、 输入图书信息                               |\n");
	printf("|               2、 显示图书信息                               |\n");
	printf("|               3、 查询图书信息                               |\n");
	printf("|               4、 删除图书信息                               |\n");
	printf("________________________________________________________________\n");
	return ;
}
int main(void)
{
	int a;
	menu();
	while(1)
	{
		printf("请选择相应的功能:");
		scanf("%d",&a);
		switch(a)
		{
		case 0:
			return 0;
		case 1:
			create();
			menu();
			break;
		case 2:
			if(head)
			{
				display();
				menu();
			}
			else
			{
				printf("图书信息为空,请先输入图书信息!\n");
				menu();
			}
			break;
		case 3:
			if(head)
			{
				search();
				menu();
			}
			else
			{
				printf("图书信息为空,请先输入图书信息!\n");
				menu();
			}
			break;
		case 4:
			if(head)
			{
				Delete();
				menu();
			}
			else
			{
				printf("图书信息为空,请先输入图书信息!\n");
				menu();
			}
			break;
		default:
			break;
		}
	}
	system("pause");
	return 0;
}
原文地址: http://blog.csdn.net/hackbuteer1/article/details/6596255

目录 1 需求分析 3 1.1 系统目标 3 1.2 需求定义 3 2 功能说明 4 2.1 图书基本情况 4 2.2 办理借书证 4 2.3 实现借书功能 4 2.4 实现还书功能 5 2.5 图书查询 5 3 系统功能结构图 5 4 业务流程图 6 4.1 借阅信息管理 6 4.2 书籍信息管理 6 4.3 读者信息管理 7 4.4 系统管理 7 5 绘制数据流图 7 5.1 “借书证生成”数据流图 8 5.2 借书证注销数据流图 8 5.3 新书入库数据流图 9 5.4 读者借书数据流图 10 5.5 读者还书数据流图 11 5.6 查询图书数据流图 12 6 数据库设计 13 7 ER图 14 需求分析 系统目标 本系统主要实现对图书馆的信息管理,图书馆的正常运营中总是面对大量的读者信息图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息管理。本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理。 图书管理系统图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供充足的信息和快捷的数据处理手段。但一直以来人们使用传统人工的方式进图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立要求建立起数据一致性和完整性强.数据安全性好的库。而对于前端应用程序则要求应用程序功能完备,易使用等特点。 需求定义 作为学生对图书管理系统要求有: 1. 能按各种方式(比如书名编号、作者)查询图书馆的藏书情况。 2. 能够方便地借阅图书、续借图书、归还图书。 3. 能够查询自己的基本资料、借阅图书情况。 4. 能够熟悉图书管理系统的使用。 作为图书管理员,他们对图书管理系统要求有: 1. 能方便的对图书录入登记,注销陈旧的书籍。 2. 能够方便地对读者进登记,或注销读者生信息(基本信息,借阅信息)。 功能说明 系统功能分析是在系统开发的总体任务的基础上完成。本系统需要完成的功能主要有5部分: 图书基本情况 1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。 2.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。 3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。 办理借书证 1.新生办理借书证。 2.丢失办理借书证。 实现借书功能 1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。 2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。 实现还书功能 1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。 2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。 图书查询 可以对图书的精确、模糊查询并讲查询信息以列表的方式呈现给用户,方便用户查找信息,另外,对超期的借阅情况能自动给出提示信息。 系统功能结构图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值