IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言实现图书借阅管理系统 -> 正文阅读

[C++知识库]c语言实现图书借阅管理系统

之前完善了一个c语言的图书借阅管理系统的课设,把课设的400来行代码完善到现在1000多行,然后里面的功能都已完善,有相应的人机交互友好提示,也能增强了代码的健壮性。下面我将简单介绍一下这个系统:
该系统采用读者、书籍、借阅三个结构体来存放相关信息借阅结构体连接了读者与书籍双方的关系。然后这里的所有界面均在控制台展示:
下面是首页面:
在这里插入图片描述
进入图书管理:在这里插入图片描述
对于涉及到对图书修改的如增加图书、删除图书则需要输入密码验证:
在这里插入图片描述
查询图书界面:
在这里插入图片描述
因为篇幅有限,这一模块不一一展示了,下面展示会员管理:
同样对于要修改的如增加删除操作需要密码验证
在这里插入图片描述
在这里插入图片描述
下面是修改密码的界面:
在这里插入图片描述
大概展示就到这里,因为代码有1000多行,篇幅有限,所以下面我把一些主要函数的代码贴出来:
主函数:

int main()  /*主函数*/
{
	int n,s,x;  //s用来接收主菜单的值   n来接收管理员模式的值  x来接受客户模式的值
	do
	{
	    system("cls");
		s = mainmenu();
		switch(s)
		{
			case 1 :do
					{
						system("cls");
						n = guanli();
						switch(n)
						{
							case 1:system("cls");zjts();getch();break;/*插入*/    
							case 2:system("cls");chashu();break;/*查看*/            
							case 3:system("cls");scts();break;/*删除*/ 
							case 4:system("cls");jieshu();break;  /*借阅*/ 
							case 5:system("cls");huanshu();break;/*还书*/
						}
					}while(n!=6);break; 
			case 2 : do
					{
						system("cls");
						x = huiyuan();
						switch(x)
						{
							case 1:system("cls");zjhy();getch();break;//增加会员 
							case 2:system("cls");charen();break;//查询会员 
							case 3:system("cls");schy();break;//删除会员
							case 4:system("cls");jsxx();getch();break;//借书信息 
						}
					}while(x!=5);break;
			case 3 :system("cls");xiugaimima();break; 
		}
	}while(s!=4);
	system("cls");
	printf("\n\n\n\n\n\n                            \t\t谢谢使用!!!\n");
    getch();//等待用户 输入 一个字符  然后继续执行下面语句
	return 0;
}

主菜单函数:

int mainmenu()   //主菜单
 {   
	int x;     
	printf("\n\n\n\n\t\t      欢迎光临图书借阅管理系统     \n\n\n");    
	printf("\t\t      1.图书管理          \n");   
	printf("\t\t      2.会员管理           \n");
	printf("\t\t      3.修改密码           \n");   
	printf("\t\t      4.退出系统           \n");   
    printf("\n\t\t请输入您的选择:");   
	scanf("%d",&x);   
	return x; 
}

密码验证与修改密码函数:

int mimayanzheng()  //密码验证
{ 
    char mm[20];   //用来存放输入的密码
	printf("\t\t     请输入密码:"); 
	scanf("%s",&mm);
	if(!strcmp(mm,MIMA))  //比较输入的密码 是否 与原密码相同
		return 1;
	else
		return 0;
}

int xiugaimima()   //修改密码
{
	char mima_temp[20];//用来存放用户输入的密码
	char new_mima[20];   //存放第一次新密码
	char new_mima1[20];  //存放第二次新密码
	printf("请输入原始密码:\n");
	scanf("%s",&mima_temp);
	if(!strcmp(mima_temp,MIMA))  //比较原始密码 与 用户输入的密码
	{
		printf("请输入新密码:\n");
		scanf("%s",&new_mima);
		printf("请再输一次:\n");
		scanf("%s",&new_mima1);
		if(!strcmp(new_mima1,new_mima)) //比较 两次修改后输入的密码
		{
			strcpy(MIMA,new_mima); //将 新密码 拷贝给 原始密码
			printf("密码修改成功,请牢记,按任意键返回。。。\n");
			getch();
			return 0;
		}
		else
		{
			printf("错误!两次输入的密码不一致,按任意键返回。。。\n");
			getch();
			return 1;
		}
	}
	else
	{
		printf("原始密码错误,按任意键返回。。。\n");
		getch();
	}
}

增加图书:

