图书信息管理系统

该博客主要介绍了图书信息管理系统的详细设计,包括系统以菜单驱动的方式运行,具备图书信息的录入、浏览、按书名或作者查询、排序以及删除与修改等功能。图书信息存储在文件中,为用户提供便捷的图书管理体验。
摘要由CSDN通过智能技术生成

题目:图书信息管理系统设计

图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。设计一图书管理系统,使之能提供以下功能:

(1):系统以菜单方式工作

(2): 图书信息录入功能(图书信息用文件保存)--------输入

(3): 图书信息浏览功能-------------输出

(4): 查询和排序功能:(至少一种查询方式)-----------算法

按书名查询

按作者查询

(5): 图书信息的删除与修改

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
	char num[10];/*书号*/
	char bname[20];/*书名*/
	char wname[20];/*作者*/
	char publish[50];/*出版社*/ 
	char putime[20];/*出版时间*/
	double price;
}mbook;
typedef struct
{
	int count;/*书的本数*/ 
	mbook book[100];/*最大可有100本书*/ 
}mlibrary;
mlibrary library;
void init()/*系统登录页面*/
{
	printf("\n\n\n\n\n");
	printf("\t\t\t欢迎进入图书信息管理系统 \n");
	printf("\n\n");
	printf("\t\t\t    请按任意键进入 \n");
	getchar();
}
int login()/*账号登录图书系统*/
{
	int a,b,flag=0,ans=0;
	system("cls");/*清屏*/
	while(1)
	{
		ans++; 
		printf("\n\n\t\t请输入管理员账号:  ");/*初始账号为100*/
	    scanf("%d",&a);
	    printf("\n\n\t\t请输入管理员密码:   ");/*初始密码为100*/
        scanf("%d",&b);
        if(ans>3)
	    break;
	    if(a==100&&b==100)
	    {
	    	flag=1;
	    	printf("恭喜,密码正确!!!\n");
	    	break;
		}
	    else
	    {
	    	printf("\n\n\t\t抱歉,密码错误,请重新输入。。。\n");
		}
	}
	if(flag==1)
	return 1;
	else
	return 0;
}
void save()/*保存图书信息*/
{
	FILE *fp;
	if((fp=fopen("library.doc","w"))==NULL)
	{
		printf("\n不能保存图书信息\n");
		return;
	}
	fwrite(&library.count,sizeof(int),1,fp);
	fwrite(library.book,sizeof(library.book[0]),library.count,fp);
}
void add()      /*图书信息录入*/
{ 
	int y=1;
	system("cls");/*清屏*/
	fflush(stdin);/*屏幕停留*/ 
	while(y)
	{ 
		printf("\t请输入书号:");
		scanf("%s",library.book[library.count].num);
		pr
  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
图书管理系统其实是一个很复杂的信息管理系统,它包括很多分类、检索等方面的内容。因为其复杂性,建立这样一个系统更加能体现出运用SQL Server数据库进行数据处理的优越性。本课题将实现一个简化的图书管理系统的功能。 1.系统功能设计 (1)信息录入功能 1)添加新图书信息。当图书馆收藏新图书,系统向用户提供新图书信息录入功能,由于同一种书可能会有多本,因此,新图书信息有两类:某一个ISBN类别的图书信息包括:ISBN书号、图书类别、书名作者出版社、出版日期、价格、馆藏数量、可借数量、图书简介;另一个具体到每一本书的信息包括:ISBN书号、图书书号、是否可借。每一个ISBN书号和同一个ISBN书号的多本书之间是一对多的关系,每一本书的图书书号是唯一的。 2)添加读者信息。用于登记新读者信息包括:借书证号、姓、性别、身份证号、职称、可借数量、已借数量、工作部门、联系电话等。 3)借阅信息。用于登记读者的借阅情况信息包括:借书证号、借阅书号、借出日期、借阅期限、归还日期等信息。归还日期为空值表示该图书未归还。 (2)数据修改和删除功能 1)修改和删除图书信息图书被借出,系统需要更新图书信息的可借数量,当可借数量为0,表示该图书都已被借出。当输入的图书信息有错误或需要进行必要更新,可以修改图书信息;当一种图书所有馆藏图书都已损毁或遗失并且不能重新买到,该图书信息需要删除。 2)修改和删除读者信息。当读者的自身信息发生变动,如部门间调动或调离本单位,或违反图书馆规定需要限制其可借阅图书数量,需要修改读者信息。 3)还书处理。读者归还图书,更新图书借阅信息表中的归还日期,读者信息表中的已借数量及ISBN类别信息表中该图书的可借数量。 (3)查询和统计功能 1)图书查询功能。根据图书的各种已知条件来查询图书的详细信息,如书名作者出版社、ISBN书号等支持模糊查询。 2)读者信息查询。输入读者的借书证号、姓、工作部门等信息,查询读者的基本信息。对查询到的每一个读者,能够显示其未归还的图书编号和书名。 3)查询所有到期未归还的图书信息。要求结果显示图书编号、书名、读者姓、借书证号码、借出日期等信息。 4)统计指定读者一段间内的某类图书或所有类别图书借阅次数及借阅总次数。 2.数据表的创建 根据功能要求的说明创建下列数据表: (1)图书ISBN类别信息图书ISBN类别信息包括以下字段: ISBN书号、图书类别、书名作者出版社、出版日期、价格、馆藏数量、可借数量、图书简介。 (2)图书信息图书信息包括以下字段: ISBN书号、图书书号、是否可借。 (3)读者信息表 读者信息包括以下字段: 借书证号、姓、性别、出生年月、身份证号、职称、可借数量、已借数量、工作部门、家庭地址、联系电话。 (4)借阅信息表(图书-读者关系) 借阅信息包括以下字段: 借书证号、借阅书号、借出日期、借阅期限、归还日期。 3.数据库完整性设计 设计者应认真分析和思考各个表之间的关系,合理设计和实施数据完整性原则。 1) 给每个表实施主键及外键约束。 2) 设定缺省约束。如性别。 3) 设置非空约束如图书信息表中的书名。 4) 实施CHECK约束。如ISBN类别表中的可借数量小于馆藏数量。 5) 实施规则。如身份证号码必须为15为或18位。 4.SQL Server数据库对象设计 1)设计一个存储过程,以图书编号为输入参数,返回借阅该图书但未归还的读者姓和借书证号。 2)读者资料查询:设计一个有多个输入参数的存储过程,返回读者的详细信息。设计另一存储过程并以读者借书证号为输入参数,返回该读者未归还的图书称和图书编号。 3)到期图书查询:设计一个视图,返回所有逾期未归还的图书的编号、书名、读者姓信息。 4)统计图书借阅次数:设计一个以两个日期作为输入参数的存储过程,计算这一段间内各类别图书被借阅的次数,返回图书类别、借阅次数的信息。 5)加快数据检索速度,用图书编号为图书信息表建立索引。 6)为读者信息表创建一个删除触发器,当一个读者调出本单位,将此读者的资料从读者信息表中删除。注意实施业务规则:有借阅书的读者不得从读者信息表中删除。 7)借阅处理:为借阅信息表设计INSERT触发器,在读者借阅更改ISBN类别信息表,且可借数量减1,图书信息表是否可借列的值变为“不可借”,读者信息表中该类读者已借阅数加1。 8)还书处理:为借阅信息表设计UPDATE触发器,在该表的归还日期列被更改后,将图书信息表的是否可借列的值变为“可借”,读者信息表中已借数量减1及ISBN类别信息表中可借数量加1。
图书管理系统设计” 1、问题描述 定义图书类,属性有:书名出版社、ISBN 号、作者、库存量、价格等信息和相关的 对属性做操作的行为。 主要完成对图书的销售、统计和图书的简单管理。 2、功能要求 (1)销售功能。购买书籍,输入相应的 ISBN 号,并在书库中查找该书的相关信息。 如果有库存量,输入购买的册数,进行相应计算。如果库存量不够,给出提示信息,结束购 买。 (2)图书简单管理功能。 添加功能:主要完成图书信息的添加,要求 ISBN 号唯一。当添加了重复的编号,则 提示数据添加重复并取消添加。 查询功能:可按书名、ISBN 号、作者出版社进行查询。若存在相应信息,输出所查 询的信息,若不存在该记录,则提示“该标题不存在! ” 。 修改功能:可根据查询结果对相应的记录进行修改,修改注意 ISBN 号的唯一性。 删除功能:主要完成图书信息的删除。输入要删除的 ISBN 号,根据编号删除该物品的 记录,如果该编号不在物品库中,则提示“该编号不存在” 。 (3)统计功能。 输出当前书库中所有图书的总数及详细信息;可按书的价格、库存量、作者出版社进 行统计,输出统计信息,要按从大到小进行排序。 (7)图书存盘:将当前程序中的图书信息存入文件中。 (8)读出信息:从文件中将图书信息读入程序
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值