菜鸟笔记
提升您的技术认知

c语言图书管理系统-ag真人游戏

这个原本是c语言程序设计书里面的习题,老师布置的作业,既然写好了,就在网上分享下,相信肯定有很多和我一样使用的是这本教材,大家可以借鉴下答案,在dev c 上运行是没有任何错误的。文末已经贴了源码,还有什么不了解的可以在评论里讲下!!!

输入1添加数据

输入2

输入3 查询

输入4

再输入2,查看改变后的数据

输入5(注意此程序只能从后面删除,切不可删前面的id,否则就是复制后面的数据)


输入6(借书)

可看到存数减一

输入7归还图书

至此整个功能介绍完毕,输入8退出系统

下面贴出源代码

#include  //预处理 
#include
#include
#include
//定义结构体 
struct book
{
  
	int id;
	char name[31];
	char author[27];
	char publish[31];
	int store;
	int total;
	int user[10];
	int days[10];
}books[100];
//显示整体标题标题函数 
void page_title(char *menu_item)
{
  
	printf("\t\t********欢迎大家使用阜阳师范大学图书馆管理系统********\n\n-%s-\n\n",menu_item);
 } 
//等待返回函数 
void return_confirm()
{
  
	printf("\n请按任意键返回……\n");
	getch();
} 
 
