C语言做图书管理系统

在这#include <stdio.h>
#include <stdlib.h>//其中包含system函数
#include <conio.h>//定义了通过控制台进行 数据输入 和数据输出的函数,如getch函数。
#include <string.h>//定义字符数组
#include <math.h>
#define LEN sizeof(struct book)//有关图书信息的结构体
#define LEN1 sizeof(struct reader)//有关读者信息的结构体
#define LEN2 sizeof(struct land)//有关登录系统的结构体


struct book//图书信息
{
   
	char num[20],nam[20],aut[20],pub[20],cat[20];
	int  many;
	float price;
	struct book*next;
};

struct reader//读者借阅信息
{
   
	int jnum;
	char jnam[20],time[20],tsnam[20];
	struct reader *next;
};
struct land//登录信息
{
   
	int zhanghao;
	char password[20];
	struct land*next;
};



int tjzs();//统计library文本个数函数
void xg(int,char[] );
void mainmenu();//显示主菜单
void tsmenu();//显示图书信息菜单
void jmenu();//显示借阅信息菜单
void lmenu();//显示登录菜单

void main1();// 主菜单功能
void tsmain();//图书菜单功能
void cxts();//查询图书
void zjts();//增加图书
void scts();//删除图书
void llts();//浏览图书

void jmain();//读者借阅信息
void js();//借书
void hs();//还书
void cxjs();//查询借书
void lljs();// 浏览借书情况

void land();//登录功能系统
int xinjian(int,char[] );//创建账号密码
void xgmm();//修改密码
void lmain();//登录界面函数


int tjzs()//统计图书文本个数
{
   
FILE *fp;
int txcl=0,n;
float tprice=0;
char tname[20]={
   '\0'},tauthor[20]={
   '\0'},tchuban[20]={
   '\0'},tkind[20]={
   '\0'},tshuhao[20]={
   '\0'};
fp=fopen("library.txt","r");//打开文件
for (n=0;!feof(fp);n++)//逐个读文件
fscanf(fp,"%s%s%s%s%s%d%f",tshuhao,tname,tauthor,tchuban,tkind,&txcl,&tprice);
n--;
fclose(fp);//关闭文件
return (n);//返回个数
}


int tjdzzs()//统计文读者本个数函数

{
   
FILE *fp;
int zhenghao=0,n;
char mingzi[20]={
   '\0'},riqi[20]={
   '\0'},zname[20]={
   '\0'};
fp=fopen("reader.txt","r");//打开文件
for (n=0;!feof(fp);n++)//逐个读文件
fscanf(fp,"%d%s%s%s ",&zhenghao,&mingzi,&riqi,&zname);
n--;
fclose(fp);//关闭文件
return (n);//返回个数
}


int tjzs3()//统计账号密码文本个数
{
   
FILE *fp;
int zhao=0,n;
char mm[20]={
   '\0'};
fp=fopen("land.txt","r");//打开文件
for (n=0;!feof(fp);n++)//逐个读文件
fscanf(fp,"%d %s",&zhao,mm);
n--;
fclose(fp);//关闭文件
return (n);//返回个数
}


void mainmenu()//主菜单
{
   
system ("cls");

printf("**************************************************");

printf("\n\n 1.图书系统\n\n");

printf("\n\n 2.借阅系统\n\n");

printf("\n\n 3.退出系统\n\n");

printf("\n\n 请按键选择,回车确定\n");

printf("*************************************************\n");

return ;
}


void tsmenu() //图书馆信息菜单
{
   
system ("cls");

printf("****************************************************");

printf("\n 1.增加图书\n\n");

printf("\n 2.删除图书\n\n");

printf("\n 3.查询图书\n\n");

printf("\n 4.库存浏览\n\n");

printf("\n 5.返回上一层\n\n");

printf("\n 请按键选择,回车确定\n");

printf("***************************************************\n");

return ;

}


void main1()
{
   
	void tsmian();
	void jmain();
	char choose;
	mainmenu();
	scanf(" %c",&choose);
	switch(choose)//功能函数
  {
   
	  case'1':
	    tsmain();
	    break;
	  case'2':
	  	jmain();
	  	break;
	  case'3':
	  	system("cls");
    getch();
  	exit(0);
  	system ("cls");
	break;
  }
}


void tsmain()
{
   
	void zjts();
	void scts();
	void ctts();
	void llts();
	char choose;
	tsmenu();
	scanf(" %c",&choose);
	for(;;)
	{
   
		switch(choose)
	{
   
	case'1':
		zjts();
		break;
	case'2':
		scts();
		break;
	case'3':
		cxts();
		break;
	case'4':
		llts();
		break;
	case'5':
		main1();
		break;
	}
    }
}


void zjts()//增加图书
{
   
	FILE*fp;
	char i;
	int many=0;
    float price=0;
    char  nam[20]={
   '\0'},aut[20]={
   '\0'},cat[20]={
   '\0'},pub[20]={
   '\0'},num[20]={
   '\0'};
    system ("cls");

    if ((fp=fopen("library.txt","r"))==NULL)//if语句:打开图书馆文件,不存在此文件则新建
	{
   
      fp=fopen("library.txt","w");
      fclose(fp);
    }
	fp=fopen("library.txt","a");
	
	printf("\n请按以下格式输入图书信息:\n书号 书名 作者 出版社 类别 进库量 单价");
	
	for(;i!=27;)//为了实现输入一次后按esc退出
	{
   
		printf("请输入:\n");
		scanf("%s%s%s%s%s%d%f",num,nam,aut,pub,cat,&many,&price);
		fprintf(fp,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f\n",num,nam,aut,pub,cat,many,price);
	    printf("继续输入请按回车,结束输入请按Esc\n");
        i=getch();//暂停程序当i接收后继续下一条指令
        for (;i!=13&&i!=27;)//保证只能是CR和ESC才能退出循环,输入其他字符无用,暂停程序,按'CR'继续。
        i=getch();
     }

	fclose(fp);
    printf("\n保存成功,按任意键返回上一层!");
    getch();
	tsmain();//返回上一层
}

void scts()//删除图书
{
   
	   struct book *head=NULL;
       struct book *p,*p1,*p2;
       int tmany=0,n=0,j,k;
       float tprice=0;
       char  tnam[20]={
   '\0'},taut[20]={
   '\0'},tcat[20]={
   '\0'},tpub[20]={
   '\0'},tnum[20]={
   '\0'};
	   char jjnam[20]={
   '\0'};
	   char i;
       FILE *fp;
       if ((fp=fopen("library.txt","r"))==NULL)//打开文件
       {
   
	       system ("cls");
           printf("\n记录文件不存在!按任意键返回");
           getch();
           tsmain();
       }

	   else//实现删除的功能
	   {
   
	      system ("cls");
	      printf("\n请输入你要删除的书名:");//输入删除图书书名
          scanf("%s",jjnam);
          printf("\n确认删除请回车,取消请按Esc\n");
          i=getch();
          for(;i!=13&&i!=27;)
          i=getch()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值