图书管理程序

2016-02-19 15:57 9 1 收藏

今天图老师小编给大家展示的是图书管理程序,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

#includestdio.h
  #includestring.h
  #includeconio.h
  #includestdlib.h
  #includectype.h
  #define STACK_IN99v_SIZE 10
  #define OK 1
  #define TRUE 1
  #define FALSE  0
  #define ERROR 0
  strUCt student           /*定义学生类型,用于存放借出的书籍*/
  {
  int carnum;
  char lendbook[10];
  }student[1000];
  struct employ            /*定义职工类型*/
  {
  int employnum;
  char employname[15];
  int employage;
  char employsex[2];
  char employleve[10];
  long int employtage;
  }employ[50];
  struct book              /*定义书的类型*/
  {
  int booknum;
  char bookname[10];
  char bookcreat[10];
  int turefalse;           /*用于借书和还书模块判定一本书是否借出的条件*/
  }book[1000];
  struct car               /*借书卡的数据类型*/
  {
  int carnum;
  char studentname[10];
  int studentclass;
  }car[100];huanbook()               /*还书函数*/
  {
  FILE *fp,*fp2;           /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
  int i,n;
  int carnum;
  char lendbook[10];
  printf("请你输入你的卡号");
  scanf("%d",&carnum);
  fp=fopen("car.txt","r");       /*读取卡号记录*/
  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)   /*for循环判定卡号是否存在*/
  {
  if(car[i].carnum==carnum)      /*卡号存在,进入下一循环*/
  {
  n=i;
  fclose(fp);
  printf("请输入你要还的书的名字");
  scanf("%s",lendbook);
  fp=fopen("record.txt","r");
  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)   /*判定是否借阅了输入的书*/
  {
  if(strcmp(student[i].lendbook,lendbook)==0)      /*借阅了该书,进入下一循环,否则出错显示*/
  {
  fclose(fp);
  fp=fopen("record.txt","r");
  fp2=fopen("bookl.txt","w");
  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
  {
  if(strcmp(student[i].lendbook,lendbook)==0)
  {
  continue;                                       /*删除还掉的书的借书记录*/
  }
  fwrite(&student[i],sizeof(struct student),1,fp2);  /*写入原来没还的书的记录*/
  }
  fclose(fp);
  fclose(fp2);
  fp=fopen("record.txt","w");
  fp2=fopen("bookl.txt","r");
  for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
  {
  fwrite(&student[i],sizeof(struct student),1,fp);     /*将借书记录信息写回*/
  }
  fclose(fp);
  fclose(fp2);
  fopen("bookl.txt","w");                    /*清临时文件的记录*/
  fclose(fp2);
  fp=fopen("book.txt","r");
  fp2=fopen("bookl.txt","w");
  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)    /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
  {
  if(i==n)
  {
  book[i].turefalse=1;
  fwrite(&book[i],sizeof(struct book),1,fp2);          /*将还的书的原来状态设为无人借阅的*/                     
  continue;
  }
  fwrite(&book[i],sizeof(struct book),1,fp2);
  }
  fclose(fp);
  fclose(fp2);
  fp=fopen("book.txt","w");
  fp2=fopen("bookl.txt","r");
  for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
  {
  fwrite(&book[i],sizeof(struct book),1,fp);            /*将临时文件写回*/
  }
  fclose(fp);
  fclose(fp2);
  fopen("bookl.txt","w");              /*清临时文件*/
  fclose(fp2);
  printf("还书完毕,按任意键返回");
  getch();
  return;
  }
  }
  printf("你没有借这样的书,不要耍我,任意键返回");    /*出错提示*/
  fclose(fp);
  getch();
  return;
  }
  }
  printf("系统没这样的卡,和治理员联系,按任意键返回");   /*出错提示*/
  fclose(fp);
  getch();
  }
  lendcount()             /*其他的自己看就懂了,不行也可以QQ联系:258032791,c++版本要的话跟我说,愿意交爱好编程的交友,毕业没时间了,找工作忙,有些模块没写,发现什么问题自己改,*/
  {
  FILE *fp;
  int i,n=0;
  fp=fopen("record.txt","r");
  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
  {
  printf("卡号:%d 借出的书籍:%s ",student[i].carnum,student[i].lendbook);
  n=n+1;
  }
  fclose(fp);
  printf("目前共有%d本书借出",n);
  printf("按任意键");
  getch();
  }
  chabook()
  {
  char ch5;
  do
  {
  printf("---------------欢迎进入图书查询系统!--------------");
  printf("               1:按书名查找");
  printf("               2:按作者查找");
  printf("               0:返回");
  printf("请输入0--2,其他输入非法!");
  scanf("%s",&ch5);
  switch(ch5)
  {
  case '1':findbook();getch();break;
  case '2':printf("按作者查找,有时间再写");getch();break;
  case '0':break;
  default:printf("无此操作");getch();break;
  }
  }while(ch5!='0');
  }
  lendbook()
  {
  FILE *fp,*fp2;
  int i,n;
  int carnum;
  printf("请你输入你的卡号");
  scanf("%d",&carnum);
  fp=fopen("car.txt","r");
  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
  {
  if(car[i].carnum==carnum)
  {
  n=i;
  fclose(fp);
  printf("请输入你要借阅的书的名字");
  scanf("%s",student[n].lendbook);
  fp=fopen("book.txt","r");
  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
  {
  if(strcmp(book[i].bookname,student[n].lendbook)==0)
  {
  if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书");fclose(fp);getch();return;}
  else
  fclose(fp);
  fp=fopen("record.txt","a+");
  student[n].carnum=carnum;
  fwrite(&student[n],sizeof(struct student),1,fp);
  fclose(fp);
  fp=fopen("book.txt","r");
  fp2=fopen("bookl.txt","w");
  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
  {
  if(strcmp(book[i].bookname,student[n].lendbook)==0)
  {
  book[i].turefalse=0;
  fwrite(&book[i],sizeof(struct book),1,fp2);
  continue;
  }
  fwrite(&book[i],sizeof(struct book),1,fp2);
  }
  fclose(fp);
  fclose(fp2);
  fp=fopen("book.txt","w");
  fp2=fopen("bookl.txt","r");
  for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
  {
  fwrite(&book[i],sizeof(struct book),1,fp);
  }
  fclose(fp);
  fclose(fp2);
  fopen("bookl.txt","w");
  fclose(fp2);
  printf("借书完毕,按任意键返回");
  getch();
  return;
  }
  }
  printf("不存在这样的书,任意键返回");
  fclose(fp);
  getch();
  return;
  }
  }
  printf("你的卡号不存在,请申请新卡,按任意键返回");
  fclose(fp);
  getch();
  }
  carcount()
  {
  FILE *fp;
  int i,n=0;
  fp=fopen("car.txt","r");
  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
  {
  printf("第%d张卡卡号:%d 姓名:%s 班级:%d",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
  n=n+1;
  }
  fclose(fp
  

来源:http://www.tulaoshi.com/n/20160219/1610762.html

延伸阅读
标签: 电脑入门
据消息称,微软Windows 8.1将恢复开始按钮,但是一些网友别高兴的太早,因为单击了按钮,只是会引导用户跳转到Metro风格的开始屏幕界面。因此,开始按钮或许能在Win8.1版本里恢复,但以往的Windows开始菜单也许将会一去不复返。 图老师小编在之前文章强调过,开始菜单在Win8里面,已经完全让Metro开始界面代替。以往Windows开始菜单,到了Win...
在市面上,有很多注册表管理方面的程序,如:魔法兔子,IE保护器等。但它们对注册表都进行固定的操作,对与windows的高级管理员来说是远远不够的,还经常用到Regedit,那它是如何设计的呢?经过分析它的主要分成以下几块①、注册表数据的显示与操作;②、注册表数据的导入与导出;③注册表数据的查找与替换。以下介绍在VC6中对注册表数据的...
SNMP(Simple Network Management Protocol)是基于TCP/IP的网络管理协议,关于其工作原理网上很多,百度一下或者看看MSDN,今天在这里记一下实现的步骤,本人工作环境是Windows XP professional SP2 + Microsoft Visual Studio .net 2003,不保证其他平台与本人的步骤一致。 一、安装SNMP服务 先查看系统中是否已经安装有SNMP...
ES文件浏览器 装机必备文件管理程序 ES 文件浏览器是一个能管理手机本地、局域网共享、FTP 和蓝牙文件的管理器。通过ES 文件浏览器用户可以在本地、局域网共享、FTP 和蓝牙设备中浏览、传输、复制、剪切、删除、重命名文件和文件夹等等,还可以备份系统的已装软件。 软件功能 捷径的工具栏操作; 管理手机及区域网...
图书 图书是人类用来纪录一切成就的主要工具,也是人类交融感情,取得知识,传承经验的重要媒介,对人类文明的开展,贡献至钜,所以,无论古今中外,对于图书,人们总给予最高的肯定与特别的关怀。手工精制的纸特别适合中国书画之用,分生宣和熟宣两种。 孕妇可以看书吗 可以的,...

经验教程

212

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部