book_add()
{
  
	int i;
	system("cls");   //清屏 
	page_title("注册新书"); 
	for(i=0;i<2;i  )
	{
  
		
		printf("序号:");
		scanf("%d",&books[i].id);
		printf("书名:");
		scanf("%s",&books[i].name); 
		printf("作者:");
		scanf("%s",&books[i].author); 
		printf("出版社:");
		scanf("%s",&books[i].publish); 
		printf("数量:");
		scanf("%d",&books[i].total);
		books[i].store=books[i].total;
		printf("\n"); 
		
		
			
	} 
}
book_show()
{
  
	int i,flag=0;
	system("cls");
	for(i=0;i<100;i  )
	{
       
		if(strlen(books[i].publish)!=0)
		{
  
			printf("序号:%d\t  ",books[i].id);
			printf("书名:%s\t  ",books[i].name);
			printf("作者:%s\t  ",books[i].author);
			printf("出版社:%s\t  ",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n\n",books[i].total);
			flag=1;
			
		}	
	} 
	
	if(flag==0)
	{
  
		printf("没有找到相关书籍\n");
		
	}
	
	getch();
	return i;	
}
int book_search()
{
  
	int n,i,flag=0;
	char nam[30];
	system("cls");
	printf("请输入书名:");
	scanf("%s",&nam);
	for(i=0;i<100;i  )
	{
  
		if(strcmp(books[i].name,nam)==0)
		{
  
			printf("序号:%d\t  ",books[i].id);
			printf("书名:%s\t  ",books[i].name);
			printf("作者:%s\t  ",books[i].author);
			printf("出版社:%s\t  ",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n",books[i].total);
			n=i;
			flag=1;
			getch();
			break;
		}	
		
	} 
		
		if(flag==0)
		{
  
			printf("\n没有找到相关书籍\n");
			getch();
			return -1;
		}
	return n;
}
book_edit()
{
  
	int i,id_change;
	system("cls");
	page_title("修改图书信息:");
	printf("输入要修改的图书id:");
	scanf("%d",&id_change);
	
	for(i=0;i<100;i  )
	{
  
		if(books[i].id==id_change)
		{
  
		
		printf("修改书名:");
		scanf("%s",&books[i].name); 
		printf("修改作者:");
		scanf("%s",&books[i].author); 
		printf("修改出版社:");
		scanf("%s",&books[i].publish); 
		printf("修改数量:");
		scanf("%d",&books[i].total);
		printf("修改图书信息成功\n");
		books[i].store=books[i].total;
		return i; 
		}	
	} 
	
	printf("\n没有找到相关信息\n");
	getch();
	return -1;
}
int book_del()
{
  
	int i,num,j;
	system("cls");
	page_title("删除图书");
	printf("输入所要删除的书的id:");
	scanf("%d",&num);
	for(i=0;i<100;i  )
	{
  
		if(books[i].id==num)
		{
  
			for(j=i;j<100;j  )
			{
  
				books[j].id=books[j 1].id;
				strcpy(books[j].name,books[j 1].name);
				strcpy(books[j].publish,books[j 1].publish);
				printf("该书已经删除了!!!\n");
				getch();
				return i;
			}
		}	
	} 
	printf("未找到相关记录\n");
	getch();
	return -1;
}

//借书 
book_out()
{
  
	int n,s,i,d;
	system("cls");
	page_title("借阅图书");
	n=book_search();
	if(n!=-1&&books[n].store>0)
	{
  
		//赋初值,全为零 
	for(i=0;i<10;i  )
		{
  
			
				books[n].user[i]=0;
				books[n].days[i]=0;
					
		} 	 
		
		
		
		
		printf("借书证序号:");
		scanf("%d",&s);
		printf("输入可借天数:");
		scanf("%d",&d); 
		
		books[n].user[0]=s;
		books[n].days[0]=d; 
		books[n].store--;	
	
		
//		书上这有何意义 
//		for(i=0;i<10;i  )
//		{
  
//			if(books[n].user[i]==0)
//			{
  
//				books[n].user[i]=0;
//				books[n].days[i]=0;
//				break;
//			}
//			books[n].store--;
//		} 
  		
	}
	
	else if(n!=-1&&books[n].store==0)
	{
  
		printf("此书已经完全借完\n\n");
		getch();
	}
	else
			;
	
	
	return_confirm();
}
 //归还图书
void book_in()
{
  
	int n,s,i;
	page_title("归还图书");
	n=book_search();
	printf("%d",n);
	if(n!=-1&&books[n].store

代码与书上不一样的点:
书上的struct结构体错误,未在后面添加数组
借书里面有一段都等于0看不懂
这个项目主要训练了我调试项目的能力,受教了

带有多名学生的动态链表

#include
#include
#define len sizeof(struct student)
struct student
{
  
	long num;
	int score;
	struct student *next;
};
int n;
struct student *creat()
{
  
	struct student *head;
	struct student *p1,*p2;
	n=0;
	printf("请输入学号和成绩以逗号隔开:\n");
	 printf("结束请按911 回车键:\n");
	 printf("第1个学生学号和成绩:\n");
	p1=p2=(struct student *)malloc(len);
	scanf("%d,%d",&p1->num,&p1->score);
	head=null;
	while(p1->num!=911)
	{
  
		n=n 1;
		if(n==1)
			head=p1;
		else
			p2->next=p1;
		p2=p1;
		p1=(struct student *)malloc(len);
		printf("第%d个学生学号和成绩:\n",n 1);
		scanf("%ld,%d",&p1->num,&p1->score);
	}
	p2->next=null;
	return head;
}
struct student *del(struct student *head)
{
  
	struct student *p1,*p2;
	long n;
	printf("输入删除的学号:");
	scanf("%ld",&n);
	p1=head;
	if(p1->num==n)
		head=p1->next;
	else
	{
  
		do
		{
  
			p2=p1;
			p1=p1->next;
		} while(p1!=null&&p1->num!=n);
		if(p1->num==n)
			p2->next=p1->next;
    	else
			printf("没找到\n");
	}
	free(p1);
	return(head);
}
void print(struct student *head)
{
  
	struct student *p;
	p=head;
	n=0;
	if(head!=null)
		do
		{
  
			n=n 1;
			printf("第%d个学生的学号:%ld,成绩:%d\n",n,p->num,p->score);
			p=p->next;
		}while(p!=null);
}
int main()
{
  
	struct student *phead;
	phead=creat();
	print(phead);
	phead=del(phead);
	print(phead);
	return 0;
}
网站地图