C语言图书馆管理系统课程设计报告Word格式文档下载.doc
《C语言图书馆管理系统课程设计报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《C语言图书馆管理系统课程设计报告Word格式文档下载.doc(18页珍藏版)》请在冰豆网上搜索。
在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:
另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
1、系统需求分析
经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。
2、功能介绍
输入图书信息,出现一个"
图书信息管理系统的主界面"
其中有6个数字代表的选项,可以按相关的数字进行操作。
每一条记录包括一本书的书名、图书号、作者、出版时间、出版社名、价格。
0)退出:
如果在图书管理系统的主界面,则退出的是系统,如果是在子菜单下则返回到主界面。
1)录入新图书:
可以完成一条信息的输入,也可以完成多条信息的输入。
2)浏览图书信息:
学生可以浏览图书的相关信息,包括一本书的书名、图书号、作者、出版时间、出版社名、价格。
3)自主查询图书信息:
可以按书名或按作者查找图书的相关信息并显示。
4)删除图书信息:
只能通过图书号删除一本书的相关信息。
5)修改图书信息:
只能通过图书号进行修改该图书的相关信息。
3、模块划分
图书管理系统
退出系统
信息录入
信息查询
信息浏览
信息删除
信息修改
图1系统功能模块图
4、数据流图
结束
开始
显示一系列功能选项
输入n,判断n是否是0~5?
根据n的值调用各功能模块函数
n
图2系统数据流程图
三、设计步骤
#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;
/*进行清屏*/
printf("
\t\t******************************\n"
开始查询\n"
\t\t\t1---------------按书名查询\n"
\t\t\t2---------------按作者名查询\n"
\t\t\t0---------------退出\n"
);
\t\t请选择你想要的查询方式:
scanf("
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