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

📄 2337-书籍信息管理系统(子图版).c

📁 数据结构课程的一个实训项目(书籍信息管理系统)
💻 C
📖 第 1 页 / 共 3 页
字号:
#include <stdio.h>

void memu();

struct book
{
	int num;
	char name[50];
  	char zuozhe[50];
 	char leibie[50];		
 	float jiage;
 	int kucun; 
	int year;
	int month;
	int day;	
};struct book stu[1];  //定义书籍信息结构体数组
 
int number=0;

void shuru()                   /*1.添加书籍信息的函数*/ 
{
	int i;
	loop1:		
	 	printf("\n请依次输入编号:"); 	
	 	scanf("%d",&stu[number].num );
	 	for(i=0;i<number;i++)
	 	{
			if(stu[i].num==stu[number].num)
			{
				printf("\n此编号已有!");
				goto loop15; 
			}
		}
	 	printf("书名:");
	 	scanf("%s",stu[number].name);
	 	printf("作者:");
	 	scanf("%s",stu[number].zuozhe); 	
	 	printf("类别:");
	 	scanf("%s",stu[number].leibie);
	 	printf("价格:");
	 	scanf("%f",&stu[number].jiage);
		printf("出版日期(1999-12-11):");
	    scanf("%d-%d-%d",&stu[number].year,&stu[number].month,&stu[number].day); 	 	
	  	printf("库存:");
	 	scanf("%d",&stu[number].kucun);
		number = number + 1; 	
	 	loop15:
			printf("\n按1继续添加,按0返回上级菜单:" );			
		 	while( 1 )
			{
		        char c;
				scanf("%1s",&c);
		        if( c=='1')
					goto loop1;
		        else break;
			}
}

void shuchu()               /*2.输出书籍信息的函数*/ 
{
  	int i;
	if(number==0)
	{
		printf("\n还未有书籍信息!\n");
		return; 
	}
  	printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");
  	for(i=0;i<number;i++)
  	printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);	
}

void xiugai()               /*3.修改书籍信息的函数*/ 
{
	int x,i;
	loop2:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}
	 	printf("\n请输入要修改书籍的编号:"); 	
	 	scanf("%d",&x);	
		for(i=0;i<number;i++)
		{
			if(stu[i].num==x)
			{
	  			printf("\n你要修改的书籍原资料:");				
	  			printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	
	  			printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				printf("\n按1确定要修改,按0取消修改:" );
			 	while( 1 )
				{			
			        char c3;
					scanf("%1s",&c3);
			        if( c3=='1')
						goto loop3;
			        else 
						goto loop4;
				}			
				loop3:
				 	printf("\n请依次输入编号:"); 	
				 	scanf("%d",&stu[i].num );
				 	printf("书名:");
				 	scanf("%s",stu[i].name);
				 	printf("作者:");
				 	scanf("%s",&stu[i].zuozhe); 	
				 	printf("类别:");
				 	scanf("%s",&stu[i].leibie);
				 	printf("价格:");
				 	scanf("%f",&stu[i].jiage);
					printf("出版日期(1999-12-11):");
				    scanf("%d-%d-%d",&stu[i].year,&stu[i].month,&stu[i].day); 	 	
				  	printf("库存:");
				 	scanf("%d",&stu[i].kucun);	
					printf("\n按1确定修改,按0取消修改:" );
				 	while( 1 )
					{
				        char c1;
						scanf("%1s",&c1);
				        if( c1=='1')
							goto loop4;
				        else 
							goto loop3;
					}
				}								
			} 
			printf("\n没有找到你要修改的书籍。\n" );
			loop4:		  	 	
				printf("\n按1继续修改其他书籍,按0返回上级菜单:" );
			 	while( 1 )
				{
			   		char c2;
					scanf("%1s",&c2);
			   		if(c2=='1')
					   goto loop2;
					else break;
				}	
}


void shanchu()               /*4.删除书籍信息的函数*/
{
	int x,i,j,k;
	loop7:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}		
	 	printf("\n请输入要删除书籍的编号:"); 	
	 	scanf("%d",&x);	
		for(i=0;i<number;i++)
		{
			if(stu[i].num==x)
			{
	  			printf("\n你要删除的书籍资料:");				
	  			printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	
	  			printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				printf("\n按1确定要删除,按0取消删除:" );
			 	while( 1 )
				{			
			        char c3;
					scanf("%1s",&c3);
			        if( c3=='1')
						goto loop5;
			        else 
						goto loop6;
				}			
				loop5:			
					for(j=i;j<number-1;j++)
					{
						k=j+1;
						stu[j].num=stu[k].num;
						strcpy(stu[j].name,stu[k].name);
						strcpy(stu[j].zuozhe,stu[k].zuozhe);
						strcpy(stu[j].leibie,stu[k].leibie);
						stu[j].jiage=stu[k].jiage;
						stu[j].year=stu[k].year;
						stu[j].month=stu[k].month;
						stu[j].day=stu[k].day;
						stu[j].kucun=stu[k].kucun;					
					}
					number=number-1;
					printf("\n删除成功。\n");	
					goto loop6;		
			}
		}
		printf("\n没有找到你要删除的书籍。\n" );
		loop6:		  	 	
			printf("\n按1继续删除其他书籍,按0返回上级菜单:" );
		 	while( 1 )
			{
		   		char c2;
				scanf("%1s",&c2);
		   		if(c2=='1')
				   goto loop7;
				else break;
			}	
}
	
