图书管理程序

小兵报到5

小兵报到5

2016-02-19 15:57

今天图老师小编给大家展示的是图书管理程序,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
#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
  
展开更多 50%)
分享

猜你喜欢

图书管理程序

编程语言 网络编程
图书管理程序

图书管理程序(一)

PHP
图书管理程序(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

图书管理程序(三)

PHP
图书管理程序(三)

图书管理程序(二)

PHP
图书管理程序(二)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

投票管理程序

PHP
投票管理程序

五分钟制ASP图书管理系统

Web开发
五分钟制ASP图书管理系统

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

爱情有的时候 总是很讽刺 - QQ图案分组

爱情有的时候 总是很讽刺 - QQ图案分组

jquery.alert 弹出式复选框实现代码

jquery.alert 弹出式复选框实现代码
下拉加载更多内容 ↓