图书信息管理系统设计说明书Word文档下载推荐.docx
《图书信息管理系统设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统设计说明书Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
设计总结14
参考文献15
致谢16
附录——原代码17
摘要:
本图书信息管理系统以菜单方式工作,菜单的功能选项以英文显示给人以舒适的视觉享受,依次显示为登录号(流水号)、书名、作者名、分类号、出版单位、出版时间、价格等.本图书信息管理系统具有菜单选择功能、图书信息录入功能、图书信息输出功能、图书信息查询功能、图书信息修改功能、图书信息删除功能、编号排序功能、文件保存功能等。
通过该软件管理员和用户可根据自己的需求进入不同的功能模块,完成不同的操作,满足各种与图书信息管理有关的需求。
关键字:
图书;
信息;
管理。
一、系统需求分析
随着现代化进程的加快,人们对知识的渴求趋向更广范围,更深程度。
图书作为人们更新自己头脑和追求进步的重要手段,日益显示出其重要性。
因此,再有新时间内,用最有效的方法查询出对我们有用的图书信息显得尤为重要。
本系统可以实现用户根据系统的提示输入需要查询的图书信息;
系统管理员可以进行添加图书,删除图书,保存数据等操作。
图书信息管理系统以方便和满足广大用户的需要为宗旨,方便图书管理员的管理。
待管理员将现有图书信息录入后,用户可根据提示浏览需要查询的图书信息(也可显示是否借出),浏览时将以作者和书名两种方式查询,供用户选择。
用户可根据输入的信息查询所需图书的价格、出版时间、出版社从而选择适合自己的图书。
另外,图书管理员可以统计现有图书的数量,以及个给它们分类。
二、系统总体设计
1.总体软件结构图
注:
菜单选择模块完成用户命令的接收,此模块也是图书信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;
输入模块完成图书信息的输入功能,输入信息包括登陆号、书名、作者名、分类号、出版社、出版日期、价钱等;
输出模块完成已录入图书信息的显示;
查询模块完图书信息的查询,查询时对应有按书名查询和按作者名查询两种方式;
修改模块完成图书信息的修改功能;
删除模块完成图书信息的删除功能;
按登陆号排序模块完成对信息的排序;
文件保存模块完成文件的保存。
2.总体数据结构
1菜单选择模块:
(
给出信息提示;
绘制菜单(包含输入、显示、查询、修改、删除、退出、排序);
提示菜单选择并读入到变量;
根据读入变量的值调用不同的模块函数;
)
2
信息输入模块:
打开职工信息文件;
发出输入提示信息;
输入职工信息;
提示是否继续输入;
读入到变量;
根据读入变量的值进入菜单或输入函数模块;
3
信息输出模块:
输出所有图书的所有信息。
4
信息查询模块:
调用switch函数;
给出信息提示;
根据读入变量的值进入不同的case;
Case1给出信息提示;
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息;
否则,提示出错。
Case2给出信息提示;
5.信息修改模块:
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并提示输入新的图书信息;
6.信息删除模块:
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并删除该图书的图书信息;
7.排序模块(
看能不能打开程序;
如能,则用冒泡法排序;
输出排序后的所有信息)
8文件保存模块(
看文件能不能读;
否则提示出错。
看文件的长度符不符合要求;
保存文件)
三、详细设计
1.菜单选择模块;
2.图书信息输入模块;
3.图书信息输出模块;
4.图书信息查询模块;
5.图书信息修改模块;
6.图书信息删除模块;
7.按登录号排序模块;
8.文件保存模块;
四、系统测试
(一〕.实现程序:
首先进入如下界面:
1:
input
2:
output
3:
save
4:
search
5:
modify
6:
del
7:
sort
0:
exit;
(二〕.输入“1”,后按“num登陆号”,book_name书名,writer作者名,sort。
name分类号,出版社pub-conpany,出版时间pub-time,价钱price顺序输入两组数据:
“1,we,er,1,as,1234,34”
“2,ew,re,2,sa,4321,43”
(三).输入“3”保存。
(四).输入“2”输出数据:
(五).输入“4”查找,“请选择按书名或作者名查询:
书名。
2.作者名“
输入“1“或”2“分别查询。
输入“1“和“we“,输出“1,we,er,1,as,1234,34”;
输入2和“re“,输出“2,ew,re,2,sa,4321,43”符合要求
(六).输入”5”或“6“进行修改或删除。
输入修改的书名“we”显示“1,we,er,1,as,1234,34”及“pleaseinputmodify'
stheinformations”,后输入新信息,再输入“3”保存。
(七).输入7按登陆号排序。
运行正常,输入0退出。
调试过程中,,对fopen函数认识不够,一开始是用if((fp=fopen("
f:
\\c"
"
rb"
))==NULL)这个语句,调试的时候一直都最少都是一个错误:
后来怎么弄都纠正不了。
后来慢慢的查书,逐行检查。
才终于改正为if((fp=fopen("
file.c"
wb"
))==NULL)。
程序终于可以运行。
通过这我懂得:
写程序时一定要严谨,尽可能写下的每一行不出错。
否则调试时会很麻烦。
五、软件使用说明书
(1)根据正确的提示安装软件。
(2)打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。
操作如下:
点击开始菜单,进入菜单选择。
输入:
将所需的信息输入。
输出:
图书基本信息。
根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。
当错误不能改正,则退出浏览信息。
进入查询信息:
则屏幕会出现已两个对话框——按作者查找,按书名查找把相应的所需信息的状态(是否借出)。
当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。
当信息输入正确,进入你所需要的菜单程序中.
六设计总结
本次课程设计是我这学期编写的第一个大程序,从花费的过去三天总计十七个小时中,我得到如下收获:
1.用好C语言某种程度上关键就是用好所需的各种函数的调用,c语言的确是一种结构化的语言。
2.学会和加深了对于结构体和共用体的理解,以及在程序中怎样实现文件函数的输入输出和文件的定位。
3只有上机实践才能检验自己写的程序,看是看不出来的。
4深深懂得调试、书写规范和检错的重要性。
七参考文献
[1]王连相c++程序设计教程,中国铁道出版社,2007
[2]谭浩强C语言程序设计教程,安徽出版社,1999
[3]谭浩强C程序设计题解与上机指导,清华大学出版社,1999
[4]C语言的实际应用,安徽科学技术出版社,2000
[5]C语言函数手册,机械工业出版社,1999
[6]C语言实用程序荟萃,西安电子科技大学出版社,1993
八、致谢
在编写程序的过程中,我们得到了老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!
感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。
在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。
在设计的过程中,老师孜孜不倦的教导是激励我们完成任务的基石,在此我们衷心地感谢我们的指导老师,谢谢老师这几天对我们的教诲,此次课设作业对我们以后的事业具有重要意义,对我们以后的学习具有重要指导意义。
九、附录——原代码
#include<
stdio.h>
string.h>
stdlib.h>
#defineN10
structlibrary
{
intnum;
charbook_name[30];
charwriter[30];
charsort_num[3];
charpub_company[30];
charpub_time[30];
charprise[30];
};
typedefstructlibraryLIB;
LIBlib[N];
FILE*fp;
intall=0;
intmenu(void);
voidinput(void);
voidoutput(void);
voidsave(void);
voiddel(void);
voidsearch(void);
voidmodify(void);
voidsort(void);
main()
for(;
;
{
switch(menu())
case1:
input();
break;
case2:
output();
case3:
save();
case4:
search();
case5:
modify();
case6:
del();
case7:
sort();
case0:
exit
(1);
}
}
intmenu(void)/*显示主菜单*/
charm[3];
intn;
printf("
\t\t1:
input\n"
);
\t\t2:
output\n"
\t\t3:
save\n"
\t\t4:
search\n"
\t\t5:
modify\n"
\t\t6:
del\n"
\t\t7:
sort\n"
\t\t0:
exit\n"
\t\tpleasechooseaoperation(0-6):
\n"
scanf("
%s"
m);
n=atoi(m);
return(n);
voidinput(void)/*显示输入函数*/
inti;
for(i=all;
i<
N;
i++)
all++;
pleaseinputinformations:
\t\tnum:
\t"
%d"
&
lib[i].num);
\t\tbook_name:
lib[i].book_name);
\t\twriter:
lib[i].writer);
\t\tsort_num:
lib[i].sort_num);
\t\tpub_company:
lib[i].pub_company);
\t\tpub_time:
lib[i].pub_time);
\t\tprise:
lib[i].prise);
a:
\t\tyes/nocontinueinput?
yes\t"
no\n"
if(atoi(m)==1)
continue;
elseif(atoi(m)==2)
return;
else
\t\tinputerror!
gotoa;
voidoutput(void)/*显示输出函数*/
for(i=0;
all;
\t\t%d\n"
lib[i].num);
%s\t\t%s\t\t%s\n"
lib[i].book_name,lib[i].writer,lib[i].sort_num);
lib[i].pub_company,lib[i].pub_time,lib[i].prise);
voidsort(void)/*从登陆号从大到小排序的函数*/
intb,i;
structlibraryflash;
if((fp=fopen("
))==NULL)
{printf("
cannotopenfile\n"
for(b=0;
b<
b++)
for(i=b+1;
{
if(strcmp(lib[b].sort_num,lib[i].sort_num)<
0)
{flash=lib[b];
lib[b]=lib[i];
lib[i]=flash;
}
thedownobjectis:
numbook'
namewritersort_numpub_companypub_timeprise\n"
if(lib[b].sort_num[0]!
='
\0'
printf("
%d%s%s%s%s%s%s\n"
lib[b].num,lib[b].book_name,lib[b].writer,
lib[b].sort_num,lib[b].pub_company,lib[b].pub_time,lib[b].prise);
elsebreak;
voidsave(void)/*文件保存*/
if((fp=fopen("
cannotopenthefile"
exit
(1);
if(fwrite(&
lib[i],sizeof(LIB),1,fp)!
=1)
cannotwrite!
"
fclose(fp);
voidsearch(void)/*书名和作者名查找*/
inti,flag;
charname[30];
\t\t请选择按书名或作者名查询:
书名\n"
作者名\n"
i=atoi(m);
switch(i)
\t\tpleaseinputthebook_name:
name);
flag=0;
if(strcmp(name,lib[i].book_name)==0)
flag=1;
if(flag==0)
\t\tnotfindthebook!
}break;
\t\tpleaseinputthewriter:
if(strcmp(name,lib[i].writer)==0)
\t\tnotfindthewtiter!
voidmodify(void)/*显示修改函数*/
charname[30],n[3];
\t\tpleaseinputthebook_nameofmodify:
\t\t"
\t\tpleaseinputmodify'
stheinformations:
\t\tnotfindmodify'
sthebook!
voiddel(void)/*显示删除函数*/
inti,flag,n;
\t\tpleaseinputthebook_nameofdel:
prin