void chaxun1()                 /*1.查询给定库存的书籍信息的函数*/  
{
	int x,i,tmp;
	loop8:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}		
		tmp=0;
	 	printf("\n请输入要查找书籍的库存数:"); 	
	 	scanf("%d",&x);	
	  	printf("\n你要查找的所有书籍资料:");				
	  	printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	 	
		for(i=0;i<number;i++)
		{				
			if(stu[i].kucun==x)
			{
	  			printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				tmp=1;
			}
		}
		printf("\n查找完毕!\n" );
						
		if(tmp==0)
		{ 
			printf("\n没有查找到你要的书籍!\n" );								
		}
					
		printf("\n按1继续,按0返回上级菜单:" );
	 	while( 1 )
		{			
	        char c3;
			scanf("%1s",&c3);
	        if( c3=='1')
				goto loop8;
	        else break;
		}					
}

void chaxun2()                /*2.查询大于或小于给定库存的书籍信息的函数*/ 
{
	int x,y,i,tmp;
	loop9:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}		
		tmp=0;	
		y=0;		
	 	printf("\n请输入要查找书籍的库存数范围(如:11-20):"); 	
	 	scanf("%d-%d",&x,&y);		
		printf("\n你要查找的所有书籍资料:");				
		printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	 	
		for(i=0;i<number;i++)
		{				
			if(stu[i].kucun>=x&&stu[i].kucun<=y)
			{
		  		printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				tmp=1;
			}
		}		
		printf("\n查找完毕!\n" );	
					
		if(tmp==0)
		{ 
			printf("\n没有查找到你要的书籍!\n" );								
		}
							
		printf("\n按1继续,按0返回上级菜单:" );		
		while( 1 )
		{										
			char c3;
			scanf("%1s",&c3);
			if( c3=='1')
				goto loop9;
			else break;
		}					   		        			
}

void chaxun3()              /*3.查询大于或小于给定价格的书籍信息的函数*/  
{
	int i,tmp;
	float x,y;
	loop11:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}				
		tmp=0;	
		y=0;		
	 	printf("\n请输入要查找书籍的价格范围(如:10.0-20.0):"); 	
	 	scanf("%f-%f",&x,&y);		
		printf("\n你要查找的所有书籍资料:");				
		printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	 	
		for(i=0;i<number;i++)
		{				
			if(stu[i].jiage>=x&&stu[i].jiage<=y)
			{
		  		printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				tmp=1;
			}
		}			
		printf("\n查找完毕!\n" );		
				
		if(tmp==0)
		{ 
			printf("\n没有查找到你要的书籍!\n" );								
		}
								
		printf("\n按1继续,按0返回上级菜单:" );
		while( 1 )
		{										
			char c3;
			scanf("%1s",&c3);
		    if( c3=='1')
				goto loop11;
			else break;
		}
}
	
void chaxun4()             /*4.查询大于或小于给定出版时间的书籍信息的函数*/ 
{
	int x1,y1,z1,x2,y2,z2,i,tmp,tmp1,tmp2,tmp3;
	loop12:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}				
		tmp=0;
		x2=0;	
		y2=0;
		z2=0;	
	 	printf("\n请输入要查找书籍的出版时间范围(如:1990-1-1--2000-1-1):"); 	
	 	scanf("%d-%d-%d--%d-%d-%d",&x1,&y1,&z1,&x2,&y2,&z2);
		tmp2=x1*365+y1*30+z1;
		tmp3=x2*365+y2*30+z2;		
		printf("\n你要查找的所有书籍资料:");				
		printf("\n编号\t书名\t作者\t类别\t价格\t出版日期\t库存\n");	 	
		for(i=0;i<number;i++)
		{
			tmp1=stu[i].year*365+stu[i].month*30+stu[i].day;				
			if(tmp1>=tmp2&&tmp1<=tmp3)
			{
		  		printf(" %d\t%s\t%s\t%s\t%.1f\t%d-%d-%d\t%d\n",stu[i].num,stu[i].name,stu[i].zuozhe,stu[i].leibie,stu[i].jiage,stu[i].year,stu[i].month,stu[i].day,stu[i].kucun);					
				tmp=1;
			}
		}			
		printf("\n查找完毕!\n" );		
				
		if(tmp==0)
		{ 
			printf("\n没有查找到你要的书籍!\n" );								
		}
								
		printf("\n按1继续,按0返回上级菜单:" );
		while( 1 )
		{										
			char c3;
			scanf("%1s",&c3);
		    if( c3=='1')
				goto loop12;
			else break;
		}	
}

void chaxun5()            /*5.查询给定数值段中库存最值的书籍信息的函数*/   
{
	int x,y,i,i1,i2,tmp,min,max;
	loop13:
		if(number==0)
		{
			printf("\n还未有书籍信息!\n");
			return; 
		}		
		max=0;
		tmp=0;	
		y=0;		
	 	printf("\n请输入要查找书籍的库存数范围(如:11-20):"); 	
	 	scanf("%d-%d",&x,&y);
		min=y;		 	
		for(i=0;i<number;i++)
		{				
			if(stu[i].kucun>=x&&stu[i].kucun<=y)
			{
				if(stu[i].kucun>=max)
				{
					max=stu[i].kucun;
					i1=i;
			  		tmp=1;					
				}
                if(stu[i].kucun<=min)
                {
					min=stu[i].kucun;
					i2=i;
			  		tmp=1;
				}
			}
		}		

⌨️ 快捷键说明

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