图书管理系统课程报告Word文档下载推荐.docx
- 文档编号:20348137
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:28
- 大小:432.86KB
图书管理系统课程报告Word文档下载推荐.docx
《图书管理系统课程报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书管理系统课程报告Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;
(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)
(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;
(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。
成绩
评定
报告撰写情况(30分)
系统完成情况(30分)
答辩情况(40分)
总分
20分
规范程度
5分
程序测试
基本功能20分
扩展功能10分
自述情况10分
答辩情况
30分
成绩评定教师:
1需求分析
看到题目后,理解到里面的关键词有两个:
图书、管理。
那么对于这个系统的编写就围绕这两点进行。
对于图书的信息要包括:
图书编号、书名、作者、出版社、类别、出版时间和价格,提供读者更多关于图书的信息,便于他们查询和记忆;
再者,就是图书的管理,我在这里设计的一个是对于图书管理者的系统,另一个是针对读者的服务系统,有两个不同的界面。
在主界面上不同角色选择不同的界面进入,这两个系统进入时均有权限,起到保护各系统的作用。
首先,管理着系统,这个系统要能录入图书信息并保存,能对图书录入情况进行浏览,能够将图书进行价格排序,还要能够对图书信息进行删除和修改。
其次,读者服务系统,读者能浏览图书信息,能查询需要的书(这里我设计了书名查询和作者名查询两种方式),能够通过价位排序浏览图书信息,经过对比知道更多信息,更好的实现读者服务功能。
2概要设计
(1)数据结构
对于图书的信息采用一个结构体来完成,对图书不同的信息设计不同的易懂的英文变量或汉语拼音代表,在程序中便于引用,也便于阅读程序。
对于图书的信息的保存用文件来实现,对于以后图书的浏览、排序、删除和修改就直接打开对其操作。
(2)模块划分
1、主函数
主函数中主要包含:
功能函数的定义、系统的主界面、管理者界面、读者界面及进入各界面的权限设置。
用不同的易懂的英文字母来定义各功能函数,接着用printf输出函数在界面上输出系统主界面,然后用if判断语句选择不同的界面,再次用if判断语句来设置权限,权限通过后,输出管理者界面、读者界面或退出系统。
输出所选界面后用swith结构调用各功能函数实现所选操作。
2、信息录入函数
先建立一个文件fp,并打开,用for循环来控制所输图书上限,并循环输入图书信息保存至所建文件中,输入完毕后,关闭文件。
3、信息浏览函数
打开所建的信息录入文件,用printf输出函数输出图书信息的界面,然后用for循环控制输出文件中的所有图书信息,输出完毕后,用if判断语句实现选择性退出输入,关闭文件。
4、图书查询函数
该函数主要运用do-while循环实现,再循环中首先用printf输出图书查询界面,然后用if判断语句来选择所用查询方式,进入查询,其中用if判断是否有所找图书,若有就用for来控制查询书的上限,在经过if判断是否找到所要的图书,确认后输出该图书信息。
5、删除函数
打开图书文件后,输出所有图书信息,选择所删除书号,进入删除系统,采用所选图书信息位置后面的图书信息依次向前覆盖图书信息,从而删除所选图书信息达到删除目的。
然后将改变后的的文件信息保存至原来文件中,再次打开输出显示删除后的图书信息。
最后关闭文件。
6、修改函数
按提示输入修改图书编号,再用指针找到该图书信息输出,在此用if来完成是否找到所选图书,用可读写方式打开信息文件,利用fseek()来控制指针移动,指向需修改的文件信息位置,输入修改内容进行覆盖,完成后保存至原来文件中,相当于进行了更新,关闭该文件,再用只读方式打开输出其中全部信息,最后关闭文件。
7、排序函数
这里主要运用冒泡排序法来完成。
打开文件,利用for循环找到文件中图书数目,再利用冒泡排序进行价位排序,完成之后,输出排序后的图书信息。
(3)程序总体框架
3详细设计
(1)数据结构
structbook/*图书信息结构定义*/
{
intnum;
/*图书编号*/
charname[100];
/*书名*/
charauthor[100];
/*作者名*/
charfn[100];
/*分类号*/
charplace[100];
/*出版单位*/
charday[100];
/*出版时间*/
floatmoney;
/*价格*/
}book[MAX],temp;
(2)主函数
intmain(void)/*主函数*/
voidInput();
/*输入*/
voidOutput();
/*输出*/
voidFind();
/*查找*/
voidDelete();
/*删除*/
voidChange();
/*修改*/
voidPaixu();
/*排序*/
intn;
printf("
\n"
);
printf("
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"
※※\n"
※欢迎来河南工业大学图书信息管理系统※\n"
※★1.图书管理员系统★※\n"
※★2.读者系统★※\n"
※▲退出(输入其他数字)※\n"
请输入选择项(1-2):
"
scanf("
%d"
&
n);
\n\n\n\n"
if(n==1)
{
intm;
请输入图书管理系统的密码:
scanf("
m);
if(m==1002)
{
for(;
;
)/*省略"
初始化"
、"
条件表达式"
和"
增量"
*/
{
ints;
printf("
※主菜单※\n"
※★1.图书信息录入★※\n"
※★2.图书信息浏览★※\n"
※★3.图书信息查询★※\n"
※★4.图书信息删除★※\n"
※★5.图书信息修改★※\n"
※★6.图书价位排序★※\n"
※★7.退出系统★※\n"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"
请输入选择项(1-7):
s);
if(s>
0&
&
s<
8)
{
switch(s)
{
case1:
Input();
break;
case2:
Output();
case3:
Find();
case4:
Delete();
case5:
Change();
case6:
Paixu();
case7:
printf("
※※※※※※※※※※※※※※※※※※※※※※※※\n"
※谢谢使用!
※\n"
※再见!
exit(0);
}
}
}
}
else
printf("
密码错误,请您重新进入系统\n"
return0;
}
elseif(n==2)
intt;
请输入读者密码:
t);
if(t==320)
inth;
※欢迎来河南工业大学读者服务系统※\n"
※★1.图书信息浏览★※\n"
※★2.图书信息查询★※\n);
※★3.图书价位排序★※\n"
※★4.退出系统★※\n"
请输入选择项(1-4):
h);
if(h>
h<
5)
switch(h)
case1:
case3:
exit(0);
}
elsereturn0;
}
(3)录入函数
voidInput()/*输入*/
FILE*fp;
fp=fopen("
book"
"
ab"
/*建立一个新二进制文件*/
for(n=0;
n<
MAX;
n++)
{
n=%d输入序号n(当输入n=-1时,返回),n="
n++);
if(n==-1)
fclose(fp);
return;
/*默认不返回值*/
else
请输入图书编号书名作者名分类号出版单位出版时间价格\n"
scanf("
%d%s%s%s%s%s%f"
book[n].num,book[n].name,book[n].author,book[n].fn,book[n].place,book[n].day,&
book[n].money);
fwrite(&
book[n],sizeof(structbook),1,fp);
/*写入文件*/
}
fclose(fp);
(4)浏览函数
voidOutput()/*输出*/
inti;
rb"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"
图书列表\n"
-----------------------------------------------------------\n"
图书编号书名作者名分类号出版单位出版时间价格\n"
for(i=0;
fread(&
book[i],sizeof(structbook),1,fp)==1;
i++)
%6d%8s%8s%8s%8s%8s%10.2f\n"
book[i].num,book[i].name,book[i].author,book[i].fn,book[i].place,book[i].day,book[i].money);
(5)查询函数
voidFind()/*查找*/
{
intchoose,t;
charans[100];
do
※1.按书名查找※\n"
※2.按作者名查找※\n"
※▲返回主菜单(输入其他数字)※\n"
输入选项代号:
choose);
if(choose==1)
printf("
输入所查书名:
%s"
ans);
t=-1;
if(choose==1)
for(i=0;
i<
i++)
if(strcmp(ans,book[i].name)==0)
t=i;
%d%s%s%s%s%s%2f\n"
book[t].num,book[t].name,book[t].author,book[t].fn,book[t].place,book[t].day,book[t].money);
if(t==-1)
不存在该信息\n"
elseif(choose==2)
输入所查作者名:
if(choose==2)
if(strcmp(ans,book[i].author)==0)
t=i;
if(t==-1)printf("
elsereturn;
}while
(1);
(6)删除函数
voidDelete()/*删除*/
inti,flag,n,s,j;
rb+"
rewind(fp);
}
n=i;
输入待删除图书编号:
for(i=0,flag=1;
flag&
n;
if(s==book[i].num)
for(j=i;
j<
n-1;
j++)
book[j].num=book[j+1].num;
strcpy(book[j].name,book[j+1].name);
strcpy(book[j].author,book[j+1].author);
strcpy(book[j].fn,book[j+1].fn);
strcpy(book[j].place,book[j+1].place);
strcpy(book[j].day,book[j+1].day);
book[j].money=book[j+1].money;
flag=0;
if(!
flag)
n=n-1;
else
没有此号\n"
wb"
book[i],sizeof(structbook),1,fp);
r"
fread(&
}
(7)修改函数
voidChange()/*修改*/
inti,num,n;
intflag=0;
请输入要修改的图书编号:
num);
=MAX;
if(book[i].num==num)
--------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 课程 报告