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

📄 1420984.cpp

📁 很简单的图书管理系统
💻 CPP
字号:
#include<stdio.h> 
#include<string.h> 
#include<conio.h> 
#include<stdlib.h> 
#include<ctype.h> 
#define STACK_INIT_SIZE 10 
#define OK 1 
#define TRUE 1 
#define ERROR 0



 /*定义书的类型*/ 
struct book
{ 
int booknum; 
char bookname[50]; 
float bookprice;
char bookcreat[20]; 

}book[1000];


//////////////////////////////////查询图书信息模块//////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
//////(1)按书名查找
findbook()
{ 
FILE *fp; 
char bookname[10]; 
int i; 
fp=fopen("book.txt","w"); 
printf("请输入你要查找的书名:\n"); 
scanf("%s",bookname); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
   if(strcmp(bookname,book[i].bookname)==0) 
   
	printf(" 书号      书名      作者 \n %d      %s     %s \n",book[i].booknum,book[i].bookname,book[i].bookcreat);


} 
printf("没有你要查询的书籍!\n"); 
fclose(fp); 
return 0; 
}
//////////(2)按作者查找
findbook1()
{ 
FILE *fp; 
char bookcreat[10]; 
int i; 
fp=fopen("book.txt","r"); 
printf("请输入你要查找的作者名:\n"); 
scanf("%s",bookcreat); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
   if(strcmp(bookcreat,book[i].bookcreat)==0) 
   { 
   
     printf(" 书号  书名  作者 \n %d    %s    %s \n",book[i].booknum,book[i].bookname,book[i].bookcreat); 
   
	
    fclose(fp); 
    return 0; 
   } 
} 
printf("没有你要查询的书籍\n"); 
fclose(fp); 
return 0; 
}
chabook()/////查找图书主模块 
{ 
char ch5; 
do 
{ 
printf("◎◎◎欢迎进入图书查询系统◎◎◎\n"); 
printf(" 1: 按书名查找 \n"); 
printf(" 2: 按作者查找 \n"); 
printf(" 0: 返回 \n"); 
printf("请输入0━2:\n"); 
ch5=getch(); 
switch(ch5) 
   { 
    case '1':findbook();getch();break; 
    case '2':findbook1();getch();break; 
    case '0':break; 
    default:printf("无此操作!\n");getch();break; 
   } 
}while(ch5!='0');
return 0; 
}

