图书借阅管理系统Word格式.docx
- 文档编号:16440851
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:46KB
图书借阅管理系统Word格式.docx
《图书借阅管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《图书借阅管理系统Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
5)按书名查询;
6)按作者名查询;
7)图书信息的删除与修改(可选项)。
2设计思路
根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:
在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:
另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
2.1系统需求分析
经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。
2.2功能介绍
输入图书信息,出现一个"
图书信息管理系统的主界面"
其中有6个数字代表的选项,可以按相关的数字进行操作。
每一条记录包括一本书的书名、图书号、作者、出版时间、出版社名、价格。
0)退出:
如果在图书管理系统的主界面,则退出的是系统,如果是在子菜单下则返回到主界面。
1)录入新图书:
可以完成一条信息的输入,也可以完成多条信息的输入。
2)浏览图书信息:
学生可以浏览图书的相关信息,包括一本书的书名、图书号、作者、出版时间、出版社名、价格。
3)自主查询图书信息:
可以按书名或按作者查找图书的相关信息并显示。
4)删除图书信息:
只能通过图书号删除一本书的相关信息。
5)修改图书信息:
只能通过图书号进行修改该图书的相关信息。
2.3模块划分
图1系统功能模块图
2.4数据流图
图2系统数据流程图
3设计代码
#include<
stdio.h>
stdlib.h>
string.h>
typedefstruct{
charnumber[10];
//书号
charname[20];
//书名
charauthor[20];
//作者
charpublish[50];
//出版社
chartime[20];
//出版时间
floatprice;
}mbook;
intcount;
//书的本数
mbookbook[100];
//最大可有100本书
}mlibrary;
mlibrarylibrary;
voidsave()//保存图书信息。
{
FILE*fp;
if((fp=fopen("
library.doc"
"
w"
))==NULL)
{
printf("
\n不能保存图书信息\n"
);
return;
}
fwrite(&
library.count,sizeof(int),1,fp);
fwrite(library.book,sizeof(library.book[0]),library.count,fp);
}
voidputin()/*定义录入函数*/
{
inty=1;
system("
cls"
while(y)
{
\t请输入您的书籍的书号:
"
scanf("
%s"
library.book[library.count].number);
\t请输入书名:
library.book[library.count].name);
\t请输入作者名:
library.book[library.count].author);
\t请输入出版社:
library.book[library.count].publish);
\t请输入出版时间:
library.book[library.count].time);
\t请输入该书的价格:
fflush(stdin);
%f"
&
library.book[library.count].price);
library.count++;
录入成功,恭喜您!
\n是否继续录入(1.继续;
0,退出录入):
%d"
y);
if(y!
=1)
{
y=0;
break;
}
save();
voidlookup()
printf("
图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n"
for(inti=0;
i<
library.count;
i++)
%s\t%s\t%s\t%s\t%s\t%6.2f\n"
library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
\n查询结果如上按0键返回主菜单:
"
fflush(stdin);
getchar();
voidsearch_by_name()/*定义按书名查询*/
chars2[20];
intflag=1;
\n请输入要查询的书名:
scanf("
s2);
for(inti=0;
i++)
if(strcmp(s2,library.book[i].name)==0)
{
flag=0;
printf("
if(flag)
查询错误!
按0键返回主菜单:
voidsearch_by_author()/*定义按作者名查询*/
chars3[20];
请输入要查询的书的作者:
s3);
if(strcmp(s3,library.book[i].author)==0)
}
if(flag)
查询出错!
voidsearch()/*定义查询函数*/
inta;
/*进行清屏*/
\t\t******************************\n"
开始查询\n"
\t\t\t1---------------按书名查询\n"
\t\t\t2---------------按作者名查询\n"
\t\t\t0---------------退出\n"
);
\t\t请选择你想要的查询方式:
a);
switch(a)
case1:
search_by_name();
break;
case2:
search_by_author();
case0:
voiddel()/*定义删除函数*/
/*清屏*/
\n请输入想要删除的书名:
number);
inti;
for(i=0;
if(strcmp(number,library.book[i].number)==0)break;
if(i!
=library.count)
for(;
library.count-1;
strcpy(library.book[i].name,library.book[i+1].name);
strcpy(library.book[i].number,library.book[i+1].number);
strcpy(library.book[i].publish,library.book[i+1].publish);
strcpy(library.book[i].author,library.book[i+1].author);
strcpy(library.book[i].time,library.book[i+1].time);
library.book[i].price=library.book[i+1].price;
library.count--;
else
\ncannotfound!
\n"
删除成功按0键返回主菜单"
voidupdate()//修改图书信息
\n请输入你要更改的图书名:
if(strcmp(number,library.book[i].number)==0)
mbookbook;
\n\t\t请输入修改后此图书的信息\n"
\t请输入图书号:
book.number);
\t请输入图书名:
book.name);
book.author);
book.publish);
book.time);
book.price);
strcpy(library.book[i].name,book.name);
strcpy(library.book[i].number,book.number);
strcpy(library.book[i].publish,book.publish);
strcpy(library.book[i].author,book.author);
strcpy(library.book[i].time,book.time);
library.book[i].price=book.price;
save();
\n修改成功请按0键返回主菜单:
\n修改出错!
请按0键返回主菜单:
voidmain()
r"
\n不能打开图书信息库\n"
fp=fopen("
w+"
\n初始化图书信息库,初始化之后要重启程序\n"
library.count=0;
fwrite(&
fclose(fp);
fread(&
fread(library.book,sizeof(library.book[0]),library.count,fp);
fclose(fp);
do
system("
\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n"
\t\t*********************************************\n"
\t\t\t1------------------图书信息录入\n"
\t\t\t2------------------图书信息浏览\n"
\t\t\t3------------------图书信息查询\n"
\t\t\t4------------------图书信息删除\n"
\t\t\t5------------------图书信息修改\n"
\t\t\t0-----------------退出图书信息系统\n"
\t\t请输入操作类型:
switch(a)
case1:
putin();
case2:
lookup();
case3:
search();
case4:
del();
case5:
update();
case0:
\n\n退出\n\n"
default:
\n序号不对\n"
}while(a!
=0);
4总结
通过课程设计,对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们软件工程专业的学习中占据着十分重要的地位。
这个程序的结构大体是从网络上借鉴的,但是结果无法运行,只能自己修改,最后终于调试通过,同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 借阅 管理 系统