如何再腾讯云服务器做网站,济南市做网站,php企业网站模板免费下载,家具营销型网站模板引言#xff1a; 图书管理系统是一个重要的信息管理系统#xff0c;对于图书馆和书店等机构来说#xff0c;它能够方便地管理图书的录入、显示、查询、修改和删除等操作。本实验基于C语言开发了一个简单的图书管理系统#xff0c;通过账户名和密码进行系统访问和权限控制 图书管理系统是一个重要的信息管理系统对于图书馆和书店等机构来说它能够方便地管理图书的录入、显示、查询、修改和删除等操作。本实验基于C语言开发了一个简单的图书管理系统通过账户名和密码进行系统访问和权限控制并实现了上述功能。在本实验报告中我们将详细介绍该系统的背景和需求分析、系统设计、系统实现以及实验结果与分析。 背景和需求分析
在现代社会的图书馆和书店中图书的管理是一项重要的工作。传统的图书管理方式往往需要耗费大量人力和时间且容易出现错误。因此开发一个图书管理系统来自动化和简化这一过程具有重要意义。
需求分析如下
录入图书系统应该允许用户输入图书的相关信息包括书名、作者、出版社等并将这些信息保存到图书数据库中。 显示图书系统应该能够将图书馆中所有图书的信息进行显示以方便用户查看。 查询图书系统应该支持用户通过书名或作者进行图书查询并将查询结果返回给用户。 修改图书系统应该允许用户选择要修改的图书并输入新的图书信息进行修改。 删除图书系统应该支持用户选择要删除的图书并将其从图书馆中删除。
系统实现
录入图书功能的实现代码如下
void WriteToFile()
{FILE *fp NULL;book stu;char flag y;fp fopen(book1.dat, ab);//打开文件if (fp NULL){printf(文件打开失败\n);exit(1);//1表示在有错的方式退出程序}while ((flag y || flag Y)){system(cls);Menu1();printf(请输入图书id);scanf(%s, stu.id);printf(请输入书名);scanf(%s, stu.name);printf(请输入书籍作者);scanf(%s, stu.author);printf(请输入出版社);scanf(%s, stu.publish);printf(请输入价格);scanf(%lf, stu.price);fwrite(stu, LEN, 1, fp);fflush(stdin);printf(继续输入吗继续请输入y或Y);getchar();scanf(%c, flag);}fclose(fp);//关闭文件return;
}//图书添加的函数显示图书功能的实现代码如下
void ReadFromFile()
{system(cls);Menu1();FILE *fp NULL;book stu;fp fopen(book1.dat, rb);if (fp NULL){printf(文件打开失败);exit(1);}printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf( id\t\t书名\t\t作者\n);fseek(fp, 0, SEEK_SET);while (!feof(fp)){if (fread(stu, LEN, 1, fp)){printf(%10s\t%8s\t\t%5s\n, stu.id, stu.name, stu.author);}}printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);system(pause);system(cls);fclose(fp);return;
}查询图书功能的实现代码如下
void QueryFile()
{system(cls);Menu1();book stu;char x[8];int flag 0;FILE *fp;printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(\t\t请输入图书id:);scanf(%s, x);printf( ID 书名 作者 出版社 价格\n);fp fopen(book1.dat, rb);if (fp NULL){printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(错误\n);printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);return;}fseek(fp, 0, SEEK_SET);while (fread(stu, LEN, 1, fp)){if (strcmp(x, stu.id) 0){printf(%3s %5s %5s %10s %5.2lf\n, stu.id, stu.name, stu.author, stu.publish, stu.price);flag 1;}if (flag 0){printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(没有图书信息);printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);}}printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);fclose(fp);system(pause);system(cls);return;
}修改图书功能的实现代码如下
void ModifyFile()
{system(cls);Menu1();book stu;FILE *fp;char x[8];printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(请输入图书id:);scanf(%s, x);fp fopen(book1.dat, rb);if (fp NULL){printf(文件打开失败);exit(1);}fseek(fp, 0, SEEK_SET);while (fread(stu, LEN, 1, fp)){if (strcmp(x, stu.id) 0){printf(请重新输入图书id: );scanf(%s, stu.id);printf(请重新输入书名: );scanf(%s, stu.name);printf(请重新输入书籍作者 : );scanf(%s, stu.author);printf(请重新输入图书出版社 : );scanf(%s, stu.publish);printf(请重新输入图书价格 : );scanf(%lf, stu.price);printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);fflush(stdin);fseek(fp, 0-LEN, SEEK_CUR);fwrite(stu, LEN, 1, fp);fclose(fp);}if (feof(fp)){printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(没有图书信息);printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);}}system(pause);system(cls);return;
}删除图书功能的实现代码如下
void DeletFile()
{system(cls);Menu1();book s;FILE* fp;char a[10];fp fopen(book1.dat, rb);if (fp NULL){printf(打开文件错误\n);exit(1);}printf(\n请输入图书ID);scanf(%s, a);printf(\n\t\t\t删除成功\n);fseek(fp, 0, SEEK_SET);FILE* fp1;fp1 fopen(linshi.dat, ab);//读写新建一个临时文件while (fread(s, LEN, 1, fp))//从原文件读一个结点{if (strcmp(a, s.id) ! 0)//不是要删除的内容{fwrite(s, LEN, 1, fp1);}}fclose(fp);fclose(fp1);remove(book1.dat);//删除原文件rename(linshi.dat, book1.dat);//重命名为原文件fflush(stdin);system(pause);system(cls);return;
}
实验结果与分析
经过代码的实现和编译后我们进行了多次功能测试确保系统正常运行并可按照预期完成各项操作。用户可以登录系统输入合法的账户名和密码后进入系统然后可以根据自己的需要执行各种功能操作。
本次实验设计并实现了一个基于C语言的图书管理系统它具备了录入图书、显示图书、查询图书、修改图书和删除图书等功能。通过使用面向对象的思想和结构体数组来存储图书信息我们使系统结构清晰、操作简单。另外通过账户名和密码的验证我们保证了系统的安全性和可靠性。 然而本系统还有一些可以改进的地方。例如可以增加图书的分类和编号功能以便更详细和便捷地组织和查找图书。另外可以引入文件操作将图书信息保存到文件中以实现长久的数据存储和备份。此外还可以增加借阅和归还图书的功能完善整个图书管理流程。
综上所述基于C语言的图书管理系统在方便了图书管理的同时也为后续的功能扩展和改进提供了基础。通过进一步的优化和功能增加该系统有望成为一个更加完善和实用的图书管理工具。