C语言课程设计_图书管理系统

简介:很基础的一个图书管理系统,界面为控制台,可以对图书进行基本的增删改查,和一个借阅功能,进行了一个文件的写入写出,没有连接数据库。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
	int tsbh;
	char tsmc[80];
	char tsjg[20];
	char jsrxm[20];
	char gmsj[20];
	char wjrxm[20];
	char wjsj[20];
	char zkxx[20];
} TSINFO;
TSINFO Global_tsinfo[80];
int total_ts=0;
void tsgl();
void tsll();
void tsjy();
void WriteFile()
{
	FILE* fileno;    
	int i;
	fileno=fopen("c:\\data.txt","w");
	fprintf(fileno,"%d\n", total_ts);
	for (i=0;i<total_ts;i++){
		 fprintf(fileno,"%d \t",Global_tsinfo[i].tsbh);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].tsmc);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].gmsj);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].tsjg);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].jsrxm);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].zkxx);
		 fprintf(fileno,"%s \t",Global_tsinfo[i].wjrxm);
		 fprintf(fileno,"%s \n",Global_tsinfo[i].wjsj);
	   }
	fclose(fileno);
}
void ReadFile()
{
	FILE* fileno;    
	int i;
	fileno=fopen("c:\\data.txt","r");
	if (fileno==NULL) return;
	fscanf(fileno,"%d",&total_ts);
	for (i=0;i<total_ts;i++)
	{
		fscanf(fileno,"%d", &Global_tsinfo[i].tsbh);
		fscanf(fileno,"%s", Global_tsinfo[i].tsmc);
		fscanf(fileno,"%s", Global_tsinfo[i].gmsj);
		fscanf(fileno,"%s", Global_tsinfo[i].tsjg);
		fscanf(fileno,"%s", Global_tsinfo[i].jsrxm);
		fscanf(fileno,"%s", Global_tsinfo[i].zkxx);
		fscanf(fileno,"%s", Global_tsinfo[i].wjrxm);
		fscanf(fileno,"%s", Global_tsinfo[i].wjsj);
	}
	fclose(fileno);
}
void main()
{
	int xuanze;
		ReadFile();
	while(1)
	{
		system("cls");
		printf("\n");
		printf("╔═════════════════════════════════════╗\n");
		printf("║                                                                          ║\n");
		printf("║                           欢迎使用XXXX图书管理系统                       ║\n");
		printf("║                                                                          ║\n");
		printf("╠═════════════════════════════════════╣\n");
		printf("║                                                                          ║\n");
		printf("║         使用说明:                                                       ║\n");
		printf("║                                                                          ║\n");
		printf("║                   1:图书管理               2:图书查询                  ║\n");
		printf("║                                                                          ║\n");
		printf("║                   3:图书借阅               0:退出                      ║\n");
		printf("║                                                                          ║\n");
		printf("╚═════════════════════════════════════╝\n");
		printf("								                请输入选择项:");
		scanf("%d",&xuanze);
		switch(xuanze)
		{
			case 1:  
				tsgl();  
				break;
			case 2: 
				tsll();    
				break;
			case 3: 
				tsjy();    
				break;
			case 0: 
				WriteFile();
				printf("您选择退出,谢谢使用本系统\n");
				system("pause");
				return;
			default: 
				printf("\n 输入错误"); 
				system("pause");
		}
	}
}
void tjts();
void xgts();
void scts();
void tszl();
void tsgl()
{
	int xuanze;
	while(1)
	{   
		system("cls");
		printf("\n");
		printf("╔═════════════════════════════════════╗\n");
		printf("║                                                                          ║\n");
		printf("║                        欢迎使用XXXX图书管理系统                          ║\n");
		printf("║                                                                          ║\n");
		printf("╠═════════════════════════════════════╣\n");
		printf("║                                                                          ║\n");
		printf("║        图书管理:                                                        ║\n");
		printf("║                                                                          ║\n");
		printf("║                 1:添加图书                      2:修改图书             ║\n");
		printf("║                                                                          ║\n");
		printf("║                 3:删除图书                      4:图书总览             ║\n");
		printf("║                                                                          ║\n");
		printf("║                                  0:退出                                 ║\n");
		printf("║                                                                          ║\n");
		printf("║                                                                          ║\n");
		printf("╚═════════════════════════════════════╝\n");
        printf("                                      请输入选择项: ");
		scanf("%d",&xuanze);
		switch(xuanze)
		{
			case 1:  
				tjts();  
				break;
			case 2:  
				xgts();    
				break;
			case 3: 
				scts();    
				break;
			case 4:
				tszl();
				break;
			case 0: 
				return;     
			default: 
				printf("\n 输入错误"); 
				system("pause"); 
		}
	}
}
void tjts()
{
		TSINFO temp;
		int i;
		int j,t=1;
		while(t)
	{
		printf("\n请输入图书编号:");
		scanf("%d",&i);	
	    if(total_ts==0)
			break;
	    for(j=0;j<total_ts;j++)
		if(i==Global_tsinfo[j].tsbh)
		{
			printf("\n此编号已存在,请重新输入新的图书编号\n:");
		}
		else
		{
			t=0;
			break;
		}
	}
	printf("\n此编号可用,请再次输入确定添加:");
	scanf("%d",&temp.tsbh);
	printf("\n请输入图书名称:"); scanf("%s",temp.tsmc);
	printf("\n请输入购买时间:"); scanf("%s",temp.gmsj);
	printf("\n请输入图书价格:"); scanf("%s",temp.tsjg);
	printf("\n请输入经手人姓名:"); scanf("%s",temp.jsrxm);
	strcpy(temp.wjrxm,"---");
	strcpy(temp.wjsj,"---");
	strcpy(temp.zkxx,"未外借");
	Global_tsinfo[total_ts]=temp; 
	total_ts++;
	printf("已成功添加图书%s",temp.tsmc);
	system("pause");
}
void xgts()
{
	int i,xgbh,j,t=1;
	if (total_ts<1)
	{
		printf("图书数量为0,不允许修改");
		return ;
	}
	printf("\n请输入待修改的图书编号:"); scanf("%d",&xgbh);
	for ( i = 0; i<total_ts && Global_tsinfo[i].tsbh != xgbh; i++);

	if (i==total_ts) 
	{
		printf("没有找到对应图书编号,不能修改");
		system("pause");
		return ;
	}
	while(t)
	{
	    printf("\n请输入新的图书编号:"); 
	    for(j=0;j<total_ts;j++)
		if(i!=j&&Global_tsinfo[i].tsbh==Global_tsinfo[j].tsbh)
		{
			printf("\n此编码已存在,请重新输入新的图书编号:");
		}
		else
		{
			t=0;
			break;
		}
	}
    scanf("%d",&Global_tsinfo[i].tsbh);
	printf("\n请输入新的图书名称:"); scanf("%s",Global_tsinfo[i].tsmc);
	printf("\n请输入新的图书购买购买时间");scanf("%s",Global_tsinfo[i].gmsj);
	printf("\n请输入新的图书价格");scanf("%s",Global_tsinfo[i].tsjg);
	printf("\n请输入新的经手人姓名");scanf("%s",Global_tsinfo[i].jsrxm);
	printf("\n");
	printf("修改完成");
	system("pause");
}
void scts()
{
    int i,j, scbh;
	if (total_ts<1)
	{
		printf("图书名单为空,不允许删除"); 
		system("pause");
		return ;
	}
	printf("\n请输入待删除的图书编号:"); 
	scanf("%d",&scbh);
	for ( i = 0; i<total_ts && Global_tsinfo[i].tsbh != scbh; i++);

	if (i==total_ts) 
	{
		printf("没有找到对应图书编号,不能删除");
		system("pause");
		return ;
	}
	printf("\n待删除的图书名称:%s", Global_tsinfo[i].tsmc);
	printf("\n确认请按1,返回请按0:");
	scanf("%d",&j);
	if (j != 1) return;
	for(j=i+1; j<total_ts; j++) 
		Global_tsinfo[j-1]= Global_tsinfo[j]; 
	total_ts--;
	printf("\n已成功删除该图书");
	system("pause");
}
void tszl()
{
	int i,j;
	TSINFO temp;
	if (total_ts==0) 
	{
		printf("没有图书信息!");
		system("pause");
		return;
	}
	for(i=0;i<total_ts;i++)
		for(j=0;j<total_ts-1;j++)
			if(Global_tsinfo[j].tsbh>Global_tsinfo[j+1].tsbh)
		{
			temp=Global_tsinfo[j+1];Global_tsinfo[j+1]=Global_tsinfo[j];Global_tsinfo[j]=temp;
		}
		printf("编号\t名称\t入库时间\t价格\t经手人\n");
			printf("--------------------------------------------\n");
		for(i=0;i<total_ts;i++)
			printf("%d\t%s\t%s\t\t%s\t%s\n",Global_tsinfo[i].tsbh,Global_tsinfo[i].tsmc,Global_tsinfo[i].gmsj,Global_tsinfo[i].tsjg,Global_tsinfo[i].jsrxm);
		system("pause");
}
void czts();
void mccz();
void dzcz();
void tsll()
{
	int xuanze;
	while(1)
	{   
		system("cls");
		printf("\n");
		printf("╔═════════════════════════════════════╗\n");
		printf("║                                                                          ║\n");
		printf("║                        欢迎使用XXXX图书管理系统                          ║\n");
		printf("║                                                                          ║\n");
		printf("╠═════════════════════════════════════╣\n");
		printf("║                                                                          ║\n");
		printf("║        图书查询:                                                        ║\n");
		printf("║                                                                          ║\n");
		printf("║                 1:编号查找                      2:名称查找             ║\n");
		printf("║                                                                          ║\n");
		printf("║                 3:读者查找                      0:退出                 ║\n");
		printf("║                                                                          ║\n");
		printf("║                                                                          ║\n");
		printf("╚═════════════════════════════════════╝\n");
        printf("                                      请输入选择项: ");
		scanf("%d",&xuanze);
		switch(xuanze)
		{
			case 1:  
				czts();  
				break;
			case 2:  
				mccz();    
				break;
			case 3:
				dzcz();
			case 0: 
				return;     
			default: 
				printf("\n 输入错误"); 
				system("pause"); 
		}
	}
}
void czts()
{
	int i,n;
	if(total_ts==0)
	{
		printf("图书馆现无图书\n");
		system("pause");
		return;
	}
	printf("请输入您要查找的图书编号:");
	scanf("%d",&i);	
	printf("编号\t名称\t图书价格\t在库信息\t外借人姓名\t外借时间\n");
			printf("--------------------------------------------\n");
	while(1)
	{	
		for(n=0;n<total_ts;n++)
	{
		if(i==Global_tsinfo[n].tsbh)
		{
			printf("%d\t",Global_tsinfo[n].tsbh);
			printf("%s\t",Global_tsinfo[n].tsmc);
			printf("%s\t\t",Global_tsinfo[n].tsjg);
			printf("%s\t\t",Global_tsinfo[n].zkxx);
			printf("%s\t\t",Global_tsinfo[n].wjrxm);
			printf("%s\n",Global_tsinfo[n].wjsj);
		}
	}
	break;
	}
	system("pause");
}
void mccz()
{
	char i[20];
	int n; 
	if(total_ts==0)
	{
		printf("图书馆现无图书\n");
		system("pause");
		return;
	}	
	printf("请输入您要查找的图书名称:");
	scanf("%s",&i);
	printf("编号\t名称\t图书价格\t在库信息\t外借人姓名\t外借时间\n");
			printf("--------------------------------------------\n");
	while(1)
	{
	for(n=0;n<total_ts;n++)
	{	
		if(strcmp(i,Global_tsinfo[n].tsmc)==0)
		{
			printf("%d\t",Global_tsinfo[n].tsbh);
			printf("%s\t",Global_tsinfo[n].tsmc);
			printf("%s\t\t",Global_tsinfo[n].tsjg);
			printf("%s\t\t",Global_tsinfo[n].zkxx);
			printf("%s\t\t",Global_tsinfo[n].wjrxm);
			printf("%s\n",Global_tsinfo[n].wjsj);
		}
	}
	break;
	}
	system("pause");
}
void dzcz()
{
	char i[20];
	int n; 
	if(total_ts==0)
	{
		printf("图书馆现无图书\n");
		system("pause");
		return;
	}
	printf("请输入您要查找的读者姓名:");
	scanf("%s",&i);
	printf("编号\t名称\t图书价格\t在库信息\t外借人姓名\t外借时间\n");
			printf("--------------------------------------------\n");
	while(1)
	{	
		for(n=0;n<total_ts;n++)
	{
		if(strcmp(i,Global_tsinfo[n].wjrxm)==0)
		{
			printf("%d\t",Global_tsinfo[n].tsbh);
			printf("%s\t",Global_tsinfo[n].tsmc);
			printf("%s\t\t",Global_tsinfo[n].tsjg);
			printf("%s\t\t",Global_tsinfo[n].zkxx);
			printf("%s\t\t",Global_tsinfo[n].wjrxm);
			printf("%s\n",Global_tsinfo[n].wjsj);
		}
	}
	break;
	}
	system("pause");
}
void jyts();
void ghts();		
void tsjy()
{
	int xuanze;
	while(1)
	{   
		system("cls");
		printf("\n");
		printf("╔═════════════════════════════════════╗\n");
		printf("║                                                                          ║\n");
		printf("║                        欢迎使用XXXX图书管理系统                          ║\n");
		printf("║                                                                          ║\n");
		printf("╠═════════════════════════════════════╣\n");
		printf("║                                                                          ║\n");
		printf("║        图书借阅:                                                        ║\n");
		printf("║                                                                          ║\n");
		printf("║                 1:借阅图书                      2:归还图书             ║\n");
		printf("║                                                                          ║\n");
		printf("║                                 0:退出                                  ║\n");
		printf("║                                                                          ║\n");
		printf("║                                                                          ║\n");
		printf("╚═════════════════════════════════════╝\n");
        printf("                                      请输入选择项: ");
		scanf("%d",&xuanze);
		switch(xuanze)
		{
			case 1:  
				jyts();  
				break;
			case 2:  
				ghts();    
				break;
			case 0: 
				return;     
			default: 
				printf("\n 输入错误"); 
				system("pause"); 
		}
	}
}
void jyts()
{
	int i,n,j;
	char a[20];
	strcpy(a,"已外借");
	printf("请输入您要借阅的书籍编号:");
	scanf("%d",&i);
	for(n=0;n<total_ts;n++)
	{
		if(i==Global_tsinfo[n].tsbh)
			if(strcmp(a,Global_tsinfo[n].zkxx)==0)
				printf("此图书已借出\n");
			else
			{
				printf("该图书书名为 %s",Global_tsinfo[n].tsmc);
				printf("\n确认请按1,返回请按0:");
				scanf("%d",&j);
				if (j!=1) 
					return;
				else 
				{
					strcpy(Global_tsinfo[n].zkxx,"已外借");
					printf("\n请输入您的姓名:");
					scanf("%s",Global_tsinfo[n].wjrxm);
					printf("\n请输入借阅时间:");
					scanf("%s",Global_tsinfo[n].wjsj);
				}
			}
	}
	system("pause");
}
void ghts()
{
	int i,n,j;
	char a[20];
	strcpy(a,"未外借");
	printf("请输入您要归还的书籍编号:");
	scanf("%d",&i);
	for(n=0;n<total_ts;n++)
	{
		if(i==Global_tsinfo[n].tsbh)
			if(strcmp(a,Global_tsinfo[n].zkxx)==0)
				printf("此图书未借出\n");
			else
			{
				printf("该图书书名为 %s\n",Global_tsinfo[n].tsmc);
				printf("借阅者为 %s",Global_tsinfo[n].wjrxm);
				printf("\n确认请按1,返回请按0:");
				scanf("%d",&j);
				if (j != 1) 
					return;
				else 
				{
					strcpy(Global_tsinfo[n].zkxx,"未外借");
					strcpy(Global_tsinfo[n].wjrxm,"---");
					strcpy(Global_tsinfo[n].wjsj,"---");
				}
			}
	}
	system("pause");
}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky丶Mamba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值