图书信息管理系统的设计与实现

图书信息管理系统的设计与实现

#include<bits/stdc++.h>
using namespace std;
#define DAD(x) ((x)>>1)
#define LE(x) ((x)<<1)
#define RT(x) (((x)<<1)|1)
//图书信息 
struct book{
	string no;           //书号 
	string name;         //书名 
	double price;        //价格 
};
//图书管理系统 
struct bokSys
{
	book bok[100];                                             //顺序表 
	bokSys(){tot=0;}                                           //构造函数 
	int tot;                                                 
	void delSame(){                                        
		for(int i=1;i<tot;i++){
			if(bok[i].no.compare(bok[tot].no)==0)delet(tot);
		}
	}
	void insert(book a){
		bok[++tot]=a;
		delSame();
	}
	void delet(int k){
		for(int i=k;i<tot;i++){
			bok[i]=bok[i+1];
		}
		tot--;
	}
	void set(int k){
		cout<<"请输入修改后的书号、书名、价格:\n";
		cin>>bok[k].no>>bok[k].name>>bok[k].price;
	}
	int search(string name){
		for(int i=1;i<=tot;i++){
			if(bok[i].name.find(name)!=-1)return i;
		}
		return -1;
	}
	void printList(){
		cout.width(8);cout<<"书号";
		cout.width(20);cout<<"书名";
		cout.width(6);cout<<"价格\n";
		for(int i=1;i<=tot;i++){
			cout.width(8);cout<<bok[i].no;
			cout.width(20);cout<<bok[i].name;
			cout.width(6);cout<<bok[i].price<<endl;
		}
		cout<<endl;
	}
	void print(int k){
		cout.width(8);cout<<bok[k].no;
		cout.width(20);cout<<bok[k].name;
		cout.width(6);cout<<bok[k].price<<endl ;
		cout<<endl;
	}
	int quickSearch(string name){
		int low=1,high=tot;
		while(low<=high){
			int mid=(low+high)/2;
			int compare=name.compare(bok[mid].name);
			if(compare==0)return mid;
			if(compare<0)high=mid-1;
			else low=mid+1;
		}
		return 0;
	}
	friend void sort1(bokSys&S,int low,int high);
	friend void sort2(bokSys&S,int low,int high);
};
void sort1(bokSys&S,int low,int high){
	if(low<high){
		int low1=low,high1=high;
		book temp=S.bok[low1];
		while(low1<high1){
			while(low1<high1&&S.bok[high1].name.compare(temp.name)>=0)high1--;
			S.bok[low1]=S.bok[high1];
			while(low1<high1&&S.bok[low1].name.compare(temp.name)<=0)low1++;
			S.bok[high1]=S.bok[low1];
		}
		S.bok[low1]=temp;
		sort1(S,low,low1-1);
		sort1(S,low1+1,high);	
	}
}
void sort2(bokSys&S,int low,int high){
	if (low < high){
		int low1 = low, high1 = high;
		book temp = S.bok[low1];
		while (low1 < high1){
			while (low1 < high1 && S.bok[high1].price <= temp.price)--high1;
			S.bok[low1] = S.bok[high1];
			while (low1 < high1 && S.bok[low1].price >= temp.price)++low1;
			S.bok[high1] = S.bok[low1];
		}
		S.bok[low1] = temp;	
		sort2(S, low, low1 - 1);
		sort2(S, low1 + 1, high);
	}
}