void zjts()  //增加图书 
{   
    int n,t,count=1;
    t=mimayanzheng();
	if(t==0) 
	{
		printf("密码错误,按任意键返回原菜单!!!");  
		return;
	} 
	system("cls");      
	printf("\t\t        录入图书信息       \n");     
	printf("\n\n\t\t请输入您要录入的数量:");  
	scanf("%d",&n);   
	for(I=A;I<n+A;I++)   
	{  
			printf("\n\n\n\t\t请输入第%d本书的编号:",count);     
			scanf("%d",&bk[I].num);     
			printf("\t\t请输入第%d本书的名称:",count);     
			scanf("%s",bk[I].name);     
			printf("\t\t请输入第%d本书的出版社:",count);     
			scanf("%s",bk[I].publish);     
			printf("\t\t请输入第%d本书的出版时间(年月日无分隔如:20010201):",count);     
			scanf("%d",&bk[I].time);     
			printf("\t\t该书是否已经被借阅,已被借阅输入'1',未被借阅输入'0':");     
			scanf("%d",&bk[I].jie);  
			count++; 
	}  A=I;     
		printf("\t\t        信息录入完成       \n");      
		printf("\n\n\t\t       按任意键继续...\n"); 

删除图书:

void scts()  //删除图书
{
	int x,t;
	t=mimayanzheng();
	if(t==0) 
	{
		printf("密码错误,按任意键返回原菜单!!!");
		getch();  
		return;
	}	
	do
	{
		system("cls");
    		printf("\n\n\n\n              删除图书信息          \n\n\n");
    		printf("            1.按书号删除                 \n");
    		printf("            2.按书名删除                 \n");
    		printf("            3.返回主菜单                 \n");
		printf("\t\t请输入您的选项:");
		scanf("%d",&x);
		switch(x)
		{
			case 1:system("cls");scts_num();getch();break;
			case 2:system("cls");scts_name();getch();break;
		}
	}while(x!=3);
}
void scts_num()   //按 书号删除
{
	int i,j,num,k=0;//i循环下标变量    //num存放输入的书号     //k标记是否存在该书   
	char c[2];//用来表示   是否删除图书
	printf("请输入您想要删除的书的书号(输入”0”退出):\n");
	while(1)
	{
		scanf("%d",&num);
		if(num == 0)   break;
		for(i=0;i<I;i++)
		{
			if(num == bk[i].num)
			{
				k++;
				printf("该书的信息为:\n");
				printf("\t编号    图书名称     出版社        出版时间     状态\n");
				printf("\t%-7d %-8s %-12s   %d ",bk[i].num,bk[i].name,bk[i].publish,bk[i].time);
				if(bk[i].jie == 1)  
				    printf("已被借阅\n");
				else  printf("可以借阅\n");	
				printf("\t是否要删除此书('y' or 'n'):\n");
				scanf("%s",&c); 
				if(!strcmp(c,"y"))
				{
					for(j=i;j<=I-1;j++)
					    bk[j-1]=bk[j];
					--I;
					--A;
					printf("\t删除成功!任意键返回。。。\n");
					break;
				}
				else
				{
					printf("用户取消操作,任意键返回。。。");
					break;
				}
			}
		}
		if(k == 0)
			printf("未找到该书,请重新输入(输入“0”退出):\n");
		else break;
	}
}

查找图书:

void chashu_num()  //管理员————按书号查看
{
	int i,k=0; //i是局部变量一定记住, ,k用来标记书的借阅状态。
	int num;
	printf("请输入需要查看的书号:\n");
	scanf("%d",&num);                              
	for(i=0;i<I;i++)
	{
		if(num==bk[i].num)
		{		 
			   printf("\t编号    图书名称     出版社        出版时间     状态\n");
			   printf("\t%-7d %-8s %-12s   %d ",bk[i].num,bk[i].name,bk[i].publish,bk[i].time);
			if(bk[i].jie == 1)
				printf("\t\t已借阅\n");
			else   printf("\t\t未借阅\n");
			k++;
			printf("\t按任意键返回。。。\n");
		}
	}
	if(k == 0)
		printf("该书不存在,任意键返回。。。\n");
}

借阅:

void jieshu_num()
{
	int i,im,num,km=0,k=0;
	char n[2];  //用来表示 是否借阅
	char namem[20];  //用来存放会员名
	printf("请输入你的会员名字:");
	scanf("%s",&namem);
	for(im=0;im<IM;im++)
	{
		if(!strcmp(namem,mm[im].namep))
		{		 
			printf("\t编号    会员名称   \n");
			printf("\t%-7d    %-8s         ",mm[im].nump,mm[im].namep);
			printf("请确认您的信息并按任意键继续。。。。\n");
			km++;
			getch();
			break;
		}
	}
	if(km==0)
		{
			printf("不存在该会员,或会员名输错!请正确输入名称!\n");
			printf("按任意键返回。。。\n");
			getch();
			return;
		}
	printf("\n请输入书的书号:\n");
	while(1)
	{
		scanf("%d",&num);
		for(i=0;i<I;i++)
		{
			if((num == bk[i].num)&&(bk[i].jie == 0)) //比较输入书号与已有书号相等时 且 未借阅  时 执行 if语句
			{
				k++;
				printf("\t编号    图书名称     出版社        出版时间     状态\n");
				printf("\t%-7d %-8s %-12s   %d ",bk[i].num,bk[i].name,bk[i].publish,bk[i].time);
				printf("可以借阅\n");
				printf("您是否需要借阅此书:'y' or 'n' \n");
				scanf("%s",&n);
				if(!strcmp(n,"y"))
				{
					if(mm[im].chance<10)
					{
					    bk[i].jie = 1;
					    printf("借阅成功,按任意键返回。。。\n");
					    mm[im].js[mm[im].chance].num=bk[i].num;
					    strcpy(mm[im].js[mm[im].chance].name,bk[i].name);
					    mm[im].chance++;
					}
                    else   printf("您的借阅机会已经使用完!!!按任意键返回。。。");
                    getch();
					break; 
				}
				else 
				{
					if(!strcmp(n,"n"))   printf("借阅取消,按任意键返回。。。\n");
					else   printf("输入有错,按任意键返回。。。\n");
					getch();  
					break;
				}
			}
		}
		if(k == 0)
		{
				printf("不存在该书,或该书已经借出!请正确输入图书名称!\n");
				printf("按任意键返回。。。\n");
				getch();
				break;
		}
		else break;	
	}
}

希望以上的分享能够对初学者有所帮助,如果有需要完整源代码的可以移步:源代码下载
或者直接私信我均可。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 15:59:28  更:2021-07-15 16:01:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 15:38:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码