简介:很基础的一个图书管理系统,界面为控制台,可以对图书进行基本的增删改查,和一个借阅功能,进行了一个文件的写入写出,没有连接数据库。
#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");
}