int main()
 {
	cout<<setiosflags(ios::fixed);cout<<setprecision(2);
	bokSys S;int k;string name;book temp;
	int ch; bool flag = true;
	while (flag)
	{
		cout << "1:插入图书信息\n2:删除图书信息\n3:修改图书信息\n4:打印所有图书信息\n5:查找最爱书籍\n6:查找最贵书籍\n7:统计表中图书个数\n8:退出程序\n请输入实现功能的序号:";
		cin >> ch;
		switch (ch)
		{
		case 1:
		while (true){
			cout << "请依次输入书号、书名、价格:\n";
			cin >> temp.no >> temp.name >> temp.price;
			if (temp.no == "0" && temp.name == "0" && abs(temp.price-0)<1e-5)break;
			else S.insert(temp);
		}
		break;
		case 2:
		cout << "请输入要删除书籍的名字:";
		cin>>name;
		k=S.search(name);
		if(k!=-1){
			cout<<"删除成功!\n";
			S.print(k); 
			S.delet(k);
		}else cout<<"查无此书!\n\n";
		break;
		case 3:
		cout << "请输入要修改书籍的名字:";
		cin>>name;
		k=S.search(name);
		if(k!=-1){
			S.set(k);
			cout<<"修改成功!\n\n"; 
		}else cout<<"查无此书\n\n";
		break;
		case 4:S.printList(); break;
		case 5:
		cout<<"请输入您最爱书籍的名字:"; 
		cin>>name;
		sort1(S,1,S.tot);
		k=S.quickSearch(name);
		if(k!=-1){
			cout<<"查找成功!\n"; 
			S.print(k);
		}else cout<<"查无此书!\n\n";
		break;
		case 6:
		sort2(S,1,S.tot);
		S.print(1); 
		break;
		case 7:cout<<"表中共有"<<S.tot<<"本书籍!\n\n";break;
		case 8:flag = false; break;
		default:cout << "输入失败,请重新输入\n";
		}
	}
	cout << "退出程序!";
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
I 摘要 随着计算机的普及和网络的出,对信息的需求日益增加,图书馆业务受到 了强烈的冲击,传统的手工管理方式已不能适应在的信息化社会。如何利用 有的科学技术条件提高图书信息的管理效率是我们当下要考虑的问题。图书信息 管理系统是典型的信息管理系统,其开发主要包括前端应用程序的设计和后台数 据库的建立及维护两方面。对于前者,要求应用程序功能完备,易于使用;而对于 后者,则要求数据库具有一致性、完整性、安全性等特点。 本课题的研究方法是采取实地考察,调查本市各高校图书馆和市图书馆的图 书管理系统,同时结合大量的参考资料。在图书信息管理系统中,因为涉及内容 比较多,所以在初步的数据库设计中会存在着遗漏的地方,对于这种问题主要通 过查看参考书来解决问题。另外一个存在问题比较多的地方是数据库的实现,比 如编程,对于这个问题只能通过多练习一些简单的编程,同时积极地利用图书馆 和网络资源,多查阅一些相关资料,多和老师、同学交流讨论。 本文对系统的开发工具Delphi7.0及数据库开发语言MS SQL Server2000、SQL 语言原理等知识进行深入的探讨之后,主要阐述了图书信息管理系统开发背景 和发展趋势、需求分析、功能模块划分、数据库设计、各功能模块的实现方法及 过程等,并对所开发系统中的用户信息和图书信息的添加、删除、修改、查询等 功能界面的设计实现作了详细阐述。本系统能够满足基本图书信息管理的需求, 保证图书管理的安全性。 但是该系统还有许多不尽人意的地方,比如用户界面设计不够美观,系统实 的功能安排也不够合理。系统的统计设计也只有单一时间的统计等,这些都有 待改进。从系统维护与运行上讲,该系统不能在线对功能进行升级,只适用于单 机运行。 图书信息管理系统开发是一项细腻而又复杂的工作,所以它要求设计者要 有总体规划的能力,还要有百倍的耐心去做,在设计方面一点都不能马虎。图书 信息管理系统的发展趋势就是从单机版向网络版发展,逐步进入数字化管理。 关键词:图书信息管理系统,Delphi7.0开发工具,数据库
1引言 随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。而中小型租、借书机构仍采用手工管理图书方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。为了满足其管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,此图书管理系统软件力求提高其管理效率。 1.1编写目的 本文档的编写是为了完善图书管理系统软件的开发途径和应用方法。以求在最短的时间高效的开发图书管理系统。 1.2背景 本项目的名称:图书管理系统开发软件。 本项目的任务提出者及开发者是图书管理系统软件开发小组,用户是中小型租、借书机构。 本产品是针对电脑管理图书的需求设计的,可以完成读者登记、购入新书、读者借还书、等主要功能。 1.3定义 开发(develop):不是单纯指开发活动,还包括维护活动。 项目 (project):该词指的是向顾客或最终用户交付一个或多个产品的收管理的相关资源的集合。这个资源集合有着明确的始点和终点,并且一般是按照某项计划运行。这种计划通常会形成文件,并且说明要交付或实现的产品、所用的资源和经费、要做的工作和工作进度,一个项目可能有若干项目组成。 项目开发计划(project development plan):是一种把项目一定一过程与项目如何推进连接起来的方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值