龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

图书管理程序

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
#include #include #include #include #include #define STACK_IN99v_SIZE 10 #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0 strUCt student /*定义学生类型,用于存放借出的书籍*/ { int carnum; char lendbook[10]; }stude

#include

  #include

  #include

  #include

  #include

  #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

  

  

精彩图集

赞助商链接