⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 200630740128.cpp

📁 图书管理系统 不算完整
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int booknumber=0;//书的数目
int peoplenumber=0;//人的数目     
struct   BOOK
{
long   int   id;
int   store;         /*store=1表示书未被借出,store=0表示书已经被借出*/
float   price;
char   name[30],author[20];
}books[1000];

struct   PEOPLE
{
char   name[20],sex[5];
int   number;
int   id;
}people[100];






void   book_save()
{
          FILE*   fp;
          if   ((fp=fopen( "图书管理系统.txt", "wt "))==NULL)
          {   printf( "文件在打开时出现错误!\n");
              getch();
              exit(1);
              }  
              fwrite(books,sizeof(struct   BOOK),1000,fp);
              fwrite(people,sizeof(struct   PEOPLE),100,fp);
              fprintf(fp, "%d,",booknumber);fprintf(fp, "%d,",peoplenumber);
         
              fclose(fp);
              }




void   book_read()
          {FILE*   fp;
         
          if   ((fp=fopen( "图书管理系统.txt", "rt"))==NULL)
          {printf( "文件在打开时出现错误!\n");
              getch();
              exit(1);
              }  
              fread(books,sizeof(struct   BOOK),1000,fp);
              fread(people,sizeof(struct   PEOPLE),100,fp);
              fscanf(fp, "%d,",&booknumber);fscanf(fp, "%d,",&peoplenumber);
              fclose(fp);
              }




void   book_renew()
    {       FILE*   fp;
      printf   ( "你确定要清楚所有的数据吗?y/n\n");
      if   (getch()=='n')   return;  
          if   ((fp=fopen( "图书管理系统.txt", "wt"))==NULL)
          {   printf( "初始化出现问题,请重新尝试。\n");
              getch();
              exit(1);
              }  
          fclose(fp);
          printf( "请注意:清除数据后要重新启动系统才能生效!!!!\n");
          getch();
          }



void   book_add(void)
{
booknumber+=1;
system("cls");//清屏
printf( "增加新书\n ");
id:   printf( "请输入序号: ");
scanf( "%d",&books[booknumber].id);
if(books[booknumber].id==0)
{
  printf( "Error!id can't be 0! ");
  booknumber-=1;
  goto   id;
}
printf( "书名:");
scanf( "%s",&books[booknumber].name);
printf( "作者:");
scanf( "%s",&books[booknumber].author);
printf( "价格:");
scanf( "%f",&books[booknumber].price);
books[booknumber].store=1;
}







int   search_book(void)
{
int   n,i;
system("cls");//清屏
printf( "查找图书");
printf( "请输入图书的序号:");
scanf( "%d",&i);
if   (i>0&&i<1001)
{for(n=0;n <=1000;n++)
    {
    if(books[n].id==i)
        {
          printf( "书名:%s\n",books[n].name);
          printf( "作者:%s\n",books[n].author);
          printf( "价格:%.2f\n",books[n].price);
          printf( "%d\n",books[n].store);
          return   n;
        }
    }printf( "\n无效图书序号.\n");
}
else   printf( "\n无效图书序号.\n");
return   0;     /*若查不到图书,则反回0值*/
}

 




void   book_del(void)
{
int   n,k;
system("cls");//清屏
printf( "请输入要删除的旧书");
if((k=search_book())!=0)
    {   char   a[20],b[30];
      for(n=k;n <=booknumber;n++)
      {
        books[n].id=books[n+1].id;
        strcpy(a,books[n].author);strcpy(books[n].author,books[n+1].author);
        strcpy(books[n+1].author,a);
        strcpy(b,books[n].name);strcpy(books[n].name,books[n+1].name);
        strcpy(books[n+1].name,b);
        books[n].price=books[n+1].price;
        books[n].store=books[n+1].store;
      }
      booknumber-=1;
      printf( "该图书信息已删除.\n");
    }
else   printf( "该图书未找到!\n");
}






void   book_register(void)
{
system("cls");//清屏
printf( "借书人注册 ");
peoplenumber+=1;
printf( "请输入借书人姓名: ");
    scanf( "%s",&people[peoplenumber].name);
    printf( "请输入借书人性别: ");
    scanf( "%s",&people[peoplenumber].sex);
    people[peoplenumber].id=peoplenumber;
    people[peoplenumber].number=peoplenumber;
    printf( "注册成功!请记住您的编号:%3d\n",peoplenumber);
}






void   book_borrow(void)
{
int   bianhao;
int   n,i;
system("cls");//清屏
printf( "借阅图书 ");
if((n=search_book())!=0&&books[n].store==1)
  {
    printf( "请输入借书人编号: ");
    scanf( "%d",&bianhao);
    for(i=0;i <=100;i++)
    {
      if(i!=bianhao)
      continue;
      else   if(people[i].id==bianhao)
          {
            if   (people[i].number> 2)

                  printf( "该借书人同时借书已达两本,不能借阅\n");
            else
            {
              books[n].store=0;
              people[i].number++;
              printf( "借阅成功!\n");
            }
          }
      else   printf( "非注册会员,不能借书\n");
    }
  }
else   printf( "此书已经借出\n");
}





void   book_in(void)
{int   i,n,bianhao;
system("cls");//清屏
printf( "归还图书 ");
printf( "请输入所还图书的序号:");
scanf( "%d",&n);
printf( "请输入还书人的编号:");
scanf( "%d",&bianhao);
for(i=0;i <=100;i++)
        {
        if(i=people[i].id)
        continue;
        else   if(people[i].id=bianhao)
              {
              books[n].store=1;
                people[i].number--;
                printf( "书已归还成功!\n");
                break;
              }
          else   printf( "学号输入错误\n");
        }
}



         


void   book_bookshow()
{
	int i;
    system("cls");//清屏
    printf( "显示书目\n书号|书           名|作         者|状态|价   格\n");
    for(i=1;i<=booknumber;i++)
	{
		printf( "%4d|%s|%s|%4d|%6f\n ",books[i].id,books[i].name,
          books[i].author,books[i].store,books[i].price);     
	}
	getch();
}
             
             
             
                     
int  main(void)
{
int n;
book_read();     //自动读取数据
menu:  
printf("********************************************************************************\n");
printf("****************************欢迎使用图书馆管理系统******************************\n");
printf("********************************************************************************\n");
printf("操作菜单如下,请按要求选择:\n(注意:所有操作完成之后请选择7保存)\n1   增加新书\n2   查询图书\n3   删除旧书\n\n4   借书人注册\n5   借阅图书\n6   归还图书\n\n7   保存\n8   清除数据\n9   显示书目\n\n0   退出\n");
n=getch();
switch(n)
    {
    case   '1':   book_add();break;
    case   '2':   search_book();break;
    case   '3':   book_del();break;
    case   '4':   book_register();break;
    case   '5':   book_borrow();break;
    case   '6':   book_in();break;
    case   '7':   book_save();break;
    case   '8':   book_renew();break;
    case   '9':   book_bookshow();break;
    case   '0':   exit(0);
    default:   printf   ( "请选择正确的选项!!!\n ");
    }
  goto   menu;
  return   0;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -