图书馆信息管理系统含附源代码02Word文件下载.docx

上传人:b****5 文档编号:19829854 上传时间:2023-01-10 格式:DOCX 页数:32 大小:224.24KB
下载 相关 举报
图书馆信息管理系统含附源代码02Word文件下载.docx_第1页
第1页 / 共32页
图书馆信息管理系统含附源代码02Word文件下载.docx_第2页
第2页 / 共32页
图书馆信息管理系统含附源代码02Word文件下载.docx_第3页
第3页 / 共32页
图书馆信息管理系统含附源代码02Word文件下载.docx_第4页
第4页 / 共32页
图书馆信息管理系统含附源代码02Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

图书馆信息管理系统含附源代码02Word文件下载.docx

《图书馆信息管理系统含附源代码02Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书馆信息管理系统含附源代码02Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

图书馆信息管理系统含附源代码02Word文件下载.docx

6.系统维护(新建用户、密码修改、更换用户)等六大功能。

性能的描述:

本系统总体分普通用户和管理员用户,其中管理员可实现添加新书、用户,登记借书、还书、统计等全部功能,普通用户只能实现图书查询、修改自身密码、查看自身借阅历史情况。

在查询方面分时间和类型两种(由于时间、技术等方面限制,将时间功能由原来的int型结构体改为char型,因此也没用到《C算法》中的各种较为高级的排列,实为遗憾,这也导致程序无法自己算出还书日期),界面比较简单,操纵容易。

想实现目标:

本程序的基础结构图借鉴于《VisualBasic设计信息管理系统实例》中的例子,以现代图书馆管理系统为蓝本,结合本校图书馆的规定,可惜的是目标虽远大,技术不过关,导致与原计划有较大偏差,将好些复杂的地方简单化,减少了计划中的好些功能。

四、概要设计

1.系统结构图(功能模块图)

对系统进行分析,给出系统结构图;

系统结构图:

2.功能模块说明

对各个模块进行功能的描述。

功能:

将结构体和需要大量引用的函数放于此模块。

模块0(非正式模块):

密码模块

建立密码体系,使程序面向管理员和普通用户这两方用户。

模块一:

现有图书信息

1.现有图书按时间排列2.现有图书按类型排列

模块二:

新书查询

1.新书按时间排列2.新书按类型排列

模块三:

借阅管理

1.借书登记管理2.续借登记管理(未完成)3.超期登记管理(未完成)4.还书登记管理

模块四:

图书管理

1.添加新书2.删除丢失图书信息3.加入丢失图书

五、详细设计及运行结果

流程图,函数之间相互调用的图示,程序设计及编码,运行结果。

main()函数:

1.nowbook_info()函数:

3.reader_manage()函数模块三:

1.borrow_register()函数

读取文件函数*readfile1(charfilename[])

六、调试情况,设计技巧及体会

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

评价:

对我自己来说,个人对本程序不完全满意,不能完全实现自己的想法。

合理和不足之处:

合理之处在于能够基本上实现图书馆管理系统的功能。

即合理又不足之处莫过于引用了链表,说它合理,是因为动态链表才是大型信息管理系统的核心,动态链表的能动性绝非静态数组所能相比的,但是对链表的不熟悉也是本程序最大的不足之处,在本程序运用链表也是为了熟练它。

改进的方案:

虽说链表远比数组难,但本人不支持本程序改为用数组,

最需要改进的是,前面说过,按原计划,基本上实现现代

化图书馆管理系统的所有功能(图形除外),运用上图型函数,加上快速排序等,同时最好将语句中的中文改为英文,虽然已经把大部分须多此使用的语句组改为函数来调用,但是有一两个的地方有些重复,为了使界面比较美观,大量重复使用了printf语句,不知道能不能改写为一个界面函数。

2、在设计过程中的感受。

感受最大的是无奈和成就感,由于过于强求自己,想把自己的第一个真正的程序完善化,功能尽量的齐全,可惜最后又把原计划打乱了,搞得特无奈,本程序花了我大量的心血,到头来还是要简化它。

不过收获也多多,其中能够训练自己的耐心和细心程度,培养自己拥有严谨的态度,而且每次靠自己发现错误或有了新的想法而且可以实现时,很有成就感的,这不会就是痛并快乐着吧,^_^。

而且也帮一些同学查找了一些错误,对查错方面有所提高。

同时也对那些当程序员深深的佩服,也许是自己的体会不够吧,无法理解那些编程狂人连续20多个小时编程如何顶得住?

七、参考文献

《C语言程序设计》(王曙燕著),《C语言程序设计》(谭浩强著),《VisualBasic信息系统开发实例精选》,《C算法》。

八、附录:

源代码

(000.h)

/*模块0(非正式模块):

结构体模块*/

typedefstructBook_info/*图书相关信息*/

{

charbook_type[3];

/*图书类型代号*/

charbook_num[10];

/*图书代号*/

charbook_name[30];

/*书名*/

charlib_name[15];

/*所属书库*/

charin_date[15];

/*入库时间*/

charanthor[15];

/*作者*/

charprice[6];

/*价格*/

charborrow_date[15];

/*借书日期*/

charback_date[15];

/*还书日期*/

charreader_name[10];

/*借书人姓名*/

charreader_num[10];

/*借书人学号*/

structBook_info*next;

/*用于链表*/

}book_info;

/*把structBook_info定义为book_info*/

/*生成文件函数*/

voidbuild_file(charfilename[15])

FILE*fp;

fp=fopen(filename,"

wb"

);

fclose(fp);

}

/*读取allbook,newbook,lostbook文件*/

book_info*readfile1(charfilename[])

book_info*s;

book_info*r,*p;

if((fp=fopen(filename,"

rb"

))==NULL)

{

printf("

\nCannotfindthefile:

%s\nNowbuildthefile:

%s"

filename,filename);

build_file(filename);

getch();

returnNULL;

}

p=(book_info*)malloc(LEN);

p->

next=NULL;

r=p;

s=(book_info*)malloc(LEN);

fread(s,LEN,1,fp);

while(!

feof(fp))/*读取文件结束退出循环*/

r->

next=s;

/*连接s结点*//*这几步为链表尾插法*/

r=s;

/*将r移到s结点*/

}r->

returnp;

/*输出全链表信息*/

voidprint_info(book_info*p)

clrscr();

printf(booktype1);

for(p=p->

next;

;

p=p->

next)/*p点移到p的下一点*/

printf(booktype5,booktype4);

if(p->

next==NULL)break;

/*这样可以确保输到最后结点信息*/

\npressanykey..."

/*根据类型代号输出链表信息*/

voidprint_info2(book_info*p)

intn=0;

chari[3];

\n输入图书类型代号(1.计算机2.文艺...):

"

gets(i);

next)

if(strcmp(p->

book_type,i)==0)

n++;

next==NULL)

break;

\n共找到该类图书:

%d本."

n);

/*图书排列*/

voidsort_book(charfilename[],charch)

book_info*p;

p=readfile1(filename);

/*调用读取文件函数readfile1*/

if(p==NULL||p->

next==NULL)/*文件内容为空*/

\nNoinformationabout.pressanykey..."

return;

if(ch=='

1'

)/*时间排列*/

print_info(p);

2'

)/*类型排列*/

print_info2(p);

\n"

/*删除链表一结点*/

book_info*del_point(book_info*p,charbook_num[])

book_info*p1,*p2;

p1=p;

while(p1->

next!

=NULL&

&

strcmp(book_num,p1->

book_num)!

=0)

p2=p1;

p1=p1->

/*将p1后移一个结点,p2指向p1原结点*/

if(strcmp(book_num,p1->

book_num)==0)/*找到结点*/

if(p1==p)p=p1->

/*为p1首结点,把第2结点地址赋给首结点*/

elsep2->

next=p1->

/*否则p1下个结点地址赋给p1前一地址*/

\ndelete:

%s,OK.pressanykey...\n"

p1->

reader_num);

free(p1);

else

\nTheentererror!

returnp;

/*将链表信息写入文件保存*/

voidsave_point(book_info*p,charfilename[])

s=p;

for(s=s->

s=s->

next)/*将s指向它的下一个结点*/

fwrite(s,LEN,1,fp);

/*写入信息*/

if(s->

/*将链表信息追加入文件保存*/

voidsave_point2(book_info*p,charfilename[])

ab"

(001.h)

/*模块一:

现有图书信息*/

voidnowbook_info()

charch;

for(;

\t\t***************************************************\n"

\t\t******************现有图书信息*********************\n"

\t\t**请选择服务种类**\n"

printf(star2);

\t\t**----------------1.按时间排列-------------------**\n"

\t\t**----------------2.按类型排列-------------------**\n"

\t\t**----------------3.返回上级-------------------**\n"

printf(star1);

ch=getch();

3'

)return;

elseif(ch!

='

ch!

)continue;

/*返回循环,直到ch=1,2,3*/

sort_book("

allbook"

ch);

(002.h)

/*模块二:

新书查询*/

voidnew_book()

\n\t\t***************************************************\n"

\t\t*********************新书查询**********************\n"

\t\t**请选择服务种类:

**\n"

newbook"

(003.h)

/*模块三:

借阅管理*/

#include"

003_1.h"

voidreader_manage()

charpassword[10];

if(flag==2)/*普通用户只能查看自身文件信息*/

{clrscr();

fp=fopen(username,"

fgets(password,9,fp);

printf(booktype1);

feof(fp))

putchar(getc(fp));

\npressanykey...\n"

\t\t**---------------1.借书登记管理------------------**\n"

\t\t**---------------2.续借登记管理------------------**\n"

\t\t**---------------3.超期登记管理------------------**\n"

\t\t**---------------4.还书登记管理------------------**\n"

\t\t**----------------5.返回上级-------------------**\n"

switch(ch)

case'

:

borrow_register();

printf("

本功能尚未完成,任意键...\n"

getch();

break;

4'

back_register();

5'

return;

(003_1.h)

/*模块三:

1.借书登记管理*/

voidborrow_register()

book_info*p,*p1;

do

{p=readfile1("

\nEnterbook_num:

gets(book_num);

for(p1=p1->

strcmp(p1->

book_num,book_num)!

=0;

p1=p1->

next)/*书号相同退出循环*/

if(p1->

\n本馆无该书记录,pressanykey..."

return;

\nBorrowdate(yy-mm-dd):

gets(p1->

borrow_date);

\nBackdate(yy-mm-dd):

back_date);

\nreadername:

reader_name);

\nreadernumber:

if((fp=fopen(p1->

reader_num,"

\nError:

usernoexist.pressanykey...\n"

save_point(p,"

fwrite(p1,LEN,1,fp);

\nInputotherdata(Y/N)?

}while(ch=='

y'

||ch=='

Y'

4.还书登记管理*/

voidback_register()

book_info*p,*p1,*s1,*s2,*s3;

\nEnterbooknumber:

next)/*找到链表中的结点*/

\n本馆无该书记录,pressanykey..."

strcpy(p1->

borrow_date,"

00-00-00"

/*将已还信息初始化*/

back_date,"

00000000"

reader_name,"

0000"

\nReturnthebook.otherbook?

(Y/N):

/*还其它书

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1