////////////////////////////////////////////////////////
/////////////////图书管理模块///////////////////////////
//////////(1).增加图书信息
addbook() 
{ 
FILE *fp; 
int i=0; 
char choice='y'; 
fp=fopen("book.txt","a+"); 
while(choice=='y'||choice=='Y') 
{ system("color 6e"); 
   printf("书号:\n");
   scanf("%d",&book[i].booknum); 
   printf("书名:\n"); 
   scanf("%s",book[i].bookname); 
   printf("作者:\n"); 
   scanf("%s",book[i].bookcreat); 
   printf("单价:\n");
   scanf("%f",&book[i].bookprice);
 
   fwrite(&book[i],sizeof(struct book),1,fp); 
   printf("是否要输入下本书(y/n)\n"); 
   scanf("%s",&choice); 
} 
fclose(fp); 
}
/////////////(2).删除图书信息 
delbook() 
{ 
FILE *fp,*fp2; 
int i; 
char bookname[10],choice; 
fp=fopen("book.txt","r"); 
fp2=fopen("bookl.txt","w"); 
printf("书名:\n"); 
scanf("%s",bookname); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
   if(strcmp(bookname,book[i].bookname)!=0) 
   { 
    fwrite(&book[i],sizeof(struct book),1,fp2); 
   } 
} 
fclose(fp); 
fclose(fp2); 
printf("确认删除(y/n)?\n"); 
scanf("%s",&choice); 
if(choice=='y'||choice=='Y') 
{ 
   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); 
   fp2=fopen("bookl.txt","w"); 
   fclose(fp2); 
   printf("按任意键返回...\n"); 
   getch(); 
   return 0; 
} 
else 
{ 
   printf("按任意键返回...\n"); 
   getch(); 
   return 0; 
} 
}
/////////////(3)修改图书
changebook() 
{ 
FILE *fp,*fp2; 
char bookname[10],choice; 
int i; 
fp=fopen("book.txt","r"); 
fp2=fopen("bookl.txt","w"); 
printf("书名:\n"); 
scanf("%s",bookname); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
   if(strcmp(book[i].bookname,bookname)==0) 
   { system("color 5e");
    printf("你所要修改的书的资料如下,请选择你要修改的内容:\n"); 
    printf("序号       书名      作者 \n"); 
    printf("%d   %s  %s\n",book[i].booknum,book[i].bookname,book[i].bookcreat); 
	printf("1: 修改书号:\n"); 
    printf("2: 修改书名:\n"); 
    printf("3: 修改作者:\n"); 
	printf("4: 修改单价:");
    printf("请输入1━4:"); 
     choice=getch(); 
    switch(choice) 
    { 
     case '1': 
     { 
      printf("新的书号:\n"); 
      scanf("%d",&book[i].booknum); 
      fwrite(&book[i],sizeof(struct book),1,fp2); 
     }break; 
     case '2': 
     { 
      printf("新的书名:\n"); 
      scanf("%s",book[i].bookname); 
      fwrite(&book[i],sizeof(struct book),1,fp2); 
     }break; 
     case '3': 
     { 
      printf("新的作者:\n"); 
      scanf("%s",book[i].bookcreat); 
      fwrite(&book[i],sizeof(struct book),1,fp2); 
     }break; 
	 case '4':
	{
		printf("新的单价:");
		scanf("%f",&book[i].bookprice);
        fwrite(&book[i],sizeof(struct book),1,fp2);
	}break;
     default:printf("没有这样的操作!");break; 
    } 
    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); 
fp2=fopen("bookl.txt","w"); 
fclose(fp2); 
printf("按任意键返回...\n"); 
getchar(); 
return 0; 
} 
////////////(4).图书统计
bookcount() 
{ 
FILE *fp; 
int i,n=0; 
fp=fopen("book.txt","r"); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
   if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0) 
   { 
    printf("第%d本书\n序号           书名               作者       单价     \n",i+1); 
    printf(" %d       %10s    ",book[i].booknum,book[i].bookname); 
	printf("%15s      %4.2f    \n",book[i].bookcreat,book[i].bookprice);
	n=n+1; 
   } 
} 
fclose(fp); 
printf("目前共有%d本书.\n",n); 
printf("按任意键返回...\n"); 
}
//////////////////////结束界面函数
end()
{   system("cls");
	printf("\t\t┏┳━━━━━━━━━━━━┳┓\n");
	printf("\t\t┣╋━━━━━━━━━━━━╋┫\n");
	printf("\t\t┃┃ 谢谢使用本系统 , 再见! ┃┃\n");
      printf("\t\t┣╋━━━━━━━━━━━━╋┫\n");
      printf("\t\t┗┻━━━━━━━━━━━━┻┛\n");	
}/////////////////////////////////////////////////////////////
////////////////////主函数///////////////////////////
main() 
{ 
char ch1,ch2,ch4; 
system("color 2e");
do
{  system("cls");
   printf("\t\t┏┳━━━━━━━━━━━━┳┓\n");
   printf("\t\t┣╋━━━━━━━━━━━━╋┫\n");
   printf("\t\t┃┃  欢迎进入图书管理系统  ┃┃\n");
   printf("\t\t┣╋━━━━━━━━━━━━╋┫\n");
   printf("\t\t┗┻━━━━━━━━━━━━┻┛\n");
   printf(" 请选择:\n"); 
   printf(" 1:查阅图书 \n"); 

   printf(" 2:管理系统 \n"); 
   
   printf(" 0:退出 \n"); 
   printf("请输入0━2:\n"); 
   ch1=getch(); 
   switch(ch1) 
   { 
    case '1':chabook();break; 
    case '2':{ 
       do 
       { system("color 4e");
	    system("cls");
        printf("\t\t●●●欢迎进入管理系统●●●\n"); 
        printf(" 1:增加图书 \n"); 
        printf(" 2:删除图书 \n"); 
        printf(" 3:修改图书 \n"); 
        printf(" 4:图书统计 \n"); 
    
       
        printf(" 0:返回 \n"); 
        printf("请输入0━4:\n"); 
         ch2=getch(); 
        switch(ch2) 
        { 
         case '1':addbook(); 
         break; 
         case '2':delbook();break; 
         case '3':changebook();break; 
         case '4':bookcount();getch();break; 
        
         case '0':break; 
            default:printf("无此操作!\n");getch();break; 
           } 
        }
			 while(ch2!='0');}break; 

        case '0':break; 
        default:printf("无此操作!\n");getch();break; 
   } 
}while(ch1!='0'); 
}

⌨️ 快捷键说明

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