用C语言设计一个图书信息管理系统,可实现以下功能: 图书信息录入、数据保存、文件打开等。图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。 写出完整代码和注释
时间: 2023-12-02 22:02:44 浏览: 130
//头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义图书结构体
typedef struct Book
{
char id[10];//登录号
char name[50];//书名
char author[20];//作者名
char type[10];//分类号
char publish[30];//出版单位
char time[10];//出版时间
float price;//价格
}book;
//函数声明
void add_book();//添加图书
void save_book();//保存图书信息到文件
void open_book();//打开图书信息文件
void display_book();//显示图书信息
int main()
{
int choice;//操作选项
printf("欢迎使用图书信息管理系统!\n");
while(1)
{
printf("请选择要进行的操作:\n");
printf("1、添加图书信息\n");
printf("2、保存图书信息到文件\n");
printf("3、打开图书信息文件\n");
printf("4、显示图书信息\n");
printf("5、退出系统\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
add_book();
break;
case 2:
save_book();
break;
case 3:
open_book();
break;
case 4:
display_book();
break;
case 5:
printf("感谢使用图书信息管理系统!\n");
exit(0);
default:
printf("请输入正确的操作选项!\n");
break;
}
}
return 0;
}
//添加图书
void add_book()
{
book b;
printf("请输入图书登录号:");
scanf("%s",b.id);
printf("请输入图书书名:");
scanf("%s",b.name);
printf("请输入图书作者名:");
scanf("%s",b.author);
printf("请输入图书分类号:");
scanf("%s",b.type);
printf("请输入图书出版单位:");
scanf("%s",b.publish);
printf("请输入图书出版时间:");
scanf("%s",b.time);
printf("请输入图书价格:");
scanf("%f",&b.price);
//将图书信息保存到文件
FILE *fp;
fp=fopen("book.txt","ab");
if(fp==NULL)
{
printf("无法打开文件!\n");
return;
}
fwrite(&b,sizeof(book),1,fp);
fclose(fp);
printf("图书信息添加成功!\n");
}
//保存图书信息到文件
void save_book()
{
FILE *fp;
fp=fopen("book.txt","wb");
if(fp==NULL)
{
printf("无法打开文件!\n");
return;
}
book b;
printf("请输入要保存的图书信息数量:");
int num;
scanf("%d",&num);
for(int i=0;i<num;i++)
{
printf("请输入第%d本图书的信息:\n",i+1);
printf("请输入图书登录号:");
scanf("%s",b.id);
printf("请输入图书书名:");
scanf("%s",b.name);
printf("请输入图书作者名:");
scanf("%s",b.author);
printf("请输入图书分类号:");
scanf("%s",b.type);
printf("请输入图书出版单位:");
scanf("%s",b.publish);
printf("请输入图书出版时间:");
scanf("%s",b.time);
printf("请输入图书价格:");
scanf("%f",&b.price);
fwrite(&b,sizeof(book),1,fp);
}
fclose(fp);
printf("图书信息保存成功!\n");
}
//打开图书信息文件
void open_book()
{
FILE *fp;
fp=fopen("book.txt","rb");
if(fp==NULL)
{
printf("无法打开文件!\n");
return;
}
book b;
while(fread(&b,sizeof(book),1,fp)==1)
{
printf("登录号:%s 书名:%s 作者名:%s 分类号:%s 出版单位:%s 出版时间:%s 价格:%.2f\n",b.id,b.name,b.author,b.type,b.publish,b.time,b.price);
}
fclose(fp);
}
//显示图书信息
void display_book()
{
FILE *fp;
fp=fopen("book.txt","rb");
if(fp==NULL)
{
printf("无法打开文件!\n");
return;
}
book b[100];
int i=0;
while(fread(&b[i],sizeof(book),1,fp)==1)
{
i++;
}
fclose(fp);
printf("共有%d本图书:\n",i);
for(int j=0;j<i;j++)
{
printf("登录号:%s 书名:%s 作者名:%s 分类号:%s 出版单位:%s 出版时间:%s 价格:%.2f\n",b[j].id,b[j].name,b[j].author,b[j].type,b[j].publish,b[j].time,b[j].price);
}
}
阅读全文