⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 last.cpp

📁 图书馆里系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include"stdio.h"
#include"head.h"
#include <string.h> 

int klenddelete;
int kbookdelete;
#define  SIZElend  1
int klend;
#define  SIZEbook  1
int kbook;
int klendb;
int kklendb;

struct   LID  lid[100];
struct   BID  bid[100];
struct   LID  inilend;
struct	 BID  inibook; 
 
void returnbook(void); 
void initiallend(void);
void initialbook(void);
int lendbook(void);
void openfilelendb(void);
void openfile1lendb(void); 

//书的查询处理程序
void openfiledeletefind()
{
	FILE *fp;
	int i,position=-1,result=0;
	char choice,book[40];
	if((fp=fopen("book.txt","rb"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	kbookdelete=0;
    while(feof(fp)==0)
	{
		 fread(&bid[kbookdelete],sizeof(struct BID),1,fp);
		kbookdelete++;
	}

 kbookdelete--;
status:
	printf("************************************************************\n");
	printf("           1.按书名!\n");
	printf("    	   2.按出版社!\n");
	printf("           3.按作者!\n");
	printf("           0.退出!\n");
	printf("************************************************************\n");
choice=getche();
	if(choice=='1')
	{   
		result=0;
		system("cls");
		printf("\n\n请输入书名\n\n");
	    scanf("%s",book);
		printf("查询结果:\n");
		printf("=============================================================\n\n");
		for(i=0;i<kbookdelete;i++)
			if(strcmp(bid[i].BookName,book)==0)
			{   
				printf("book[%-2d]=%-3d   %-10s   %-10s   %-10s  %-3d    %-5s\n",i,bid[i].BNum,&bid[i].BookName,&bid[i].WriterName,&bid[i].PressName,bid[i].Pth,(bid[i].LeadNum==-1)?"在库可借":"已借出");
	        	     result=1;	
			}
			if(result!=1)
				printf("        没有找到记录!^_^\n\n");
			printf("\n=============================================================\n\n\n");
			goto  status;
    }
		 
	else   if(choice=='2')
	{  
				result=0;
				system("cls");
				printf("\n\n请输入出版社名\n\n");
		     	scanf("%s",book);
				printf("查询结果:\n");
	        	printf("=============================================================\n\n");     
			    for(i=0;i<kbookdelete;i++)
			    if (strcmp(bid[i].PressName,book)==0)
					{
				     printf("book[%-2d]=%-3d   %-10s   %-10s   %-10s  %-3d    %-5s\n",i,bid[i].BNum,&bid[i].BookName,&bid[i].WriterName,&bid[i].PressName,bid[i].Pth,(bid[i].LeadNum==-1)?"在库可借":"已借出");
	        	     result=1;		
				}
				if(result!=1)
				     printf("        没有找到记录!^_^\n\n");
				printf("\n=============================================================\n\n\n");
				goto  status;
			}
	else   if(choice=='3')
	{    
		    result=0;
		    system("cls");
		    printf("\n\n请输入作者名\n\n");
			scanf("%s",book);
			printf("查询结果:\n");
	        printf("=============================================================\n\n"); 
			for(i=0;i<kbookdelete;i++)
			if(strcmp(bid[i].WriterName,book)==0)
			{
				printf("book[%-2d]=%-3d   %-10s   %-10s   %-10s  %-3d    %-5s\n",i,bid[i].BNum,&bid[i].BookName,&bid[i].WriterName,&bid[i].PressName,bid[i].Pth,(bid[i].LeadNum==-1)?"在库可借":"已借出");
	        	     result=1;	
			}
			if(result!=1)
				printf("        没有找到记录!^_^\n\n");
			printf("\n=============================================================\n\n\n");
			goto  status;
	}

    else   if(choice=='0')
	{
		         fclose(fp);
		         return  ;
	}
	else 
	{
		 
		   printf("     输入错误,请重心输入\n\n");

	    	goto  status;
			fclose(fp);
	}

	
	
	 
}

 
void findbook()
 {
	system("cls");
	 printf(" \n\n                书查找.\n\n");
 	 openfiledeletefind();
}


//删除借书证。
void deletelendl()
{
	FILE *fp;
	int i;
	if((fp=fopen("lend.txt","w"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	for(i=0;i<klenddelete-2;i++)
	{
		if(fwrite(&lid[i],sizeof(struct LID),1,fp)!=1)
			printf("can't write!\n");
		printf("借书证=%d   %s    %d\n",lid[i].LeadN,&lid[i].SName,lid[i].SNum);
	}
	fclose(fp);
}


 

void openfilelenddelete()
{
	FILE *fp;
	int i,position=-1;
	if((fp=fopen("lend.txt","rb"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	klenddelete=0;
    while(feof(fp)==0)
	{
		 fread(&lid[klenddelete],sizeof(struct LID),1,fp); 
		           
		klenddelete++;
	}
 
	for(i=0;i<klenddelete-1;i++)
	printf("借书证=%d   %s    %d\n",lid[i].LeadN,&lid[i].SName,lid[i].SNum);
 
	printf("请输入删除的借书证证号!\n");
	scanf("%d",&position);
	position--;
	system("cls");
	if(position>=klenddelete-1)
	{
		printf("超出借书证边界,请重新输入!\n");
		fclose(fp);
	    system("pause");
		return ;
	}
	for(i=position;i<klenddelete;i++)
	{
		lid[i]=lid[i+1];
		lid[i].LeadN--;
	}
	deletelendl();
	fclose(fp);
}



 
 void deletelend()
 {
	 char  choice;
	 printf("  借书证删除.\n");
status2:
	 openfilelenddelete();
	 cout<<"           1.再删除!"<<endl
		 <<"    	   0.退出!"<<endl;
   choice=getche();
	if(choice=='1')
		goto status2;
	else 
		system("pause");
}




void savebookdelete()
{
	FILE *fp;
	int i;
	if((fp=fopen("book.txt","w"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	for(i=0;i<kbookdelete-2;i++)
	{
		if(fwrite(&bid[i],sizeof(struct BID),1,fp)!=1)
			printf("can't write!\n");
		printf("book[%d]=%d   %s   %s   %s  %d    %s\n",i,bid[i].BNum,&bid[i].BookName,&bid[i].WriterName,&bid[i].PressName,bid[i].Pth,(bid[i].LeadNum==-1)?"在库可借":"已借出");
	
	}
	fclose(fp);
}



 //删除书

void openfiledelete()
{
	FILE *fp;
	int i,position=-1;
	if((fp=fopen("book.txt","rb"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	kbookdelete=0;
    while(feof(fp)==0)
	{
		 fread(&bid[kbookdelete],sizeof(struct BID),1,fp);
		kbookdelete++;
	}
 
	for(i=0;i<kbookdelete-1;i++)
		printf("book[%d]=%d   %s   %s   %s  %d    %s\n",i,bid[i].BNum,&bid[i].BookName,&bid[i].WriterName,&bid[i].PressName,bid[i].Pth,(bid[i].LeadNum==-1)?"在库可借":"已借出");
	
	status:
	printf("请输入删除的书号!\n");
	scanf("%d",&position);
	system("cls");
	if(position>=kbookdelete-1)
	{
		printf("\n  超出借书证边界,请重新输入!\n");
		goto  status;
	}
	for(i=position;i<kbookdelete;i++)
	{
		bid[i]=bid[i+1];
		bid[i].BNum--;
	}
	savebookdelete();
	fclose(fp);
}

 
void deletebook()
 {
	 char  choice;
	 printf("   书删除.\n");
status2:
	 openfiledelete();
	 printf("           1.再删除!\n");
	printf("    	   0.退出!\n");
   choice=getche();
	if(choice=='1')
		goto status2;
	else 
		getche();
}


//主程序。
void main()
{
	int sign=1;
	char choice1,choice2,choice3;

status:
    system("cls");
	cout<<endl<<endl<<endl;
	cout<<"                       主菜单:"<<endl;
	printf("==========================================================\n");
	cout<<"			1.图书查询..."<<endl<<endl
		<<"			2.图书管理员..."<<endl<<endl
		<<"			3.系统管理员..."<<endl<<endl
		<<"			4.关于本程序"<<endl<<endl
		<<"			0.退出"<<endl<<endl;
	printf("==========================================================\n");
	cout<<"                       请选择:  (只需键入数字,不必按回车.)"<<endl<<endl;

	choice1=getche();

	if(choice1=='1')//读者读书查询
	{
        findbook();  
	   goto status;
	}
	
	else if(choice1=='2')//图书管工作人员为借还书所用。
	{
status1:
	    system("cls");
		printf("************************************************************\n");
        cout<<endl<<endl
			<<"                           1.借书..."<<endl<<endl
			<<"                           2.还书..."<<endl<<endl
			<<"                           0.返回上一级目录."<<endl<<endl;
		printf("************************************************************\n");
		choice2=getche();
		if(choice2=='1')
		{   system("cls");
		   sign=lendbook();
			if(sign==0)
			     cout<<"   借书成功!"<<endl<<endl;
			else  
				cout<<"		借书失败!"<<endl<<endl;
 			system("pause");
			goto  status1; 
		}
		else if(choice2=='2')
		{   system("cls");
			returnbook();
		 
			 goto  status1;
		} 
		 else if(choice2=='0')
		 {
			 goto status;
		 }
		 else
		 {
			 cout<<"        输入错误!请重新选择。  "<<endl<<endl;
			 system("pause");
			 goto  status1;
		 }
	}
	
	else if(choice1=='3')  //系统管理员专用,可以修改读者,书等内容。
	{
st:
		system("cls");
		printf("\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		cout<<"		1.添加借书证..."<<endl<<endl
			<<"		2.添加书..."<<endl<<endl
			<<"		3.删除借书证..."<<endl<<endl
			<<"		4.删除书..."<<endl<<endl
			<<"		0.退出。"<<endl<<endl;
		printf("\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		choice3=getche();
		if(choice3=='1') 
		{
			initiallend();
				goto  st;
		}
		else if(choice3=='2') 
		{
		        initialbook();
			goto  st;
		}
		else if(choice3=='3')
		{
				deletelend();
					goto  st;
		}
		else if(choice3=='4')
		{
				deletebook();
					goto  st;
		}
		else  if(choice3=='0')
		            goto status;
		else
		{
			cout<<"输入错误,请重新输入!"<<endl<<endl;
			system("pause");
			goto  st;
		}
	}
	else if(choice1=='4')
	{
		system("cls");
		printf("\n\n--------------------------------------------------------------\n");
	    cout<<endl
			<<"          谢谢使用!"<<endl<<endl
			<<"          本程序写于04年五一节,作者Fancy(吕恒山)!"<<endl<<endl
			<<"          若有意见和建议,请与作者联系!"<<endl<<endl
			<<"          Email:fancy_lhs@yahoo.com.cn,紫金飞鸿帐号:fancylhs."<<endl<<endl;
			printf("--------------------------------------------------------------\n\n");
		system("pause");
		goto status;
	}
	else if(choice1=='0')
	{
		         
	}
	else
	{
		cout<<"输入的内容有错,请重新选择."<<endl;
		system("pause");
		system("cls");
		goto status;
	}
	system("pause");
}





//初始化书。
 
void savebook()
{
	FILE *fp;
	int i;
	if((fp=fopen("book.txt","ab"))==NULL)
	{
		printf("can't open file!\n");
		return ;
	}
	for(i=0;i<SIZEbook;i++)
	{
		if(fwrite(&bid[i],sizeof(struct BID),1,fp)!=1)
			printf("can't write!\n");
	}
	fclose(fp);
}



void initailbook()
{
	FILE *fp;
 
	if((fp=fopen("book.txt","rb"))==NULL)
	{
		printf("can't open file!\n");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -